public function actionGetList($path)
 {
     $list = (include Yii::getPathOfAlias($path) . ".php");
     MenuTree::fillMenuItems($list);
     echo json_encode($list);
 }
Exemple #2
0
 public static function fillMenuItems(&$list)
 {
     if (!is_array($list)) {
         $list = [];
     }
     $markCollapsed = 'collapsed';
     foreach ($list as $k => $v) {
         if (isset($v['url']) && is_string($v['url'])) {
             if ($v['url'] != '#' && substr($v['url'], 0, 4) != 'http') {
                 $list[$k]['formattedUrl'] = str_replace(["\n", "\r"], "", str_replace('?', '&', $v['url']));
                 $list[$k]['formattedUrl'] = Yii::app()->createUrl($list[$k]['url']);
                 if (isset(Yii::app()->request) && Yii::app()->request->requestUri == $list[$k]['formattedUrl']) {
                     $v['active'] = true;
                 }
             }
         }
         if (!isset($v['items'])) {
             $list[$k]['items'] = [];
         } else {
             $list[$k]['state'] = MenuTree::fillMenuItems($list[$k]['items']);
             $markCollapsed = $list[$k]['state'];
         }
         if (isset($v['active']) && $v['active']) {
             $markCollapsed = '';
         }
     }
     return $markCollapsed;
 }