mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
- bugfix: changedir in dokument_export in cleanup method
- bugfix: dokumentenakt errorhandling
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user