/** * 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; }
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; }