From: Vincent Vanwaelscappel Date: Thu, 4 Jul 2019 10:23:03 +0000 (+0200) Subject: #2843 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=2793e96303b735253700c6c08faa2fd073e2dc72;p=cubist_cms-back.git #2843 --- diff --git a/composer.json b/composer.json index 9b3d05c..abc9131 100644 --- a/composer.json +++ b/composer.json @@ -50,7 +50,7 @@ "Cubist\\Backpack\\CubistBackpackServiceProvider" ], "aliases": { - "CubistMenu": "Cubist\\Backpack\\App\\CubistMenu", + "CubistMenu": "Cubist\\Backpack\\App\\Magic\\Menu\\Facade", "Markdown": "Illuminate\\Mail\\Markdown" } } diff --git a/src/app/Magic/CubistMenu.php b/src/app/Magic/CubistMenu.php deleted file mode 100644 index c6e788d..0000000 --- a/src/app/Magic/CubistMenu.php +++ /dev/null @@ -1,99 +0,0 @@ -exists($key)) { - $this->makeAllMenus(); - } - return parent::get($key); - } - - public function makeAllMenus() - { - $tree = CMSPage::getTree(); - foreach ($tree as $mainKey => $main) { - $nav_items = []; - foreach ($main['children'] as $name => $item) { - $submenus = null; - - $links = []; - - foreach ($item['children'] as $key => $child) { - $links[$child['element']->title] = $child['element']->slug; - } - - if (count($links) > 0) { - $submenus = [['links' => $links]]; - } - - $s = ['url' => $item['element']->slug]; - if (null !== $submenus) { - $s['submenus'] = $submenus; - } - - $nav_items[$item['element']->title] = $s; - } - - \Menu::make($mainKey, function ($menu) use ($nav_items) { - - foreach ($nav_items as $nav_label => $nav_item) { - - $parent = $menu->add($nav_label, $nav_item['url']); - - // Handle items with submenus - if (isset($nav_item['submenus'])) { - - foreach ($nav_item['submenus'] as $submenu_data) { - - // Create an empty sub-element that will serve as a wrapper for the submenu(s) - $wrapper = $parent->raw('')->attr(['class' => 'nav-submenu-wrapper']); - - // Some submenus have a title element - if (isset($submenu_data['title'])) { - $wrapper->raw($submenu_data['title'])->attr(['class' => 'nav-submenu-title']); - } - - foreach ($submenu_data['links'] as $label => $url) { - $wrapper->add($label, $url); - } - } - } - - } - - }); - } - - - if ($mainKey == '#main') { - // Also make a menu for the breadcrumbs - this one is simpler and doesn't have the submenu headings - \Menu::make('breadcrumbs', function ($menu) use ($nav_items) { - - // Start with home link - $menu = $menu->add('Home', ''); - - foreach ($nav_items as $nav_label => $nav_item) { - - $parent = $menu->add($nav_label, $nav_item['url']); - - // Handle items with submenus - if (isset($nav_item['submenus'])) { - - foreach ($nav_item['submenus'] as $submenu_data) { - foreach ($submenu_data['links'] as $label => $url) { - $parent->add($label, $url); - } - } - } - } - }); - } - } -} diff --git a/src/app/Magic/Menu/Facade.php b/src/app/Magic/Menu/Facade.php new file mode 100644 index 0000000..c0c5c1f --- /dev/null +++ b/src/app/Magic/Menu/Facade.php @@ -0,0 +1,15 @@ +exists($key)) { + $this->makeAllMenus(); + } + return parent::get($key); + } + + public function makeAllMenus() + { + $tree = CMSPage::getTree(); + foreach ($tree as $mainKey => $main) { + $nav_items = []; + foreach ($main['children'] as $name => $item) { + $submenus = null; + + $links = []; + + foreach ($item['children'] as $key => $child) { + $links[$child['element']->title] = $child['element']->slug; + } + + if (count($links) > 0) { + $submenus = [['links' => $links]]; + } + + $s = ['url' => $item['element']->slug]; + if (null !== $submenus) { + $s['submenus'] = $submenus; + } + + $nav_items[$item['element']->title] = $s; + } + + \Menu::make($mainKey, function ($menu) use ($nav_items) { + + foreach ($nav_items as $nav_label => $nav_item) { + + $parent = $menu->add($nav_label, $nav_item['url']); + + // Handle items with submenus + if (isset($nav_item['submenus'])) { + + foreach ($nav_item['submenus'] as $submenu_data) { + + // Create an empty sub-element that will serve as a wrapper for the submenu(s) + $wrapper = $parent->raw('')->attr(['class' => 'nav-submenu-wrapper']); + + // Some submenus have a title element + if (isset($submenu_data['title'])) { + $wrapper->raw($submenu_data['title'])->attr(['class' => 'nav-submenu-title']); + } + + foreach ($submenu_data['links'] as $label => $url) { + $wrapper->add($label, $url); + } + } + } + + } + + }); + } + + + if ($mainKey == '#main') { + // Also make a menu for the breadcrumbs - this one is simpler and doesn't have the submenu headings + \Menu::make('breadcrumbs', function ($menu) use ($nav_items) { + + // Start with home link + $menu = $menu->add('Home', ''); + + foreach ($nav_items as $nav_label => $nav_item) { + + $parent = $menu->add($nav_label, $nav_item['url']); + + // Handle items with submenus + if (isset($nav_item['submenus'])) { + + foreach ($nav_item['submenus'] as $submenu_data) { + foreach ($submenu_data['links'] as $label => $url) { + $parent->add($label, $url); + } + } + } + } + }); + } + } +}