mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-03 15:27:42 +02:00
[ticket/11323] Reduce additional code and revert regex to previous one
PHPBB3-11323
This commit is contained in:
@@ -830,11 +830,10 @@ class phpbb_template_filter extends php_user_filter
|
|||||||
*/
|
*/
|
||||||
private function compile_tag_define($tag_args, $op)
|
private function compile_tag_define($tag_args, $op)
|
||||||
{
|
{
|
||||||
$add_quote = true;
|
|
||||||
$match = array();
|
$match = array();
|
||||||
preg_match('#^((?:' . self::REGEX_NS . '\.)+)?\$(?=[A-Z])([A-Z0-9_\-]*)(?: = (\'?)([^\']*)(\'?))?$#', $tag_args, $match);
|
preg_match('#^((?:' . self::REGEX_NS . '\.)+)?\$(?=[A-Z])([A-Z0-9_\-]*)(?: = (.*?))?$#', $tag_args, $match);
|
||||||
|
|
||||||
if (empty($match[2]) || (!isset($match[4]) && $op))
|
if (empty($match[2]) || (!isset($match[3]) && $op))
|
||||||
{
|
{
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@@ -844,12 +843,18 @@ class phpbb_template_filter extends php_user_filter
|
|||||||
return 'unset(' . (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[2] . '\']' : '$_tpldata[\'DEFINE\'][\'.\'][\'' . $match[2] . '\']') . ');';
|
return 'unset(' . (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[2] . '\']' : '$_tpldata[\'DEFINE\'][\'.\'][\'' . $match[2] . '\']') . ');';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($match[3] && $match[5] && substr($match[4], 0, 1) == '{' && substr($match[4], -1, 1) == '}')
|
/*
|
||||||
|
* Define tags that contain template variables (enclosed in curly brackets)
|
||||||
|
* need to be treated differently.
|
||||||
|
*/
|
||||||
|
if (substr($match[3], 1, 1) == '{' && substr($match[3], -2, 1) == '}')
|
||||||
{
|
{
|
||||||
$match[4] = substr($match[4], 1, -1);
|
$parsed_statement = implode(' ', $this->compile_expression(substr($match[3], 2, -2)));
|
||||||
$add_quote = false;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$parsed_statement = implode(' ', $this->compile_expression($match[3]));
|
||||||
}
|
}
|
||||||
$parsed_statement = ($add_quote) ? "'" . implode(' ', $this->compile_expression($match[4])) . "'" : implode(' ', $this->compile_expression($match[4]));
|
|
||||||
|
|
||||||
return (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[2] . '\']' : '$_tpldata[\'DEFINE\'][\'.\'][\'' . $match[2] . '\']') . ' = ' . $parsed_statement . ';';
|
return (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[2] . '\']' : '$_tpldata[\'DEFINE\'][\'.\'][\'' . $match[2] . '\']') . ' = ' . $parsed_statement . ';';
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user