PageTemplate/Fixup
* Don't try to be smart with the helper methods as they are used to escape user input.
This commit is contained in:
parent
c6d92031c5
commit
e675a8f953
5 changed files with 23 additions and 17 deletions
|
|
@ -207,27 +207,27 @@ class PageTemplate
|
|||
return Cfg::get($name);
|
||||
}
|
||||
|
||||
private function json(mixed $var, int $jsonFlags = 0x0) : string
|
||||
private function json(mixed $var, int $jsonFlags = 0x0, bool $varRef = false) : string
|
||||
{
|
||||
if (is_string($var) && $this->$var)
|
||||
$var = $this->$var;
|
||||
if (!is_string($var))
|
||||
return preg_replace('/script\s*\>/i', 'scr"+"ipt>', Util::toJSON($var, $jsonFlags) ?: "{}");
|
||||
|
||||
return preg_replace('/script\s*\>/i', 'scr"+"ipt>', Util::toJSON($var, $jsonFlags) ?: "{}");
|
||||
return preg_replace('/script\s*\>/i', 'scr"+"ipt>', Util::toJSON($varRef ? $this->$var : $var, $jsonFlags) ?: "{}");
|
||||
}
|
||||
|
||||
private function escHTML(string $var) : string|array
|
||||
private function escHTML(string $var, bool $varRef = false) : string|array
|
||||
{
|
||||
return Util::htmlEscape($this->$var ?? $var);
|
||||
return Util::htmlEscape($varRef ? $this->$var : $var);
|
||||
}
|
||||
|
||||
private function escJS(string $var) : string|array
|
||||
private function escJS(string $var, bool $varRef = false) : string|array
|
||||
{
|
||||
return Util::jsEscape($this->$var ?? $var);
|
||||
return Util::jsEscape($varRef ? $this->$var : $var);
|
||||
}
|
||||
|
||||
private function ucFirst(string $var) : string
|
||||
private function ucFirst(string $var, bool $varRef = false) : string
|
||||
{
|
||||
return Util::ucFirst($this->$var ?? $var);
|
||||
return Util::ucFirst($varRef ? $this->$var : $var);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -239,8 +239,11 @@ abstract class Util
|
|||
return 'b'.$_;
|
||||
}
|
||||
|
||||
public static function htmlEscape($data)
|
||||
public static function htmlEscape(string|array|null $data) : string|array
|
||||
{
|
||||
if (empty($data)) // null, '', [] and not "0"
|
||||
return '';
|
||||
|
||||
if (is_array($data))
|
||||
{
|
||||
foreach ($data as &$v)
|
||||
|
|
@ -252,8 +255,11 @@ abstract class Util
|
|||
return htmlspecialchars($data, ENT_QUOTES | ENT_DISALLOWED | ENT_HTML5, 'utf-8');
|
||||
}
|
||||
|
||||
public static function jsEscape($data)
|
||||
public static function jsEscape(string|array|null $data) : string|array
|
||||
{
|
||||
if (empty($data)) // null, '', [] and not "0"
|
||||
return '';
|
||||
|
||||
if (is_array($data))
|
||||
{
|
||||
foreach ($data as &$v)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue