Dleshka.org
Авторизация

Хак Автоматическое добавление тегов v1.0

+10
kand2004 13-12-2009 Хаки DLE 6 комментариев
Автоматическое добавление тегов v1.0

Очень часто Журналисты сайта забывают или не хотят проставлять теги для новости. Сначала я не обращал внимания, но поняв, в чем смысл и назначение тегов (для поисковиков в первую очередь), я сам начал руками редактировать посты и добавлять теги.
Теги - по сути своей - это краткое описание новости словами или словосочетаниями. В тегах не должно быть конкретики, но в то же время, они должны наиболее близко описывать предмет новости.
Идеальными словами-тегами для новости есть синонимы названия или само название. Следует исключать в тегах слова, которые можно отнести к любой новости (местоимения, предлоги и т.д.).
Так же не желательно в теги включать номер версии софта, размер файла инсталляции и другие конкретизирующие моменты.
Хотя, опять же, тут все зависит от вебмастера, от цели создания тегов и метода раскрутки новости.

Долго не думая, я копировал слова (исключая цифры) и ставил между ними запятую. Через некоторое время это стало надоедать...
Так появился этот простой Хак. Большинству может показаться совершенно бесполезным, но мне помогает. Может кому-то тоже пригодится.

Возможности Хака:
Из заголовка новости берутся слова (исключены цифры и спецсимволы), длина которых больше 3 символов и формируется строка тэгов.
Тестировался на версии DataLife Engine 8.2

Инсталяция.

Скрипт (ниже по тексту буду называть "script"), который втавляем в нижеуказанные файлы:


<font color=#777777>/*-------------Хак автоматическое добавление тэгов ----------------*/</font>
<font color=#660000>$arr_tags</font><font color=#8000FF> = </font>explode(' ', <font color=#660000>$title</font>);
<font color=#660000>$str_tag</font><font color=#8000FF> = </font>''; 
<font color=#0000FF>foreach</font> ( <font color=#660000>$arr_tags</font> <font color=#0000FF>as</font> <font color=#660000>$tvalue</font> ) {
    <font color=#660000>$tvalue</font> =    trim(<font color=#660000>$tvalue</font>);
    preg_match('/[a-zA-Zа-яА-Я]{4,}/', <font color=#660000>$tvalue</font>, <font color=#660000>$t_v</font>);
    <font color=#0000FF>if</font> (<font color=#660000>$t_v</font>[0]) {
        <font color=#660000>$str_tag</font> .= <font color=#660000>$t_v</font>[0].',';
    }
};
<font color=#660000>$_POST</font>['tags']<font color=#8000FF> = </font>substr(<font color=#660000>$str_tag</font>, 0, strlen(<font color=#660000>$str_tag</font>)-2);
<font color=#777777>/*-------------!Хак автоматическое добавление тэгов ----------------*/</font>



1) Открываем файл /engine/modules/addnews.php

Находим первое вхождение


     <font color=#0000FF>if</font>( <font color=#660000>$found</font> )
   


ВЫШЕ вставляем script

2) Открываем файл /engine/inc/addnews.php

Находим


     <font color=#0000FF>if</font>( trim( <font color=#660000>$_POST</font>['vote_title']
   


ВЫШЕ вставляем script

/*-------------хак автоматическое добавление тэгов ----------------*/
$nNumTags = 10;
$szContent = strip_tags($short_story);
$arr_tags = explode(' ', $szContent);
shuffle($arr_tags);
$nNumOfTags = 0;
$str_tag = '';
foreach ( $arr_tags as $tvalue ) {
$tvalue = trim($tvalue);
preg_match('/[a-zA-Zа-яА-Я]{4,}/', $tvalue, $t_v);
if ($t_v[0]) {
$str_tag .= $t_v[0].', ';
$nNumOfTags ++;
}
if ($nNumOfTags > $nNumTags)
break;
};
$_POST['tags'] = substr($str_tag, 0, strlen($str_tag)-1);
/*-------------!хак автоматическое добавление тэгов ----------------*/


3) Все :-)
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Матрица
15 декабря 2009 09:26
+ 0 -
Очень полезный хак smile спасибо афтару :fellow:
igorus
18 декабря 2009 14:21
+ 0 -
Сейчас скачаю и протестю ))) а то тоже проблема с тегами, эти "редиски" Журналюги ну не как не хотят ставить теги. :am:
sig
24 января 2010 21:49
+ 0 -
огромное спасиба класс просто улет
mako
24 апреля 2010 16:57
+ 0 -
на 8.5 отлично работает
Safari
1 ноября 2011 15:10
+ 0 -
ошибка в скрипте когда ставиш етот скрипт то нельзя добавить новость с админ панели!!!!!!

}; такого нету

лишнее ;
allwotlk
27 июля 2012 10:55
+ 0 -
Всё нормально робит дле 9.4
Авторизация