- bugfix other {strip} error with output tags between hmtl https://github.com/smarty-php/smarty/issues/180

This commit is contained in:
uwetews
2016-02-10 21:12:35 +01:00
parent a8d3373f26
commit 9c37394ccb
3 changed files with 5 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
- bugfix {strip} must keep space on output creating smarty tags within html tags https://github.com/smarty-php/smarty/issues/177 - bugfix {strip} must keep space on output creating smarty tags within html tags https://github.com/smarty-php/smarty/issues/177
- bugfix wrong precedence on special if conditions like '$foo is ... by $bar' could cause wrong code https://github.com/smarty-php/smarty/issues/178 - bugfix wrong precedence on special if conditions like '$foo is ... by $bar' could cause wrong code https://github.com/smarty-php/smarty/issues/178
- improvement because of ambiguities the inline constant support has been removed from the $foo.bar syntax https://github.com/smarty-php/smarty/issues/149 - improvement because of ambiguities the inline constant support has been removed from the $foo.bar syntax https://github.com/smarty-php/smarty/issues/149
- bugfix other {strip} error with output tags between hmtl https://github.com/smarty-php/smarty/issues/180
09.02.2016 09.02.2016
- move some code from parser into compiler - move some code from parser into compiler

View File

@@ -121,7 +121,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/** /**
* smarty version * smarty version
*/ */
const SMARTY_VERSION = '3.1.30-dev/37'; const SMARTY_VERSION = '3.1.30-dev/38';
/** /**
* define variable scopes * define variable scopes

View File

@@ -794,7 +794,6 @@ abstract class Smarty_Internal_TemplateCompilerBase
if ((string) $text != '') { if ((string) $text != '') {
$store = array(); $store = array();
$_store = 0; $_store = 0;
$space = '';
if ($this->parser->strip) { if ($this->parser->strip) {
if (strpos($text, '<') !== false) { if (strpos($text, '<') !== false) {
// capture html elements not to be messed with // capture html elements not to be messed with
@@ -817,7 +816,7 @@ abstract class Smarty_Internal_TemplateCompilerBase
'#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1\2', '#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1\2',
// remove spaces between attributes (but not in attribute values!) // remove spaces between attributes (but not in attribute values!)
'#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5', '#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5',
'#^\s+<#Ss' => '<', '#>\s+$#Ss' => '>', $this->stripRegEx => '',); '#^\s+<#Ss' => $this->has_output ? ' <' : '<', '#>[\040\011]+$#Ss' => '> ', '#>[\040\011]*[\n]\s*$#Ss' => '>', $this->stripRegEx => '',);
$text = preg_replace(array_keys($expressions), array_values($expressions), $text); $text = preg_replace(array_keys($expressions), array_values($expressions), $text);
$_offset = 0; $_offset = 0;
@@ -832,13 +831,12 @@ abstract class Smarty_Internal_TemplateCompilerBase
$_store ++; $_store ++;
} }
} }
$space = $this->has_output && !preg_match('/^\s/', $text) ? ' ' : '';
} else { } else {
$text = preg_replace($this->stripRegEx, '', $text); $text = preg_replace($this->stripRegEx, '', $text);
} }
} }
$this->has_output = false; $this->has_output = false;
return new Smarty_Internal_ParseTree_Text($space . $text); return new Smarty_Internal_ParseTree_Text($text);
} }
return null; return null;
} }