Example #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);
 }
Example #2
0
 public function z_preview($id, $param = array())
 {
     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);
         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);
 }
Example #3
0
 protected function cropImage($data)
 {
     $image = $preview_w = $preview_h = $x = $y = $w = $h = null;
     list($image, $preview_w, $preview_h, $x, $y, $w, $h) = $data;
     if ($image == 0 || $preview_w == 0 || $preview_h == 0 || $w == 0 || $h == 0) {
         return false;
     }
     $params = array('w' => $preview_w, 'h' => $preview_h);
     $storage = new Z_File_Storage();
     $file = $storage->getFile($image);
     if (!$file) {
         return false;
     }
     $filePathName = $file->getFullName();
     if (!$filePathName) {
         return false;
     }
     $filePreviewObject = new Z_File_Image_Thumbnail($filePathName);
     $cropped_params = array('w' => (double) $w, 'h' => (double) $h, 'x' => (double) $x, 'y' => (double) $y);
     $filePreviewPathName = $filePreviewObject->createThumbnail($params, $cropped_params);
 }