[ SYSTEM ]: Linux wordpress 6.1.0-41-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
vendor_prefixed
/
twig
/
twig
/
twig
/
src
/
Node
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 Expression
SET
[ DEL ]
📄 AutoEscapeNode.php
940 B
SET
[ EDIT ]
|
[ DEL ]
📄 BodyNode.php
415 B
SET
[ EDIT ]
|
[ DEL ]
📄 CaptureNode.php
1,502 B
SET
[ EDIT ]
|
[ DEL ]
📄 DeprecatedNode.php
1,847 B
SET
[ EDIT ]
|
[ DEL ]
📄 DoNode.php
840 B
SET
[ EDIT ]
|
[ DEL ]
📄 EmbedNode.php
1,397 B
SET
[ EDIT ]
|
[ DEL ]
📄 FlushNode.php
700 B
SET
[ EDIT ]
|
[ DEL ]
📄 ForNode.php
3,431 B
SET
[ EDIT ]
|
[ DEL ]
📄 IfNode.php
1,648 B
SET
[ EDIT ]
|
[ DEL ]
📄 ImportNode.php
1,587 B
SET
[ EDIT ]
|
[ DEL ]
📄 MacroNode.php
2,438 B
SET
[ EDIT ]
|
[ DEL ]
📄 NameDeprecation.php
928 B
SET
[ EDIT ]
|
[ DEL ]
📄 Node.php
7,959 B
SET
[ EDIT ]
|
[ DEL ]
📄 PrintNode.php
1,027 B
SET
[ EDIT ]
|
[ DEL ]
📄 SandboxNode.php
1,126 B
SET
[ EDIT ]
|
[ DEL ]
📄 SetNode.php
2,872 B
SET
[ EDIT ]
|
[ DEL ]
📄 TextNode.php
825 B
SET
[ EDIT ]
|
[ DEL ]
📄 WithNode.php
1,956 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: ForNode.php
<?php /* * This file is part of Twig. * * (c) Fabien Potencier * (c) Armin Ronacher * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace ElementorDeps\Twig\Node; use ElementorDeps\Twig\Attribute\YieldReady; use ElementorDeps\Twig\Compiler; use ElementorDeps\Twig\Node\Expression\AbstractExpression; use ElementorDeps\Twig\Node\Expression\AssignNameExpression; /** * Represents a for node. * * @author Fabien Potencier <fabien@symfony.com> */ #[YieldReady] class ForNode extends Node { private $loop; public function __construct(AssignNameExpression $keyTarget, AssignNameExpression $valueTarget, AbstractExpression $seq, ?Node $ifexpr, Node $body, ?Node $else, int $lineno, ?string $tag = null) { $body = new Node([$body, $this->loop = new ForLoopNode($lineno, $tag)]); $nodes = ['key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body]; if (null !== $else) { $nodes['else'] = $else; } parent::__construct($nodes, ['with_loop' => \true], $lineno, $tag); } public function compile(Compiler $compiler) : void { $compiler->addDebugInfo($this)->write("\$context['_parent'] = \$context;\n")->write("\$context['_seq'] = CoreExtension::ensureTraversable(")->subcompile($this->getNode('seq'))->raw(");\n"); if ($this->hasNode('else')) { $compiler->write("\$context['_iterated'] = false;\n"); } if ($this->getAttribute('with_loop')) { $compiler->write("\$context['loop'] = [\n")->write(" 'parent' => \$context['_parent'],\n")->write(" 'index0' => 0,\n")->write(" 'index' => 1,\n")->write(" 'first' => true,\n")->write("];\n")->write("if (is_array(\$context['_seq']) || (is_object(\$context['_seq']) && \$context['_seq'] instanceof \\Countable)) {\n")->indent()->write("\$length = count(\$context['_seq']);\n")->write("\$context['loop']['revindex0'] = \$length - 1;\n")->write("\$context['loop']['revindex'] = \$length;\n")->write("\$context['loop']['length'] = \$length;\n")->write("\$context['loop']['last'] = 1 === \$length;\n")->outdent()->write("}\n"); } $this->loop->setAttribute('else', $this->hasNode('else')); $this->loop->setAttribute('with_loop', $this->getAttribute('with_loop')); $compiler->write("foreach (\$context['_seq'] as ")->subcompile($this->getNode('key_target'))->raw(' => ')->subcompile($this->getNode('value_target'))->raw(") {\n")->indent()->subcompile($this->getNode('body'))->outdent()->write("}\n"); if ($this->hasNode('else')) { $compiler->write("if (!\$context['_iterated']) {\n")->indent()->subcompile($this->getNode('else'))->outdent()->write("}\n"); } $compiler->write("\$_parent = \$context['_parent'];\n"); // remove some "private" loop variables (needed for nested loops) $compiler->write('unset($context[\'_seq\'], $context[\'_iterated\'], $context[\'' . $this->getNode('key_target')->getAttribute('name') . '\'], $context[\'' . $this->getNode('value_target')->getAttribute('name') . '\'], $context[\'_parent\'], $context[\'loop\']);' . "\n"); // keep the values set in the inner context for variables defined in the outer context $compiler->write("\$context = array_intersect_key(\$context, \$_parent) + \$_parent;\n"); } }