public function makeStandardMenu($menu, $item)
{
foreach ($item->getChildren() as $child) {
+ if (!$child->isMenuDesktop()) {
+ continue;
+ }
$parent = $menu->add($child->getTitle(), $child->getHref());
// Handle items with submenus
- if ($child->hasChildren()) {
+ if ($child->isMenuDesktopChildren()) {
foreach ($child->getChildren() as $subitem) {
$parent->add($subitem->getTitle(), $subitem->getHref());
}
* @param $menu Menu
* @param $item Item
*/
- public function makeMobileMenu($menu, $item, $depth = 3)
+ public function makeMobileMenu($menu, $item)
{
- if ($depth == 0) {
- return;
- }
foreach ($item->getChildren() as $child) {
+ if (!$child->isMenuMobile()) {
+ continue;
+ }
if ($child->isNavigable()) {
$parent = $menu->add($child->getTitle(), $child->getHref());
} else {
$parent = $menu->raw('<span>' . $child->getTitle() . '</span>');
}
- $this->makeMobileMenu($parent, $child, $depth - 1);
+ if ($child->isMenuMobileChildren()) {
+ $this->makeMobileMenu($parent, $child);
+ }
}
}
$this->setSlug($entity->slug);
$this->setTitle($entity->title);
+ $desktop = $entity->menu_desktop == '' ? 'children' : $entity->menu_desktop;
+
$this->setMenuDesktop($entity->menu_desktop != 'no');
$this->setMenuDesktopChildren($entity->menu_desktop == 'children');
- $mobile = $entity->menu_mobile == 'desktop' ? $entity->menu_desktop : $entity->menu_mobile;
+ $mobile = $entity->menu_mobile == 'desktop' || $entity->menu_mobile == '' ? $desktop : $entity->menu_mobile;
+
$this->setMenuMobile($mobile != 'no');
$this->setMenuMobileChildren($mobile == 'children');