diff --git a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
index 218ae0620dd..4a230e8ca75 100644
--- a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
+++ b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
@@ -511,6 +511,7 @@ class doc_generic_project_odt extends ModelePDFProjects
else // Text
{
$odfHandler->setVars($key, $value, true, 'UTF-8');
+ $odfHandler->setVarsHeadFooter($key, $value, true, 'UTF-8');
}
}
catch(OdfException $e)
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index 4f737d15b71..7e72eb6f7e2 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -127,6 +127,33 @@ class Odf
$this->vars[$tag] = str_replace("\n", "", $value);
return $this;
}
+
+ /**
+ * Assing a template variable
+ *
+ * @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
+ * @throws OdfException
+ * @return odf
+ */
+ public function setVarsHeadFooter($key, $value, $encode = true, $charset = 'ISO-8859')
+ {
+ $tag = $this->config['DELIMITER_LEFT'] . $key . $this->config['DELIMITER_RIGHT'];
+ // TODO Warning string may be:
+ // {aaa}
+ // instead of {aaa} so we should enhance this function.
+ //print $key.'-'.$value.'-'.strpos($this->contentXml, $this->config['DELIMITER_LEFT'] . $key . $this->config['DELIMITER_RIGHT']).'
';
+ if (strpos($this->stylesXml, $tag) === false && strpos($this->stylesXml , $tag) === false) {
+ //if (strpos($this->contentXml, '">'. $key . '') === false) {
+ throw new OdfException("var $key not found in the document");
+ //}
+ }
+ $value = $encode ? htmlspecialchars($value) : $value;
+ $value = ($charset == 'ISO-8859') ? utf8_encode($value) : $value;
+ $this->vars[$tag] = str_replace("\n", "", $value);
+ return $this;
+ }
/**
* Evaluating php codes inside the ODT and output the buffer (print, echo) inplace of the code