diff --git a/SeedDMS_Preview/Preview/PdfPreviewer.php b/SeedDMS_Preview/Preview/PdfPreviewer.php index 10005afc7..f3c618b9f 100644 --- a/SeedDMS_Preview/Preview/PdfPreviewer.php +++ b/SeedDMS_Preview/Preview/PdfPreviewer.php @@ -89,8 +89,13 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base { $target = $this->previewDir.$dir.md5($infile); if($target != '' && (!file_exists($target.'.pdf') || filectime($target.'.pdf') < filectime($infile))) { $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); if(isset($this->converters[$mimetype])) { - $cmd = str_replace(array('%f', '%o'), array($infile, $target.'.pdf'), $this->converters[$mimetype]); + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimetype]); + } elseif(isset($this->converters[$mimeparts[0].'/*'])) { + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimeparts[0].'/*']); + } elseif(isset($this->converters['*'])) { + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters['*']); } if($cmd) { try { diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index 8c9b67713..970fcdb95 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -106,9 +106,15 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { $target = $this->previewDir.$dir.md5($infile).'-'.$width; if($target != '' && (!file_exists($target.'.png') || filectime($target.'.png') < filectime($infile))) { $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); if(isset($this->converters[$mimetype])) { - $cmd = str_replace(array('%w', '%f', '%o'), array($width, $infile, $target.'.png'), $this->converters[$mimetype]); + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimetype]); + } elseif(isset($this->converters[$mimeparts[0].'/*'])) { + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimeparts[0].'/*']); + } elseif(isset($this->converters['*'])) { + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters['*']); } + /* switch($mimetype) { case "image/png": @@ -131,7 +137,6 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { } */ if($cmd) { - //exec($cmd); try { self::execWithTimeout($cmd, $this->timeout); } catch(Exception $e) { diff --git a/SeedDMS_Preview/package.xml b/SeedDMS_Preview/package.xml index 6422fe77c..71eb627ba 100644 --- a/SeedDMS_Preview/package.xml +++ b/SeedDMS_Preview/package.xml @@ -11,10 +11,10 @@ uwe@steinmann.cx yes - 2016-11-15 - + 2017-03-02 + - 1.2.1 + 1.2.2 1.2.0 @@ -23,7 +23,8 @@ GPL License -setConverters() overrides exiting converters +commands can be set for mimetypes 'xxxx/*' and '*' +pass mimetype as parameter '%m' to converter @@ -254,5 +255,21 @@ check if cache dir exists before deleting it in deleteDocumentPreviews() add new previewer which converts document to pdf instead of png + + 2016-11-15 + + + 1.2.1 + 1.2.0 + + + stable + stable + + GPL License + +setConverters() overrides exiting converters + +