public function makeStandardMenu($menu, $item)
{
foreach ($item->getChildren() as $child) {
- if (!$child->isMenuDesktop()) {
- continue;
- }
- $parent = $menu->add($child->getTitle(), $child->getHref())->attr('data-name', $child->getName());
- // Handle items with submenus
- if ($child->isMenuDesktopChildren()) {
- foreach ($child->getChildren() as $subitem) {
- $parent->add($subitem->getTitle(), $subitem->getHref())->attr('data-name', $subitem->getName());
- }
- }
+ $this->_addItem($menu, $child, 'isMenuDesktop');
+ }
+ }
+
+ protected function _addItem($menu, $item, $checkFunction)
+ {
+ $checkFunctionChildren = $checkFunction . 'Children';
+ if (!$item->$checkFunction()) {
+ return;
+ }
+ $parent = $menu->add($item->getTitle(), $item->getHref())->attr('data-name', $item->getName());
+ if (!$item->$checkFunctionChildren() || !$item->hasChildren()) {
+ return;
+ }
+ foreach ($item->getChildren() as $child) {
+ $this->_addItem($parent, $child, $checkFunction);
}
}