/** * Finds the Album model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Album the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Album::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
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]); }