|
|
19.12.2014, 18:18
|
|
Гость
Гость
|
Здравствуйте!
Делаю сайтик. Хочу использовать класс навигации для создания многоуровневого меню на сайте.
сделал первый уровень вот так:Код: <ul class="list">
<? foreach ($nc_core->nav->where('Checked', '1')->get_sub(4) as $sub): ?>
<? if ($sub->active): ?>
<li class="item active"><a href="<?= $sub->url ?>"><?= $sub->name ?></a></li>
<? else: ?>
<li class="item"><a href="<?= $sub->url ?>"><?= $sub->name ?></a><?=$this->partial('topmenu');?></li>
<? endif ?>
<? endforeach ?>
</ul>
Как здесь сделать вывод меню второго уровня (т.е. подразделов) не понимаю. В документации ничего по этому поводу нет, а в php несилён.
Подскажите, плиз.
Нужный html-код:Код:
<ul class="list">
<li class="item active"><a href="#">Пункт1</a></li>
<li class="item"><a href="#">Пункт2</a></li>
<li class="item"><a href="#">Пункт3</a></li>
<li class="item"><a href="#">Пункт4</a></li>
<li class="item"><a href="#">Пункт5</a>
<ul class="submenu">
<li><a href="#">Пункт51</a></li>
<li class="active"><a href="#">Пункт52</a></li>
<li><a href="#">Пункт53</a></li>
<li><a href="#">Пункт54</a></li>
</ul>
</li>
<li class="item"><a href="#">Пункт6</a></li>
<li class="item"><a href="#">Пункт7</a></li>
</ul>
|
|
|
19.12.2014, 18:53
|
|
Гость
Гость
|
Ошибся!
В первом коде, в 6-ой строке
Код:<?=$this->partial('topmenu');?></li>
лишнее
Это я пробовал выводить второй уровень, шаблон которого был прописан в другом доп.шаблоне.
можоно ли как-то выводить несколько уровней вложенности в одном дополнительном шаблоне?
|
|
|
19.12.2014, 23:58
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
А чем не устраивает nc_browse_sub или s_browse_sub?
Stark
|
|
|
21.12.2014, 09:04
|
|
Гость
Гость
|
С этими функциями всё понятно и устраивает. Но хотелось бы понять как это реализовать с помощью класса навигации в доп. шаблонах макетов.
|
|
|
08.01.2015, 00:49
|
|
Алексей
Зарегистрирован: 2014-05-02
Сообщений: 2
|
Доп. шаблон у меня такой (left_menu_materials):
<?
$Subdivisions = $nc_core->nav->sub($this->value('sub'))->get();
if (count($Subdivisions)) {
echo "<ul ".opt($this->value('first'), "class='menu'").">";
foreach ($Subdivisions as $sub) {
$NextLevel = $this->partial('left_menu_materials', array('sub' => $sub->id, 'first' => false));
if ($sub->active) echo "<li class='left_menu_active'>$sub->name $NextLevel</li>";
else echo "<li><a href='$sub->url' title='$sub->name'>$sub->name</a>$NextLevel</li>";
}
echo "</ul>";
}
?>
вызов из макета:
echo $this->partial('left_menu_materials', array('sub' => 421, 'first' => true));
т.е. просто вложенный вызов шаблона для следующего уровня
|
|
|
23.10.2015, 21:31
|
|
fazli
ymv
Зарегистрирован: 2011-02-27
Сообщений: 28
|
С nc_browse_sub или s_browse_sub нельзя выводить выборочно нужный раздел,
по крайней мере не получилось.
А так можно настроить выборку нужных разделов для вывода:
Код:<ul class='main-menu'>
<? foreach ($nc_core->nav->where_in("id", array(3,5))->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>
Только не понятно как тут выводить двухуровневое меню.
fazli
|