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

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


     29.06.2014    Ключевые, слова, облака, тегов, автоматическое, создание, хак    Модули для DLE    9143    18 комментариев

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

Автор: 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

18 комментариев

hqtexture
Юзер

hqtexture - 18 июля 2014 05:07 -

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

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

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

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

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

websot
Юзер

websot - 27 июля 2014 18:43 -

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

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

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

D0Gmatist
Юзер

D0Gmatist - 23 июля 2014 17:08 -

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

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

Ashuk
Юзер

Ashuk - 5 марта 2015 12:04 -

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

crow6viktor
Юзер

crow6viktor - 29 июля 2014 00:19 -

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

Dimas777
Юзер

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

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

beatkr1t
Юзер

beatkr1t - 5 марта 2016 03:14 -

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

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

malenovski
Юзер

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

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

awq
Юзер

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

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

ciuhiphop
Юзер

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

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

4sezona
Юзер

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

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



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

ares22rus
Юзер

ares22rus - 26 марта 2015 12:12 -

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

agaun
Юзер

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

rytis.arkusauskas
Юзер

rytis.arkusauskas - 12 апреля 2020 20:09 -

Fatal error: Uncaught Error: Call to undefined function tagsInTitleShort() in /home/***/***/***/htdocs/engine/modules/addnews.php:156


Эта строка содержит:

$_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);



Добавление из сайта, из админки все ок

Dark5ider
Эксперт

Dark5ider - 13 апреля 2020 01:09 -

Потому что надо её прописать, повторите первый пункт из инструкции но с файлом engine/modules/functions.php

rytis.arkusauskas
Юзер

rytis.arkusauskas - 13 апреля 2020 03:22 -

Теперь без ошибок, но не генерирует ключевое слово

Dark5ider
Эксперт

Dark5ider - 13 апреля 2020 13:43 -

agaun, зачем советовать, если не разбираешься? На момент обработки тегов, переменные заголовка и новости пусты, из чего заполнять то?


\engine\modules\addnews.php

Найти:
$add_module = "yes";


Вставить выше:
if ($_POST['tags'] == '') {
	$_POST['tags'] = tagsInTitleShort( $title . " " . $short_story);
}


Предыдущие "наработки" в этом файле удалить.

rytis.arkusauskas
Юзер

rytis.arkusauskas - 13 апреля 2020 16:23 -

работает сейчас. Спасибо

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