Вывод дочерних пунктов меню при выборе род...
rvsport
05 Ноя 2019
Подскажите пожалуйста как указать условие при выборе родительского пункта меню показывать только его потомков? Как я понимаю при наступлении условия выбора родительского пункта должен меняться массив $items, но к сожалению добиться у меня этого не получается. Подскажите как это сделать
Использую ООП, в массив $items записываются все пункты меню (родительские и дочерние). В шаблоне перебираю массив и вывожу все пункты. Но вот как указать условие, чтобы выводить только дочерние пункты меню не могу понять. Код в шаблоне:
Код функции:
Во вложении массив представлен в файле items.html. childrens.html - массив дочерних пунктов, в котором ключ это id дочернего пункта, а значение id родительского пункта. case_menu_new.hrml - код шаблона.
Использую ООП, в массив $items записываются все пункты меню (родительские и дочерние). В шаблоне перебираю массив и вывожу все пункты. Но вот как указать условие, чтобы выводить только дочерние пункты меню не могу понять. Код в шаблоне:
<nav> <?php foreach ($items as $item) { ?> <?=printItem($item, $items, $childrens, $active)?> <?php } ?> </nav>в функцию передается массив со всеми пунктами меню ($items), массив содержащий дочерние пункты ($childrens) и массив активного пункта.
Код функции:
<?php function printItem($item, &$items, $childrens, $active) { ?> <?php if (count($items) == 0) return; ?> <div> <a <?php if (in_array($item->id, $active)) { ?>class="active"<?php } ?> <?php if ($item->external) { ?>rel="external"<?php } ?> href="<?=$item->link?>"><?=$item->title?></a> <?php while(true) { $key = array_search($item->id, $childrens); if (!$key) break; unset($childrens[$key]); ?> <?=printItem($items[$key], $items, $childrens, $active)?> <?php } ?> </div> <?php unset($items[$item->id]); } ?>
Во вложении массив представлен в файле items.html. childrens.html - массив дочерних пунктов, в котором ключ это id дочернего пункта, а значение id родительского пункта. case_menu_new.hrml - код шаблона.
Прикрепленные файлы
-
menu.zip (4,67К)
Количество загрузок:: 1