<?php if ($this->params['isMyProfile']) { ?> <a class='settings_tutor' href="/settings"><?php echo Yii::t('yii', 'Настройки'); ?> </a> <?php } ?> </div> <div class="blog_tags"> <?php $marks = \app\models\Marks::getPhotoMarks(20); ?> <?php foreach ($marks as $mark) { ?> <a href="/search-photo?Search%5Bname%5D=&Search%5Bmarks%5D=<?php echo $mark['name']; ?> &Search%5Bid_level_1%5D=&Search%5Bid_level_2%5D="><?php echo $mark['name']; ?> </a> <?php } ?> </div>
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 actionBlog_post_edit($article_id) { $this->redirectOnHomepageIfGuest($user, $isMyProfile); $request = Yii::$app->request; $post = $request->post(); if (!Blog::checkPermission($article_id)) { throw new \yii\web\HttpException(404); } $model = Blog::findOne($article_id); $marksNames = Marks::getNamesByIdArticle($article_id); $image = new UploadImage(); // Завантаження зображень if ($request->isAjax && $model->load($request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } if (Yii::$app->request->post()) { //збереження фотографії на сервері $user_id = Yii::$app->user->getId(); $image->file = UploadedFile::getInstance($image, 'file'); if ($image->file && $image->validate()) { // Зберігаємо зображення на сервер і в БД $folder = "articles"; $model->thumbnail = "article_" . Translit::translit($model->name) . $user_id . '.' . $image->file->extension; $image->saveArticleImage($model->thumbnail, $folder); } } if ($model->load($request->post()) && $model->validate()) { if (!Category::isSetCategory($model->id_level_1)) { return $this->redirect('/'); } Marks::deleteMarksByIdArticle($article_id); if ($request->post('mark')) { $marks_arr_new = $request->post('mark'); } else { $marks_arr_new = []; } $marks_tmp = []; foreach ($marks_arr_new as $k => $v) { $marks_tmp[] = $k; } if ($model->id_marks) { $marks_arr_new[$model->id_marks] = ''; } $marks_arr_new = \app\components\Marks::format($marks_arr_new); //список тих що в базі даних $marks_tmp = Marks::getMarksByNames($marks_tmp); //масив id тих що в бд $marks_tmp_id = []; foreach ($marks_tmp as $v) { $marks_tmp_id[] = $v['id']; } //обновилення coununter тих о в бд if ($marks_tmp_id) { Marks::updateCountMarks($marks_tmp_id); } //позначаємо ті що є в бд foreach ($marks_tmp as $k => $v) { $marks_arr_new[$k] = true; } //список тих що нема в бд $marks_tmp = []; foreach ($marks_arr_new as $k => $v) { if (!$v) { $marks_tmp[] = $k; } } if ($marks_tmp) { Marks::insertMarks($marks_tmp); } $marks_tmp = Marks::getMarksByNames($marks_tmp); foreach ($marks_tmp as $v) { $marks_tmp_id[] = $v['id']; } //зберігаємо данні в БД $model->id_author = Yii::$app->user->getId(); $model->save(); //формуємо повідомлення про вдале додання нової фотографії if ($marks_tmp_id) { Marks::addMarksToArticle($marks_tmp_id, $model->id); } // @todo перекласти \Yii::$app->getSession()->setFlash('notify', 'Стаття успішно відредагована!'); return $this->redirect("/article/" . $model->url); } else { //перетворюємо іd метки в ім'я для виведення $idMarks = Marks::find()->select(['name'])->where(['id' => $model->id_marks])->one(); $model->id_marks = $idMarks[name]; } $marks = Marks::find()->select(['name as label'])->asArray()->all(); $all_categories = Category::getAllTranslatedCategory(); return $this->render('blog_post', ['model' => $model, 'marks' => $marks, 'image' => $image, 'user' => $user, 'isMyProfile' => $isMyProfile, 'all_categories' => $all_categories, 'marksNames' => $marksNames, 'edit' => 1]); }