1
0
Fork 0
smarty/libs/sysplugins/smarty_internal_parsetree_t...

70 Zeilen
1.7 KiB
PHP

<?php
/**
* Smarty Internal Plugin Templateparser Parse Tree
* These are classes to build parse tree in the template parser
*
* @package Smarty
* @subpackage Compiler
* @author Thue Kristensen
* @author Uwe Tews
*/
/**
* A complete smarty tag.
*
* @package Smarty
* @subpackage Compiler
* @ignore
*/
class Smarty_Internal_ParseTree_Tag extends Smarty_Internal_ParseTree
{
/**
* Saved block nesting level
*
* @var int
*/
public $saved_block_nesting;
/**
* Create parse tree buffer for Smarty tag
*
* @param \Smarty_Internal_Templateparser $parser parser object
* @param string $data content
*/
public function __construct(Smarty_Internal_Templateparser $parser, $data)
{
$this->data = $data;
$this->saved_block_nesting = $parser->block_nesting_level;
}
/**
* Return buffer content
*
* @param \Smarty_Internal_Templateparser $parser
*
* @return string content
*/
public function to_smarty_php(Smarty_Internal_Templateparser $parser)
{
return $this->data;
}
/**
* Return complied code that loads the evaluated output of buffer content into a temporary variable
*
* @param \Smarty_Internal_Templateparser $parser
*
* @return string template code
*/
public function assign_to_var(Smarty_Internal_Templateparser $parser)
{
$var = $parser->compiler->getNewPrefixVariable();
$tmp = $parser->compiler->appendCode('<?php ob_start();?>', $this->data);
$tmp = $parser->compiler->appendCode($tmp, "<?php {$var}=ob_get_clean();?>");
$parser->compiler->prefix_code[] = sprintf("%s", $tmp);
return $var;
}
}