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); }
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); }