public function actionGetList($path) { $list = (include Yii::getPathOfAlias($path) . ".php"); MenuTree::fillMenuItems($list); echo json_encode($list); }
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; }