masterdle.rusitemap
masterdle.rusitemap
Вывод подкатегорий в DLE
Опубликовано: 4-07-2011, 08:39

 

Вывод подкатегорий в DLE


 

Спешу представить всем пользователям очередное маленькое дополнение к Data Life Engine. Суть этого хака в том, чтобы при запросе в главную категорию, выводились его подкатегории и количество новостей в них. Я видел похожий модуль за деньги и для старых версий. Этот же хак бесплатный и обещает работать на актуальных версиях движка. Модуль не добавляет нагрузки, ну если только чуть чуть. Не создаётся никаких дополнительных запросов, используется внутренний массив $cat_info. Но я его немного дописал, тем самым добавил возможность вывести количество новостей в этой категории.
раскрутка сайта в Киеве
Установка на самом деле состоит из трёх ступеней:

1. Отредактировать запрос в engine/init.php

Найти:

$cat_info = get_vars ( "category" );if (! is_array ( $cat_info )) {    $cat_info = array ();        $db->query ( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );    while ( $row = $db->get_row () ) {


Заменить на:

$cat_info = get_vars ( "category" );if (! is_array ( $cat_info )) {    $cat_info = array ();        $db->query  ( "SELECT ".PREFIX."_category.id, name, ".PREFIX."_category.alt_name,  icon, skin, parentid, news_sort, news_msort, news_number, short_tpl,  full_tpl, COUNT(".PREFIX."_post.category) as post_count FROM  ".PREFIX."_category LEFT JOIN ".PREFIX."_post ON ".PREFIX."_category.id =  ".PREFIX."_post.category GROUP BY id ");        while ( $row = $db->get_row () ) {


2. Подключить это в index.php

Найти:

require_once ROOT_DIR . '/engine/init.php';


Ниже вставить:


/*Хак вывода подкатегорий*/            foreach ($cat_info as $key => $value){        if ($category_id == $cat_info[$key]['parentid'] AND $category_id != ""){            if ($config['allow_alt_url'] == "yes")                $url = $config['http_home_url'] . $cat_info[$category_id]['alt_name'] ."/".  $cat_info[$key]['alt_name'] . "/";            else                $url = $config['http_home_url'] . "index.php?do=cat&category=" . $cat_info[$key]['alt_name'];                        $catmenu .= "<TR>                            <TD width=30%><a href="{$url}">".$cat_info[$key]['name']."</a></TD>                            <TD width=5%>".$cat_info[$key]['post_count']."</TD>                         </TR>";        }    }            if ($catmenu){            $sub_cats .= "<b>Список подкатегорий:</b> <br /><table width=100%>";        $sub_cats .= $catmenu;        $sub_cats .= "</table>";    } else {        $sub_cats = "";        }/*Хак вывода подкатегорий*/


Найти:

$tpl->load_template ( 'main.tpl' );


Ниже вставить:

$tpl->set('{sub_cats}', $sub_cats); //Хак вывода подкатегорий



3. Открыть

 

templates/{Ваш шаблон}/main.tpl


В удобное место добавить:

{sub_cats}

 

Вот и все=)

Категория: Для DLE » Хаки DLE | 16231
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
sane1k Гости Комментариев: 0 Публикаций: 0

22 ноября 2012 19:43


Выдает ошибку

Parse error: syntax error, unexpected '{' in Z:\home\localhost\www\dle\index.php on line 47
код не смог кинуть

href='$url' так правельно без скобок

Чет я не понял что делает этот хак сделал все а у меня не че не выводится, я так понимаю что он работать должен так. когда нажимаешь на категорию должно выводится все ее подкатегории как новость? или как?

admin Администратор Пользователь offline Комментариев: 9 Публикаций: 647

23 ноября 2012 13:21


Именно так. Нажимаете на категорию, а он выводит новости и из подкатегорий.

--------------------
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Copyright © 2010-2014 MasterDLE.RU All Rights Reserved.
Powered by MSWebs Studio © 2010 - 2013
  • Счетчик PR-CY.Rank
  • Счетчик PR-CY.Rank