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

Меню с выборкой разделов

Новый топик
23.10.2015, 20:19
Ответить | Цитировать
fazlihon
Фазлихон Масеев

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

Как прописать вывод двухуровневого меню с выборкой конкретных разделов ?
При этом некоторые ссылки нужно выводить сразу в нескольких разделах меню.
Пробовал выводить модификаторами, только так выводятся только корневые разделы меню, вложенные разделы не выводятся.
Код:
<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
26.10.2015, 11:26
Ответить | Цитировать
Долгий Андрей
Студия Вэлпис

Зарегистрирован:
2015-09-10
Сообщений: 8

Функция get_sub из класса навигации может принимать в качестве аргумента номер раздела, подразделы которого она вернет. В $sd->id будет храниться номер выводимого корневого раздела. Так что можно просто дальше продолжать перебирать foreach'ем.

Код:
<ul class='main-menu'>
<? foreach ($nc_core->nav->where_in("id", array(3,5))->get_sub() as $sd) { ?>
<li>
<? if ($sd->active) { ?>
<b><?= $sd->name ?></b>
<? } else { ?>
<a href='<?= $sd->url ?>'><?= $sd->name ?></a>
<? } ?>
<?
$sds1 = $nc_core->nav->get_sub($sd->id);
if ( count($sds1) ) {
?>
<ul>
<? foreach ($sds1 as $sd1) { ?>
<li><?=$sd1->name?></li>
<? } ?>
</ul>
<? } ?>
</li>
<? } ?>
<ul>


И так далее, можно любое количество вложенных циклов написать. Во втором, вложенном цикле, соответственно, номером раздела для передачи в get_sub уже будет $sd1->id.
27.10.2015, 17:23
Ответить | Цитировать
fazlihon
Фазлихон Масеев

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

Ясно, попробую прописать так, спасибо большое!

fazli
28.10.2015, 21:30
Ответить | Цитировать
fazlihon
Фазлихон Масеев

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

Еще:
часть многоуровнего меню выводится так:
Код:
<?= nc_browse_sub(0, $browse_top_menu[0]); ?>

Что бы можно было выводить разделы выборочно прописал вывод так:
Код:
<?= nc_browse_sub(0, $browse_top_menu, $ignore_check = 1, $where_cond = "show_top_menu='1'", $level = 0); ?>

только в этом случае выводится только один уровень меню.
Что не так ? Почему не выводятся остальные уровни меню ?

fazli
01.11.2015, 11:52
Ответить | Цитировать
fazlihon
Фазлихон Масеев

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

Нашел!
Нужно было просто выставить вывод—чекбокс в подразделах меню.

fazli
198 196 2015-11-01 11:52:50 14325
Описание проекта