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

Тема в разделе "DLE", создана пользователем mishiko, 12 мар 2014.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. mishiko

    mishiko Создатель

    Регистр.:
    5 сен 2011
    Сообщения:
    263
    Симпатии:
    107
    1393737823_rasshiryaem-funkcional-tega-custom.jpg

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

    Многие это делают вот таким образом:
    Чтобы это сделать по умному, предлагается решение
    Все новости будут выводиться одним тегом с указанным category="current" или category="current_sub"
    и
    Установка Хака для 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.х
     
    noxxxxx нравится это.