[ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : NULL, ], ]; } public function actionCommon($action) { $query = \Yii::$app->request->get('query'); $actions = [ 1 => 'project', 2 => 'performer', 3 => 'customer', ]; if(!array_key_exists($action, $actions)) { return $this->redirect([ '/', 'query' => $query, ]); } else { switch($action) { case 1: return $this->redirect([ 'search/' . $actions[ $action ], 'TenderSearch[info]' => $query, ]); break; case 2: return $this->redirect([ 'search/' . $actions[ $action ], 'SearchPerformerForm[search]' => $query, ]); break; case 3: return $this->redirect([ 'search/' . $actions[ $action ], 'CustomerSearch[info]' => $query, ]); break; } } return false; } public function actionProject() { $model = new TenderSearch(); $dataProvider = $model->search(Yii::$app->request->queryParams); $dataProvider->query->andWhere([ 'hidden' => 0 ]); $dataProvider->setPagination([ 'pageSize' => 10, ]); $specializations = Specialization::getSorted()->all(); $currencies = Currency::getCurrencyDropdown(); $payments = Payment::find() ->select([ 'name', 'payment_id', ]) ->asArray() ->indexBy('payment_id') ->column(); return $this->render('project', [ 'model' => $model, 'dataProvider' => $dataProvider, 'specializations' => $specializations, 'currencies' => $currencies, 'payments' => $payments, ]); } public function actionCustomer() { $model = new CustomerSearch(); $dataProvider = $model->search(Yii::$app->request->queryParams); $dataProvider->setPagination([ 'pageSize' => 5, ]); $model->load(Yii::$app->request->queryParams); return $this->render('customer', [ 'model' => $model, 'dataProvider' => $dataProvider, ]); } public function actionPerformer() { $specialization = Specialization::specializationsList(); $specializations = Specialization::getSorted()->all(); $searchModel = new SearchPerformerForm(); return $this->render('performer', [ 'dataProvider' => $searchModel->search(Yii::$app->request->queryParams), 'specialization' => $specialization, 'specializations' => $specializations, 'model' => $searchModel, ]); } public function actionVacancy() { $searchModel = new SearchVacancyForm(); $specializations = Specialization::getSorted()->all(); $query = $searchModel->search(Yii::$app->request->queryParams); $countQuery = clone $query; $pagination = new Pagination([ 'totalCount' => $countQuery->count(), 'pageSize' => 15, ]); $vacancy = $query->offset($pagination->offset) ->limit($pagination->limit); $dataProvider = new ActiveDataProvider([ 'query' => $vacancy, 'pagination' => false, 'sort' => [ 'defaultOrder' => [ 'date_add' => SORT_DESC, 'name' => SORT_ASC, ], ], ]); return $this->render('vacancy', [ 'dataProvider' => $dataProvider, 'specializations' => $specializations, 'model' => $searchModel, 'pagination' => $pagination, ]); } }