Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » Как добавить блок со списком подкатегорий, при нахождении в категории?

Как добавить блок со списком подкатегорий, при нахождении в категории?


     28.10.2014    Все вопросы » Ламерские вопросы    2769

вопрос
Допустим я решил перейти с главной в категорию "Игры", и мне нужно, чтоб у меня отобразились все подкатегории этой категории. Вот как-то так)

Ответил: ravchik


Поисковыми сервисами пользоваться видимо не обучены...
Нажать здесь

23 комментария

sa4881
Юзер

sa4881 - 28 октября 2014 16:57 -

Вы бредите уважаемый) это уже давно не работает, по крайней мере на 10.2 версии точно

ravchik
Юзер

ravchik - 28 октября 2014 17:10 -

Брежу я или нет, это не вам решать.. а код вполне рабочий.. с некоторыми минимальными изменениям. Только что проверил на DLE 10.3

sa4881
Юзер

sa4881 - 28 октября 2014 17:23 -

А какие изменения нужно внести? У меня после этих махинаций выскакивала ошибка php

ravchik
Юзер

ravchik - 28 октября 2014 17:33 -

файл subcat.php
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
function CategoryMenu($categoryid = 0, $parentid = 0, $returnstring = '') {
    global $cat_info, $user_group, $member_id;
    $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
    $root_category = array ();  
    if( count( $cat_info ) ) {    
        foreach ( $cat_info as $cats ) {
            if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
        }    
        if( count( $root_category ) ) {
            foreach ( $root_category as $id ) {              
                if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {          
                    $returnstring .= "<a href='/".$cat_info[$id]['alt_name']."/ title=\"".$cat_info[$id]['descr']."\"'>" . $cat_info[$id]['name']."</a><br>";
                }
                $returnstring = CategoryMenu( $categoryid, $id, $returnstring );
            }
        }
    }
    return $returnstring;
}
echo CategoryMenu(0, $category_id);
в нужном месте main.tpl вставить {include file="/engine/modules/subcat.php"}

sa4881
Юзер

sa4881 - 28 октября 2014 20:26 -

То есть нужно создать этот файл? А в какую папку его вставить?

ravchik
Юзер

ravchik - 28 октября 2014 20:46 -

Если присмотреться к тексту комментария, будет понятно, что в папку /engine/modules/

sa4881
Юзер

sa4881 - 28 октября 2014 21:05 -

выдаёт вот такую ошибку:
Parse error: syntax error, unexpected '{' in /home/u163481/5-androidru/www/engine/modules/subcat.php on line 1

sa4881
Юзер

sa4881 - 28 октября 2014 21:34 -

Что же мне делать, помогите

FastFud
Юзер

FastFud - 28 октября 2014 21:36 -

поставьте в конце всего кода ?>
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
function CategoryMenu($categoryid = 0, $parentid = 0, $returnstring = '') {
    global $cat_info, $user_group, $member_id;
    $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
    $root_category = array ();  
    if( count( $cat_info ) ) {    
        foreach ( $cat_info as $cats ) {
            if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
        }    
        if( count( $root_category ) ) {
            foreach ( $root_category as $id ) {              
                if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {          
                    $returnstring .= "<a href='/".$cat_info[$id]['alt_name']."/ title=\"".$cat_info[$id]['descr']."\"'>" . $cat_info[$id]['name']."</a><br>";
                }
                $returnstring = CategoryMenu( $categoryid, $id, $returnstring );
            }
        }
    }
    return $returnstring;
}
echo CategoryMenu(0, $category_id);
?>

sa4881
Юзер

sa4881 - 28 октября 2014 21:53 -

всёравно ошибка Parse error: syntax error, unexpected '{' in /home/u163481/5-androidru/www/engine/modules/subcat.php on line 1
Что я не так делаю

sa4881
Юзер

sa4881 - 28 октября 2014 21:56 -

sa4881,
может быть вы мне свой фал отправите?

sa4881
Юзер

sa4881 - 28 октября 2014 21:56 -

При чём я его открываю когда, у меня код почему-то в строчку идёт

sa4881
Юзер

sa4881 - 28 октября 2014 22:09 -

Точнее когда я создаю код, всё нормально отображается, закидываю через фтп, потом скачиваю, смотрю - а там весь код идёт строчкой. Я в пхп не разбираюсь, но на сколько знаю для html не имеет никакой разницы, в строчку код, или нет

FastFud
Юзер

FastFud - 28 октября 2014 22:39 -

После
закидываю через фтп
откройте его, скопируйте отсюда код и поставьте заново туда

sa4881
Юзер

sa4881 - 28 октября 2014 22:15 -

Кстати теперь ошибка:
Parse error: syntax error, unexpected '<' in /home/u163481/5-androidru/www/engine/modules/subcat.php on line 17

sa4881
Юзер

sa4881 - 28 октября 2014 22:46 -

Цитата: FastFud
{include file="/engine/modules/subcat.php"}
Всё получилось!!! Спасибо!

sa4881
Юзер

sa4881 - 28 октября 2014 22:50 -

FastFud,
Только вот почему-то когда я на главной, всёравно высвечиваются категория и подкатегории

ravchik
Юзер

ravchik - 28 октября 2014 22:51 -

Ну вы пройдитесь хоть одним глазком по документации...
[aviable=cat]{include file="/engine/modules/subcat.php"}[/aviable]

FastFud
Юзер

FastFud - 28 октября 2014 22:52 -

[not-aviable=main]{include file="/engine/modules/subcat.php"}[/not-aviable]

sa4881
Юзер

sa4881 - 28 октября 2014 22:54 -


Вот как визуально выглядит то что я хочу сделать

ravchik
Юзер

ravchik - 28 октября 2014 22:59 -

т.е. вам тут еще и html-разметку всю надо прописать, и css-стили расписать? :)
Милости просим в стол заказов

D0Gmatist
Юзер

D0Gmatist - 28 октября 2014 23:27 -

я уже писал такое .. вот переделанная дле и тут категории это меню
http://dom-tex.by/

sa4881
Юзер

sa4881 - 29 октября 2014 00:35 -

D0Gmatist,
Ну у вас тут вообще всё на высоком уровне сделано!
Так-то можно и без этого обойтись - просто всплывающее меню делать.
А вот для мобильной версии сайта это просто необходимо я думаю.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх