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