Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru Модули для DLE Автоматическое создание [Ключевые слова для облака тегов:]

Автоматическое создание [Ключевые слова для облака тегов:]


     29.06.2014    Модули для DLE    5492    13

Краткая информация о модуле (хаке)

Автор: D0Gmatist
Версия DLE: 10.X
Контакты: Skype - 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;

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

Открыть файлы
\engine\inc\addnews.php
и
\engine\inc\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

Комментарии пользователей (13)

hqtexture
50 | 16

hqtexture - 18 июля 2014 05:07 - Юзер

Офигенный хак, спасибо.

Вопрос, возможно ли реализация следующего:

Пихать все ключевики это получается будет мусор, есть ли возможность сделать базу ключевиков которые допускаются к публикации и ключевые слова которые не допускаются к публикации с возможностью исключить их потом в админке. Потом возможность склонять слова, чтобы не было массовости подобных тегов.

Например:
Основной тег: автоавария, а слова которые: аварию, аварии, дтп, столкнулся, склонять к слову автоавария.

Цена вопроса?

websot
2

61 | 10

websot - 27 июля 2014 18:43 - Юзер

Цитата: hqtexture
Пихать все ключевики это получается будет мусор, есть ли возможность сделать базу ключевиков которые допускаются к публикации и ключевые слова которые не допускаются к публикации с возможностью исключить их потом в админке. Потом возможность склонять слова, чтобы не было массовости подобных тегов.

Например:
Основной тег: автоавария, а слова которые: аварию, аварии, дтп, столкнулся, склонять к слову автоавария.

На такое где то был хак по склонению слов

D0Gmatist
225

794 | 281

D0Gmatist - 23 июля 2014 17:08 - Местный

Цитата: hqtexture
Цена вопроса?

Пиши в скайп == D0Gmatist

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Ashuk
13

Ashuk - 5 марта 2015 12:04 - Юзер

Здравствуйте! Как скачать, ссылка направляет на кино сайт?! Пожалуйста выложите ссылку, заранее благодарен!

crow6viktor
59 | 3

crow6viktor - 29 июля 2014 00:19 - Юзер

Отличный хак!,жаль нет возможности авто заполнения тегов из определенного доп. поля или нескольких доп. полей

Dimas777
10

Dimas777 - 9 октября 2014 22:42 - Юзер

Как сделать что бы только из Title выводил теги???

beatkr1t
1

beatkr1t - 5 марта 2016 03:14 - Юзер

Вместо
 // D0Gmatist
    $_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);
// D0Gmatist

Вставь это
// D0Gmatist
    $_POST['tags'] = tagsInTitleShort( $title );
// D0Gmatist

malenovski
6

malenovski - 20 октября 2014 21:20 - Юзер

Подскажите пожалуйста - а как сделать фильтр слов для облако тегов ? Ну или как выше в комментариях описал пользователь ( websot ) Помогите рубликов ( за 200 )
DLE 10.2

awq
1

awq - 4 декабря 2014 08:48 - Юзер

на 10.3 данный хак подойдет?

ciuhiphop
1

ciuhiphop - 9 января 2015 22:37 - Юзер

Да. Подходит для DLE 10.3. Сам только что проверил.

4sezona
1

24

4sezona - 1 марта 2015 13:14 - Юзер

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



это один и тот же файл...

ares22rus
4

ares22rus - 26 марта 2015 12:12 - Юзер

Теги добавляются только при добавлении новости с админки. Как сделать чтоб добавлялись с сайта?

agaun
9

agaun - 16 сентября 2015 15:30 - Юзер

Открыть:
\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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте