Exemple #1
0
 /**
  * Deletes photo
  *
  * @param array $params
  * @throws Redirect404Exception
  * @return array
  */
 public function ajaxDeletePhoto(array $params)
 {
     $photoId = $params['photoId'];
     $photo = $this->photoService->findPhotoById($photoId);
     $return = array();
     if ($photo) {
         $ownerId = $this->photoService->findPhotoOwner($photoId);
         $isOwner = OW::getUser()->isAuthorized('photo', 'upload', $ownerId);
         $isModerator = OW::getUser()->isAuthorized('photo');
         if (!$isOwner && !$isModerator) {
             throw new Redirect404Exception();
         }
         $album = $this->photoAlbumService->findAlbumById($photo->albumId);
         $delResult = $this->photoService->deletePhoto($photoId);
         if ($delResult) {
             $photosInAlbum = (int) $this->photoAlbumService->countAlbumPhotos($photo->albumId);
             if ($photosInAlbum == 0) {
                 $url = OW_Router::getInstance()->urlForRoute('photo_user_albums', array('user' => BOL_UserService::getInstance()->getUserName($album->userId)));
                 $this->photoAlbumService->deleteAlbum($photo->albumId);
             } else {
                 $url = OW_Router::getInstance()->urlForRoute('photo_user_album', array('user' => BOL_UserService::getInstance()->getUserName($album->userId), 'album' => $photo->albumId));
             }
             $return = array('result' => true, 'msg' => OW::getLanguage()->text('photo', 'photo_deleted'), 'url' => $url);
         } else {
             $return = array('result' => false, 'error' => OW::getLanguage()->text('photo', 'photo_not_deleted'));
         }
     }
     return $return;
 }
Exemple #2
0
 public function photoDelete(OW_Event $e)
 {
     $params = $e->getParams();
     $data = $e->getData();
     if (empty($params['photoId'])) {
         return false;
     }
     $photo = $this->photoService->findPhotoById($params['photoId']);
     if (!$photo) {
         return false;
     }
     $this->photoService->deletePhoto($photo->id);
     return $data;
 }