Подкатегори на странице категории — DLE

Данный хак выводит список подкатегорий на странице категории.

Как реализовать:

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 (Для DLE 11.x правки делаем в файле engine/modules/main.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}

Готово.

delux

Предлагаю делиться опытом в сфере сайтостроения!

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.