X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2Fsmarty%2Fsysplugins%2Fsmarty_internal_compile_private_block_plugin.php;fp=WEB-INF%2Flib%2Fsmarty%2Fsysplugins%2Fsmarty_internal_compile_private_block_plugin.php;h=f61ff49094467e897f2bfeb0e685edaa7f3ef5de;hb=9a23a8c0a51b7ec38a96f525484134f3cb85dc7e;hp=0000000000000000000000000000000000000000;hpb=098a79f0819ebb89b7d48df4a6b154af4560f68e;p=timetracker.git diff --git a/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php new file mode 100644 index 00000000..f61ff490 --- /dev/null +++ b/WEB-INF/lib/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php @@ -0,0 +1,78 @@ +compiler = $compiler; + if (strlen($tag) < 6 || substr($tag, -5) != 'close') { + // opening tag of block plugin + // check and get attributes + $_attr = $this->_get_attributes($args); + if ($_attr['nocache'] === true) { + $this->compiler->tag_nocache = true; + } + unset($_attr['nocache']); + // convert attributes into parameter array string + $_paramsArray = array(); + foreach ($_attr as $_key => $_value) { + if (is_int($_key)) { + $_paramsArray[] = "$_key=>$_value"; + } else { + $_paramsArray[] = "'$_key'=>$_value"; + } + } + $_params = 'array(' . implode(",", $_paramsArray) . ')'; + + $this->_open_tag($tag, array($_params, $this->compiler->nocache)); + // maybe nocache because of nocache variables or nocache plugin + $this->compiler->nocache = $this->compiler->nocache | $this->compiler->tag_nocache; + // compile code + $output = "smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; {$function}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>"; + } else { + // must endblock be nocache? + if ($this->compiler->nocache) { + $this->compiler->tag_nocache = true; + } + // closing tag of block plugin, restore nocache + list($_params, $this->compiler->nocache) = $this->_close_tag(substr($tag, 0, -5)); + // This tag does create output + $this->compiler->has_output = true; + // compile code + if (!isset($parameter['modifier_list'])) { + $mod_pre = $mod_post =''; + } else { + $mod_pre = ' ob_start(); '; + $mod_post = 'echo '.$this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';'; + } + $output = "smarty->_tag_stack);?>"; + } + return $output . "\n"; + } +} + +?> \ No newline at end of file