diff --git a/frontend/controllers/AccountsController.php b/frontend/controllers/AccountsController.php index a264c24..e3e325b 100755 --- a/frontend/controllers/AccountsController.php +++ b/frontend/controllers/AccountsController.php @@ -516,7 +516,6 @@ $user = \Yii::$app->user->identity; $user_info = $user->userInfo; $company_info = $user->companyInfo; - $user = \Yii::$app->user->identity; if(empty( $user_info )) { //$user_info = new UserInfo([ 'user_id' => $user->id ]); } @@ -1068,12 +1067,14 @@ /** * @var User $user */ - $user = \Yii::$app->user->identity; + $user = User::find()->where(['id' => \Yii::$app->user->id])->one(); + $user->setSpecializationInput($user->getSpecializationInput()); $user_info = $user->userInfo; if(empty( $user_info )) { $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); } $specializations = Specialization::find() + ->with('children') ->where([ 'specialization_pid' => 0 ]) ->orderBy('specialization_id') ->all(); diff --git a/frontend/controllers/SearchController.php b/frontend/controllers/SearchController.php index 42c08b5..b9b1773 100755 --- a/frontend/controllers/SearchController.php +++ b/frontend/controllers/SearchController.php @@ -109,11 +109,18 @@ use frontend\models\Option; { $specialization = Specialization::specializationsList(); + $specializations = Specialization::find() + ->with('children') + ->where([ 'specialization_pid' => 0 ]) + ->orderBy('specialization_id') + ->all(); + $searchModel = new SearchPerformerForm(); return $this->render('performer',[ 'dataProvider' => $searchModel->search(Yii::$app->request->queryParams), 'specialization' => $specialization, + 'specializations' => $specializations, 'model'=> $searchModel ]); } diff --git a/frontend/models/SearchPerformerForm.php b/frontend/models/SearchPerformerForm.php index 2418c8e..5077873 100755 --- a/frontend/models/SearchPerformerForm.php +++ b/frontend/models/SearchPerformerForm.php @@ -31,6 +31,8 @@ public $search; + public $portfolio; + /** * @inheritdoc */ @@ -47,6 +49,7 @@ 'rating', 'online', 'search', + 'portfolio', ], 'safe', ], @@ -55,7 +58,11 @@ 'default', 'value' => 0, ], - + [ + [ 'portfolio' ], + 'default', + 'value' => 1, + ], ]; } @@ -85,7 +92,6 @@ */ public function search($params) { - $this->load($params); $query = User::find() @@ -100,6 +106,7 @@ 'specializations', 'companyInfo', ]) + ->innerJoin('portfolio', '"portfolio"."user_id" = "user"."id"') ->where([ 'user_info.is_freelancer' => 1 ]); $dataProvider = new ActiveDataProvider([ @@ -162,11 +169,14 @@ ->innerJoin([ 'spec' => 'user_specialization' ], 'spec.user_id = users.id') ->asArray() ->column(); - if(empty($query2)) { + if(empty( $query2 )) { $query->where('0=1'); return $dataProvider; } + // Clear array from empty strings + $this->specialization = array_filter($this->specialization, 'strlen'); + $query->andFilterWhere([ 'user_info.city' => $this->city, 'specialization.specialization_id' => $this->specialization, diff --git a/frontend/views/accounts/general.php b/frontend/views/accounts/general.php index 0540dbc..acccf40 100755 --- a/frontend/views/accounts/general.php +++ b/frontend/views/accounts/general.php @@ -46,13 +46,18 @@
В Вашем профиле указаны специализации: " . count($user->specializations) . "
"; } else { echo "В Вашем профиле не указаны специализации. Чтобы указать - перейдите по " . Html::a('ссылке', [ 'accounts/service' ], [ 'target' => '_blank' ]) . "
"; } + if(!empty( $user->portfolios )) { + echo "В Вашем портфолио добавлено проектов: " . count($user->portfolios) . "
"; + } else { + echo "В Вашем портфолио не добавлены проекты. Чтобы добавить - перейдите по " . Html::a('ссылке', [ 'accounts/portfolio' ], [ 'target' => '_blank' ]) . "
"; + } ?>