escae output only if it's not an object

This commit is contained in:
Manuel Raynaud
2013-09-09 12:46:27 +02:00
parent 8e77e4b530
commit 77fc36fc91

View File

@@ -66,8 +66,6 @@ class SmartyParser extends Smarty implements ParserInterface
$this->debugging = $debug; $this->debugging = $debug;
$this->escape_html = true;
// Prevent smarty ErrorException: Notice: Undefined index bla bla bla... // Prevent smarty ErrorException: Notice: Undefined index bla bla bla...
$this->error_reporting = E_ALL ^ E_NOTICE; $this->error_reporting = E_ALL ^ E_NOTICE;
@@ -86,6 +84,7 @@ class SmartyParser extends Smarty implements ParserInterface
$this->registerFilter('pre', array($this, "preThelia")); $this->registerFilter('pre', array($this, "preThelia"));
$this->registerFilter('output', array($this, "removeBlankLines")); $this->registerFilter('output', array($this, "removeBlankLines"));
$this->registerFilter('variable', array(__CLASS__, "theliaEscape"));
} }
public function preThelia($tpl_source, \Smarty_Internal_Template $template) public function preThelia($tpl_source, \Smarty_Internal_Template $template)
@@ -101,6 +100,15 @@ class SmartyParser extends Smarty implements ParserInterface
return preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tpl_source); return preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tpl_source);
} }
public static function theliaEscape($content, $smarty)
{
if(!is_object($content)) {
return htmlspecialchars($content ,ENT_QUOTES, Smarty::$_CHARSET);
} else {
return $content;
}
}
public function setTemplate($template_path_from_template_base) public function setTemplate($template_path_from_template_base)
{ {
$this->template = $template_path_from_template_base; $this->template = $template_path_from_template_base;