Example #1
0
 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();
 }
Example #2
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'));
 }