--- /dev/null
+<?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());
+ }
+ }
+ }
+ }
+ }
+}