From: Vincent Vanwaelscappel Date: Fri, 30 Aug 2019 18:02:39 +0000 (+0200) Subject: wip #2974 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=0453ecc280fe1ffbafd974773c7942af85f291ec;p=cubist_cms-back.git wip #2974 --- diff --git a/src/app/Magic/Menu/Item.php b/src/app/Magic/Menu/Item.php index a9e090c..de029a2 100644 --- a/src/app/Magic/Menu/Item.php +++ b/src/app/Magic/Menu/Item.php @@ -365,6 +365,11 @@ class Item $this->_href = $href; } + public function isNavigable() + { + return $this->_href != '#'; + } + /** * @return Item[] */ diff --git a/src/app/Magic/Menu/Menu.php b/src/app/Magic/Menu/Menu.php index eb0b0fa..417375d 100644 --- a/src/app/Magic/Menu/Menu.php +++ b/src/app/Magic/Menu/Menu.php @@ -130,6 +130,9 @@ class Menu extends BaseMenu $this->make(self::_STANDARD_PREFIX . '_' . $item->getName(), function ($menu) use ($item) { $this->makeStandardMenu($menu, $item); }); + $this->make('mobile_' . $item->getName(), function ($menu) use ($item) { + $this->makeMobileMenu($menu, $item); + }); foreach ($this->_registeredMenuMakers as $name => $registeredMenuMaker) { $this->make($name . '_' . $item->getName(), function ($menu) use ($item, $registeredMenuMaker) { call_user_func($registeredMenuMaker, $menu, $item); @@ -150,6 +153,25 @@ class Menu extends BaseMenu } } + /** + * @param $menu Menu + * @param $item Item + */ + public function makeMobileMenu($menu, $item, $depth = 3) + { + if ($depth == 0) { + return; + } + foreach ($item->getChildren() as $child) { + if ($child->isNavigable()) { + $parent = $menu->add($child->getTitle(), $child->getHref()); + } else { + $parent = $menu->raw(''.$child->getTitle().''); + } + $this->makeMobileMenu($parent, $child, $depth - 1); + } + } + /** * @param $nav Item * @param $menu \Lavary\Menu\Item diff --git a/src/app/Magic/Menu/PageItem.php b/src/app/Magic/Menu/PageItem.php index 7fe67d3..dcebaa9 100644 --- a/src/app/Magic/Menu/PageItem.php +++ b/src/app/Magic/Menu/PageItem.php @@ -73,6 +73,18 @@ class PageItem extends Item return $this->_template; } + public function isNavigable() + { + $template = $this->getTemplate(); + if (!$template) { + return true; + } + if ($template == 'first_redirection' || $template == 'internal_redirection' || $template == 'redirection' || $this->isVirtual()) { + return false; + } + return parent::isNavigable(); + } + public function getHref() { $template = $this->getTemplate(); diff --git a/src/app/Magic/Menu/VirtualItem.php b/src/app/Magic/Menu/VirtualItem.php index e558982..7096032 100644 --- a/src/app/Magic/Menu/VirtualItem.php +++ b/src/app/Magic/Menu/VirtualItem.php @@ -8,4 +8,9 @@ class VirtualItem extends Item { protected $_href = '#'; protected $_classes=['nav-virtual']; + + public function isNavigable() + { + return false; + } } diff --git a/src/app/Middleware/EmailObfuscate.php b/src/app/Middleware/EmailObfuscate.php index 905202e..fa74db5 100644 --- a/src/app/Middleware/EmailObfuscate.php +++ b/src/app/Middleware/EmailObfuscate.php @@ -14,9 +14,6 @@ class EmailObfuscate { $response = $next($request); - if (strpos($request->getPathInfo(), '/admin/') === 0) { - return $response; - } // Apply logic differently based on the nature of $response. if ($response instanceof Renderable) {