Example #1
0
 public function actionAlbum_edit($album_id)
 {
     $this->redirectOnHomepageIfGuest($user, $isMyProfile);
     $request = Yii::$app->request;
     $model = Album::findOne($album_id);
     if ($model->id_user != Yii::$app->user->getId()) {
         return $this->redirect('/id' . Yii::$app->user->getId() . '/albums');
     }
     $images = Photo::getAlbumPhotos($album_id, 20, Yii::$app->request->post('contentId'));
     $has_subalbum = Album::hasSubalbum($album_id);
     $model->scenario = 'album_add_edit';
     $level_1 = Category::getAllCategory();
     $level_2 = Category::getAllSubcategory();
     if ($request->isAjax && $request->post('contentId')) {
         foreach ($images as &$image) {
             $image['photo_list_subcat'] = [];
             foreach ($level_2 as $l) {
                 if ($image['photo_id_level_1'] == $l['subcategory_id_level_1']) {
                     $image['photo_list_subcat'][] = $l;
                 }
             }
         }
         echo json_encode(['content' => $images, 'coverId' => $model->cover_id]);
         return;
     }
     if ($model->load(\Yii::$app->request->post()) && $model->validate()) {
         if ($_POST['Album']['parent_id'] == "") {
             $_POST['Album']['parent_id'] = 0;
             $model->parent_id = $_POST['Album']['parent_id'];
         }
         // Якшо прийшов батьківський альбом в альбом, який і так є батьківським
         if ($_POST['Album']['parent_id'] != 0 && $has_subalbum) {
             $this->redirect('/albums');
         }
         // Приховуємо фотографії з альбома, якщо користувач міняє налаштування приватності
         if (($model->OldAttributes['friends_group_id'] != $model->friends_group_id || $model->OldAttributes['password'] != $model->password) && ($model->friends_group_id != 0 || $model->password != "")) {
             Album::hidePrivacyPhoto($model->id);
         }
         // Якщо користувач знімає налаштування приватності, то робимо всі фото в альбомі відкриті
         if (($model->OldAttributes['friends_group_id'] != 0 || $model->OldAttributes['password'] != "") && ($model->friends_group_id == 0 && $model->password == "")) {
             Album::showPrivacyPhoto($model->id);
         }
         // Якщо міняємо налаштування приватності батьківського альбома, то змінюємо і в дочірніх
         if ($has_subalbum && ($model->oldAttributes['password'] != $model['password'] || $model['friends_group_id'] != $model->oldAttributes['friends_group_id'])) {
             Album::setSubalbumPrivacy($album_id, $model['password'], $model['friends_group_id']);
         }
         // Зберігаємо доданий альбом
         if ($_POST['Album']['parent_id'] != 0 && Album::checkParentAlbum($_POST['Album']['parent_id'])) {
             $model->parent_id = $_POST['Album']['parent_id'];
             Album::childAlbumSetParentPrivacy($model);
         }
         $model->save();
         // @todo перекласти
         \Yii::$app->session->setFlash('notify', 'Альбом успішно редагований!');
         $this->redirect('/id' . \Yii::$app->user->getId() . '/albums');
     }
     $thumbnail = Album::getThumbnail($model->cover_id);
     return $this->render('album_edit', ['model' => $model, 'album_id' => $album_id, 'images' => $images, 'level_1' => $level_1, 'level_2' => $level_2, 'cover_id' => $model->cover_id, 'user' => $user, 'isMyProfile' => $isMyProfile, 'has_subalbum' => $has_subalbum, 'thumbnail' => $thumbnail]);
 }