public function actionPost($slug) { $model = new CommentsBlog(); //витягнення статті $post = Blog::getPostByUrl($slug); //якщо немає 404 if (!$post['article_id']) { throw new \yii\web\HttpException(404); } //якщо стаття закрита адміністратором, то редірект на всі статті if (!$post['article_id'] || time() < $post['time_closed']) { return $this->redirect('/blog/all'); } View::viewArticle($post['article_id'], $post['views']); //перевірка чи користувач лайкнув if (!Yii::$app->user->isGuest) { $post['islike'] = Blog::isLikeArticle($post['article_id'], Yii::$app->user->getId()); } else { $post['islike'] = false; } $i_blocked = User::checkIfIInBlaclList($post['id_author']); $user_id = $post['user_id']; $marks = Marks::getArticleMarks(20); $categories = Category::getAllCategory(); //інші статті автора $other_articles = Blog::getOtherArticle($user_id, 0, 2, $post['article_id']); foreach ($other_articles as &$article) { $article['text'] = substr($article['text'], 0, 350) . '...'; } //// КОМЕНТАРІ //// //витягуємо всі коменті до статті $from = "comments_blog"; //отримання всіх коментарів до фотографії $comments = Comments::getCommentsNew($post['article_id'], $from); $request = Yii::$app->request; if ($request->isAjax && $model->load($request->post()) && $model->validate()) { if (!Yii::$app->user->isGuest) { $author_id = Blog::getIdAuthorArticle($model['id_article']); if (!User::checkIfIInBlaclList($author_id)) { Yii::$app->response->format = Response::FORMAT_JSON; $model->date_time = date('Y-m-d H:i:s'); $model->id_user = Yii::$app->user->getId(); $model->text = htmlspecialchars($model->text); //визначення чи це простий комент чи це ре-комент $text = explode(":", $model->text); //перевіряємо чи введено коректне ім'я користувача якому дана відповідь $true_name = 0; foreach ($comment as $key) { if ($key['name'] == $text[0]) { $true_name = 1; } } if (!$true_name) { $model->answer_id = 0; } if ($model->save()) { Blog::updateComments($post['article_id'], 1); $latest_id = $model->id; $user = User::find()->select('avatar, name')->where(["id" => $model->id_user])->one(); echo json_encode(['text' => $model->text, 'id_user' => $model->id_user, 'name' => $user['name'], 'avatar' => $user['avatar'], 'sex' => $user['sex'], 'id_comment' => $latest_id]); die; } else { echo 0; } } else { return json_encode('error'); } } //// КОМЕНТАРІ //// } else { return $this->render('post', ['post' => $post, 'other_articles' => $other_articles, 'marks' => $marks, 'categories' => $categories, 'user_id' => $user_id, 'model' => $model, 'comments' => $comments, 'i_blocked' => $i_blocked]); } }
public function actionPhoto($photo_id) { $photo = ClubPhoto::getAllPhotoInfo($photo_id); $club_id = $photo['club_id']; $this->getClubInfo($club_id, $club, $role, $potentialMembers, $isOpen); if (!$club['club_id']) { throw new \yii\web\HttpException(404); } if (!$isOpen) { return $this->redirect("/club{$club_id}"); } View::viewPhotoClub($photo_id); $model = new CommentsClub(); $from = "comments_club"; $comments = Comments::getCommentsNew($photo_id, $from); $request = Yii::$app->request; if (!$club['is_closed_comments'] && $request->isAjax && $model->load($request->post()) && $model->validate()) { Yii::$app->response->format = Response::FORMAT_JSON; $model->date_time = date('Y-m-d H:i:s'); $model->id_user = Yii::$app->user->getId(); $model->text = htmlspecialchars($model->text); //визначення чи це простий комент чи це ре-комент $text = explode(":", $model->text); //перевіряємо чи введено коректне ім'я користувача якому дана відповідь $true_name = 0; foreach ($comments as $key) { if ($key['name'] == $text[0]) { $true_name = 1; } } if (!$true_name) { $model->answer_id = 0; } if ($model->save()) { ClubPhoto::updateComments($photo_id, 1); $latest_id = $model->id; $user = User::find()->select('avatar, name')->where(["id" => $model->id_user])->one(); echo json_encode(['text' => $model->text, 'id_user' => $model->id_user, 'name' => $user[name], 'avatar' => $user[avatar], 'id_comment' => $latest_id]); die; } else { echo 0; } } return $this->render('photo_page', ['club' => $club, 'photo' => $photo, 'comments' => $comments, 'model' => $model]); }
public function actionPhoto_page($id) { if (Photo::isClosedPhoto($id) == 1) { if (!Photo::checkPhotoAccess($id)) { $this->redirect('/id' . Yii::$app->user->getId()); } } $model = new CommentsPhoto(); $photo = Photo::getAllPhotoInfo($id); $i_blocked = User::checkIfIInBlaclList($photo['user_id']); if (!$photo['photo_id']) { throw new \yii\web\HttpException(404); } if ($photo['time_closed'] > time() && $photo['user_id'] != Yii::$app->user->getId()) { return $this->render('close_photo.php', ['time' => $photo['time_closed']]); } if ($photo['time_closed'] > time()) { $photo['photo_closed'] = "Дане фото було заблоковане"; } //отримання всіх коментарів до фотографії $from = "comments_photo"; $comments = Comments::getCommentsNew($photo['photo_id'], $from); $request = Yii::$app->request; if ($request->isAjax && $model->load($request->post()) && $model->validate()) { if (!User::checkIfIInBlaclList($photo['user_id'])) { Yii::$app->response->format = Response::FORMAT_JSON; $model->date_time = date('Y-m-d H:i:s'); $model->id_user = Yii::$app->user->getId(); $model->text = htmlspecialchars($model->text); //визначення чи це простий комент чи це ре-комент $text = explode(":", $model->text); //перевіряємо чи введено коректне ім'я користувача якому дана відповідь $true_name = 0; foreach ($comments as $key) { if ($key['name'] == $text[0]) { $true_name = 1; } } if (!$true_name) { $model->answer_id = 0; } if ($model->save()) { Photo::updateComments($photo['photo_id'], 1); $latest_id = $model->id; $user = User::find()->select('avatar, name')->where(["id" => $model->id_user])->one(); echo json_encode(['text' => $model->text, 'id_user' => $model->id_user, 'name' => $user['name'], 'avatar' => $user['avatar'], 'id_comment' => $latest_id]); die; } else { echo 0; } } else { return json_encode('error'); } } View::viewPhoto($photo['photo_id'], $photo['photo_views']); return $this->render('photo_page', ['photo' => $photo, 'comments' => $comments, 'model' => $model, 'estimation' => self::$estimation, 'i_blocked' => $i_blocked]); }