MenuHelper::formatMenuOptions PHP Метод

formatMenuOptions() защищенный Метод

protected formatMenuOptions ( array $menuOptions ) : array
$menuOptions array
Результат array
    protected function formatMenuOptions(array $menuOptions)
    {
        $menu = array();
        foreach ($menuOptions as $menu_item) {
            if (isset($menu_item['restricted'])) {
                $allowed = false;
                foreach ($menu_item['restricted'] as $authitem) {
                    if (is_array($authitem)) {
                        $item = array_shift($authitem);
                        $params = $this->getAuthItemParams($authitem);
                        $allowed = $this->user->checkAccess($item, $params);
                        if ($allowed) {
                            break;
                        }
                    } elseif ($this->user->checkAccess($authitem)) {
                        $allowed = true;
                        break;
                    }
                }
                if (!$allowed) {
                    if (isset($menu_item['userrule'])) {
                        if ($this->user->{$menu_item['userrule']}()) {
                            $allowed = true;
                        }
                    }
                    if (!$allowed) {
                        continue;
                    }
                }
            }
            if (isset($menu_item['api'])) {
                $api = Yii::app()->moduleAPI->get($menu_item['api']);
                foreach ($api->getMenuItems($menu_item['position']) as $item) {
                    $menu[$item['position']] = $item;
                }
            } else {
                $menu[$menu_item['position']] = $menu_item;
            }
            if (isset($menu_item['sub'])) {
                $menu[$menu_item['position']]['sub'] = $this->formatMenuOptions($menu_item['sub'], $this->user);
            }
        }
        ksort($menu);
        return $menu;
    }