30.05.13, 16:45
4 комментарий
  DLE Хаки

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

С помощью этого хака теги будут добавляться автоматически. При формировании тегов данные беруться из краткой новости или заголовка новости.












Установка:
1. Открываем engine/modules/addnews.php и сразу после первого вхождения:

if( $found )


Выше, вставляем один из вариантов:
/*------------- формирования тегов по заголовку ----------------*/
$nNumTags = 10;
$szContent = strip_tags($title);
$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);
/*------------- формирования тегов по заголовку ----------------*/


Или:
/*------------- формирования тегов по краткой новости ----------------*/
$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);
/*------------- формирования тегов по краткой новости ----------------*/



2. Открываем файл engine/inc/addnews.php и находим:
if( trim( $_POST['vote_title']


Выше, вставляем один из вариантов:
/*------------- формирования тегов по заголовку ----------------*/
$nNumTags = 10;
$szContent = strip_tags($title);
$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);
/*------------- формирования тегов по заголовку ----------------*/


Или:
/*------------- формирования тегов по краткой новости ----------------*/
$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);
/*------------- формирования тегов по краткой новости ----------------*/


Готово!

Важно! Теги будут формироваться только в новых новостях.

Версия DLE: 9.xшаблоны для dle 11.2

Комментарии

  1. NorDULaN Пользователь offline 26 октября 2013 21:54                    

    А по доп. полю можно сделать?

  1. ToNik Пользователь offline 26 октября 2013 21:57                    

    Насколько видно по коду - НЕТ...
    Основная инфа черпается с заголовка

  1. NorDULaN Пользователь offline 28 октября 2013 08:23                    

    Если модифицировать?
    Есть ли в API DLE что нибудь по php xfields...
    Если есть то вероятно можно будет сделать

  1. ToNik Пользователь offline 28 октября 2013 09:21                    

    NorDULaN,
    Лично я не ставил это себе самоцелью...
    Но поковырять можно...

Напишите своё мнение