mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-15 22:21:27 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
99bb9e5e20
|
@ -251,6 +251,7 @@
|
||||||
- update jquery to 3.6.1 (only bootstrap4 theme)
|
- update jquery to 3.6.1 (only bootstrap4 theme)
|
||||||
- introduce authentication service
|
- introduce authentication service
|
||||||
- new hook in restapi to add middleware
|
- new hook in restapi to add middleware
|
||||||
|
- previews for png, txt, pdf in different directories
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Changes in version 5.1.28
|
Changes in version 5.1.28
|
||||||
|
|
|
@ -136,6 +136,15 @@ class SeedDMS_Preview_Base {
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get preview dir
|
||||||
|
*
|
||||||
|
* @return string name of preview directory on disc
|
||||||
|
*/
|
||||||
|
public function getPreviewDir() { /* {{{ */
|
||||||
|
return $this->previewDir;
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a list of converters
|
* Set a list of converters
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
||||||
|
|
||||||
function __construct($previewDir, $timeout=5, $xsendfile=true) { /* {{{ */
|
function __construct($previewDir, $timeout=5, $xsendfile=true) { /* {{{ */
|
||||||
parent::__construct($previewDir, $timeout, $xsendfile);
|
parent::__construct($previewDir.DIRECTORY_SEPARATOR.'pdf', $timeout, $xsendfile);
|
||||||
$this->converters = array(
|
$this->converters = array(
|
||||||
);
|
);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
@ -43,7 +43,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
||||||
|
|
||||||
$document = $object->getDocument();
|
$document = $object->getDocument();
|
||||||
$dms = $document->_dms;
|
$dms = $document->_dms;
|
||||||
$dir = $this->previewDir.'/'.$document->getDir();
|
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||||
switch(get_class($object)) {
|
switch(get_class($object)) {
|
||||||
case $dms->getClassname('documentcontent'):
|
case $dms->getClassname('documentcontent'):
|
||||||
$target = $dir.'p'.$object->getVersion();
|
$target = $dir.'p'.$object->getVersion();
|
||||||
|
@ -90,8 +90,8 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
||||||
|
|
||||||
if(!$this->previewDir)
|
if(!$this->previewDir)
|
||||||
return false;
|
return false;
|
||||||
if(!is_dir($this->previewDir.'/'.$dir)) {
|
if(!is_dir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.'/'.$dir)) {
|
if (!SeedDMS_Core_File::makeDir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
||||||
if(!$this->previewDir)
|
if(!$this->previewDir)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$dir = $this->previewDir.'/'.$document->getDir();
|
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||||
if(file_exists($dir) && is_dir($dir)) {
|
if(file_exists($dir) && is_dir($dir)) {
|
||||||
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -40,17 +40,8 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
||||||
* be used.
|
* be used.
|
||||||
*/
|
*/
|
||||||
function __construct($previewDir, $width=40, $timeout=5, $xsendfile=true) { /* {{{ */
|
function __construct($previewDir, $width=40, $timeout=5, $xsendfile=true) { /* {{{ */
|
||||||
parent::__construct($previewDir, $timeout, $xsendfile);
|
parent::__construct($previewDir.DIRECTORY_SEPARATOR.'png', $timeout, $xsendfile);
|
||||||
$this->converters = array(
|
$this->converters = array(
|
||||||
'image/png' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'image/gif' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'image/jpg' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'image/jpeg' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'image/svg+xml' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'text/plain' => "convert -resize %wx '%f' '%o'",
|
|
||||||
'application/pdf' => "convert -density 100 -resize %wx '%f[0]' '%o'",
|
|
||||||
'application/postscript' => "convert -density 100 -resize %wx '%f[0]' '%o'",
|
|
||||||
'application/x-compressed-tar' => "tar tzvf '%f' | convert -density 100 -resize %wx text:-[0] '%o'",
|
|
||||||
);
|
);
|
||||||
$this->width = intval($width);
|
$this->width = intval($width);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
@ -74,7 +65,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
||||||
|
|
||||||
$document = $object->getDocument();
|
$document = $object->getDocument();
|
||||||
$dms = $document->_dms;
|
$dms = $document->_dms;
|
||||||
$dir = $this->previewDir.'/'.$document->getDir();
|
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||||
switch(get_class($object)) {
|
switch(get_class($object)) {
|
||||||
case $dms->getClassname('documentcontent'):
|
case $dms->getClassname('documentcontent'):
|
||||||
$target = $dir.'p'.$object->getVersion().'-'.$width;
|
$target = $dir.'p'.$object->getVersion().'-'.$width;
|
||||||
|
@ -127,8 +118,8 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
||||||
$width = intval($width);
|
$width = intval($width);
|
||||||
if(!$this->previewDir)
|
if(!$this->previewDir)
|
||||||
return false;
|
return false;
|
||||||
if(!is_dir($this->previewDir.'/'.$dir)) {
|
if(!is_dir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.'/'.$dir)) {
|
if (!SeedDMS_Core_File::makeDir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -368,7 +359,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
||||||
if(!$this->previewDir)
|
if(!$this->previewDir)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$dir = $this->previewDir.'/'.$document->getDir();
|
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||||
if(file_exists($dir) && is_dir($dir)) {
|
if(file_exists($dir) && is_dir($dir)) {
|
||||||
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -57,7 +57,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
||||||
if(count($words) > 1) {
|
if(count($words) > 1) {
|
||||||
$stopwords = $this->_stop_words;
|
$stopwords = $this->_stop_words;
|
||||||
$words = array_filter($words, function ($w) use (&$stopwords) {
|
$words = array_filter($words, function ($w) use (&$stopwords) {
|
||||||
return ((mb_strlen($w, 'utf-8') > 2) && !isset($stopwords[mb_strtolower($w, "utf- 8")]));
|
return ((mb_strlen($w, 'utf-8') > 2) && !isset($stopwords[mb_strtolower($w, "utf-8")]));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,18 @@ class SeedDMS_Controller_ClearCache extends SeedDMS_Controller_Common {
|
||||||
$post = $this->params['post'];
|
$post = $this->params['post'];
|
||||||
|
|
||||||
$ret = '';
|
$ret = '';
|
||||||
if(!empty($post['preview'])) {
|
if(!empty($post['previewpng'])) {
|
||||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/[1-9]*';
|
$cmd = 'rm -rf '.$settings->_cacheDir.'/png/[1-9]*';
|
||||||
|
system($cmd, $ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($post['previewpdf'])) {
|
||||||
|
$cmd = 'rm -rf '.$settings->_cacheDir.'/pdf/[1-9]*';
|
||||||
|
system($cmd, $ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($post['previewtxt'])) {
|
||||||
|
$cmd = 'rm -rf '.$settings->_cacheDir.'/txt/[1-9]*';
|
||||||
system($cmd, $ret);
|
system($cmd, $ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -100,9 +100,15 @@ application/pdf
|
||||||
|
|
||||||
mutool draw -F png -w %w -q -N -o %o %f 1
|
mutool draw -F png -w %w -q -N -o %o %f 1
|
||||||
|
|
||||||
|
application/postscript
|
||||||
|
convert -density 100 -resize %wx '%f[0]' 'png:%o'
|
||||||
|
|
||||||
text/plain
|
text/plain
|
||||||
a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- 'png:%o'
|
a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- 'png:%o'
|
||||||
|
|
||||||
|
On Linux systems you will have to set the desired value in /etc/papersize for a2ps
|
||||||
|
e.g. a4, or letter
|
||||||
|
|
||||||
application/msword
|
application/msword
|
||||||
application/vnd.oasis.opendocument.spreadsheet
|
application/vnd.oasis.opendocument.spreadsheet
|
||||||
application/vnd.oasis.opendocument.text
|
application/vnd.oasis.opendocument.text
|
||||||
|
|
|
@ -86,7 +86,7 @@ class SeedDMS_ConversionMgr {
|
||||||
for(end($services); key($services)!==null; prev($services)) {
|
for(end($services); key($services)!==null; prev($services)) {
|
||||||
$service = current($services);
|
$service = current($services);
|
||||||
$text = $service->convert($file, $target, $params);
|
$text = $service->convert($file, $target, $params);
|
||||||
if($text === false)
|
if(!$service->wasSuccessful())
|
||||||
return false;
|
return false;
|
||||||
if($text)
|
if($text)
|
||||||
return $text;
|
return $text;
|
||||||
|
|
|
@ -168,6 +168,7 @@ class SeedDMS_ConversionServiceExec extends SeedDMS_ConversionServiceBase {
|
||||||
} catch(Exception $e) {
|
} catch(Exception $e) {
|
||||||
if($hastempfile)
|
if($hastempfile)
|
||||||
unlink($tmpfile);
|
unlink($tmpfile);
|
||||||
|
$this->success = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$end = microtime(true);
|
$end = microtime(true);
|
||||||
|
|
|
@ -51,25 +51,24 @@ class SeedDMS_ConversionServiceImageToText extends SeedDMS_ConversionServiceBase
|
||||||
public function convert($infile, $target = null, $params = array()) { /* {{{ */
|
public function convert($infile, $target = null, $params = array()) { /* {{{ */
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
$imsize = getimagesize($infile, $moreinfo);
|
$imsize = getimagesize($infile, $moreinfo);
|
||||||
|
$txt = '';
|
||||||
if(!empty($moreinfo['APP13'])) {
|
if(!empty($moreinfo['APP13'])) {
|
||||||
$txt = '';
|
|
||||||
$iptcdata = iptcparse($moreinfo['APP13']);
|
$iptcdata = iptcparse($moreinfo['APP13']);
|
||||||
foreach(['2#005', '2#015', '2#025', '2#105', '2#080', '2#115', '2#120'] as $key) {
|
foreach(['2#005', '2#015', '2#025', '2#105', '2#080', '2#115', '2#120'] as $key) {
|
||||||
if(isset($iptcdata[$key]))
|
if(isset($iptcdata[$key]))
|
||||||
$txt .= implode(' ', $iptcdata[$key])."\n";
|
$txt .= implode(' ', $iptcdata[$key])."\n";
|
||||||
}
|
}
|
||||||
$end = microtime(true);
|
$end = microtime(true);
|
||||||
if($this->logger) {
|
|
||||||
$this->logger->log('Conversion from '.$this->from.' to '.$this->to.' by extracting iptc took '.($end-$start).' sec.', PEAR_LOG_INFO);
|
|
||||||
}
|
|
||||||
if($target) {
|
|
||||||
file_put_contents($target, $txt);
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return $txt;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
if($this->logger) {
|
||||||
|
$this->logger->log('Conversion from '.$this->from.' to '.$this->to.' by extracting iptc took '.($end-$start).' sec.', PEAR_LOG_INFO);
|
||||||
|
}
|
||||||
|
if($target) {
|
||||||
|
file_put_contents($target, $txt);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return $txt;
|
||||||
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,13 @@ class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
||||||
$this->contentContainerStart('warning');
|
$this->contentContainerStart('warning');
|
||||||
?>
|
?>
|
||||||
<p>
|
<p>
|
||||||
<input type="checkbox" name="preview" value="1" checked> <?php printMLText('preview_images_text'); ?>
|
<input type="checkbox" name="previewpng" value="1" checked> <?php printMLText('preview_images'); ?>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<input type="checkbox" name="previewpdf" value="1" checked> <?php printMLText('preview_pdf'); ?>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<input type="checkbox" name="previewtxt" value="1" checked> <?php printMLText('preview_text'); ?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<input type="checkbox" name="js" value="1" checked> <?php printMLText('temp_jscode'); ?>
|
<input type="checkbox" name="js" value="1" checked> <?php printMLText('temp_jscode'); ?>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user