mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-16 02:34:54 +02:00
Update Twig to v2.15.4
This commit is contained in:
@@ -18,58 +18,27 @@ use Twig\Token;
|
||||
|
||||
/**
|
||||
* Marks a section of a template to be escaped or not.
|
||||
*
|
||||
* {% autoescape true %}
|
||||
* Everything will be automatically escaped in this block
|
||||
* {% endautoescape %}
|
||||
*
|
||||
* {% autoescape false %}
|
||||
* Everything will be outputed as is in this block
|
||||
* {% endautoescape %}
|
||||
*
|
||||
* {% autoescape true js %}
|
||||
* Everything will be automatically escaped in this block
|
||||
* using the js escaping strategy
|
||||
* {% endautoescape %}
|
||||
*
|
||||
* @final
|
||||
*/
|
||||
class AutoEscapeTokenParser extends AbstractTokenParser
|
||||
final class AutoEscapeTokenParser extends AbstractTokenParser
|
||||
{
|
||||
public function parse(Token $token)
|
||||
{
|
||||
$lineno = $token->getLine();
|
||||
$stream = $this->parser->getStream();
|
||||
|
||||
if ($stream->test(Token::BLOCK_END_TYPE)) {
|
||||
if ($stream->test(/* Token::BLOCK_END_TYPE */ 3)) {
|
||||
$value = 'html';
|
||||
} else {
|
||||
$expr = $this->parser->getExpressionParser()->parseExpression();
|
||||
if (!$expr instanceof ConstantExpression) {
|
||||
throw new SyntaxError('An escaping strategy must be a string or a bool.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
|
||||
throw new SyntaxError('An escaping strategy must be a string or false.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
|
||||
}
|
||||
$value = $expr->getAttribute('value');
|
||||
|
||||
$compat = true === $value || false === $value;
|
||||
|
||||
if (true === $value) {
|
||||
$value = 'html';
|
||||
}
|
||||
|
||||
if ($compat && $stream->test(Token::NAME_TYPE)) {
|
||||
@trigger_error('Using the autoescape tag with "true" or "false" before the strategy name is deprecated since version 1.21.', E_USER_DEPRECATED);
|
||||
|
||||
if (false === $value) {
|
||||
throw new SyntaxError('Unexpected escaping strategy as you set autoescaping to false.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
|
||||
}
|
||||
|
||||
$value = $stream->next()->getValue();
|
||||
}
|
||||
}
|
||||
|
||||
$stream->expect(Token::BLOCK_END_TYPE);
|
||||
$stream->expect(/* Token::BLOCK_END_TYPE */ 3);
|
||||
$body = $this->parser->subparse([$this, 'decideBlockEnd'], true);
|
||||
$stream->expect(Token::BLOCK_END_TYPE);
|
||||
$stream->expect(/* Token::BLOCK_END_TYPE */ 3);
|
||||
|
||||
return new AutoEscapeNode($value, $body, $lineno, $this->getTag());
|
||||
}
|
||||
|
Reference in New Issue
Block a user