Хак: Разделение категорий на выводы

Статус
В этой теме нельзя размещать новые ответы.

iteam

Новичок
Регистрация
1 Мар 2017
Сообщения
189
Реакции
20
Баллы
18
Просто оставлю это здесь, новичкам пригодиться :) P.S. Авторские права сохранены!

Хак для DataLife Engine 10.2 - 11.2 и выше от @Gameer .

Вы можете написать @Gameer в лс с запросом на создание хака и он появится здесь. (Не гарантирую что он будет создан, он может быть ему не интересен).

ПРИНИМАЮ БЛАГОДАРНОСТИ:
  • Webmoney WMZ: Z228640084773
  • Webmoney WMR: R118095764291
  • Webmoney WMU: U218134219019
  • PayPal: [email protected]


Открываем /engine/modules/functions.php найти:
PHP:
function get_url($id) {
Выше вставить:
PHP:
function checkCatFunction($data, $cat_list)
{
    $flag_checkCatFunction = false;
    if(substr_count($data[1],","))
    {
        $cat_array = array();
        $cat_array = explode(",", $data[1]);
        foreach($cat_array as $value)
        {
            if(in_array($value, $cat_list))
                $flag_checkCatFunction = true;
        }
    }
    else
    {
        if(in_array($data[1], $cat_list))
            $flag_checkCatFunction = true;
    }
    return ($flag_checkCatFunction == true) ? $data[2] : "";
}
function catFunction($data, $cat_list, $config)
{
    $get_cat = array();
    if(substr_count($data[1],","))
    {
        $cat_array = array();
        $cat_array = explode(",", $data[1]);
        foreach($cat_array as $value)
        {
            if(in_array($value, $cat_list))
                $get_cat[] = getCatInfo($value, $config);
        }
    }
    else
    {
        if(in_array($data[1], $cat_list))
            $get_cat[] = getCatInfo($data[1], $config);
    }
    return implode($config['category_separator'] . ' ', $get_cat);
}
function getCatInfo($id, $config)
{
    global $cat_info, $PHP_SELF;
    if( $config['allow_alt_url'] ) $catInfo = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";
    else $catInfo = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\">{$cat_info[$id]['name']}</a>";
    return $catInfo;
}
Открываем /engine/modules/show.short.php show.full.php show.custom.php находим первый
PHP:
$tpl->compile( 'content' );
Выше вставляем:
PHP:
$tpl->copy_template = preg_replace_callback( "#\[cat\:(.+?)\](.+?)\[/cat\]#is", function($data) use ($cat_list)
{
    return checkCatFunction($data, $cat_list);
}, $tpl->copy_template );
$tpl->copy_template = preg_replace_callback( "#{cat\:(.+?)}#is", function($data) use ($cat_list, $config)
{
    return catFunction($data, $cat_list, $config);
}, $tpl->copy_template );

Использование:
В шаблонах краткой новости, полной и шаблонах custom доступен теги:
{cat:1} или {cat:1,2,3} - выведет ссылку на эти категории которые указаны.
[cat:1] текст [/cat] или [cat:1,2,3] текст [/cat] - выведет текст внутри тегов если категория выбрана для новости.
 

oleggoran

Новичок
Регистрация
1 Апр 2017
Сообщения
1
Реакции
0
Баллы
1
Ничего не понял
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу