use Lavary\Menu\Menu as BaseMenu;
use Illuminate\Support\Facades\Cache;
-class Menu extends BaseMenu {
+class Menu extends BaseMenu
+{
/**
* @var Item[}
*/
protected $_currentPage;
- public function registerMenuMaker($name, $callback) {
+ public function registerMenuMaker($name, $callback)
+ {
$this->_registeredMenuMakers[$name] = $callback;
}
- public function get($key, $name = self::_STANDARD_PREFIX, $locale = null) {
+ public function get($key, $name = self::_STANDARD_PREFIX, $locale = null)
+ {
if (null === $locale) {
$locale = App::getLocale();
}
/**
* @return Item
*/
- public static function getNavigation($locale = null, $variant = null) {
+ public static function getNavigation($locale = null, $variant = null)
+ {
if (null === $locale) {
$locale = App::getLocale();
}
/**
* @return Cubist\Backpack\app\Magic\Menu\Item[]
*/
- public static function getAllNavigablePages($locale = null, $variant = null) {
+ public static function getAllNavigablePages($locale = null, $variant = null)
+ {
$pages = self::getNavigation($locale, $variant)->findAll();
$res = [];
return $res;
}
- public static function internalToHref($url) {
+ public static function internalToHref($url)
+ {
if (stripos($url, 'internal:') !== false) {
$e = explode(':', $url, 2);
$url = $e[1];
return '#internalnotfound';
}
- public function makeAllMenus($locale) {
+ public function makeAllMenus($locale)
+ {
$nav = self::getNavigation($locale);
foreach ($nav->getChildren() as $main) {
$this->makeStandardMenus($main, $locale);
});
}
- public function makeStandardMenus($item, $locale) {
+ public function makeStandardMenus($item, $locale)
+ {
$this->make($locale . '_' . self::_STANDARD_PREFIX . '_' . $item->getName(), function ($menu) use ($item) {
$this->makeStandardMenu($menu, $item);
});
}
}
- public function makeStandardMenu($menu, $item) {
+ public function makeStandardMenu($menu, $item)
+ {
foreach ($item->getChildren() as $child) {
$this->_addItem($menu, $child, 'isMenuDesktop');
}
}
- protected function _addItem($menu, $item, $checkFunction) {
+ protected function _addItem($menu, $item, $checkFunction)
+ {
$checkFunctionChildren = $checkFunction . 'Children';
if (!$item->$checkFunction()) {
return;
* @param $menu Menu
* @param $item Item
*/
- public function makeMobileMenu($menu, $item) {
+ public function makeMobileMenu($menu, $item)
+ {
foreach ($item->getChildren() as $child) {
if (!$child->isMenuMobile()) {
continue;
* @param $nav Item
* @param $menu \Lavary\Menu\Item
*/
- protected function _addToBreadcrumbs($nav, $menu) {
+ protected function _addToBreadcrumbs($nav, $menu)
+ {
if ($nav->getTitle() && $nav->isBreadcrumbs()) {
if (strpos($nav->getBreadcrumbHref(), '#') === 0) {
$parent = $menu->raw($nav->getTitle());
}
}
- public function getSearchBreadcrumbs() {
- $all = $this->get('breadcrumbs')->crumbMenu()->all();
- $lastIndex = count($all) - 1;
- $search_breadcrumbs = [];
- foreach ($all as $i => $item) {
- if ($i === 0 || $i === $lastIndex) {
- continue;
+ public function getSearchBreadcrumbs()
+ {
+ try {
+ $all = $this->_getAllCrumbs();
+ $lastIndex = count($all) - 1;
+ $search_breadcrumbs = [];
+ foreach ($all as $i => $item) {
+ if ($i === 0 || $i === $lastIndex) {
+ continue;
+ }
+ $search_breadcrumbs[] = ['title' => $item->title, 'url' => $item->url()];
}
- $search_breadcrumbs[] = ['title' => $item->title, 'url' => $item->url()];
+ return $search_breadcrumbs;
+ } catch (\Exception $e) {
+ return [];
+ }
+ }
+
+ protected function _getAllCrumbs()
+ {
+ $menu = $this->get('breadcrumbs');
+ if (null === $menu->active()) {
+ return [];
}
- return $search_breadcrumbs;
+ $all = $menu->crumbMenu()->all();
+ return $all;
}
- public function breadcrumbs() {
+ public function breadcrumbs()
+ {
$res = '<div class="breadcrumbs" itemscope itemtype="http://schema.org/BreadcrumbList">';
/** @var \Lavary\Menu\Item $item */
$position = 0;
- foreach ($this->get('breadcrumbs')->crumbMenu()->all() as $item) {
+ foreach ($this->_getAllCrumbs() as $item) {
$active = "";
if ($item->isActive) {
$active = ' active';
$res .= '</a>';
$res .= '</div>';
}
+
$res .= '</div>';
return $res;
}
/**
* @param Item $currentPage
*/
- public function setCurrentPage(Item $currentPage): void {
+ public
+ function setCurrentPage(Item $currentPage): void
+ {
$this->_currentPage = $currentPage;
}
/**
* @return Item
*/
- public function getCurrentPage(): Item {
+ public
+ function getCurrentPage(): Item
+ {
return $this->_currentPage;
}
}