diff options
author | Thomas Willingham <beardyunixer@beardyunixer.com> | 2014-12-11 20:15:27 +0000 |
---|---|---|
committer | Thomas Willingham <beardyunixer@beardyunixer.com> | 2014-12-11 20:15:27 +0000 |
commit | 967ab871b836f618107fe144978bd1453c3c6634 (patch) | |
tree | 1bcb1b4bb1b25c904a2bc06f5c6d526d29909eaa /library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php | |
parent | 960c35bad3a0dbaa7a1f2191aef60ad014d926ca (diff) | |
download | volse-hubzilla-967ab871b836f618107fe144978bd1453c3c6634.tar.gz volse-hubzilla-967ab871b836f618107fe144978bd1453c3c6634.tar.bz2 volse-hubzilla-967ab871b836f618107fe144978bd1453c3c6634.zip |
Update Smarty
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php index 5058bfbbd..dfb4572f4 100644 --- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php +++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php @@ -1,81 +1,79 @@ -<?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";
- } else if (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;
- }
-
-}
-
-?>
\ 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; + } +} |