Многоуровневое меню с помощью класса навигации

RedoxKit

Создатель
Регистрация
7 Окт 2008
Сообщения
26
Реакции
2
Кто-нибудь делал "бесконечное" многоуровневое меню с помощью класса навигации?
Поделитесь кодом, плиз. На форуме есть, но там немного не то, не совсем подходит под задачи
Вот что нарыл:
<ul class='main-menu'>
<? foreach ($nc_core->nav->get_sub() as $sd:( ?>
<? if ($sd->active:( ?>
<li><b><?= $sd->name ?></b></li>
<? else: ?>
<li><a href='<?= $sd->url ?>'><?= $sd->name ?></a></li>
<? endif ?>
<? endforeach ?>
</ul>
Подразделы раздела:
$Subdivisions = $nc_core->nav->where('Checked', '1')->get_sub($sd->id);// собираем подразделы раздела

Но как на основе этого указывать классы (css) для меню разных уровней?
Например меню первого уровня - горизонтальное, а второго уровня - вертикальное, а третье в две колонки.
Хочу использовать именно класс, а не функции, т.к. в меню надо выводить ещё иконки и другую сопуствующую информацию.
 
Последнее редактирование:

max-sparker

Профессор
Регистрация
9 Мар 2008
Сообщения
171
Реакции
44
Внутри foreach делай еще один перебор для меню второго уровня

Код:
<ul class="rd-navbar-nav">
  // Меню первого уровня
  <? foreach ($nc_core->nav->get_sub() as $sd): ?>
    <li class="rd-nav-item <?=($sd->active ? "active" : NULL)?>">
      <a class="rd-nav-link" href="<?=$sd->url?>"><?=$sd->name?></a>
      // Проверяем, есть ли подразделы у главного меню
      <? if (count($nc_core->nav->get_sub($sd->id)) > 0): ?>
        <ul class="rd-menu rd-navbar-dropdown">
          // Перебираем меню второго уровня
          <? foreach ($nc_core->nav->get_sub($sd->id) as $sd2): ?>
            <li class="rd-dropdown-item"><a class="rd-dropdown-link" href="<?=$sd2->url?>"><?=$sd2->name?></a></li>
          <? endforeach ?>
        </ul>
      <? endif ?>
    </li>
  <? endforeach ?>
</ul>
 
Сверху