summaryrefslogtreecommitdiff
path: root/libs/sysplugins/smarty_internal_parsetree_template.php
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sysplugins/smarty_internal_parsetree_template.php')
-rw-r--r--libs/sysplugins/smarty_internal_parsetree_template.php169
1 files changed, 0 insertions, 169 deletions
diff --git a/libs/sysplugins/smarty_internal_parsetree_template.php b/libs/sysplugins/smarty_internal_parsetree_template.php
deleted file mode 100644
index 829c420f..00000000
--- a/libs/sysplugins/smarty_internal_parsetree_template.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?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
- */
-
-/**
- * Template element
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree
-{
- /**
- * Array of template elements
- *
- * @var array
- */
- public $subtrees = array();
-
- /**
- * Create root of parse tree for template elements
- */
- public function __construct()
- {
- }
-
- /**
- * Append buffer to subtree
- *
- * @param \Smarty_Internal_Templateparser $parser
- * @param Smarty_Internal_ParseTree $subtree
- */
- public function append_subtree(Smarty_Internal_Templateparser $parser, Smarty_Internal_ParseTree $subtree)
- {
- if (!empty($subtree->subtrees)) {
- $this->subtrees = array_merge($this->subtrees, $subtree->subtrees);
- } else {
- if ($subtree->data !== '') {
- $this->subtrees[] = $subtree;
- }
- }
- }
-
- /**
- * Append array to subtree
- *
- * @param \Smarty_Internal_Templateparser $parser
- * @param \Smarty_Internal_ParseTree[] $array
- */
- public function append_array(Smarty_Internal_Templateparser $parser, $array = array())
- {
- if (!empty($array)) {
- $this->subtrees = array_merge($this->subtrees, (array)$array);
- }
- }
-
- /**
- * Prepend array to subtree
- *
- * @param \Smarty_Internal_Templateparser $parser
- * @param \Smarty_Internal_ParseTree[] $array
- */
- public function prepend_array(Smarty_Internal_Templateparser $parser, $array = array())
- {
- if (!empty($array)) {
- $this->subtrees = array_merge((array)$array, $this->subtrees);
- }
- }
-
- /**
- * Sanitize and merge subtree buffers together
- *
- * @param \Smarty_Internal_Templateparser $parser
- *
- * @return string template code content
- */
- public function to_smarty_php(Smarty_Internal_Templateparser $parser)
- {
- $code = '';
-
- foreach ($this->getChunkedSubtrees() as $chunk) {
- $text = '';
- switch ($chunk['mode']) {
- case 'textstripped':
- foreach ($chunk['subtrees'] as $subtree) {
- $text .= $subtree->to_smarty_php($parser);
- }
- $code .= preg_replace(
- '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
- "<?php echo '\$1'; ?>\n",
- $parser->compiler->processText($text)
- );
- break;
- case 'text':
- foreach ($chunk['subtrees'] as $subtree) {
- $text .= $subtree->to_smarty_php($parser);
- }
- $code .= preg_replace(
- '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
- "<?php echo '\$1'; ?>\n",
- $text
- );
- break;
- case 'tag':
- foreach ($chunk['subtrees'] as $subtree) {
- $text = $parser->compiler->appendCode($text, $subtree->to_smarty_php($parser));
- }
- $code .= $text;
- break;
- default:
- foreach ($chunk['subtrees'] as $subtree) {
- $text = $subtree->to_smarty_php($parser);
- }
- $code .= $text;
-
- }
- }
- return $code;
- }
-
- private function getChunkedSubtrees() {
- $chunks = array();
- $currentMode = null;
- $currentChunk = array();
- for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
-
- if ($this->subtrees[ $key ]->data === '' && in_array($currentMode, array('textstripped', 'text', 'tag'))) {
- continue;
- }
-
- if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text
- && $this->subtrees[ $key ]->isToBeStripped()) {
- $newMode = 'textstripped';
- } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text) {
- $newMode = 'text';
- } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Tag) {
- $newMode = 'tag';
- } else {
- $newMode = 'other';
- }
-
- if ($newMode == $currentMode) {
- $currentChunk[] = $this->subtrees[ $key ];
- } else {
- $chunks[] = array(
- 'mode' => $currentMode,
- 'subtrees' => $currentChunk
- );
- $currentMode = $newMode;
- $currentChunk = array($this->subtrees[ $key ]);
- }
- }
- if ($currentMode && $currentChunk) {
- $chunks[] = array(
- 'mode' => $currentMode,
- 'subtrees' => $currentChunk
- );
- }
- return $chunks;
- }
-}