Авто теги 1.0

Авто теги 1.0

Хак позволяет автоматически формировать теги для публикаций из заголовка и краткой новости.

avto-tegi-1_0.zip
Создайте аккаунт или авторизуйтесь для скачивания
 
Версия DLE: 14.х
Кодировка: utf-8
Автор: D0Gmatist
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Комментариев 5

Hoolky 14 июня 2022 04:14
Внимание, у кого не работает! Просто вручную впишите по инструкции...
В файлах engine/inc/addnews.tpl и engine/modules/addnews.tpl находим:
if( @preg_match( "/[\||\<|\>]/", $_POST['tags'] ) ) $_POST['tags'] = "";
	else $_POST['tags'] = @$db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['tags'] ) ) ), ENT_COMPAT, $config['charset'] ) );

Вставляем ниже:
 // D0Gmatist
    $_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);
// D0Gmatist

В конце engine/inc/include/functions.inc.php находим:
?>

И выше дописываем:
function tagsInTitleShort( $x ) {

    $quotesT = array ("\x22", "\x60", "\t", "\n", "\r", ",", ".", "/", "¬", "#", ";", ":", "@", "~", "{", "}", "[", "]",  "{", "}", "=", "-", "+", ")", "(", "*", "^", "%", "$", "<", ">", "?", "!", '"');

    $x = preg_replace( "#\[hide\](.+?)\[/hide\]#is", "", $x );
    $x = preg_replace( "'\[attachment=(.*?)\]'si", "", $x );
    $x = preg_replace( "'\[page=(.*?)\](.*?)\[/page\]'si", "", $x );
    $x = preg_replace( "'\[url=(.*?)\](.*?)\[/url\]'si", "", $x );
    $x = str_replace( "{ PAGEBREAK }", "", $x ); // { PAGEBREAK } убрать пробелы
    $x = str_replace( "&nbsp;", " ", $x );
    $x = str_replace( '<br />', ' ', $x );
    $x = strip_tags( $x );
    $x = preg_replace( "#&(.+?);#", "", $x );

    $vTiSh = trim( str_replace( $quotesT, " ", $x ) );
    $tTExpA = array_unique ( explode( " ", $vTiSh ) );
    shuffle($tTExpA);

    $iT = "";
    while (list(, $tTExpAx) = each($tTExpA)) {
        if ( preg_match( "/[a-zA-Zа-яА-Я0-9]{4}/", $tTExpAx ) ) $iT .= " " . $tTExpAx;
    }
    $tTExpB = explode( " ", trim( $iT ) );

    $mT = count( $tTExpB );
    if ( $mT > 10 ) $mT = 10;

    $mTD = $mT - 1;
    $resultTag = "";
    for ( $i = 0; $i < $mT; $i++ ) {
        if ( $mTD != $i ) $resultTag .= $tTExpB[$i] . ",";
        else  $resultTag .= $tTExpB[$i];
    }

    return $resultTag;

}
stimul 17 сентября 2021 09:56
Oxigen, не знаю у меня при добавлении новости сайт падает, а именно на этом коде в engine/modules/addnews.php:
	if( @preg_match( "/[\||\<|\>]/", $_POST['tags'] ) ) $_POST['tags'] = "";
	else $_POST['tags'] = @$db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['tags'] ) ) ), ENT_COMPAT, $config['charset'] ) );

// D0Gmatist
    $_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);
// D0Gmatist
Oxigen 15 сентября 2021 16:50
stimul, проверил на DLE 14.3 - работает без ошибок.
--------------------
Всё, что вы напишите, будет использовано против вас при показе контекстной рекламы :)
drulic 15 сентября 2021 16:38
Цитата: stimul
не работает, при добавление новости сайт подает

я просто руками внёс изменения и всё заработало
stimul 15 сентября 2021 13:26
не работает, при добавление новости сайт подает