Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как вывести в шаблоне {category-link} id определенной категории?

Как вывести в шаблоне {category-link} id определенной категории?


     22.12.2016    Все вопросы » Общие вопросы    1476

вопрос
Как вывести в шаблоне тег {category-link} id определенной категории?
Сейчас просто подряд показываются все категории которые указана, нужно сделать так, чтобы было примерно так {category-link="id категории"}

Как такое реализовать.? Если готовы реализовать платно, велком в личку. За ранее спасибо.

Ответил: PunPun


1. Открываем /engine/modules/functions.php найти
function get_url($id) {
Выше вставить:
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, $cat_info)
{
    $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))
            {
                if( $config['allow_alt_url'] )
                    $get_cat[] = "<a href=\"" . $config['http_home_url'] . get_url( $value ) . "/\">{$cat_info[$value]['name']}</a>";
                else
                    $get_cat[] = "<a href=\"/index.php?do=cat&category={$cat_info[$value]['alt_name']}\">{$cat_info[$value]['name']}</a>";
            }
        }
    }
    else
    {
        if(in_array($data[1], $cat_list))
        {
            if( $config['allow_alt_url'] )
                $get_cat[] = "<a href=\"" . $config['http_home_url'] . get_url( $data[1] ) . "/\">{$cat_info[$data[1]]['name']}</a>";
            else
                $get_cat[] = "<a href=\"/index.php?do=cat&category={$cat_info[$data[1]]['alt_name']}\">{$cat_info[$data[1]]['name']}</a>";
        }
    }
    return implode($config['category_separator'] . ' ', $get_cat);
}

2. Открываем /engine/modules/show.short.php show.full.php show.custom.php находим первый
$tpl->compile( 'content' );
Выше вставляем:
$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, $cat_info)
{
    return catFunction($data, $cat_list, $config, $cat_info);
}, $tpl->copy_template );

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

Автор Gameer. Для благодарностей: R118095764291
Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 02.11.2014 newdancer  Общие вопросы
наверх