/** * Get side main menu for management * * @return array */ public function sideAction() { $module = $this->params('name', 'system'); $controller = $this->params('controller'); $navigation = Menu::mainComponent($module, $controller); return $navigation; }
/** * Get back-office side menu * * @param string $class * * @return string */ public function main($class = '') { $module = $this->module ?: Pi::service('module')->currrent(); $mode = $_SESSION['PI_BACKOFFICE']['mode']; $patternModule = <<<'EOT' <li class="%s"> <a href="%s"> <i class="fa %s"></i> <span class="pi-modules-nav-text">%s</span> </a> </li> EOT; $patternCategory = <<<'EOT' <li class="category"> <a href=""> <i class="fa %s text-muted"></i> <span class="pi-modules-nav-category text-muted">%s</span> </a> </li> EOT; $pattern = array('module' => $patternModule, 'category' => $patternCategory); $buildContent = function ($navigation) use($pattern) { $content = ''; foreach ($navigation as $id => $category) { if (empty($category['modules'])) { continue; } if (!empty($category['label'])) { $content .= sprintf($pattern['category'], $category['icon'] ?: 'fa-square-o', $category['label']); } foreach ($category['modules'] as $item) { $content .= sprintf($pattern['module'], $item['active'] ? 'active' : '', $item['href'], $item['icon'] ?: 'fa-th', $item['label']); } } return $content; }; $class = $class ?: 'nav'; $content = sprintf('<ul class="%s">', $class); // Get manage mode navigation if (AdminMode::MODE_ADMIN == $mode && 'system' == $module) { $routeMatch = Pi::engine()->application()->getRouteMatch(); $params = $routeMatch->getParams(); if (empty($params['name'])) { $params['name'] = $_SESSION['PI_BACKOFFICE']['module'] ?: 'system'; } $navigation = Menu::mainComponent($params['name'], $params['controller']); $content .= $buildContent($navigation); // Get operation mode navigation } elseif (AdminMode::MODE_ACCESS == $mode) { $navigation = Menu::mainOperation($module); $content .= $buildContent($navigation); } $content .= '</ul>'; return $content; }