Хак позволит выводить отдельно категории друг от друга, заменяя громоздкие конструкции [catlist]
Установка хака Разделение категорий на вывод друг от друга в новостях для DLE:
1. Открываем /engine/modules/functions.php найти:
Выше вставить:
2. Открываем /engine/modules/show.short.php show.full.php show.custom.php находим первый
Выше вставляем:
Использование:
В шаблонах краткой новости, полной, поиске и шаблонах custom доступны теги:
{cat:1} или {cat:1,2,3} - выведет ссылку на эти категории которые указаны.
[cat:1] текст [/cat] или [cat:1,2,3] текст [/cat] - выведет текст внутри тегов если категория выбрана для новости.
Автор: https://punpun.name/
Установка хака Разделение категорий на вывод друг от друга в новостях для DLE:
1. Открываем /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, $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);
}
PHP:
$tpl->compile( 'content' );
PHP:
if (strpos ( $tpl->copy_template, "[cat:" ) !== false) {
$tpl->copy_template = preg_replace_callback( "#\[cat\:(.+?)\](.+?)\[/cat\]#is", function($data) use ($cat_list)
{
return checkCatFunction($data, $cat_list);
}, $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "{cat:" ) !== false) {
$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] - выведет текст внутри тегов если категория выбрана для новости.
Автор: https://punpun.name/
Последнее редактирование: