Exemple #1
0
 public function ListSaveAction()
 {
     $request_user_id = (int) Project::getUser()->getShowedUser()->id;
     $user_id = (int) Project::getUser()->getDbUser()->id;
     $login = Project::getUser()->getDbUser()->login;
     $request = Project::getRequest();
     if ($user_id !== $request_user_id) {
         // Can't save somebody's album
         $this->ListAction();
         return;
     }
     $album = USER_UPLOAD_DIR . DIRECTORY_SEPARATOR . $login . DIRECTORY_SEPARATOR . 'album' . DIRECTORY_SEPARATOR;
     $thumbs = $album . 'thumbs' . DIRECTORY_SEPARATOR;
     $images = $album . 'images' . DIRECTORY_SEPARATOR;
     clearstatcache();
     if (is_array($request->album_id)) {
         foreach ($request->album_id as $album_id) {
             $album_model = new AlbumModel();
             $album_model->load($album_id);
             // Проверка, является ли пользователем владельцем альбома
             if ((int) $album_model->id > 0 && (int) $album_model->user_id === $user_id) {
                 if (isset($request->delete[$album_id])) {
                     // Delete album
                     $photo_model = new PhotoModel();
                     $list = $photo_model->loadByAlbum($album_id);
                     foreach ($list as $item) {
                         $f = $thumbs . $item['path'];
                         if (file_exists($f) && is_file($f)) {
                             unlink($f);
                         }
                         $f = $images . $item['thumbnail'];
                         if (file_exists($f) && is_file($f)) {
                             unlink($f);
                         }
                         $photo_model->delete($item['id']);
                     }
                     $album_model->delete($album_id);
                 } else {
                     $album_model->is_onmain = isset($request->is_onmain[$album_id]) ? 1 : 0;
                     $album_model->access = isset($request->album_access[$album_id]) ? $request->album_access[$album_id] : ACCESS::MYSELF;
                     $album_model->name = isset($request->album_name[$album_id]) ? $request->album_name[$album_id] : $album_model->name;
                     $album_model->save();
                 }
             }
         }
     }
     Project::getResponse()->redirect($request->createUrl('Album', 'List'));
 }