[ 'class' => AccessControl::className(), 'rules' => [ [ 'allow' => true, 'roles' => [ '@' ], ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'add-performer' => [ 'post' ], 'add-customer' => [ 'post' ], 'add-project' => [ 'post' ], 'add-vacancy' => [ 'post' ], 'remove-performer' => [ 'post' ], 'remove-customer' => [ 'post' ], 'remove-project' => [ 'post' ], 'remove-vacancy' => [ 'post' ], ], ], ]; } public function actionPerformer() { /** * @var User $user */ $user = \Yii::$app->user->identity; $dataProvider = new ActiveDataProvider([ 'query' => $user->getBookmarksPerformers(), 'pagination' => [ 'pageSize' => 10, ], ]); return $this->render('bookmarks-performer', [ 'dataProvider' => $dataProvider, 'user' => $user, ]); } public function actionCustomer() { /** * @var User $user */ $user = \Yii::$app->user->identity; $dataProvider = new ActiveDataProvider([ 'query' => $user->getBookmarksCustomers(), 'pagination' => [ 'pageSize' => 10, ], ]); return $this->render('bookmarks-customer', [ 'dataProvider' => $dataProvider, 'user' => $user, ]); } public function actionProject() { /** * @var User $user */ $user = \Yii::$app->user->identity; $dataProvider = new ActiveDataProvider([ 'query' => $user->getBookmarksProjects()->with('comments'), 'pagination' => [ 'pageSize' => 10, ], ]); return $this->render('bookmarks-project', [ 'dataProvider' => $dataProvider, 'user' => $user, ]); } public function actionVacancy() { /** * @var User $user */ $user = \Yii::$app->user->identity; $dataProvider = new ActiveDataProvider([ 'query' => $user->getBookmarksVacancies(), 'pagination' => [ 'pageSize' => 10, ], ]); return $this->render('bookmarks-vacancy', [ 'dataProvider' => $dataProvider, 'user' => $user, ]); } public function actionAddPerformer() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка добавления. Отсутствует id исполнителя' ]; } $user = User::findOne($model_id); if(empty( $user )) { return [ 'error' => 'Ошибка добавления. Исполнитель не найден.' ]; } $model = $user->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_PERFORMER; if(Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]) ) { return [ 'error' => 'Ошибка добавления. Исполнитель уже добавлен.' ]; } $bookmark = new Bookmark([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if($bookmark->save()) { $result = $this->renderAjax('//site/forms-modal-fav', [ 'message' => 'Добавлено в закладки.', 'image' => $user->userInfo->image, 'name' => $user->name, ]); return [ 'result' => $result ]; } else { return [ 'error' => 'Ошибка добавления.' ]; } } public function actionAddCustomer() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка добавления. Отсутствует id заказчика' ]; } $user = User::findOne($model_id); if(empty( $user )) { return [ 'error' => 'Ошибка добавления. Заказчик не найден.' ]; } $model = $user->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_CUSTOMER; if(Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]) ) { return [ 'error' => 'Ошибка добавления. Заказчик уже добавлен.' ]; } $bookmark = new Bookmark([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if($bookmark->save()) { $result = $this->renderAjax('//site/forms-modal-fav', [ 'message' => 'Добавлено в закладки.', 'image' => $user->userInfo->image, 'name' => $user->name, ]); return [ 'result' => $result ]; } else { return [ 'error' => 'Ошибка добавления.' ]; } } public function actionAddProject() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка добавления. Отсутствует id заказа' ]; } /** * @var Project $project */ $project = Project::findOne($model_id); if(empty( $project )) { return [ 'error' => 'Ошибка добавления. Заказ не найден.' ]; } $model = $project->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_PROJECT; if(Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]) ) { return [ 'error' => 'Ошибка добавления. Заказ уже добавлен.' ]; } $bookmark = new Bookmark([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if($bookmark->save()) { $result = $this->renderAjax('//site/forms-modal-fav', [ 'message' => 'Добавлено в закладки.', 'image' => $project->user->userInfo->image, 'name' => $project->name, ]); return [ 'result' => $result ]; } else { return [ 'error' => 'Ошибка добавления.' ]; } } public function actionAddVacancy($id) { } public function actionRemovePerformer() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка удаления. Отсутствует id исполнителя' ]; } $user = User::findOne($model_id); if(empty( $user )) { return [ 'error' => 'Ошибка добавления. Исполнитель не найден.' ]; } $model = $user->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_PERFORMER; /** * @var Bookmark $bookmark */ $bookmark = Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if(!empty( $bookmark )) { if($bookmark->delete()) { return [ 'message' => 'Закладка успешно удалена' ]; } else { return [ 'error' => 'Ошибка при удалении' ]; } } else { return [ 'error' => 'Закладка не найдена' ]; } } public function actionRemoveCustomer() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка удаления. Отсутствует id заказчика' ]; } $user = User::findOne($model_id); if(empty( $user )) { return [ 'error' => 'Ошибка добавления. Заказчик не найден.' ]; } $model = $user->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_CUSTOMER; /** * @var Bookmark $bookmark */ $bookmark = Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if(!empty( $bookmark )) { if($bookmark->delete()) { return [ 'message' => 'Закладка успешно удалена' ]; } else { return [ 'error' => 'Ошибка при удалении' ]; } } else { return [ 'error' => 'Закладка не найдена' ]; } } public function actionRemoveProject() { $response = \Yii::$app->response; $response->format = Response::FORMAT_JSON; $model_id = \Yii::$app->request->post('id'); if(empty( $model_id )) { return [ 'error' => 'Ошибка удаления. Отсутствует id заказа' ]; } $project = Project::findOne($model_id); if(empty( $project )) { return [ 'error' => 'Ошибка добавления. Заказ не найден.' ]; } $model = $project->className(); $user_id = \Yii::$app->user->getId(); $type = Bookmark::TYPE_PROJECT; /** * @var Bookmark $bookmark */ $bookmark = Bookmark::findOne([ 'model' => $model, 'model_id' => $model_id, 'user_id' => $user_id, 'type' => $type, ]); if(!empty( $bookmark )) { if($bookmark->delete()) { return [ 'message' => 'Закладка успешно удалена' ]; } else { return [ 'error' => 'Ошибка при удалении' ]; } } else { return [ 'error' => 'Закладка не найдена' ]; } } }