]> _ Git - pmi.git/commitdiff
wip #2974
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 30 Aug 2019 17:09:13 +0000 (19:09 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 30 Aug 2019 17:09:13 +0000 (19:09 +0200)
app/Http/Middleware/Menu.php [new file with mode: 0644]
resources/views/partials/nav.blade.php

diff --git a/app/Http/Middleware/Menu.php b/app/Http/Middleware/Menu.php
new file mode 100644 (file)
index 0000000..4d1c27a
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+
+namespace App\Http\Middleware;
+
+
+use Illuminate\Http\Request;
+use \Closure;
+
+class Menu
+{
+    public function handle(Request $request, Closure $next)
+    {
+        CubistMenu::registerMenuMaker('pmi', [$this, 'makePMIMenu']);
+        return $next($request);
+    }
+
+    public function makePMIMenu($menu, $item)
+    {
+        foreach ($item->getChildren() as $child) {
+            $parent = $menu->add($child->getTitle(), $child->getHref());
+            // Handle items with submenus
+            if ($child->hasChildren()) {
+                // Create an empty sub-element that will serve as a wrapper for the submenu(s)
+
+                if ($child->getType() == 'mega') {
+                    foreach ($child->getChildren() as $submenu) {
+                        $wrapper = $parent->raw('')->attr(['class' => 'nav-submenu-wrapper']);
+                        $wrapper->raw($submenu->getTitle())->attr(['class' => 'nav-submenu-title']);
+                        foreach ($submenu->getChildren() as $subitem) {
+                            $wrapper->add($subitem->getTitle(), $subitem->getHref());
+                        }
+                    }
+                } else {
+                    $wrapper = $parent->raw('')->attr(['class' => 'nav-submenu-wrapper']);
+                    foreach ($child->getChildren() as $subitem) {
+                        $wrapper->add($subitem->getTitle(), $subitem->getHref());
+                    }
+                }
+            }
+        }
+    }
+}
index 6416c11a43bc8436ac4bcda0ceebb556f9b22a2e..6676e16d41465125b2f8b6c8b9311c24393717a0 100644 (file)
@@ -1 +1 @@
-{!! CubistMenu::get('#main')->asUl(['class' => 'nav-primary']) !!}
+{!! CubistMenu::get('#main','pmi')->asUl(['class' => 'nav-primary']) !!}