Расширение функционала тега {custom}
Посетила меня такая мысль, что в теге {custom} очень не хватает возможности выводить новости из просматриваемой категории.
Сейчас для реализации подобного приходится для каждой категории прописывать свой тег:
Я же решил это дело немного упростить. Все новости будут выводиться одним тегом с указанным category="current" или category="current_sub"
current - берет ID одной категории, непосредственно той, в которой находится пользователь.
current_sub - создает список категорий с учетом подкатегорий просматриваемой категории.
aviable необходим, т.к. во всех других случах переменная $category_id будет пустая и мы получим MySQL ошибку.
Установка:
Открыть файл engine/modules/functions.php
Найти строку:
Выше нее вставить:
PS. В новых версиях DLE добавлен блок custom для комментариев. Он визуально такой же, за исключением подчеркнутого кода.
UPD: от 07.05.2020
Для DLE 13.x - 14.x сделал установку в виде плагина.
С уважением,
Олег Александрович a.k.a. Sander
Сейчас для реализации подобного приходится для каждой категории прописывать свой тег:
[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
Найти строку:
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
Выше нее вставить:
/////////////////////////////////////////////////////////
if( preg_match( "#category=['\"]current_?([^'\"]*)['\"]#i", $param_str, $match ) ) {
$custom_category = (int)$category_id;
if ($custom_category) {
$cats_select = true;
if ($match[1] == 'sub') {
$custom_category = get_sub_cats($custom_category);
}
if( $config['allow_multi_category'] ) {
$where[] = "category regexp '[[:<:]](" . $custom_category . ")[[:>:]]'";
} else {
$custom_category = str_replace( "|", "','", $custom_category );
$where[] = "category IN ('" . $custom_category . "')";
}
}
} else
/////////////////////////////////////////////////////////
PS. В новых версиях DLE добавлен блок custom для комментариев. Он визуально такой же, за исключением подчеркнутого кода.
UPD: от 07.05.2020
Для DLE 13.x - 14.x сделал установку в виде плагина.
Скачать на Github
С уважением,
Олег Александрович a.k.a. Sander