Редактор темы

Реклама
Реклама

Вопрос? Генератор облако тегов

  • Автор темы Автор темы k1sher
  • Дата начала Дата начала

k1sher

Новичок
Регистрация
11 Окт 2018
Сообщения
40
Рейтинг реакций
0
Баллы
6
Возраст
32
1/3
Автор темы
Можете подсказать как сделать генерацию облака тегов из "Метатег title"? Если это вообще возможно.
В случае как указал ниже, облако генерируется из title и short_story

Делал так...
Открыть файл \engine\inc\include\functions.inc.php

В самый конец перед
PHP:
?>

дописать
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;

}
где if ( $mT > 10 ) $mT =10; это число максимум тегов

Открыть файлы
\engine\inc\addnews.php
и
\engine\inc\addnews.php

Найти
PHP:
    if( @preg_match( "/[\||\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['tags'] ) ) $_POST['tags'] = "";
    else $_POST['tags'] = @$db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['tags'] ) ) ), ENT_COMPAT, $config['charset'] ) );

НИЖЕ дописать
PHP:
$_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);
 
Последнее редактирование:

Похожие темы Последние темы Популярные темы

Назад
Сверху