Отображение подкатегорий в верхнем меню

Автор Надер06, 06 апреля 2021, 15:03:24

« назад - далее »

Надер06

Добрый день. Очень большая структура подкатегорий получается в магазине. Пробовал поставить ограничение до 2 в модуле Горизонтальное меню - не помогает, ноль реакции. Подскажите, пожалуйста, где-то в коде можно как-то ограничить вывод подкатегорий 3 и 4 уровня в верхнем меню? или есть другие способы?

Надер06

да, и версия престы 1.7.7 и шаблон не классический, шаблон другой

Svan

Модуль megemenu поставьте в нем можно создавать разные варианты меню и ограничевать по глубине.


Надер06

да, я уже все темы перекопал, но не понял что и куда прописывать. Все написано по другим версиям движка, у меня 1.7.7.2 и нестандартная тема.
У меня файла blocktopmenu.php нету нигде, я его не нашел. Есть ps_mainmenu.tpl с таким содержанием:

{assign var=_counter value=0}
    {function name="menu" nodes=[] depth=0 parent=null}
    {if $nodes|count}
    <ul class="top-menu" {if $depth==0}id="top-menu" {/if} data-depth="{$depth}">
            {foreach from=$nodes item=node name=node}
        <li class="{$node.type}{if $node.current} current {/if}" id="{$node.page_identifier}">
            {assign var=_counter value=$_counter+1}
            <a class="{if $depth >= 0}dropdown-item{/if}{if $depth === 1} dropdown-submenu{/if}" href="{$node.url}" data-depth="{$depth}" {if $node.open_in_new_window} target="_blank" {/if}>
                {if $depth < 1} {if $smarty.foreach.node.iteration==4} <span class="label-menu-sale">{l s='Sale' d='Shop.Theme.Global'}</span>
                    {/if}
                    {if $smarty.foreach.node.iteration == 6}
                    <span class="label-menu-hot">{l s='Hot' d='Shop.Theme.Global'}</span>
                    {/if}
                    {/if}
                    {if $node.children|count}
                    {* Cannot use page identifier as we can have the same page several times *}
                    {assign var=_expand_id value=10|mt_rand:100000}
                    <span class="float-xs-right hidden-md-up">
                        <span data-target="#top_sub_menu_{$_expand_id}" data-toggle="collapse" class="navbar-toggler collapse-icons">
                            <i class="material-icons add">&#xE313;</i>
                            <i class="material-icons remove">&#xE316;</i>
                        </span>
                    </span>
                    {/if}
                    {$node.label}
            </a>
            {if $node.children|count}
            <div {if $depth===0} class="popover sub-menu js-sub-menu collapse" {else} class="collapse" {/if} id="top_sub_menu_{$_expand_id}">
                {menu nodes=$node.children depth=$node.depth parent=$node}

            </div>

            {/if}
        </li>
        {/foreach}
    </ul>
    {if $depth === 1} {hook h='displayCustomBannerMenu'}{/if}
    {/if}
    {/function}

    <div class="menu js-top-menu position-static hidden-sm-down" id="_desktop_top_menu">
        {menu nodes=$menu.children}
        <div class="clearfix"></div>
    </div>

Вот что и куда здесь вставлять не могу понять.

Adik

depth=$node.depth - уровень категории в меню

Надер06

но там нет никаких цифр, где прописать сами цифры, например, до 3 уровня подкатегорий?

Adik

Там не ограничений по уровню, поэтому нет и цифр.
if $node.depth < 3...

Надер06

напишите, пожалуйста, куда это прописать? использовал все варианты, либо страница недоступна, либо меню все съезжает наперекосяк.

Adik

В начале вывода меню
{if $depth < 'уровень до которого выводить'}

Надер06

прописал здесь
<ul class="top-menu" {if $depth < '3'}id="top-menu" {/if} data-depth="{$depth}">
НО у подкатегорий до 3 уровня просто появились стрелочки вниз, типа при нажатии на них должно выйти подменю, но подкатегории 4 уровня никуда не ушли, так и стоят на месте, никак не скрываются. Может что-то еще надо прописать, добавить, чтобы они скрывались и при нажатии на эти стрелочки выходили?