public function actionArticle()
 {
     $model = new Search();
     $articles = 1;
     if ($model->load(\Yii::$app->request->get()) && isset($model['name'])) {
         if ($model->marks != "") {
             $marks = Search::getMarksArray($model->marks);
         }
         $contentId = \Yii::$app->request->post('contentId');
         $articles = Search::searchArticles($model['name'], $model['author'], $model['id_level_1'], $model['marks'], 20, $contentId);
     }
     if (\Yii::$app->request->isAjax) {
         echo json_encode(['content' => $articles]);
         die;
     }
     $all_categories = Category::getAllTranslatedCategory();
     return $this->render('article', ['model' => $model, 'articles' => $articles, 'all_categories' => $all_categories]);
 }
Example #2
0
 public function actionSettings($id)
 {
     User::redirectOnHomepageIfGuest($this);
     if (!Club::checkPermissions($id, Yii::$app->user->getId())) {
         return $this->redirect('/club' . $id);
     }
     $model = Club::findOne($id);
     $type = $model->type;
     $image = new UploadImage();
     if (Yii::$app->request->post()) {
         if ($model->load(Yii::$app->request->post()) && $model->validate()) {
             if (!$model->style) {
                 $model->style = 1;
             }
             if (!$model->background) {
                 $model->background = 1;
             }
             if (isset($_POST['Club']['background'])) {
                 $model->background = $_POST['Club']['background'];
             }
             // перевірка чи користувач не підробив дані, якщо підробив редірект на говну сторінку
             $tmp = [];
             for ($i = 1; $i <= 8; ++$i) {
                 $tmp[] = $i;
             }
             $tmp[] = 13;
             if (!in_array($model->type, [1, 2]) || !in_array($model->background, $tmp) || !Category::isSetCategory($model->id_level_1)) {
                 return $this->redirect('/');
             }
             //збереження табнейла для клуба
             $image->file = UploadedFile::getInstance($image, 'file');
             if ($image->file && $image->validate()) {
                 $model->img_src = md5(uniqid(mt_rand())) . '.' . $image->file->extension;
                 $image->savePhotoThumbnail($model->img_src);
             }
             $cl = Yii::$app->request->post('Club');
             $model->close_comments = isset($cl['close_comments']) ? 1 : 0;
             if ($model->save()) {
                 // якщо клуб відкрили, додати всіх користувачів в клуб
                 if ($type != $model->type && $model->type == 1) {
                     Club::addAllUsersToClub($id);
                 }
                 \Yii::$app->getSession()->setFlash('notify', 'Налаштування успішно зміненно!');
                 return $this->redirect('/club' . $id);
             } else {
                 //                    \Yii::$app->getSession()->setFlash('notify', 'Налаштування успішно зміненно!');
                 //помилка
             }
         }
     }
     // Витягуємо і перекладаємо усі категорії
     $all_categories = Category::getAllTranslatedCategory();
     $colors = Yii::$app->params['club_colors'];
     // Перекладаємо назви кольорів
     foreach ($colors as $k => $v) {
         $colors[$k][3] = Yii::t('yii', $colors[$k][3]);
     }
     //        echo json_encode($model);
     //        die;
     return $this->render('settings', ['action' => Yii::t('yii', 'Настройки клуба'), 'model' => $model, 'colors' => $colors, 'image' => $image, 'all_categories' => $all_categories]);
 }
 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]);
 }