public function AlbumAction($edit = false, $filter = array(), $album_id = null) { $this->BaseSiteData(); $request_user_id = (int) Project::getUser()->getShowedUser()->id; $user_id = (int) Project::getUser()->getDbUser()->id; $album_id = (int) $album_id > 0 ? $album_id : (int) Project::getRequest()->getKeyByNumber(0); $info = array(); if ($request_user_id === $user_id && $edit === true) { $info['can_edit'] = true; $info['access_list'] = HelpFunctions::getAccessList(); } if ((int) Project::getUser()->getShowedUser()->id <= 0) { $tabs = TabController::getMainAlbumTabs(false, false, true); } else { // $tabs = TabController::getOwnTabs(false, true); $tabs = TabController::getOwnTabs(false, false, true); } $info['tab_list'] = $tabs; $album_model = new AlbumModel(); $album_model->load($album_id); $info['thumbnail_id'] = (int) $album_model->thumbnail_id; $this->BaseAlbumData($info, $album_id); $photo_model = new PhotoModel(); $photo_model->filter = $filter; $pager = new DbPager(Project::getRequest()->getKeyByNumber(1), $this->getParam('photo_per_page', self::DEFAULT_PHOTO_PER_PAGE)); $photo_model->setPager($pager); $list = $photo_model->loadByAlbumUser($request_user_id, $album_id); $this->checkImages($list); $info['photo_list'] = $list; $info['list_pager'] = $photo_model->getPager(); $info['list_controller'] = 'Photo'; $info['list_action'] = 'Album'; $info['list_user'] = null; $info['user_id'] = $user_id; $this->_view->assign('current_album_name', $album_model->name); $this->_view->PhotoList($info); $this->_view->parse(); }
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')); }