[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.141.45.90: ~ $
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Twig\TokenParser;

use Twig\Node\Expression\TempNameExpression;
use Twig\Node\Node;
use Twig\Node\PrintNode;
use Twig\Node\SetNode;
use Twig\Token;

/**
 * Applies filters on a section of a template.
 *
 *   {% apply upper %}
 *      This text becomes uppercase
 *   {% endapply %}
 */
final class ApplyTokenParser extends AbstractTokenParser
{
    public function parse(Token $token)
    {
        $lineno = $token->getLine();
        $name = $this->parser->getVarName();

        $ref = new TempNameExpression($name, $lineno);
        $ref->setAttribute('always_defined', true);

        $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag());

        $this->parser->getStream()->expect(Token::BLOCK_END_TYPE);
        $body = $this->parser->subparse([$this, 'decideApplyEnd'], true);
        $this->parser->getStream()->expect(Token::BLOCK_END_TYPE);

        return new Node([
            new SetNode(true, $ref, $body, $lineno, $this->getTag()),
            new PrintNode($filter, $lineno, $this->getTag()),
        ]);
    }

    public function decideApplyEnd(Token $token)
    {
        return $token->test('endapply');
    }

    public function getTag()
    {
        return 'apply';
    }
}

Filemanager

Name Type Size Permission Actions
AbstractTokenParser.php File 641 B 0644
ApplyTokenParser.php File 1.42 KB 0644
AutoEscapeTokenParser.php File 1.58 KB 0644
BlockTokenParser.php File 2.46 KB 0644
DeprecatedTokenParser.php File 1013 B 0644
DoTokenParser.php File 801 B 0644
EmbedTokenParser.php File 2.24 KB 0644
ExtendsTokenParser.php File 1.37 KB 0644
FilterTokenParser.php File 1.86 KB 0644
FlushTokenParser.php File 735 B 0644
ForTokenParser.php File 4.95 KB 0644
FromTokenParser.php File 1.67 KB 0644
IfTokenParser.php File 2.47 KB 0644
ImportTokenParser.php File 1.18 KB 0644
IncludeTokenParser.php File 1.62 KB 0644
MacroTokenParser.php File 1.89 KB 0644
SandboxTokenParser.php File 1.79 KB 0644
SetTokenParser.php File 2.05 KB 0644
SpacelessTokenParser.php File 1.53 KB 0644
TokenParserInterface.php File 1.12 KB 0644
UseTokenParser.php File 1.97 KB 0644
WithTokenParser.php File 1.29 KB 0644