/** * @param \yii\base\Action $action * * @return bool * @throws InvalidParamException */ public function beforeAction($action) { $session = \Yii::$app->session; $request = \Yii::$app->request; if ($request->post('web_id')) { $id = $request->post('web_id'); $session->set('web_id', $id); } elseif ($session->get('web_id')) { $web = WebRecord::findOne($session->get('web_id')); if ($web) { $id = $session->get('web_id'); } else { $id = WebRecord::getMainWebId(); $session->set('web_id', $id); } } else { $id = WebRecord::getMainWebId(); $session->set('web_id', $id); } $session->close(); /** @var $controller MenuController */ $controller = $this->owner; $controller->setWeb($id); return parent::beforeAction($action); }
/** * Gets menu options for dropdown * @return array */ public static function getMenuOptions() { if (!($web_id = Yii::$app->session->get('web_id'))) { $web_id = WebRecord::getMainWebId(); } return ArrayHelper::map(self::find()->andWhere(['web_id' => $web_id])->orderBy('main DESC')->all(), 'id', 'title'); }