3 * Smarty Internal Plugin Templateparser Parse Tree
4 * These are classes to build parse tree in the template parser
8 * @author Thue Kristensen
13 * A complete smarty tag.
16 * @subpackage Compiler
19 class Smarty_Internal_ParseTree_Tag extends Smarty_Internal_ParseTree
23 * Saved block nesting level
27 public $saved_block_nesting;
30 * Create parse tree buffer for Smarty tag
32 * @param \Smarty_Internal_Templateparser $parser parser object
33 * @param string $data content
35 public function __construct(Smarty_Internal_Templateparser $parser, $data)
38 $this->saved_block_nesting = $parser->block_nesting_level;
42 * Return buffer content
44 * @param \Smarty_Internal_Templateparser $parser
46 * @return string content
48 public function to_smarty_php(Smarty_Internal_Templateparser $parser)
54 * Return complied code that loads the evaluated output of buffer content into a temporary variable
56 * @param \Smarty_Internal_Templateparser $parser
58 * @return string template code
60 public function assign_to_var(Smarty_Internal_Templateparser $parser)
62 $var = $parser->compiler->getNewPrefixVariable();
63 $tmp = $parser->compiler->appendCode('<?php ob_start();?>', $this->data);
64 $tmp = $parser->compiler->appendCode($tmp, "<?php {$var}=ob_get_clean();?>");
65 $parser->compiler->prefix_code[] = sprintf("%s", $tmp);