From 62b33968c2ef7c5bf264f8af2a39eac2183148f7 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Sun, 14 Jul 2013 15:38:04 -0400 Subject: [ticket/11700] include and define are not valid class names PHPBB3-11700 --- phpBB/phpbb/template/twig/extension.php | 4 +- phpBB/phpbb/template/twig/node/define.php | 58 ------------------- phpBB/phpbb/template/twig/node/definenode.php | 58 +++++++++++++++++++ phpBB/phpbb/template/twig/node/include.php | 56 ------------------ phpBB/phpbb/template/twig/node/includenode.php | 56 ++++++++++++++++++ phpBB/phpbb/template/twig/tokenparser/define.php | 66 ---------------------- .../template/twig/tokenparser/defineparser.php | 66 ++++++++++++++++++++++ phpBB/phpbb/template/twig/tokenparser/include.php | 46 --------------- .../template/twig/tokenparser/includeparser.php | 46 +++++++++++++++ 9 files changed, 228 insertions(+), 228 deletions(-) delete mode 100644 phpBB/phpbb/template/twig/node/define.php create mode 100644 phpBB/phpbb/template/twig/node/definenode.php delete mode 100644 phpBB/phpbb/template/twig/node/include.php create mode 100644 phpBB/phpbb/template/twig/node/includenode.php delete mode 100644 phpBB/phpbb/template/twig/tokenparser/define.php create mode 100644 phpBB/phpbb/template/twig/tokenparser/defineparser.php delete mode 100644 phpBB/phpbb/template/twig/tokenparser/include.php create mode 100644 phpBB/phpbb/template/twig/tokenparser/includeparser.php (limited to 'phpBB/phpbb/template') diff --git a/phpBB/phpbb/template/twig/extension.php b/phpBB/phpbb/template/twig/extension.php index c279726434..2adee07c8c 100644 --- a/phpBB/phpbb/template/twig/extension.php +++ b/phpBB/phpbb/template/twig/extension.php @@ -54,8 +54,8 @@ class phpbb_template_twig_extension extends Twig_Extension public function getTokenParsers() { return array( - new phpbb_template_twig_tokenparser_define, - new phpbb_template_twig_tokenparser_include, + new phpbb_template_twig_tokenparser_defineparser, + new phpbb_template_twig_tokenparser_includeparser, new phpbb_template_twig_tokenparser_includejs, new phpbb_template_twig_tokenparser_includecss, new phpbb_template_twig_tokenparser_event, diff --git a/phpBB/phpbb/template/twig/node/define.php b/phpBB/phpbb/template/twig/node/define.php deleted file mode 100644 index fcb19cc773..0000000000 --- a/phpBB/phpbb/template/twig/node/define.php +++ /dev/null @@ -1,58 +0,0 @@ - $name, 'value' => $value), array('capture' => $capture, 'safe' => false), $lineno, $tag); - } - - /** - * Compiles the node to PHP. - * - * @param Twig_Compiler A Twig_Compiler instance - */ - public function compile(Twig_Compiler $compiler) - { - $compiler->addDebugInfo($this); - - if ($this->getAttribute('capture')) { - $compiler - ->write("ob_start();\n") - ->subcompile($this->getNode('value')) - ; - - $compiler->write("\$value = ('' === \$value = ob_get_clean()) ? '' : new Twig_Markup(\$value, \$this->env->getCharset());\n"); - } - else - { - $compiler - ->write("\$value = ") - ->subcompile($this->getNode('value')) - ->raw(";\n") - ; - } - - $compiler - ->write("\$context['definition']->set('") - ->raw($this->getNode('name')->getAttribute('name')) - ->raw("', \$value);\n") - ; - } -} diff --git a/phpBB/phpbb/template/twig/node/definenode.php b/phpBB/phpbb/template/twig/node/definenode.php new file mode 100644 index 0000000000..247b908337 --- /dev/null +++ b/phpBB/phpbb/template/twig/node/definenode.php @@ -0,0 +1,58 @@ + $name, 'value' => $value), array('capture' => $capture, 'safe' => false), $lineno, $tag); + } + + /** + * Compiles the node to PHP. + * + * @param Twig_Compiler A Twig_Compiler instance + */ + public function compile(Twig_Compiler $compiler) + { + $compiler->addDebugInfo($this); + + if ($this->getAttribute('capture')) { + $compiler + ->write("ob_start();\n") + ->subcompile($this->getNode('value')) + ; + + $compiler->write("\$value = ('' === \$value = ob_get_clean()) ? '' : new Twig_Markup(\$value, \$this->env->getCharset());\n"); + } + else + { + $compiler + ->write("\$value = ") + ->subcompile($this->getNode('value')) + ->raw(";\n") + ; + } + + $compiler + ->write("\$context['definition']->set('") + ->raw($this->getNode('name')->getAttribute('name')) + ->raw("', \$value);\n") + ; + } +} diff --git a/phpBB/phpbb/template/twig/node/include.php b/phpBB/phpbb/template/twig/node/include.php deleted file mode 100644 index 5c6ae1bbcf..0000000000 --- a/phpBB/phpbb/template/twig/node/include.php +++ /dev/null @@ -1,56 +0,0 @@ -addDebugInfo($this); - - $compiler - ->write("\$location = ") - ->subcompile($this->getNode('expr')) - ->raw(";\n") - ->write("\$namespace = false;\n") - ->write("if (strpos(\$location, '@') === 0) {\n") - ->indent() - ->write("\$namespace = substr(\$location, 1, strpos(\$location, '/') - 1);\n") - ->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n") - - // We set the namespace lookup order to be this namespace first, then the main path - ->write("\$this->env->setNamespaceLookUpOrder(array(\$namespace, '__main__'));\n") - ->outdent() - ->write("}\n") - ; - - parent::compile($compiler); - - $compiler - ->write("if (\$namespace) {\n") - ->indent() - ->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n") - ->outdent() - ->write("}\n") - ; - } -} diff --git a/phpBB/phpbb/template/twig/node/includenode.php b/phpBB/phpbb/template/twig/node/includenode.php new file mode 100644 index 0000000000..c5d1c6be51 --- /dev/null +++ b/phpBB/phpbb/template/twig/node/includenode.php @@ -0,0 +1,56 @@ +addDebugInfo($this); + + $compiler + ->write("\$location = ") + ->subcompile($this->getNode('expr')) + ->raw(";\n") + ->write("\$namespace = false;\n") + ->write("if (strpos(\$location, '@') === 0) {\n") + ->indent() + ->write("\$namespace = substr(\$location, 1, strpos(\$location, '/') - 1);\n") + ->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n") + + // We set the namespace lookup order to be this namespace first, then the main path + ->write("\$this->env->setNamespaceLookUpOrder(array(\$namespace, '__main__'));\n") + ->outdent() + ->write("}\n") + ; + + parent::compile($compiler); + + $compiler + ->write("if (\$namespace) {\n") + ->indent() + ->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n") + ->outdent() + ->write("}\n") + ; + } +} diff --git a/phpBB/phpbb/template/twig/tokenparser/define.php b/phpBB/phpbb/template/twig/tokenparser/define.php deleted file mode 100644 index 4ea15388c4..0000000000 --- a/phpBB/phpbb/template/twig/tokenparser/define.php +++ /dev/null @@ -1,66 +0,0 @@ -getLine(); - $stream = $this->parser->getStream(); - $name = $this->parser->getExpressionParser()->parseExpression(); - - $capture = false; - if ($stream->test(Twig_Token::OPERATOR_TYPE, '=')) { - $stream->next(); - $value = $this->parser->getExpressionParser()->parseExpression(); - - $stream->expect(Twig_Token::BLOCK_END_TYPE); - } else { - $capture = true; - - $stream->expect(Twig_Token::BLOCK_END_TYPE); - - $value = $this->parser->subparse(array($this, 'decideBlockEnd'), true); - $stream->expect(Twig_Token::BLOCK_END_TYPE); - } - - return new phpbb_template_twig_node_define($capture, $name, $value, $lineno, $this->getTag()); - } - - public function decideBlockEnd(Twig_Token $token) - { - return $token->test('ENDDEFINE'); - } - - /** - * Gets the tag name associated with this token parser. - * - * @return string The tag name - */ - public function getTag() - { - return 'DEFINE'; - } -} diff --git a/phpBB/phpbb/template/twig/tokenparser/defineparser.php b/phpBB/phpbb/template/twig/tokenparser/defineparser.php new file mode 100644 index 0000000000..db023c67bf --- /dev/null +++ b/phpBB/phpbb/template/twig/tokenparser/defineparser.php @@ -0,0 +1,66 @@ +getLine(); + $stream = $this->parser->getStream(); + $name = $this->parser->getExpressionParser()->parseExpression(); + + $capture = false; + if ($stream->test(Twig_Token::OPERATOR_TYPE, '=')) { + $stream->next(); + $value = $this->parser->getExpressionParser()->parseExpression(); + + $stream->expect(Twig_Token::BLOCK_END_TYPE); + } else { + $capture = true; + + $stream->expect(Twig_Token::BLOCK_END_TYPE); + + $value = $this->parser->subparse(array($this, 'decideBlockEnd'), true); + $stream->expect(Twig_Token::BLOCK_END_TYPE); + } + + return new phpbb_template_twig_node_definenode($capture, $name, $value, $lineno, $this->getTag()); + } + + public function decideBlockEnd(Twig_Token $token) + { + return $token->test('ENDDEFINE'); + } + + /** + * Gets the tag name associated with this token parser. + * + * @return string The tag name + */ + public function getTag() + { + return 'DEFINE'; + } +} diff --git a/phpBB/phpbb/template/twig/tokenparser/include.php b/phpBB/phpbb/template/twig/tokenparser/include.php deleted file mode 100644 index 520f9fd1a0..0000000000 --- a/phpBB/phpbb/template/twig/tokenparser/include.php +++ /dev/null @@ -1,46 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - - list($variables, $only, $ignoreMissing) = $this->parseArguments(); - - return new phpbb_template_twig_node_include($expr, $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag()); - } - - /** - * Gets the tag name associated with this token parser. - * - * @return string The tag name - */ - public function getTag() - { - return 'INCLUDE'; - } -} diff --git a/phpBB/phpbb/template/twig/tokenparser/includeparser.php b/phpBB/phpbb/template/twig/tokenparser/includeparser.php new file mode 100644 index 0000000000..79c53630d0 --- /dev/null +++ b/phpBB/phpbb/template/twig/tokenparser/includeparser.php @@ -0,0 +1,46 @@ +parser->getExpressionParser()->parseExpression(); + + list($variables, $only, $ignoreMissing) = $this->parseArguments(); + + return new phpbb_template_twig_node_includenode($expr, $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag()); + } + + /** + * Gets the tag name associated with this token parser. + * + * @return string The tag name + */ + public function getTag() + { + return 'INCLUDE'; + } +} -- cgit v1.2.1