Exemple #1
0
 public function z_preview($id, $param = array(), $cropped = false)
 {
     try {
         if (is_numeric($id)) {
             $storage = new Z_File_Storage();
             $file = $storage->getFile($id);
             if (!$file) {
                 throw new Exception();
             }
             $filename = $file->getFullName();
             unset($storage);
         } elseif (is_string($id)) {
             $filename = $id;
         } else {
             throw new Exception('Идентификатор файла не является чистом или строкой');
         }
         if (isset($param['mark']) && is_numeric($param['mark'])) {
             $storage = new Z_File_Storage();
             $file = $storage->getFile($param['mark']);
             if (!$file) {
                 throw new Exception();
             }
             $param['mark'] = $file->getFullName();
             unset($storage);
         }
         $tn = new Z_File_Image_Thumbnail($filename);
         $fileSitename = str_replace(SITE_PATH, '', $filename);
         //превращаем полный путь к файлу в относительный путь в бразуере
         $preResult = false;
         if ($cropped) {
             $preResult = $tn->getCroppedPreview($param);
             //метод ищет в папке картинки вручную обрезанную версию картинки и выдает путь к ней
         }
         if (!$preResult) {
             if ($tn->isPreviewActual($param)) {
                 $preResult = $tn->getPreviewName($param);
             } else {
                 $param['file'] = $fileSitename;
                 $preResult = '/sys/generatepreview.php?' . http_build_query($param, false);
                 //внешний запрос генерирующий превью в автоматическом режиме, в ручном режиме превью генерируется только в админке
             }
         }
     } catch (Exception $e) {
         return '';
     }
     return str_replace(SITE_PATH, '', $preResult);
 }