mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 02:44:27 +02:00
- bugfix resolve naming conflict between custom Smarty delimiter '<%' and PHP ASP tags https://github.com/smarty-php/smarty/issues/64
This commit is contained in:
@@ -260,7 +260,8 @@ class Smarty_Internal_Templatelexer
|
|||||||
namespace = ~([0-9]*[a-zA-Z_]\w*)?(\\[0-9]*[a-zA-Z_]\w*)+~
|
namespace = ~([0-9]*[a-zA-Z_]\w*)?(\\[0-9]*[a-zA-Z_]\w*)+~
|
||||||
all = ~[\S\s]+~
|
all = ~[\S\s]+~
|
||||||
emptyjava = ~[{][}]~
|
emptyjava = ~[{][}]~
|
||||||
phpstart = ~(<[?]((php\s+|=)|\s+))|(<[%])|(<[?]xml\s+)|(<script\s+language\s*=\s*["']?\s*php\s*["']?\s*>)|([?][>])|([%][>])|(SMARTYldel\s*php(.*?)SMARTYrdel)|(SMARTYldel\s*[/]phpSMARTYrdel)~
|
phptag = ~(SMARTYldel\s*php(.*?)SMARTYrdel)|(SMARTYldel\s*[/]phpSMARTYrdel)~
|
||||||
|
phpstart = ~(<[?]((php\s+|=)|\s+))|(<[%])|(<[?]xml\s+)|(<script\s+language\s*=\s*["']?\s*php\s*["']?\s*>)|([?][>])|([%][>])~
|
||||||
slash = ~[/]~
|
slash = ~[/]~
|
||||||
ldel = ~SMARTYldel\s*~
|
ldel = ~SMARTYldel\s*~
|
||||||
rdel = ~\s*SMARTYrdel~
|
rdel = ~\s*SMARTYrdel~
|
||||||
@@ -331,6 +332,10 @@ class Smarty_Internal_Templatelexer
|
|||||||
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
$this->value = substr($this->data,$this->counter,$to-$this->counter);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
phptag {
|
||||||
|
$obj = new Smarty_Internal_Compile_Private_Php();
|
||||||
|
$obj->parsePhp($this);
|
||||||
|
}
|
||||||
ldel literal rdel {
|
ldel literal rdel {
|
||||||
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
||||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||||
|
@@ -277,7 +277,7 @@ class Smarty_Internal_Templatelexer
|
|||||||
public function yylex1()
|
public function yylex1()
|
||||||
{
|
{
|
||||||
if (!isset($this->yy_global_pattern1)) {
|
if (!isset($this->yy_global_pattern1)) {
|
||||||
$this->yy_global_pattern1 = "/\G([{][}])|\G(" . $this->ldel . "[*])|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*)|\G(\\s*" . $this->rdel . ")|\G((<[?]((php\\s+|=)|\\s+))|(<[%])|(<[?]xml\\s+)|(<script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*>)|([?][>])|([%][>])|(" . $this->ldel . "\\s*php(.*?)" . $this->rdel . ")|(" . $this->ldel . "\\s*[\/]php" . $this->rdel . "))|\G([\S\s])/isS";
|
$this->yy_global_pattern1 = "/\G([{][}])|\G(" . $this->ldel . "[*])|\G((" . $this->ldel . "\\s*php(.*?)" . $this->rdel . ")|(" . $this->ldel . "\\s*[\/]php" . $this->rdel . "))|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*)|\G(\\s*" . $this->rdel . ")|\G((<[?]((php\\s+|=)|\\s+))|(<[%])|(<[?]xml\\s+)|(<script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*>)|([?][>])|([%][>]))|\G([\S\s])/isS";
|
||||||
}
|
}
|
||||||
if ($this->counter >= strlen($this->data)) {
|
if ($this->counter >= strlen($this->data)) {
|
||||||
return false; // end of input
|
return false; // end of input
|
||||||
@@ -345,6 +345,13 @@ class Smarty_Internal_Templatelexer
|
|||||||
}
|
}
|
||||||
|
|
||||||
function yy_r1_3()
|
function yy_r1_3()
|
||||||
|
{
|
||||||
|
|
||||||
|
$obj = new Smarty_Internal_Compile_Private_Php();
|
||||||
|
$obj->parsePhp($this);
|
||||||
|
}
|
||||||
|
|
||||||
|
function yy_r1_7()
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
||||||
@@ -355,7 +362,7 @@ class Smarty_Internal_Templatelexer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function yy_r1_4()
|
function yy_r1_8()
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
|
||||||
@@ -366,20 +373,20 @@ class Smarty_Internal_Templatelexer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function yy_r1_5()
|
function yy_r1_9()
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
function yy_r1_6()
|
function yy_r1_10()
|
||||||
{
|
{
|
||||||
|
|
||||||
$obj = new Smarty_Internal_Compile_Private_Php();
|
$obj = new Smarty_Internal_Compile_Private_Php();
|
||||||
$obj->parsePhp($this);
|
$obj->parsePhp($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
function yy_r1_18()
|
function yy_r1_19()
|
||||||
{
|
{
|
||||||
|
|
||||||
$to = strlen($this->data);
|
$to = strlen($this->data);
|
||||||
|
Reference in New Issue
Block a user