commit 1f7b3815c0199a3abc446d9990fad6433f6744a1
parent 12a6f5c67054d3aafd38ff922c38ba46aad6dbf8
Author: Marcel <MTRNord@users.noreply.github.com>
Date: Sat, 31 Oct 2015 17:44:32 +0100
Create smarty_internal_parsetree_tag.php
Diffstat:
1 file changed, 66 insertions(+), 0 deletions(-)
diff --git a/libs/smarty/sysplugins/smarty_internal_parsetree_tag.php b/libs/smarty/sysplugins/smarty_internal_parsetree_tag.php
@@ -0,0 +1,66 @@
+<?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 object $parser parser object
+ * @param string $data content
+ */
+ public function __construct($parser, $data)
+ {
+ $this->parser = $parser;
+ $this->data = $data;
+ $this->saved_block_nesting = $parser->block_nesting_level;
+ }
+
+ /**
+ * Return buffer content
+ *
+ * @return string content
+ */
+ public function to_smarty_php()
+ {
+ return $this->data;
+ }
+
+ /**
+ * Return complied code that loads the evaluated output of buffer content into a temporary variable
+ *
+ * @return string template code
+ */
+ public function assign_to_var()
+ {
+ $var = sprintf('$_tmp%d', ++ Smarty_Internal_Templateparser::$prefix_number);
+ $tmp = $this->parser->compiler->appendCode('<?php ob_start();?>', $this->data);
+ $tmp = $this->parser->compiler->appendCode($tmp, "<?php {$var}=ob_get_clean();?>");
+ $this->parser->compiler->prefix_code[] = sprintf("%s", $tmp);
+
+ return $var;
+ }
+}