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

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

Сейчас для реализации подобного приходится для каждой категории прописывать свой тег:

[category=1]{custom category="1"}[/category]
[category=2]{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 ошибку.

Установка:
Открыть файл 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{

Далее найти строку:

$custom_category = $db->safesql( trim(str_replace( ',', '|', $temp_array )) );

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

}

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

PS. В новых версиях DLE добавлен блок custom для комментариев. Он визуально такой же, за исключением подчеркнутого кода.
Источник: sandev.pro

Просмотров:

Добавить комментарий

Adblock
detector