Регистрация
Вход через соцсети
Восстановление пароля

Многоуровенвое меню в дополнительных шаблона с использование класса навигации

Новый топик
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
Ответить | Цитировать
Игорь
Stark
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 396

А чем не устраивает nc_browse_sub или s_browse_sub?
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
Ответить | Цитировать
fazlihon
Фазлихон Масеев

Зарегистрирован:
2011-02-27
Сообщений: 22

С 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
198 196 2015-10-23 21:31:53 13950
Описание проекта