За последние 24 часа нас посетили 43013 программистов и 1764 робота. Сейчас ищут 1058 программистов ...

Двухуровневое меню

Тема в разделе "PHP для новичков", создана пользователем gix, 2 июн 2015.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Добрый день. Товарищи есть задумка но не знаю как реализовать. Вообщем хочу сделать двухуровневое меню типа при ховере главной категории всплывают подкатегории. Знаю что такие вещи решаются либо рекурсивно либо через nested sets(к примеру). Я не понимаю как именно в моем коде это реализовать( Есть выборка из бд категорий c parent_id=0, результат которой передается в шаблон
    Код (PHP):
    1. {foreach $menu as $row}
    2.                                 <li>[url="{$row.category_seo_url}"]{$row.category_name}[/url]
    3.                                 <ul role="menu" class="sub-menu">
    4.                                     <div class="row">
    5.                                         <div class="col-sm-6">
    6.                                             
    7.                                         </div>
    8.                                     </div>
    9.                                 </ul>
    10.                                 </li>
    11.                             {/foreach}
    12.  
    P.S. если б не smarty я бы мог написать жесткий костыль и прям в представлении делать запрос в бд и доставать подкатегории, НО нужна реализовать на смарти и по-человечески
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Ну и рекурсивную версию, и nested sets я не вижу, как на смарти реализовать. Посему - пишите плагин к смарти, чтоб перейти от этой хрени к нормальному php
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    хреново
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
  5. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    спасибо, щас гляну. я погуглил и пишут что можно через smarty->registerPlugin. Передает функцию в шаблон
     
  6. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    решил вопрос, правда костыльно, но зато без n-го количества строк кода. Через registerPlugin. То есть в цикле шаблона я передаю функции аргумент(id категории), функция находит дочерние категории для текущей категории и возвращает в шаблон. И так на каждой итерации. Метод кривой но текущую задачу решает. Вообще конечно ну его нах этот смарти, просто использую его для разнообразия.
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Я очень не люблю вообще шалонизаторы. Хотя smarty приходилось использовать, изредка это удобно