• Автор:

    Flesha
  • Добавлено:

    ноя 30, 2013
  • Комментариев:

    1
  • Просмотров:

    2476

Хак Расширение функционала тега {custom}

Хак Расширение функционала тега {custom}

В теге {custom} очень не хватает возможности выводить новости из просматриваемой категории. Сейчас для реализации подобного приходится для каждой категории прописывать свой тег:
[category=1]{custom category="1"}[/category]
[category={custom category="2"}[/category]


Решено это дело немного упростить.

Все новости будут выводиться одним тегом с указанным category="current" или category="current_sub"
[aviable=cat|showfull]{custom category="current"}[/aviable]

и
[aviable=cat]{custom category="current_sub"}[/aviable]


current - берет ID одной категории, непосредственно той, в которой находится пользователь.
current_sub - создает список категорий с учетом подкатегорий просматриваемой категории.
aviable - необходим, т.к. во всех других случах переменная $category_id будет пустая и мы получим MySQL ошибку.

Установка:
1. Открыть файл engine/modules/functions.php:

В Dle 9.7 и 9.8 найти строку:
$custom_category = $db->safesql( trim(str_replace( ',', '|', $match[1] )) );


Перед ней вставить:
if($match[1]=='current') $custom_category = $category_id;
elseif($match[1]=='current_sub') $custom_category = get_sub_cats($category_id);
else


В Dle 10.0 и старше найти строку:
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {


После нее вставить:
if($match[1]=='current') $custom_category = $category_id;
elseif($match[1]=='current_sub') $custom_category = get_sub_cats($category_id);
else{


2. Далее найти строку:
$custom_category = $db->safesql( trim(str_replace( ',', '|', $temp_array )) );


И после нее вставить закрывающую скобку:
}


Версия DLE: 9.7-10.х
Автор: Sander
Сайт: sandev.pro
Вернуться

Комментарии:


  1. qwerty → 1 декабря 2013 02:45
    считаю хак бесполезным, так как автор его сделал исключительно под свои нужды.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.