Как создать второе меню для категорий.

Добрый день. Уважаемые разработчики, помогите, пожалуйста, советом.

Сейчас у меня есть основная категория, в которой находятся товары по брендам.

Я соответственно вывожу ее стандартными инструментами предусмотренными темой дизайна "Дизайн со вкусом PRO" с вводом ограничения на вывод только подкатегорий основной категории, которые у меня прописаны в index.html

<div class="wrapper">
{if $wa->shop}
{$selected_category = $category.id|default:null}
{$categories = $wa->shop->categories($theme_settings.category|default:180, null, true, true)}
{/if}

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

Соответственно логично прописать ограничение и для нее, соответственно создаю еще один контейнер и вношу ограничения: 

<div class="wrapper1">
{if $wa->shop}
{$selected_category1 = $category1.id|default:null}
{$categories1 = $wa->shop->categories($theme_settings.category|default:242, null, true, true)}
{/if}

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

Теперь пытаюсь клонировать родительское меню, чтобы осуществлялся автоматический вывод всех категорий, которые находятся в категории с ID 242.

В отдельном блоке прописываю аналогичный код, но ко всем переменным добавляю индекс "1", чтобы не было конфликтов:

{if $wa->shop}
{function name="catalog_side_subitem1" item=[] depth=3 level=0}
{if count($item1.childs) && $item1.depth < $depth1}
{if $item1.depth > $level1}
{$class1 = "dropdown-submenu"}
{else}
{$class1 = "dropdown"}
{/if}
<li class="{$class1}{if $selected_category1 == $item1.id} active{/if}">
{if isset($item1.params.badge) && isset($item1.params.badgeclass) && $item1.depth>0}
<span class="badge {$item1.params.badgeclass} sbNav__badge">{$item1.params.badge}</span>
{/if}
<a href="{$item1.url}" data-icon-id="{$item1.id}">{$item1.name}</a>
<ul class="dropdown-menu">
{foreach $item1.childs as $ic1}
{catalog_side_subitem item=$ic1 level=$level1}
{/foreach}
</ul>
</li>
{else}
<li{if $selected_category1 == $item1.id} class="active"{/if}>
{if isset($item1.params.badge) && isset($item1.params.badgeclass) && $item1.depth>0}
<span class="badge {$item1.params.badgeclass} sbNav__badge">{$item1.params.badge}</span>
{/if}
<a href="{$item1.url}" data-icon-id="{$item1.id}">{$item1.name}</a>
</li>
{/if}
{/function}
{function name="catalog_side_item1" item=[] depth=2 level=0}
{if count($item1.childs) && $item1.depth < $depth1}
<li class="list-group-item list-toggle sbNav__li sbNav__hover{if $selected_category1 == $item1.id} active{/if}">
{if isset($item1.params.badge) && isset($item1.params.badgeclass) && $item1.depth>0}
<span class="badge {$item1.params.badgeclass} sbNav__badge">{$item1.params.badge}</span>
{/if}
<a href="{$item1.url}" class="sbNav__link" data-icon-id="{$item1.id}">{$item1.name}</a>
<ul class="dropdown-menu">
{foreach $item1.childs as $ic1}
{catalog_side_subitem item=$ic1 level=$level1}
{/foreach}
</ul>
</li>
{else}
<li class="list-group-item list-toggle sbNav__li{if $selected_category1 == $item1.id} active{/if}">
{if isset($item1.params.badge) && isset($item1.params.badgeclass) && $item1.depth>0}
<span class="badge {$item1.params.badgeclass} sbNav__badge">{$item1.params.badge}</span>
{/if}
<a href="{$item1.url}" data-icon-id="{$item1.id}" class="sbNav__link">{$item1.name}</a>
</li>
{/if}
{/function}
<div class="sbNav1 sidebar__block mb-401">
{if count($categories1) > 0}
<a class="sbNav__header" href="#sidebarNav6" data-toggle="collapse">[`Бренды`]</a>
<ul class="list-group collapse in" id="sidebarNav6">
{foreach $categories1 as $item1}
{catalog_side_item item=$item1 level=$item1.depth}
{/foreach}
</ul>
{/if}
</div>
{/if}

И после этого шага второе меню пропадает вообще, вместе со всем его контейнером.

Подскажите, где допускаю ошибку. Явно где-то лезет конфликт..

Классы типа:

class="list-group-item list-toggle sbNav__li sbNav__hover

индексировать не стал, т.к. по идее при выводе должно ссылаться на стандартные блоки в css и конфликтовать не должно.

1 ответ

Добавить ответ

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