-<?php\r
-/**\r
- * Smarty Internal Plugin Compile Registered Function\r
- *\r
- * Compiles code for the execution of a registered function\r
- *\r
- * @package Smarty\r
- * @subpackage Compiler\r
- * @author Uwe Tews\r
- */\r
-\r
-/**\r
- * Smarty Internal Plugin Compile Registered Function Class\r
- *\r
- * @package Smarty\r
- * @subpackage Compiler\r
- */\r
-class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Internal_CompileBase {\r
-\r
- /**\r
- * Attribute definition: Overwrites base class.\r
- *\r
- * @var array\r
- * @see Smarty_Internal_CompileBase\r
- */\r
- public $optional_attributes = array('_any');\r
-\r
- /**\r
- * Compiles code for the execution of a registered function\r
- *\r
- * @param array $args array with attributes from parser\r
- * @param object $compiler compiler object\r
- * @param array $parameter array with compilation parameter\r
- * @param string $tag name of function\r
- * @return string compiled code\r
- */\r
- public function compile($args, $compiler, $parameter, $tag)\r
- {\r
- // This tag does create output\r
- $compiler->has_output = true;\r
- // check and get attributes\r
- $_attr = $this->getAttributes($compiler, $args);\r
- if ($_attr['nocache']) {\r
- $compiler->tag_nocache = true;\r
- }\r
- unset($_attr['nocache']);\r
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag])) {\r
- $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag];\r
- } else {\r
- $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_FUNCTION][$tag];\r
- }\r
- // not cachable?\r
- $compiler->tag_nocache = $compiler->tag_nocache || !$tag_info[1];\r
- // convert attributes into parameter array string\r
- $_paramsArray = array();\r
- foreach ($_attr as $_key => $_value) {\r
- if (is_int($_key)) {\r
- $_paramsArray[] = "$_key=>$_value";\r
- } elseif ($compiler->template->caching && in_array($_key,$tag_info[2])) {\r
- $_value = str_replace("'","^#^",$_value);\r
- $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";\r
- } else {\r
- $_paramsArray[] = "'$_key'=>$_value";\r
- }\r
- }\r
- $_params = 'array(' . implode(",", $_paramsArray) . ')';\r
- $function = $tag_info[0];\r
- // compile code\r
- if (!is_array($function)) {\r
- $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";\r
- } else if (is_object($function[0])) {\r
- $output = "<?php echo \$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['{$tag}'][0][0]->{$function[1]}({$_params},\$_smarty_tpl);?>\n";\r
- } else {\r
- $output = "<?php echo {$function[0]}::{$function[1]}({$_params},\$_smarty_tpl);?>\n";\r
- }\r
- return $output;\r
- }\r
-\r
-}\r
-\r
-?>
\ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Registered Function
+ * Compiles code for the execution of a registered function
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Registered Function Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Internal_CompileBase
+{
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $optional_attributes = array('_any');
+
+ /**
+ * Compiles code for the execution of a registered function
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of function
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter, $tag)
+ {
+ // This tag does create output
+ $compiler->has_output = true;
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+ if ($_attr['nocache']) {
+ $compiler->tag_nocache = true;
+ }
+ unset($_attr['nocache']);
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag])) {
+ $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag];
+ } else {
+ $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_FUNCTION][$tag];
+ }
+ // not cachable?
+ $compiler->tag_nocache = $compiler->tag_nocache || !$tag_info[1];
+ // convert attributes into parameter array string
+ $_paramsArray = array();
+ foreach ($_attr as $_key => $_value) {
+ if (is_int($_key)) {
+ $_paramsArray[] = "$_key=>$_value";
+ } elseif ($compiler->template->caching && in_array($_key, $tag_info[2])) {
+ $_value = str_replace("'", "^#^", $_value);
+ $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";
+ } else {
+ $_paramsArray[] = "'$_key'=>$_value";
+ }
+ }
+ $_params = 'array(' . implode(",", $_paramsArray) . ')';
+ $function = $tag_info[0];
+ // compile code
+ if (!is_array($function)) {
+ $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";
+ } elseif (is_object($function[0])) {
+ $output = "<?php echo \$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['{$tag}'][0][0]->{$function[1]}({$_params},\$_smarty_tpl);?>\n";
+ } else {
+ $output = "<?php echo {$function[0]}::{$function[1]}({$_params},\$_smarty_tpl);?>\n";
+ }
+
+ return $output;
+ }
+}