Merged in bugfix/PMC-693-A (pull request #6864)

PMC-693

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Roly
2019-04-18 18:56:16 +00:00
committed by Julio Cesar Laura Avendaño
3 changed files with 55 additions and 9 deletions

View File

@@ -105,6 +105,10 @@ class Form extends XmlForm
$filename = $filename . '.xml';
}
$this->home = $home;
//to do: This must be removed, the post validation should only be done for the classic version.
self::createXMLFileIfNotExists($this->home . $filename);
$res = parent::parseFile( $filename, $language, $forceParse );
if ($res == 1) {
trigger_error( 'Faild to parse file ' . $filename . '.', E_USER_ERROR );
@@ -751,5 +755,53 @@ class Form extends XmlForm
}
return $data;
}
/**
* Create XML file if not exists.
*
* @param string $filepath
*
* @see Form->__construct()
* @@link https://wiki.processmaker.com/3.1/Cases
* @link https://wiki.processmaker.com/index.php/2.5.X/DynaForms#XML_tab
*/
public static function createXMLFileIfNotExists($filepath)
{
if (file_exists($filepath)) {
return;
}
$pathParts = pathinfo($filepath);
if (empty($pathParts)) {
return;
}
$dynUid = $pathParts["filename"];
$proUid = basename($pathParts["dirname"]);
$pathHome = dirname($pathParts["dirname"]) . PATH_SEP;
self::createXMLFile($proUid, $dynUid, 'xmlform', $pathHome);
}
/**
* Create XML file.
*
* @param string $proUid
* @param string $dynUid
* @param string $dynType
* @param string $pathHome
*
* @see Dynaform->create()
* @see Form::createXMLFileIfNotExists()
* @link https://wiki.processmaker.com/3.1/Cases
* @link https://wiki.processmaker.com/index.php/2.5.X/DynaForms#XML_tab
*/
public static function createXMLFile($proUid, $dynUid, $dynType = 'xmlform', $pathHome = PATH_XMLFORM)
{
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$xml .= '<dynaForm type="' . $dynType . '" name="' . $proUid . '/' . $dynUid . '" width="500" enabletemplate="0" mode="" nextstepsave="prompt">' . "\n";
$xml .= '</dynaForm>';
G::verifyPath($pathHome . $proUid, true);
$file = fopen($pathHome . $proUid . '/' . $dynUid . '.xml', 'w');
fwrite($file, $xml);
fclose($file);
}
}

View File

@@ -2190,7 +2190,7 @@ class Processes
$labels = ['OUT_DOC_TITLE' => $row['OUT_DOC_TITLE'],
'OUT_DOC_DESCRIPTION' => !empty($row['OUT_DOC_DESCRIPTION']) ? $row['OUT_DOC_DESCRIPTION'] : '',
'OUT_DOC_FILENAME' => $row['OUT_DOC_FILENAME'],
'OUT_DOC_TEMPLATE' => $row['OUT_DOC_TEMPLATE']];
'OUT_DOC_TEMPLATE' => !empty($row['OUT_DOC_TEMPLATE']) ? $row['OUT_DOC_TEMPLATE'] : ''];
$this->insertToContentTable($con, $labels, $row['OUT_DOC_UID'], SYS_LANG);
}
$con->commit();

View File

@@ -223,14 +223,8 @@ class Dynaform extends BaseDynaform
$description = "Create from a PM Table: " . $addTabName . ", ";
}
G::auditLog("CreateDynaform", $description . "Dynaform Title: " . $aData['DYN_TITLE'] . ", Type: " . $aData['DYN_TYPE'] . ", Description: " . $aData['DYN_DESCRIPTION'] . ", Mode: " . $mode);
$sXml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sXml .= '<dynaForm type="' . $this->getDynType() . '" name="' . $this->getProUid() . '/' . $this->getDynUid() . '" width="500" enabletemplate="0" mode="" nextstepsave="prompt">' . "\n";
$sXml .= '</dynaForm>';
G::verifyPath(PATH_DYNAFORM . $this->getProUid(), true);
$oFile = fopen(PATH_DYNAFORM . $this->getProUid() . '/' . $this->getDynUid() . '.xml', 'w');
fwrite($oFile, $sXml);
fclose($oFile);
Form::createXMLFile($this->getProUid(), $this->getDynUid(), $this->getDynType(), PATH_DYNAFORM);
return $this->getDynUid();
} else {
$msg = '';