• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

mishiko

Постоялец
Регистрация
5 Сен 2011
Сообщения
320
Реакции
135
1393737823_rasshiryaem-funkcional-tega-custom.jpg

Готовое решение для многих сайтов на движке DataLife Engine, кто использует тег CUSTOM. Хак Расширяет функционал тега {custom} для DLE - после добавления можно будет выводить новости из просматриваемой категории с 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 ошибку.

Установка Хака для DLE:
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 )) );

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

Версия движка: 9.7 - 10.х
 
на 11.2 найти второй
PHP:
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
ниже добавить
PHP:
if($match[1]=='current') $custom_category = $category_id;
elseif($match[1]=='current_sub') $custom_category = get_sub_cats($category_id);
else{
и после
PHP:
$custom_category = $db->safesql( trim(str_replace( ',', '|', $temp_array )) );
добавить закрывающую скобку
PHP:
}
 
Назад
Сверху