Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » Хак Автоматическое добавление тегов из дополнительных полей

Хак Автоматическое добавление тегов из дополнительных полей


 DreamFix    12.09.2011    хак, дополнительные поля, облако тегов    Стол заказов    5139    9 комментариев

Имеется хак автоматического добавления тегов:


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

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

DreamFix
Юзер

DreamFix - 12 сентября 2011 18:47 -

разобрался как брать теги из доп.полей: вместо $short_story заменить на $filecontents только не понял как одновременно из title и xfields? Пробовал: $szContent = strip_tags($filecontents, $title); - все равно берутся только из топ полей(

rashpil
Эксперт

rashpil - 14 сентября 2011 11:11 -

$szContent = strip_tags($filecontents . $title);

FreakMurderer
Юзер

FreakMurderer - 15 сентября 2011 14:32 -

А возможно ли сделать автоматическое добавление и при редактировании новости?

mulya
Юзер

mulya - 23 января 2012 19:00 -

а если нужно чтобы использувались поля

title и short_story

то так можно или нет ?!

/*-------------хак автоматическое добавление тэгов ----------------*/
$nNumTags = 10;
$szContent = strip_tags($title . $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);
/*-------------!хак автоматическое добавление тэгов ----------------*/

ПафНутиЙ
Админ

ПафНутиЙ - 23 января 2012 20:58 -

по идее должно.

Каков вопрос - таков и ответ. Просто помните об этом.

Djinn
Юзер

Djinn - 28 сентября 2014 16:37 -

А может кто то оживить этот хак под DLE 10.xx для доп полей?
хорошая штука, но на 10.xx не работает именно с доп полей, а с тайтла работает.

vitnet
PHP-developer

vitnet - 28 сентября 2014 17:51 -

найти
        $add_module = "yes";
        $xfieldsaction = "init";
        $category = $catlist;
        include (ENGINE_DIR . '/inc/xfields.php');

добавить ниже
        if( !empty( $postedxfields ) ) {
            $arr_tag = explode( " ", $postedxfields['test'] ); // <-- test field tags
            $str_tag = "";

            foreach ( $arr_tag as $value ) {
                preg_match('/[a-zA-Zа-яА-Я]{4,}/', trim($value), $key); // <-- 4 min lenght letter tag
                if ($key[0]) {
                    $str_tag .= ($key[0] . ', ');
                }
            }
        
            $_POST['tags'] = substr(rtrim($str_tag, ", "), 0, strlen($str_tag) -1);
        }

Djinn
Юзер

Djinn - 28 сентября 2014 18:45 -

vitnet,
Спасибо!! Но что то не работает.. делал так:
\engine\modules\addnews.php

нашел:
        $add_module = "yes";
        $xfieldsaction = "init";
        $category = $catlist;
        include (ENGINE_DIR . '/inc/xfields.php');

добавил ниже:
        if( !empty( $postedxfields ) ) {
            $arr_tag = explode( " ", $postedxfields['мое поле'] ); // <-- test field tags
            $str_tag = "";

            foreach ( $arr_tag as $value ) {
                preg_match('/[a-zA-Zа-яА-Я]{4,}/', trim($value), $key); // <-- 4 min lenght tag
                if ($key[0]) {
                    $str_tag .= ($key[0] . ', ');
                }
            }
        
            $_POST['tags'] = substr(rtrim($str_tag, ", "), 0, strlen($str_tag) -1);
        }

и ничего не изменилось... может есть другой способ?

karnelius
Юзер

karnelius - 7 октября 2016 09:22 -

Сделал на 11.1
ниже
    $xfieldsid = $added_time;
    $xfieldsaction = "init";
    include (ENGINE_DIR . '/inc/xfields.php');

вставить
/*-------------хак автоматическое добавление тэгов ----------------*/
$nNumTags = 10;
$szContent = strip_tags($filecontents . $title . $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);
/*-------------!хак автоматическое добавление тэгов ----------------*/


и все работает, добавляет тэги с
доп.полей
названия
короткой новости

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