Esempio n. 1
0
 /**
  * Load side main menu for operations
  *
  * @return array
  */
 public function indexAction()
 {
     $module = $this->params('module');
     $navigation = Menu::mainOperation($module);
     return $navigation;
 }
Esempio n. 2
0
    /**
     * 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;
    }