diff --git a/NEWS b/NEWS index 640f8b0e..8ed4058f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,4 @@ +- separate handling of comment blocks from 'special blocks' (boots) - fix handling of block-methods of registered objects (El Hombre Gris, messju) diff --git a/libs/Smarty_Compiler.class.php b/libs/Smarty_Compiler.class.php index f51ab288..c6602270 100644 --- a/libs/Smarty_Compiler.class.php +++ b/libs/Smarty_Compiler.class.php @@ -240,6 +240,9 @@ class Smarty_Compiler extends Smarty { $ldq = preg_quote($this->left_delimiter, '~'); $rdq = preg_quote($this->right_delimiter, '~'); + /* kill comments */ + $source_content = preg_replace("~{$ldq}\*(.*?)\*{$rdq}~", '', $source_content); + // run template source through prefilter functions if (count($this->_plugins['prefilter']) > 0) { foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) { @@ -255,7 +258,7 @@ class Smarty_Compiler extends Smarty { } /* fetch all special blocks */ - $search = "~{$ldq}\*(.*?)\*{$rdq}|{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}|{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}~s"; + $search = "~{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}|{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}~s"; preg_match_all($search, $source_content, $match, PREG_SET_ORDER); $this->_folded_blocks = $match;