12 require_once( SMARTY_PLUGINS_DIR .
'shared.literal_compiler_param.php' );
28 static $_double_encode = null;
29 if ($_double_encode === null) {
30 $_double_encode = version_compare(PHP_VERSION,
'5.2.3',
'>=');
44 if ($_double_encode) {
45 return 'htmlspecialchars('
46 . $params[0] .
', ENT_QUOTES, '
47 . var_export($char_set,
true) .
', '
48 . var_export($double_encode,
true) .
')';
49 }
else if ($double_encode) {
50 return 'htmlspecialchars('
51 . $params[0] .
', ENT_QUOTES, '
52 . var_export($char_set,
true) .
')';
59 if ($_double_encode) {
61 return 'mb_convert_encoding(htmlspecialchars('
62 . $params[0] .
', ENT_QUOTES, '
63 . var_export($char_set,
true) .
', '
64 . var_export($double_encode,
true)
65 .
'), "HTML-ENTITIES", '
66 . var_export($char_set,
true) .
')';
67 }
else if ($double_encode) {
69 return 'mb_convert_encoding(htmlspecialchars('
70 . $params[0] .
', ENT_QUOTES, '
71 . var_export($char_set,
true)
72 .
'), "HTML-ENTITIES", '
73 . var_export($char_set,
true) .
')';
80 if ($_double_encode) {
82 return 'htmlentities('
83 . $params[0] .
', ENT_QUOTES, '
84 . var_export($char_set,
true) .
', '
85 . var_export($double_encode,
true) .
')';
86 }
else if ($double_encode) {
88 return 'htmlentities('
89 . $params[0] .
', ENT_QUOTES, '
90 . var_export($char_set,
true) .
')';
96 return 'rawurlencode(' . $params[0] .
')';
99 return 'str_replace("%2F", "/", rawurlencode(' . $params[0] .
'))';
103 return 'preg_replace("%(?<!\\\\\\\\)\'%", "\\\'",' . $params[0] .
')';
107 return 'strtr(' . $params[0] .
', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
115 if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
116 $compiler->template->required_plugins[
'nocache'][
'escape'][
'modifier'][
'file'] = SMARTY_PLUGINS_DIR .
'modifier.escape.php';
117 $compiler->template->required_plugins[
'nocache'][
'escape'][
'modifier'][
'function'] =
'smarty_modifier_escape';
119 $compiler->template->required_plugins[
'compiled'][
'escape'][
'modifier'][
'file'] = SMARTY_PLUGINS_DIR .
'modifier.escape.php';
120 $compiler->template->required_plugins[
'compiled'][
'escape'][
'modifier'][
'function'] =
'smarty_modifier_escape';
122 return 'smarty_modifier_escape(' . join(
', ', $params ) .
')';
static $_MBSTRING
Flag denoting if Multibyte String functions are available.
smarty_modifiercompiler_escape($params, $compiler)
static $_CHARSET
The character set to adhere to (e.g.
smarty_literal_compiler_param($params, $index, $default=null)
evaluate compiler parameter