- bugfix: changedir in dokument_export in cleanup method

- bugfix: dokumentenakt errorhandling
This commit is contained in:
Andreas Moik
2016-11-28 09:44:52 +01:00
parent db76776b39
commit d62a0b304c
2 changed files with 26 additions and 23 deletions
+14 -11
View File
@@ -137,6 +137,7 @@ foreach($prestudent_ids as $pid)
$result = $db->db_query($query);
while($row = $db->db_fetch_object($result))
{
$docErrors = array();
$convertSuccess = true;
$filename = "";
if($row->inhalt != null)
@@ -152,24 +153,24 @@ foreach($prestudent_ids as $pid)
if ($dms->mimetype != $row->mimetype)
{
$preErrors[] = "Mimetype von Akte und DMS der DMS-ID ".$row->dms_id." stimmen nicht ueberein. Bitte kontaktieren Sie einen Administrator";
$docErrors[] = "Mimetype von Akte und DMS der DMS-ID ".$row->dms_id." stimmen nicht ueberein. Bitte kontaktieren Sie einen Administrator";
}
$filename = DMS_PATH . $dms->filename;
if(!file_exists($filename))
{
$preErrors[] = "'" . $filename . "': Datei nicht gefunden";
$docErrors[] = "'" . $filename . "': Datei nicht gefunden";
}
}
// this should never happen
if($filename == "")
{
$preErrors[] = "'" . $row->akte_id . "': Diese Akte hat keinen Inhalt und keine dms_id";
$docErrors[] = "'" . $row->akte_id . "': Diese Akte hat keinen Inhalt und keine dms_id";
}
if(empty($preErrors))
if(empty($docErrors))
{
/*
* Determine the filetype
@@ -205,11 +206,12 @@ foreach($prestudent_ids as $pid)
)
{
$fullFilename = $tmpDir . "/".uniqid() . ".pdf";
$convert = $docExp->convert($filename, $fullFilename, "pdf");
if(!$docExp->convert($filename, $fullFilename, "pdf"))
if(!$convert)
{
$convertSuccess = false;
$preErrors[] = ($row->titel != ''? $row->titel:$row->bezeichnung)." (Akte_ID ".$row->akte_id."): Konvertierung fehlgeschlagen(".$row->mimetype.")";
$docErrors[] = ($row->titel != ''? $row->titel:$row->bezeichnung)." (Akte_ID ".$row->akte_id."): Konvertierung fehlgeschlagen(".$row->mimetype.")";
}
}
else if(
@@ -265,11 +267,11 @@ foreach($prestudent_ids as $pid)
else
$addString = "(DB)";
if($convertSuccess)
$preErrors[] = '"' . $row->titel . '":' . $addString . ' Dokument nicht gefunden';
$docErrors[] = '"' . $row->titel . '":' . $addString . ' Dokument nicht gefunden';
}
}
else
$preErrors[] ="'$row->titel' hat einen nicht unterstützten mimetype: $row->mimetype";
$docErrors[] ="'$row->titel' hat einen nicht unterstützten mimetype: $row->mimetype";
}
}
@@ -418,7 +420,7 @@ foreach($prestudent_ids as $pid)
'zgvnation' => $zgvnation,
array('dokumente'=> $dokumente),
array('aufnahme_notizen'=> $notiz_text_array)
),"dokumentenakt"
);
//echo $doc->getXML();exit;
@@ -433,9 +435,10 @@ foreach($prestudent_ids as $pid)
unset($doc);
}
if(!empty($preErrors))
if(!empty($docErrors) || !empty($preErrors))
{
$errors[$pid] = $preErrors;
$errors[$pid] = array_merge($errors[$pid], $docErrors);
}
}
+12 -12
View File
@@ -34,6 +34,7 @@ class dokument_export
private $temp_filename;
private $temp_folder;
private $images=array();
private $sourceDir;
public $errormsg;
/**
@@ -171,6 +172,7 @@ class dokument_export
$this->temp_folder = sys_get_temp_dir().'/fhcunoconv-'.uniqid();
mkdir($this->temp_folder);
$this->sourceDir = getcwd();
chdir($this->temp_folder);
file_put_contents($this->temp_folder . '/content.xml', $contentbuffer);
@@ -256,18 +258,14 @@ class dokument_export
switch($this->outputformat)
{
case 'pdf':
$this->temp_filename = $this->temp_folder . '/out.pdf';
exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > ".$this->temp_filename, $out, $ret);
if($ret!=0)
{
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
return false;
}
break;
case 'doc':
$this->temp_filename='out.doc';
exec("unoconv -e IsSkipEmptyPages=false --stdout -f doc $tempname_zip > ".$this->temp_filename, $out, $ret);
$this->temp_filename = $this->temp_folder . '/out.' . $this->outputformat;
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' --output %s %s 2>&1';
$command = sprintf($command, $this->temp_filename, $tempname_zip);
exec($command, $out, $ret);
if($ret!=0)
{
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
@@ -365,6 +363,7 @@ class dokument_export
rmdir($this->temp_folder);
chdir($this->sourceDir);
return true;
}
@@ -412,10 +411,11 @@ class dokument_export
*/
public function convert($inFile, $outFile, $format = "pdf")
{
$command = 'unoconv --format %s --output %s %s';
$command = 'unoconv -f %s --output %s %s 2>&1';
$command = sprintf($command, $format, $outFile, $inFile);
exec($command, $out, $ret);
if($ret!=0)
{
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';