From 51609351f2c4b5082b7e6f0744cd3811c325303f Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 11 Oct 2016 14:01:29 +0200 Subject: * initial template --- ...y_internal_compile_private_special_variable.php | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 lib/smarty/sysplugins/smarty_internal_compile_private_special_variable.php (limited to 'lib/smarty/sysplugins/smarty_internal_compile_private_special_variable.php') diff --git a/lib/smarty/sysplugins/smarty_internal_compile_private_special_variable.php b/lib/smarty/sysplugins/smarty_internal_compile_private_special_variable.php new file mode 100644 index 0000000..f9adcec --- /dev/null +++ b/lib/smarty/sysplugins/smarty_internal_compile_private_special_variable.php @@ -0,0 +1,104 @@ +getVariable('smarty')->value$parameter"; + case 'section': + return "\$_smarty_tpl->getVariable('smarty')->value$parameter"; + case 'capture': + return "Smarty::\$_smarty_vars$parameter"; + case 'now': + return 'time()'; + case 'cookies': + if (isset($compiler->smarty->security_policy) && !$compiler->smarty->security_policy->allow_super_globals) { + $compiler->trigger_template_error("(secure mode) super globals not permitted"); + break; + } + $compiled_ref = '$_COOKIE'; + break; + + case 'get': + case 'post': + case 'env': + case 'server': + case 'session': + case 'request': + if (isset($compiler->smarty->security_policy) && !$compiler->smarty->security_policy->allow_super_globals) { + $compiler->trigger_template_error("(secure mode) super globals not permitted"); + break; + } + $compiled_ref = '$_'.strtoupper($variable); + break; + + case 'template': + return 'basename($_smarty_tpl->source->filepath)'; + + case 'current_dir': + return 'dirname($_smarty_tpl->source->filepath)'; + + case 'version': + $_version = Smarty::SMARTY_VERSION; + return "'$_version'"; + + case 'const': + if (isset($compiler->smarty->security_policy) && !$compiler->smarty->security_policy->allow_constants) { + $compiler->trigger_template_error("(secure mode) constants not permitted"); + break; + } + return '@' . trim($_index[1], "'"); + + case 'config': + return "\$_smarty_tpl->getConfigVariable($_index[1])"; + case 'ldelim': + $_ldelim = $compiler->smarty->left_delimiter; + return "'$_ldelim'"; + + case 'rdelim': + $_rdelim = $compiler->smarty->right_delimiter; + return "'$_rdelim'"; + + default: + $compiler->trigger_template_error('$smarty.' . trim($_index[0], "'") . ' is invalid'); + break; + } + if (isset($_index[1])) { + array_shift($_index); + foreach ($_index as $_ind) { + $compiled_ref = $compiled_ref . "[$_ind]"; + } + } + return $compiled_ref; + } + +} + +?> \ No newline at end of file -- cgit v1.2.3