/framework/vendor/smarty3/lib/libs/sysplugins/smarty_internal_function_call_handler.php
http://zoop.googlecode.com/ · PHP · 47 lines · 35 code · 0 blank · 12 comment · 3 complexity · 99674c24e5c80e2218c8cc671cf8154f MD5 · raw file
- <?php
- /**
- * Smarty Internal Plugin Function Call Handler
- *
- * @package Smarty
- * @subpackage PluginsInternal
- * @author Uwe Tews
- */
- /**
- * This class does call function defined with the {function} tag
- */
- class Smarty_Internal_Function_Call_Handler extends Smarty_Internal_Template {
- function __construct($name, $smarty, $parent, $nocache)
- {
- parent::__construct('string:', $smarty, $parent);
- if (!isset($this->smarty->template_functions[$name])) {
- throw new Exception("Call to undefined template function \"{$name}\" in template \"{$parent->template_resource}\"");
- }
- $this->called_nocache = $nocache;
- $this->mustCompile = false;
- if ($nocache) {
- $smarty->template_functions[$name]['called_nocache'] = true;
- $this->properties['function'][$name]['called_nocache'] = true;
- }
- $this->properties['nocache_hash'] = $smarty->template_functions[$name]['nocache_hash'];
- // load compiled function
- if ($nocache) {
- // if called in nocache mode convert nocache code to real code
- $this->compiled_template = preg_replace(array("!(<\?php echo ')?/\*/?%%SmartyNocache:{$this->smarty->template_functions[$name]['nocache_hash']}%%\*/(';\?>)?!", "!\\\'!"), array('', "'"), $smarty->template_functions[$name]['compiled']);
- } else {
- $this->compiled_template = $smarty->template_functions[$name]['compiled'];
- }
- // assign default paramter
- if (isset($smarty->template_functions[$name]['parameter'])) {
- $_smarty_tpl = $this;
- foreach ($smarty->template_functions[$name]['parameter'] as $_key => $_value) {
- $this->assign($_key, eval("return {$_value};"));
- }
- }
- // set flag if {function} contains nocache code
- if ($smarty->template_functions[$name]['has_nocache_code']) {
- $this->has_nocache_code = true;
- }
- }
- }
-
- ?>