diff options
author | Mario Vavti <mario@mariovavti.com> | 2015-12-06 21:09:58 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2015-12-06 21:09:58 +0100 |
commit | 26c465ad0c1d5b6801507ed190430f44ac92c672 (patch) | |
tree | 9e80c34da1235e6dd55942c23bf9511fac31344d /library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php | |
parent | f2d70831838b0738e6895296f3e8ce02f86fec2f (diff) | |
download | volse-hubzilla-26c465ad0c1d5b6801507ed190430f44ac92c672.tar.gz volse-hubzilla-26c465ad0c1d5b6801507ed190430f44ac92c672.tar.bz2 volse-hubzilla-26c465ad0c1d5b6801507ed190430f44ac92c672.zip |
update smarty to 3.1.28-dev which fixes a bug where changes in a template are only visible on the second pageload which is annoying for developing
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php | 58 |
1 files changed, 44 insertions, 14 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php b/library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php index 7d814edaa..623ae51a3 100644 --- a/library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php +++ b/library/Smarty/libs/sysplugins/smarty_internal_parsetree_template.php @@ -29,19 +29,18 @@ class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree /** * Create root of parse tree for template elements * - * @param object $parser parse object */ - public function __construct($parser) + public function __construct() { - $this->parser = $parser; } /** * Append buffer to subtree * - * @param Smarty_Internal_ParseTree $subtree + * @param \Smarty_Internal_Templateparser $parser + * @param Smarty_Internal_ParseTree $subtree */ - public function append_subtree(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); @@ -53,37 +52,68 @@ class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree } /** + * 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() + public function to_smarty_php(Smarty_Internal_Templateparser $parser) { $code = ''; for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key ++) { if ($this->subtrees[$key] instanceof Smarty_Internal_ParseTree_Text) { - $subtree = $this->subtrees[$key]->to_smarty_php(); - while ($key + 1 < $cnt && ($this->subtrees[$key + 1] instanceof Smarty_Internal_ParseTree_Text || $this->subtrees[$key + 1]->data == '')) { + $subtree = $this->subtrees[$key]->to_smarty_php($parser); + while ($key + 1 < $cnt && ($this->subtrees[$key + 1] instanceof Smarty_Internal_ParseTree_Text || + $this->subtrees[$key + 1]->data == '')) { $key ++; if ($this->subtrees[$key]->data == '') { continue; } - $subtree .= $this->subtrees[$key]->to_smarty_php(); + $subtree .= $this->subtrees[$key]->to_smarty_php($parser); } if ($subtree == '') { continue; } - $code .= preg_replace('/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/', "<?php echo '\$1'; ?>\n", $subtree); + $code .= preg_replace('/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/', "<?php echo '\$1'; ?>\n", + $subtree); continue; } if ($this->subtrees[$key] instanceof Smarty_Internal_ParseTree_Tag) { - $subtree = $this->subtrees[$key]->to_smarty_php(); - while ($key + 1 < $cnt && ($this->subtrees[$key + 1] instanceof Smarty_Internal_ParseTree_Tag || $this->subtrees[$key + 1]->data == '')) { + $subtree = $this->subtrees[$key]->to_smarty_php($parser); + while ($key + 1 < $cnt && ($this->subtrees[$key + 1] instanceof Smarty_Internal_ParseTree_Tag || + $this->subtrees[$key + 1]->data == '')) { $key ++; if ($this->subtrees[$key]->data == '') { continue; } - $subtree = $this->parser->compiler->appendCode($subtree, $this->subtrees[$key]->to_smarty_php()); + $subtree = $parser->compiler->appendCode($subtree, $this->subtrees[$key]->to_smarty_php($parser)); } if ($subtree == '') { continue; @@ -91,7 +121,7 @@ class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree $code .= $subtree; continue; } - $code .= $this->subtrees[$key]->to_smarty_php(); + $code .= $this->subtrees[$key]->to_smarty_php($parser); } return $code; } |