Активная категория
Пожалуйста помогите чайнику)))
При помощи этого кода у меня выводятся все категории в теме custom.
Показаны, например, 2 категории, но при нажатии на любую, во первых под основной категорией выходят подкатегории, и плюс при нажатии на подкатегорию, что бы выделялся стиль, который будет информировать пользователя о том что он находится в этой категории))) Все это замечательно работает в этом коде.
<!-- category tree -->
{if isset($category)}{$selected_category=$category.id}{else}{$selected_category=null}{/if}
{wa_print_tree tree=$wa->shop->categories(0, null, true) selected=$selected_category unfolded=false class="menu-v category-tree" elem =':name'}
НО
я хочу выводить только некоторые категории.
{foreach from=$wa->shop->categories() item=i}
{if $i.id == 1510 || $i.id == 1504} {$i.name}{/if}{/foreach}
При таком коде, я получаю именно те категории, которые хочу видеть, я понимаю, что можно просто скрыть категории которые я не хочу показывать, дело в другом. Хочу в разных местах выводить разные категории) НО СУКА! что бы они светились)))) и подсказывали людям, что ты нажал на эту категорию, и ты находишься в ней)))
При помощи этого кода у меня выводятся все категории в теме custom.
Показаны, например, 2 категории, но при нажатии на любую, во первых под основной категорией выходят подкатегории, и плюс при нажатии на подкатегорию, что бы выделялся стиль, который будет информировать пользователя о том что он находится в этой категории))) Все это замечательно работает в этом коде.
<!-- category tree -->
{if isset($category)}{$selected_category=$category.id}{else}{$selected_category=null}{/if}
{wa_print_tree tree=$wa->shop->categories(0, null, true) selected=$selected_category unfolded=false class="menu-v category-tree" elem =':name'}
НО
я хочу выводить только некоторые категории.
{foreach from=$wa->shop->categories() item=i}
{if $i.id == 1510 || $i.id == 1504} {$i.name}{/if}{/foreach}
При таком коде, я получаю именно те категории, которые хочу видеть, я понимаю, что можно просто скрыть категории которые я не хочу показывать, дело в другом. Хочу в разных местах выводить разные категории) НО СУКА! что бы они светились)))) и подсказывали людям, что ты нажал на эту категорию, и ты находишься в ней)))
1 ответ
----------------------------------------------------------------------------------
{$cats = []}
{foreach $wa->shop->categories() as $cat}
{if in_array($cat.id, [1510, 1504])}
{$cats[$cat.id] = $cat}
{/if}
{/foreach}
{$selected_category = ifset($category.id)}
{wa_print_tree tree=$cats selected=$selected_category unfolded=false class="menu-v category-tree" elem =':name'}
----------------------------------------------------------------------------------
А можно просто нарисовать тот же самый несчастный плоский <ul> прямо на месте без всяких выкрутасов:
----------------------------------------------------------------------------------
<ul class="menu-v category-tree">
{foreach $wa->shop->categories() as $cat}
{if in_array($cat.id, [1510, 1504])}
<li {if !empty($category.id) && $category.id == $cat.id} class="selected"{/if}>{$cat.name|escape}</li>
{/if}
{/foreach}
</ul>
----------------------------------------------------------------------------------
Второй вариант короче и понятнее. Но если надо что-то более сложное (например, развернуть текущую категорию и показать дерево), то первый вариант это сумеет с минимумом изменений, а второй быстро превратится в кошмарный ужас.