diff --git a/htdocs/includes/odtphp/Segment.php b/htdocs/includes/odtphp/Segment.php
index cd8bec8c4ff..ca8797ba577 100644
--- a/htdocs/includes/odtphp/Segment.php
+++ b/htdocs/includes/odtphp/Segment.php
@@ -231,14 +231,10 @@ class Segment implements IteratorAggregate, Countable
//throw new SegmentException("var $key not found in {$this->getName()}");
}
- $value=$this->odf->htmlToUTFAndPreOdf($value);
+ $tag = $this->odf->getConfig('DELIMITER_LEFT') . $key . $this->odf->getConfig('DELIMITER_RIGHT');
- $value = $encode ? htmlspecialchars($value) : $value;
- $value = ($charset == 'ISO-8859') ? utf8_encode($value) : $value;
-
- $value=$this->odf->preOdfToOdf($value);
-
- $this->vars[$this->odf->getConfig('DELIMITER_LEFT') . $key . $this->odf->getConfig('DELIMITER_RIGHT')] = $value;
+ $this->vars[$tag] = $this->odf->convertVarToOdf($value, $encode, $charset);
+
return $this;
}
/**
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index 45e442462b4..88341da4adf 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -141,7 +141,23 @@ class Odf
//}
}
+ $this->vars[$tag] = $this->convertVarToOdf($value, $encode, $charset);
+
+ return $this;
+ }
+
+ /**
+ * Replaces html tags in odt tags and returns a compatible string
+ * @param string $key Name of the variable within the template
+ * @param string $value Replacement value
+ * @param bool $encode If true, special XML characters are encoded
+ * @param string $charset Charset
+ * @return string
+ */
+ public function convertVarToOdf($value, $encode = true, $charset = 'ISO-8859')
+ {
$value = ($charset == 'ISO-8859') ? utf8_encode($value) : $value;
+ $convertedValue = $value;
// Check if the value includes html tags
if ($this->_hasHtmlTag($value) === true) {
@@ -155,7 +171,7 @@ class Odf
''
);
- $this->vars[$tag] = $this->_replaceHtmlWithOdtTag($this->_getDataFromHtml($value), $customStyles, $fontDeclarations);
+ $convertedValue = $this->_replaceHtmlWithOdtTag($this->_getDataFromHtml($value), $customStyles, $fontDeclarations);
foreach ($customStyles as $key => $val) {
array_push($automaticStyles, '' . $val . '');
@@ -179,9 +195,9 @@ class Odf
}
$this->contentXml = str_replace('', $fonts . '', $this->contentXml);
}
- else $this->vars[$tag] = preg_replace('/(\r\n|\r|\n)/i', "", $value);
-
- return $this;
+ else $convertedValue = preg_replace('/(\r\n|\r|\n)/i', "", $value);
+
+ return $convertedValue;
}
/**