aboutsummaryrefslogtreecommitdiffstats
path: root/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-07-03 22:23:08 -0700
committerfriendica <info@friendica.com>2012-07-03 22:23:08 -0700
commitfd626022ec02ef47b9142bba08180502babbd0ca (patch)
treeffc77e4e9cafdc6e20217f3970de982cabcbd838 /library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
parent13b4962531ca3c4f085b385a2c6b8f088abb7d6a (diff)
downloadvolse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.gz
volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.bz2
volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.zip
add smarty engine, remove some obsolete zot1 stuff
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php')
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php b/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
new file mode 100644
index 000000000..010d63592
--- /dev/null
+++ b/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Smarty Internal Plugin Function Call Handler
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ * @author Uwe Tews
+ */
+
+/**
+ * This class does call function defined with the {function} tag
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ */
+class Smarty_Internal_Function_Call_Handler {
+
+ /**
+ * This function handles calls to template functions defined by {function}
+ * It does create a PHP function at the first call
+ *
+ * @param string $_name template function name
+ * @param Smarty_Internal_Template $_template template object
+ * @param array $_params Smarty variables passed as call parameter
+ * @param string $_hash nocache hash value
+ * @param bool $_nocache nocache flag
+ */
+ public static function call($_name, Smarty_Internal_Template $_template, $_params, $_hash, $_nocache)
+ {
+ if ($_nocache) {
+ $_function = "smarty_template_function_{$_name}_nocache";
+ } else {
+ $_function = "smarty_template_function_{$_hash}_{$_name}";
+ }
+ if (!is_callable($_function)) {
+ $_code = "function {$_function}(\$_smarty_tpl,\$params) {
+ \$saved_tpl_vars = \$_smarty_tpl->tpl_vars;
+ foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);};
+ foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
+ if ($_nocache) {
+ $_code .= preg_replace(array("!<\?php echo \\'/\*%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/|/\*/%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/\\';\?>!",
+ "!\\\'!"), array('', "'"), $_template->smarty->template_functions[$_name]['compiled']);
+ $_template->smarty->template_functions[$_name]['called_nocache'] = true;
+ } else {
+ $_code .= preg_replace("/{$_template->smarty->template_functions[$_name]['nocache_hash']}/", $_template->properties['nocache_hash'], $_template->smarty->template_functions[$_name]['compiled']);
+ }
+ $_code .= "<?php \$_smarty_tpl->tpl_vars = \$saved_tpl_vars;}";
+ eval($_code);
+ }
+ $_function($_template, $_params);
+ }
+
+}
+
+?>