From f3e7b7234d7e391e4d3e3ccce4295379333f47a0 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Wed, 22 Jan 2014 09:59:52 -0400 Subject: [PATCH] BUG 13942 Mala generacion de output document Processmaker 2.5.2 SOLVED - Los saltos de linea no estaban siendo parseados correctamente debido a un cambio previo en la version 2.5.2 - Se repuso y adapto parte del codigo que hacia el cambio de los saltos de linea --- gulliver/system/class.g.php | 29 ++++++++++++++----- .../engine/classes/model/OutputDocument.php | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/gulliver/system/class.g.php b/gulliver/system/class.g.php index 359c52747..2a0d773ae 100755 --- a/gulliver/system/class.g.php +++ b/gulliver/system/class.g.php @@ -1727,7 +1727,7 @@ class G * @param type Array $aFields * @return type String */ - public function replaceDataGridField($sContent, $aFields) + public function replaceDataGridField($sContent, $aFields, $nl2brRecursive = true) { $nrt = array("\n", "\r", "\t"); $nrthtml = array("(n /)", "(r /)", "(t /)"); @@ -1760,6 +1760,13 @@ class G if (isset($aFields[$grdName]) && is_array($aFields[$grdName])) { foreach ($aFields[$grdName] as $aRow) { + if ($nl2brRecursive) { + foreach ($aRow as $sKey => $vValue) { + if (!is_array($vValue)) { + $aRow[$sKey] = nl2br($aRow[$sKey]); + } + } + } $strData = $strData . G::replaceDataField($arrayMatch2[2], $aRow); } } @@ -1778,6 +1785,14 @@ class G $sContent = $strContentAux; + if ($nl2brRecursive) { + foreach ($aFields as $sKey => $vValue) { + if (!is_array($vValue)) { + $aFields[$sKey] = nl2br($aFields[$sKey]); + } + } + } + $sContent = G::replaceDataField($sContent, $aFields); return $sContent; @@ -5219,7 +5234,7 @@ class G return in_array(strtolower($functionName), $allFunctions['user']); } - /** + /** * Constructor for inputFilter class. Only first parameter is required. * @access constructor * @data Mixed - input string/array-of-string to be 'cleaned' @@ -5235,11 +5250,11 @@ class G $filtro = new InputFilter($tagsArray , $attrArray, $tagsMethod, $attrMethod, $xssAuto); return $filtro->process($data); } - + /** - * Stores a message in the log file, if the file size exceeds + * Stores a message in the log file, if the file size exceeds * specified log file is renamed and a new one is created. - * + * * @param type $message * @param type $pathData * @param type $file @@ -5248,9 +5263,9 @@ class G { $config = System::getSystemConfiguration(); G::LoadSystem('logger'); - + $oLogger =& Logger::getSingleton($pathData, PATH_SEP, $file); - $oLogger->limitFile = $config['number_log_file']; + $oLogger->limitFile = $config['number_log_file']; $oLogger->limitSize = $config['size_log_file']; $oLogger->write($message); } diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 5c0b0c2e1..e2061789b 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -477,7 +477,7 @@ class OutputDocument extends BaseOutputDocument public function generate($sUID, $aFields, $sPath, $sFilename, $sContent, $sLandscape = false, $sTypeDocToGener = 'BOTH', $aProperties = array()) { if (($sUID != '') && is_array($aFields) && ($sPath != '')) { - $sContent = nl2br(G::replaceDataGridField($sContent, $aFields)); + $sContent = G::replaceDataGridField($sContent, $aFields); G::verifyPath($sPath, true);