[ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } public function actionIndex() { $this->redirect('site/index'); } public function actionCommon($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $educations = Fields::getData($user->id,$user->className(),'education'); $phones = Fields::getData($user->id,$user->className(),'phone'); $sites = Fields::getData($user->id,$user->className(),'site'); $soft = implode(', ',ArrayHelper::getColumn(Fields::getData($user->id,$user->className(),'soft'), 'soft')); return $this->render('common',[ 'user' => $user, 'educations' => $educations, 'phones' => $phones, 'sites' => $sites, 'soft' => $soft ]); } public function actionPortfolio($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $projects = ArrayHelper::getColumn($user->portfolios,'portfolio_id'); $filters = PortfolioSpecialization::find()->select(["specialization_id","COUNT('specialization_id') AS count"]) ->where(["portfolio_id"=>$projects ])->groupBy("specialization_id")->all(); $portfolio = new ArrayDataProvider([ 'allModels' => $user->portfolios, 'pagination' => [ 'pageSize' => 9, ], ]); return $this->render('portfolio',[ 'user' => $user, 'filters' => $filters, 'portfolio' => $portfolio ]); } public function actionPortfolioFilter($performer_id, $filter){ $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $portfolios = ArrayHelper::getColumn($user->portfolios,'portfolio_id'); $filters = PortfolioSpecialization::find()->select(["specialization_id","COUNT('specialization_id') AS count"]) ->where(["portfolio_id"=>$portfolios ])->groupBy("specialization_id")->all(); $filter_result = PortfolioSpecialization::find() ->where(['specialization_id'=>$filter, 'portfolio_id'=>$portfolios ])->all(); $portfolio = new ArrayDataProvider([ 'allModels' => Portfolio::find()->where(['portfolio_id'=>ArrayHelper::getColumn($filter_result,'portfolio_id')])->all(), 'pagination' => [ 'pageSize' => 9, ], ]); return $this->render('portfolio',[ 'user' => $user, 'filters' => $filters, 'portfolio' => $portfolio, 'filter_id' => $filter, 'count' => count($user->portfolios) ]); } public function actionBlogList($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $query = Blog::find(['user_id'=>$performer_id]); $countQuery = clone $query; $pagination = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 5, ]); $article = $query->offset($pagination->offset) ->limit($pagination->limit) ->all(); $blog = new ArrayDataProvider([ 'allModels' => $article, ]); return $this->render('blog-list',[ 'user' => $user, 'blog' => $blog, 'pagination' => $pagination ]); } public function actionBlogView($performer_id, $link) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $article = Blog::findOne(['link'=>$link,'user_id'=>$performer_id]); $article->view_count ++; $article->save(); return $this->render('blog-view',[ 'user' => $user, 'article' =>$article, ]); } public function actionReview($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } return $this->render('review',[ 'user' => $user ]); } public function actionWorkplace($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } return $this->render('workplace',[ 'user' => $user ]); } public function actionGallery($performer_id) { $user = User::findOne($performer_id); if(!$user instanceof User){ throw new BadRequestHttpException('Пользователь не найден'); } $query = Gallery::find(['user_id'=>$performer_id]); $countQuery = clone $query; $pagination = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 5, ]); $gallery = $query->offset($pagination->offset) ->limit($pagination->limit) ->all(); $gallery = new ArrayDataProvider([ 'allModels' => $gallery, ]); $videos = Fields::getData($user->id,Gallery::className(),'youtube'); $this->layout = 'gallery'; return $this->render('gallery',[ 'user' => $user, 'gallery' =>$gallery, 'pagination' => $pagination, 'videos' => $videos ]); } }