37 public function compile($args, $compiler, $parameter, $tag)
39 if (!isset($tag[5]) || substr($tag,-5) !=
'close') {
43 if ($_attr[
'nocache']) {
44 $compiler->tag_nocache =
true;
46 unset($_attr[
'nocache']);
53 $_paramsArray = array();
54 foreach ($_attr as $_key => $_value) {
56 $_paramsArray[] =
"$_key=>$_value";
57 }
elseif ($compiler->template->caching && in_array($_key,$tag_info[2])) {
58 $_value = str_replace(
"'",
"^#^",$_value);
59 $_paramsArray[] =
"'$_key'=>^#^.var_export($_value,true).^#^";
61 $_paramsArray[] =
"'$_key'=>$_value";
64 $_params =
'array(' . implode(
",", $_paramsArray) .
')';
66 $this->
openTag($compiler, $tag, array($_params, $compiler->nocache));
68 $compiler->nocache = !$tag_info[1] | $compiler->nocache | $compiler->tag_nocache;
69 $function = $tag_info[0];
71 if (!is_array($function)) {
72 $output =
"<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
73 }
else if (is_object($function[0])) {
74 $output =
"<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo \$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0][0]->{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
76 $output =
"<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function[0]}::{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
80 if ($compiler->nocache) {
81 $compiler->tag_nocache =
true;
83 $base_tag = substr($tag, 0, -5);
85 list($_params, $compiler->nocache) = $this->
closeTag($compiler, $base_tag);
87 $compiler->has_output =
true;
94 if (!isset($parameter[
'modifier_list'])) {
95 $mod_pre = $mod_post =
'';
97 $mod_pre =
' ob_start(); ';
98 $mod_post =
'echo '.$compiler->compileTag(
'private_modifier',array(),array(
'modifierlist'=>$parameter[
'modifier_list'],
'value'=>
'ob_get_clean()')).
';';
100 if (!is_array($function)) {
101 $output =
"<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre.
" echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat);".$mod_post.
" } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
102 }
else if (is_object($function[0])) {
103 $output =
"<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre.
" echo \$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0][0]->{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post.
"} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
105 $output =
"<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre.
" echo {$function[0]}::{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post.
"} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
openTag($compiler, $openTag, $data=null)
Push opening tag name on stack.
getAttributes($compiler, $attributes)
This function checks if the attributes passed are valid.
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
compile($args, $compiler, $parameter, $tag)
Compiles code for the execution of a block function.
closeTag($compiler, $expectedTag)
Pop closing tag.