Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1141185
smarty_internal_compile_call.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
smarty_internal_compile_call.php
View Options
<?php
/**
* Smarty Internal Plugin Compile Function_Call
*
* Compiles the calls of user defined tags defined by {function}
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Function_Call Class
*
* @package Smarty
* @subpackage Compiler
*/
class
Smarty_Internal_Compile_Call
extends
Smarty_Internal_CompileBase
{
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$required_attributes
=
array
(
'name'
);
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$shorttag_order
=
array
(
'name'
);
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$optional_attributes
=
array
(
'_any'
);
/**
* 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
* @return string compiled code
*/
public
function
compile
(
$args
,
$compiler
)
{
// 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'
];
}
$_name
=
$_attr
[
'name'
];
if
(
$compiler
->
compiles_template_function
)
{
$compiler
->
called_functions
[]
=
trim
(
$_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
)
{
$_nocache
=
'true'
;
}
else
{
$_nocache
=
'false'
;
}
$_paramsArray
=
array
();
foreach
(
$_attr
as
$_key
=>
$_value
)
{
if
(
is_int
(
$_key
))
{
$_paramsArray
[]
=
"$_key=>$_value"
;
}
else
{
$_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'
]);
// 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
"
;
}
}
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
"
;
}
}
return
$_output
;
}
}
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Thu, Jul 31, 07:58 (2 d, 15 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25614
Default Alt Text
smarty_internal_compile_call.php (4 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment