summaryrefslogtreecommitdiff
path: root/lib/smarty/sysplugins/smarty_internal_compile_call.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/smarty/sysplugins/smarty_internal_compile_call.php')
-rw-r--r--lib/smarty/sysplugins/smarty_internal_compile_call.php87
1 files changed, 23 insertions, 64 deletions
diff --git a/lib/smarty/sysplugins/smarty_internal_compile_call.php b/lib/smarty/sysplugins/smarty_internal_compile_call.php
index af12a04..445cabc 100644
--- a/lib/smarty/sysplugins/smarty_internal_compile_call.php
+++ b/lib/smarty/sysplugins/smarty_internal_compile_call.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Function_Call
- *
* Compiles the calls of user defined tags defined by {function}
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Function_Call Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -24,6 +23,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
* @see Smarty_Internal_CompileBase
*/
public $required_attributes = array('name');
+
/**
* Attribute definition: Overwrites base class.
*
@@ -31,6 +31,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
* @see Smarty_Internal_CompileBase
*/
public $shorttag_order = array('name');
+
/**
* Attribute definition: Overwrites base class.
*
@@ -42,9 +43,9 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
/**
* Compiles the calls of user defined tags defined by {function}
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -52,17 +53,15 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
// save possible attributes
- if (isset($_attr['assign'])) {
- // output will be stored in a smarty variable instead of beind displayed
- $_assign = $_attr['assign'];
+ if (isset($_attr[ 'assign' ])) {
+ // output will be stored in a smarty variable instead of being displayed
+ $_assign = $_attr[ 'assign' ];
}
- $_name = $_attr['name'];
- if ($compiler->compiles_template_function) {
- $compiler->called_functions[] = trim($_name, "'\"");
- }
- unset($_attr['name'], $_attr['assign'], $_attr['nocache']);
+ //$_name = trim($_attr['name'], "''");
+ $_name = $_attr[ 'name' ];
+ unset($_attr[ 'name' ], $_attr[ 'assign' ], $_attr[ 'nocache' ]);
// set flag (compiled code of {function} must be included in cache file
- if ($compiler->nocache || $compiler->tag_nocache) {
+ if (!$compiler->template->caching || $compiler->nocache || $compiler->tag_nocache) {
$_nocache = 'true';
} else {
$_nocache = 'false';
@@ -75,56 +74,16 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
$_paramsArray[] = "'$_key'=>$_value";
}
}
- if (isset($compiler->template->properties['function'][$_name]['parameter'])) {
- foreach ($compiler->template->properties['function'][$_name]['parameter'] as $_key => $_value) {
- if (!isset($_attr[$_key])) {
- if (is_int($_key)) {
- $_paramsArray[] = "$_key=>$_value";
- } else {
- $_paramsArray[] = "'$_key'=>$_value";
- }
- }
- }
- } elseif (isset($compiler->smarty->template_functions[$_name]['parameter'])) {
- foreach ($compiler->smarty->template_functions[$_name]['parameter'] as $_key => $_value) {
- if (!isset($_attr[$_key])) {
- if (is_int($_key)) {
- $_paramsArray[] = "$_key=>$_value";
- } else {
- $_paramsArray[] = "'$_key'=>$_value";
- }
- }
- }
- }
- //varibale name?
- if (!(strpos($_name, '$') === false)) {
- $call_cache = $_name;
- $call_function = '$tmp = "smarty_template_function_".' . $_name . '; $tmp';
- } else {
- $_name = trim($_name, "'\"");
- $call_cache = "'{$_name}'";
- $call_function = 'smarty_template_function_' . $_name;
- }
-
- $_params = 'array(' . implode(",", $_paramsArray) . ')';
- $_hash = str_replace('-', '_', $compiler->template->properties['nocache_hash']);
+ $_params = 'array(' . implode(',', $_paramsArray) . ')';
+ //$compiler->suppressNocacheProcessing = true;
// was there an assign attribute
if (isset($_assign)) {
- if ($compiler->template->caching) {
- $_output = "<?php ob_start(); Smarty_Internal_Function_Call_Handler::call ({$call_cache},\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
- } else {
- $_output = "<?php ob_start(); {$call_function}(\$_smarty_tpl,{$_params}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
- }
+ $_output =
+ "<?php ob_start();\n\$_smarty_tpl->smarty->ext->_tplFunction->callTemplateFunction(\$_smarty_tpl, {$_name}, {$_params}, {$_nocache});\n\$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
} else {
- if ($compiler->template->caching) {
- $_output = "<?php Smarty_Internal_Function_Call_Handler::call ({$call_cache},\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache});?>\n";
- } else {
- $_output = "<?php {$call_function}(\$_smarty_tpl,{$_params});?>\n";
- }
+ $_output =
+ "<?php \$_smarty_tpl->smarty->ext->_tplFunction->callTemplateFunction(\$_smarty_tpl, {$_name}, {$_params}, {$_nocache});?>\n";
}
return $_output;
}
-
}
-
-?> \ No newline at end of file