mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-06 07:04:57 +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)
|
||||
- introduce authentication service
|
||||
- new hook in restapi to add middleware
|
||||
- previews for png, txt, pdf in different directories
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
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
|
||||
*
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
||||
|
||||
function __construct($previewDir, $timeout=5, $xsendfile=true) { /* {{{ */
|
||||
parent::__construct($previewDir, $timeout, $xsendfile);
|
||||
parent::__construct($previewDir.DIRECTORY_SEPARATOR.'pdf', $timeout, $xsendfile);
|
||||
$this->converters = array(
|
||||
);
|
||||
} /* }}} */
|
||||
|
@ -43,7 +43,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$document = $object->getDocument();
|
||||
$dms = $document->_dms;
|
||||
$dir = $this->previewDir.'/'.$document->getDir();
|
||||
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||
switch(get_class($object)) {
|
||||
case $dms->getClassname('documentcontent'):
|
||||
$target = $dir.'p'.$object->getVersion();
|
||||
|
@ -90,8 +90,8 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
|
||||
if(!$this->previewDir)
|
||||
return false;
|
||||
if(!is_dir($this->previewDir.'/'.$dir)) {
|
||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.'/'.$dir)) {
|
||||
if(!is_dir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -297,7 +297,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
if(!$this->previewDir)
|
||||
return false;
|
||||
|
||||
$dir = $this->previewDir.'/'.$document->getDir();
|
||||
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||
if(file_exists($dir) && is_dir($dir)) {
|
||||
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
||||
} else {
|
||||
|
|
|
@ -40,17 +40,8 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
* be used.
|
||||
*/
|
||||
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(
|
||||
'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);
|
||||
} /* }}} */
|
||||
|
@ -74,7 +65,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
|
||||
$document = $object->getDocument();
|
||||
$dms = $document->_dms;
|
||||
$dir = $this->previewDir.'/'.$document->getDir();
|
||||
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||
switch(get_class($object)) {
|
||||
case $dms->getClassname('documentcontent'):
|
||||
$target = $dir.'p'.$object->getVersion().'-'.$width;
|
||||
|
@ -127,8 +118,8 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
$width = intval($width);
|
||||
if(!$this->previewDir)
|
||||
return false;
|
||||
if(!is_dir($this->previewDir.'/'.$dir)) {
|
||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.'/'.$dir)) {
|
||||
if(!is_dir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||
if (!SeedDMS_Core_File::makeDir($this->previewDir.DIRECTORY_SEPARATOR.$dir)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -368,7 +359,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
if(!$this->previewDir)
|
||||
return false;
|
||||
|
||||
$dir = $this->previewDir.'/'.$document->getDir();
|
||||
$dir = $this->previewDir.DIRECTORY_SEPARATOR.$document->getDir();
|
||||
if(file_exists($dir) && is_dir($dir)) {
|
||||
return SeedDMS_Preview_Previewer::recurseRmdir($dir);
|
||||
} else {
|
||||
|
|
|
@ -57,7 +57,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if(count($words) > 1) {
|
||||
$stopwords = $this->_stop_words;
|
||||
$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'];
|
||||
|
||||
$ret = '';
|
||||
if(!empty($post['preview'])) {
|
||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/[1-9]*';
|
||||
if(!empty($post['previewpng'])) {
|
||||
$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);
|
||||
}
|
||||
|
||||
|
|
|
@ -100,9 +100,15 @@ application/pdf
|
|||
|
||||
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
|
||||
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/vnd.oasis.opendocument.spreadsheet
|
||||
application/vnd.oasis.opendocument.text
|
||||
|
|
|
@ -86,7 +86,7 @@ class SeedDMS_ConversionMgr {
|
|||
for(end($services); key($services)!==null; prev($services)) {
|
||||
$service = current($services);
|
||||
$text = $service->convert($file, $target, $params);
|
||||
if($text === false)
|
||||
if(!$service->wasSuccessful())
|
||||
return false;
|
||||
if($text)
|
||||
return $text;
|
||||
|
|
|
@ -168,6 +168,7 @@ class SeedDMS_ConversionServiceExec extends SeedDMS_ConversionServiceBase {
|
|||
} catch(Exception $e) {
|
||||
if($hastempfile)
|
||||
unlink($tmpfile);
|
||||
$this->success = false;
|
||||
return false;
|
||||
}
|
||||
$end = microtime(true);
|
||||
|
|
|
@ -51,25 +51,24 @@ class SeedDMS_ConversionServiceImageToText extends SeedDMS_ConversionServiceBase
|
|||
public function convert($infile, $target = null, $params = array()) { /* {{{ */
|
||||
$start = microtime(true);
|
||||
$imsize = getimagesize($infile, $moreinfo);
|
||||
$txt = '';
|
||||
if(!empty($moreinfo['APP13'])) {
|
||||
$txt = '';
|
||||
$iptcdata = iptcparse($moreinfo['APP13']);
|
||||
foreach(['2#005', '2#015', '2#025', '2#105', '2#080', '2#115', '2#120'] as $key) {
|
||||
if(isset($iptcdata[$key]))
|
||||
$txt .= implode(' ', $iptcdata[$key])."\n";
|
||||
}
|
||||
$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');
|
||||
?>
|
||||
<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>
|
||||
<input type="checkbox" name="js" value="1" checked> <?php printMLText('temp_jscode'); ?>
|
||||
|
|
Loading…
Reference in New Issue
Block a user