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]); }