Добрый день. Товарищи есть задумка но не знаю как реализовать. Вообщем хочу сделать двухуровневое меню типа при ховере главной категории всплывают подкатегории. Знаю что такие вещи решаются либо рекурсивно либо через nested sets(к примеру). Я не понимаю как именно в моем коде это реализовать( Есть выборка из бд категорий c parent_id=0, результат которой передается в шаблон Код (PHP): {foreach $menu as $row} <li>[url="{$row.category_seo_url}"]{$row.category_name}[/url] <ul role="menu" class="sub-menu"> <div class="row"> <div class="col-sm-6"> </div> </div> </ul> </li> {/foreach} P.S. если б не smarty я бы мог написать жесткий костыль и прям в представлении делать запрос в бд и доставать подкатегории, НО нужна реализовать на смарти и по-человечески
Ну и рекурсивную версию, и nested sets я не вижу, как на смарти реализовать. Посему - пишите плагин к смарти, чтоб перейти от этой хрени к нормальному php
спасибо, щас гляну. я погуглил и пишут что можно через smarty->registerPlugin. Передает функцию в шаблон
решил вопрос, правда костыльно, но зато без n-го количества строк кода. Через registerPlugin. То есть в цикле шаблона я передаю функции аргумент(id категории), функция находит дочерние категории для текущей категории и возвращает в шаблон. И так на каждой итерации. Метод кривой но текущую задачу решает. Вообще конечно ну его нах этот смарти, просто использую его для разнообразия.