Esempio n. 1
0
 public function download(array $params)
 {
     $config = OW::getConfig();
     $canDownload = $config->getValue('gphotoviewer', 'can_users_to_download_photos');
     if (!$canDownload) {
         throw new Redirect404Exception();
     }
     if (!isset($params['id']) || !($photoId = (int) $params['id'])) {
         throw new Redirect404Exception();
     }
     $photo = $this->photoService->findPhotoById($photoId);
     if (!$photo) {
         throw new Redirect404Exception();
     }
     $canView = true;
     if (!$ownerMode && !$modPermissions && !OW::getUser()->isAuthorized('photo', 'view')) {
         $canView = false;
         throw new Redirect404Exception();
     }
     if ((int) BOL_PluginService::getInstance()->findPluginByKey('photo')->build > 6272) {
         $url = $this->photoService->getPhotoPath($photo->id, $photo->hash);
     } else {
         $url = $this->photoService->getPhotoPath($photo->id);
     }
     if (file_exists($url) && is_readable($url)) {
         header('Content-Description: File Transfer');
         header('Content-Type: application/octet-stream');
         header('Content-Disposition: attachment; filename=' . basename($url));
         header('Content-Transfer-Encoding: binary');
         header('Expires: 0');
         header('Cache-Control: must-revalidate');
         header('Pragma: public');
         header('Content-Length: ' . filesize($url));
         ob_clean();
         flush();
         readfile($url);
         exit;
     } else {
         throw new Redirect404Exception();
     }
     exit;
 }
Esempio n. 2
0
 public function getPhotoForAvatar(OW_Event $e)
 {
     $params = $e->getParams();
     if ($params['entityType'] == 'photo_album') {
         $id = $params['id'];
         $photo = $this->photoService->findPhotoById($id);
         if ($photo) {
             $type = (bool) $photo->hasFullsize ? PHOTO_BOL_PhotoService::TYPE_ORIGINAL : PHOTO_BOL_PhotoService::TYPE_MAIN;
             $data = array('url' => $this->photoService->getPhotoUrlByType($photo->id, $type, $photo->hash, $photo->dimension), 'path' => $this->photoService->getPhotoPath($photo->id, $photo->hash, $type));
             $e->setData($data);
             return $data;
         }
     }
 }