70 Zeilen
1.7 KiB
PHP
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;
|
|
}
|
|
}
|