[ 'class' => VerbFilter::class, 'actions' => [ 'map' => ['get'], 'list' => ['get'], 'type' => ['get'], 'view' => ['get'] ], ], ]; } /** * @return array */ public function actions() { return (!in_array(Yii::$app->request->pathInfo, ['maps/project', 'maps/resource'])) ? [ 'list' => [ 'class' => ListQuery::class, 'query' => Item::findByParams(), 'recordOnPage' => 30, 'layout' => $this->layout ], 'type' => [ 'class' => ListQuery::class, 'query' => Item::findByParams(), 'recordOnPage' => 30, 'layout' => $this->layout, 'view' => 'type', ] ] : []; } /** * @param $type * @return string|\yii\web\Response */ public function actionMap($type) { //TODO :: Временная заглушка if ($type == 'resource') { return $this->redirect(['/page/page/view', 'alias' => 'catch']); } $this->layout = "@app/layouts/map"; $models = Item::findByType($type); $types = Type::findListByType($type); $regions = Region::findList(); $areas = Area::getAll(); $powers = ArrayHelper::map($models, 'electric_power', 'electric_power'); $investment = ArrayHelper::map($models, 'investment', 'investment'); $powers = [ 'min' => (!empty($powers)) ? min($powers) : 0, 'max' => (!empty($powers)) ? max($powers) : 0 ]; $investment = [ 'min' => (!empty($investment)) ? min($investment) : 0, 'max' => (!empty($investment)) ? max($investment) : 0 ]; return $this->render('map', [ 'models' => $models, 'types' => $types, 'regions' => $regions, 'powers' => $powers, 'investment' => $investment, 'areas' => $areas ]); } /** * @param $action * @return bool * @throws \yii\web\BadRequestHttpException */ public function beforeAction($action) { if ($this->action->id == 'type') { $types = Map::typeRange(); $this->breadcrumbs[] = [ 'label' => Yii::t('map', 'Objects base'), 'url' => ['/map/list/list'] ]; $this->breadcrumbs[] = [ 'label' => Yii::t('front', 't_' . $_GET['type']) ?? '', ]; } elseif ($this->action->id == 'list') { $this->breadcrumbs = [ [ 'label' => Yii::t('map', 'Objects base'), ] ]; } return parent::beforeAction($action); } }