@php $currentUrl = (Request::path() != '/') ? '/'. Request::path() : '/'; function renderTopNavSubMenu($value, $currentUrl) { $subMenu = ''; $GLOBALS['sub_level'] += 1 ; $GLOBALS['active'][$GLOBALS['sub_level']] = ''; $currentLevel = $GLOBALS['sub_level']; foreach ($value as $key => $menu) { $GLOBALS['childparent_level'] = ''; $subSubMenu = ''; $hasSub = (!empty($menu['children'])) ? 'has-sub' : ''; $menuUrl = (!empty($menu['url'])) ? $menu['url'] : ''; $menuCaret = (!empty($hasSub)) ? '' : ''; $menuText = (!empty($menu['text'])) ? ''. $menu['text'] .'' : ''; if (!empty($menu['children'])) { $subSubMenu .= '
'; $subSubMenu .= renderSubMenu($menu['children'], $currentUrl); $subSubMenu .= '
'; } $active = ($currentUrl == $menuUrl) ? 'active' : ''; if (!empty(config('sidebar.activeUrl'))) { $active = (config('sidebar.activeUrl') == $menuUrl) ? 'active' : ''; } if ($active) { $GLOBALS['parent_active'] = true; $GLOBALS['active'][$GLOBALS['sub_level'] - 1] = true; } if (!empty($GLOBALS['active'][$currentLevel])) { $active = 'active'; } $subMenu .= '
'. $menuText . $menuCaret .' '. $subSubMenu .'
'; } return $subMenu; } foreach (config('sidebar.menu') as $key => $menu) { $GLOBALS['parent_active'] = ''; $hasSub = (!empty($menu['children'])) ? 'has-sub' : ''; $menuUrl = (!empty($menu['url'])) ? $menu['url'] : ''; $menuLabel = (!empty($menu['label'])) ? ''. $menu['label'] .'' : ''; $menuIcon = (!empty($menu['icon'])) ? ''. $menuLabel .'' : ''; $menuText = (!empty($menu['text'])) ? ''. $menu['text'] .'' : ''; $menuCaret = (!empty($hasSub)) ? '' : ''; $menuSubMenu = ''; if (!empty($menu['children'])) { $GLOBALS['sub_level'] = 0; $menuSubMenu .= '
'; $menuSubMenu .= renderTopNavSubMenu($menu['children'], $currentUrl); $menuSubMenu .= '
'; } $active = (!empty($menu['url']) && $currentUrl == $menu['url']) ? 'active' : ''; $active = (empty($active) && !empty($GLOBALS['parent_active'])) ? 'active' : $active; if (!empty(config('sidebar.activeUrl'))) { $active = (!empty($menu['url']) && config('sidebar.activeUrl') == $menu['url']) ? 'active' : ''; $active = (empty($active) && !empty($GLOBALS['parent_active'])) ? 'active' : $active; } if (empty($menu['is_divider']) && empty($menu['is_header'])) { echo '
'. $menuIcon .' '. $menuText .' '. $menuCaret .' '. $menuSubMenu .'
'; } } @endphp