Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Как вывести подкатегории текущей категории.

Discussion in 'Вопросы- ответы' started by master-rasskazov, Oct 5, 2019.

05.10.19 в 16:48
29.05.25 в 00:30
15
1,538
0
  1. TopicStarter Overlay
    master-rasskazov

    master-rasskazov Бывалый

    Joined:
    Aug 24, 2019
    Messages:
    188
    Best Answers:
    0
    Ratings:
    +27 / 14 / -0
    Всем привет,может кто поможет плиз.Заплачу если будет работать,без проблем.
    В общем задача такая:.

    Пример:
    Чел зашёл на раздел "номер 1" ему показываются (в виде ссылки) все его подразделы "номер 1,2", "номер 1,3" "номер 1,4" и т.д. а также этот же раздел в котором он находится в данный момент,то бишь основной раздел "номер 1".

    Дальше он решил перейти на подраздел "номер 1,2",и в этом разделе ему так же показываются подразделы "номер 1,2" "номер 1,3" "номер 1,4" и т.д. ...а также сам основной раздел "номер 1".И так далее,то есть по сути нужно зафиксировать все подразделы и текущий раздел на странице.

    Дело в том что все варианты которые перепробовал не получаются потому что для того чтобы выводились все подразделы текущего раздела,то нужно указывать конкретно ID основного/текущего раздела.А мне нужно чтобы автоматически определялся основной раздел и выводились на нём под-разделы.И так же на страницах под-разделов.

    Помогите люди добрые.уже измучмлся вторые сутки,всё перепробовал нет варианта.
     
  2. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0
    Вывести подкатегории опр. категории: [category=1]{catmenu id="1" subcat="only"} [/category]

    А показать список основных категорий с подкатегориями - как вариант создать страницу статистическую и в ней списком вывести нужные категории в которых есть подкатегории
     
  3. TopicStarter Overlay
    master-rasskazov

    master-rasskazov Бывалый

    Joined:
    Aug 24, 2019
    Messages:
    188
    Best Answers:
    0
    Ratings:
    +27 / 14 / -0
    Спасибо большое но это не то.Может я недопонимая чего.
    Мне нужно получается получить текущую категорию,и получить все её подкатегории.
     
  4. dj-avtosh

    dj-avtosh Зелёный

    Joined:
    Oct 7, 2019
    Messages:
    14
    Best Answers:
    1
    Ratings:
    +1 / 0 / -0
    master-rasskazov здравствуйте.

    Я так понимаю, Вы должны вставить такую конструкцию в main.tpl над {content}

    Code:
    [category={category-id}]{catmenu id="{category-id}" subcat="only"} [/category]
     
  5. TopicStarter Overlay
    master-rasskazov

    master-rasskazov Бывалый

    Joined:
    Aug 24, 2019
    Messages:
    188
    Best Answers:
    0
    Ratings:
    +27 / 14 / -0
    К сожалению не работает.
    Ещё раз попробую:
    Материал добавляется в подраздел и автоматически в главный раздел (родительский).
    Дело в том что я сортирую по подразделам новости,но они всё равно принадлежат одному главному разделу,и ссылки на эти подразделы должны быть видны только на странице полной новости.
    То есть на странице полной новости,должны отображаться главный раздел и всё его подразделы.
    При переходе на подраздел ничего не должно меняться.То есть так же должны оставаться главный раздел и все его подразделы,только текущий подраздел должен подсвечиваться,чтобы было понятно в каком подразделе находится юзер.

    Только когда в боковом меню переходишь на другой главный раздел,только тогда должны менятся уже и подразделы.

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

    Проблема в том что главных разделов 250 штук и по 80 подразделов в каждом.

    .
     
  6. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0
    ясно, вам нужен аякс-переход
     
  7. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0
    ну как бы это и решает данная конструкция:

    [category=ИД главного раздела-категории в общем]{catmenu id="ИД" subcat="only"} [/category]

    выводит подкатегории главной категории
     
  8. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0
    не становится, он так и остается под-разделом,

    просто указывается что находитесь не на главной категории а в подкатегории)
     
  9. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0

    просто выводить в новости к каким категориям относится новость {link-category}
     
  10. Codescript

    PRO Users

    Joined:
    Sep 6, 2017
    Messages:
    978
    Best Answers:
    0
    Ratings:
    +256 / 33 / -0
    Это можно сделать, сделав меню категорий )

    с CSS для подсветки на борту
     
  11. TopicStarter Overlay
    master-rasskazov

    master-rasskazov Бывалый

    Joined:
    Aug 24, 2019
    Messages:
    188
    Best Answers:
    0
    Ratings:
    +27 / 14 / -0
    [category={category-id}]{catmenu id="{category-id}" subcat="only"} [/category]

    Нет не получается к сожалению.
    В fullstory не выводит подкатегории.

    У меня вот такого вида,
    {catmenu id="{parent-category}" subcat="only" template="menucustom" cache="no"}
    человек делал но почему-то слетело после обновления движка.
     
  12. dj-avtosh

    dj-avtosh Зелёный

    Joined:
    Oct 7, 2019
    Messages:
    14
    Best Answers:
    1
    Ratings:
    +1 / 0 / -0
    Попытаюсь ответить.

    engine/modules/functions.php найти:

    Code:
    ?>
    Выше вставить:

    Code:
    function findCategoryParentTree( $categoryId = null, array $flatArr = [], $onlyRoot = false, $parentKey = 'parentid', $key = 'id' )
    {
    
        $resultArr = [];
    
        if ( ! empty ( $categoryId ) && ! empty ( $flatArr ) )
        {
    
            $parent_id = $flatArr[$categoryId][$parentKey];
    
            while ( $parent_id )
            {
    
                $parent_id_dump = $parent_id;
    
                false == $onlyRoot && $resultArr[] = $parent_id;
    
                $parent_id = $flatArr[$parent_id][$parentKey];
    
                if ( isset ( $parent_id ) && $flatArr[$parent_id][$parentKey] == $flatArr[$parent_id][$key] )
                {
    
                    true == $onlyRoot && $resultArr[] = $parent_id_dump;
    
                    break;
    
                }
    
            }
    
        }
    
        return $resultArr;
    
    }
    В engine/classes/templates.class.php найти:

    Code:
    if (strpos ( $this->template, "{category-" ) !== false) {
    выше вставить:

    Code:
    if (strpos ( $this->template, "{root-cat-" ) !== false) {
    
        $rootCats = findCategoryParentTree(intval($category_id), $cat_info, true );
        $this->template = str_ireplace( "{root-cat-id}", ( ! empty ( $rootCats ) ? current($rootCats) : 0 ), $this->template );
    
    }       
    
    далее найти:

    Code:
    if (strpos ( $template, "{category-" ) !== false) {
    выше вставить:

    Code:
    if (strpos ( $template, "{root-cat-" ) !== false) {
    
        $rootCats = findCategoryParentTree(intval($category_id), $cat_info, true );
        $template = str_ireplace( "{root-cat-id}", ( ! empty ( $rootCats ) ? current($rootCats) : 0 ), $template );
    
    }

    в main.tpl шаблона вставить это:

    Code:
    [available=showfull]{catmenu id="{root-cat-id}" subcat="only"}[/available]
     
  13. TopicStarter Overlay
    master-rasskazov

    master-rasskazov Бывалый

    Joined:
    Aug 24, 2019
    Messages:
    188
    Best Answers:
    0
    Ratings:
    +27 / 14 / -0
    Спасибо большое!
    Я уже разобрался,как раз этот код мне и подсказали на форуме DLE.Я попросил там помощи и человек отписался,помог,дал этот код.
    Я хотел ег осюда выложить,мало ли кому-нужен будет,но вы меня опередили.Всё равно спасибо за помощь.
     
  14. dj-avtosh

    dj-avtosh Зелёный

    Joined:
    Oct 7, 2019
    Messages:
    14
    Best Answers:
    1
    Ratings:
    +1 / 0 / -0
  15. ProfitGet

    PRO Users

    Joined:
    Aug 3, 2018
    Messages:
    1,511
    Best Answers:
    1
    Ratings:
    +233 / 104 / -0
    Нормально ты так замутил аж 20 000 категорий...

    :D

    Юзер будет доооолго искать, что посмотреть (если вообще найдёт что нибудь)

    :confused:
     
  16. sulasula

    sulasula Зелёный

    Joined:
    May 19, 2025
    Messages:
    1
    Best Answers:
    0
    Ratings:
    +0 / 0 / -0
    мне это помогло вывсти подкатегории только просмотрнной категории спасибо
     
Яндекс.Метрика