• Автор:

    Flesha
  • Добавлено:

    окт 21, 2012
  • Комментариев:

    1
  • Просмотров:

    1833

Хак Новый тэг subcategory

Хак Новый тэг subcategory

Вот просто не захотелось мне писать все под категории в ручную. И сделал небольшой хак для улучшения функциональности DLE.

Установка:
1. Открываем /index.php и находим
if (stripos ( $tpl->copy_template, "[static=" ) !== false) {


и перед вставляем:
/* kdn1990 */
if (stripos ( $tpl->copy_template, "[subcategory=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[subcategory=(.*?)](.*?)[/subcategory]#ies", "check_subcategory('\1', '\2', '{$category_id}')", $tpl->copy_template );
}

if (stripos ( $tpl->copy_template, "[not-subcategory=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-subcategory=(.*?)](.*?)[/not-subcategory]#ies", "check_subcategory('\1', '\2', '{$category_id}', false)", $tpl->copy_template );
}
/* kdn1990 */



2. Открываем /engine/modules/functions.php и ищем
function clean_url($url) {


и перед вставляем:
/* kdn1990 */
function check_subcategory($catid, $block, $category, $action = true) {
$catid = (int)$catid;

if ($catid > 0) {
$cats = get_sub_cats($catid);
$cats = explode( '|', $cats );
$category = explode(',', $category);
$found = false;

foreach ($category as $element) {
if ($action) {
if (in_array($element, $cats)) {
$block = str_replace('"', '"', $block);
return $block;
}
} else {
if (in_array($element, $cats)) {
$found = true;
}
}
}

if (!$action && !$found) {
$block = str_replace('"', '"', $block );
return $block;
}
}

return "";
}
/* kdn1990 */


Совместимость: 9.7 (если есть поддержка subcategory, то думаю и это тоже будет работать)
Автор: kdn1990
Вернуться

Комментарии:


  1. kiosaki → 3 декабря 2012 16:41
    Что-то не понял, что хак делает?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.