PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev1
Elementor Website Builder – more than just a page builder v3.28.0-dev1
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / vendor_prefixed / twig / src / Node / IfNode.php

IfNode.php in Elementor Website Builder – more than just a page builder 3.28.0-dev1, at vendor_prefixed/twig/src/Node/IfNode.php

53 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of Twig.
5 *
6 * (c) Fabien Potencier
7 * (c) Armin Ronacher
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12 namespace ElementorDeps\Twig\Node;
13
14 use ElementorDeps\Twig\Attribute\YieldReady;
15 use ElementorDeps\Twig\Compiler;
16 /**
17 * Represents an if node.
18 *
19 * @author Fabien Potencier <fabien@symfony.com>
20 */
21 #[\Twig\Attribute\YieldReady]
22 class IfNode extends Node
23 {
24 public function __construct(Node $tests, ?Node $else, int $lineno, ?string $tag = null)
25 {
26 $nodes = ['tests' => $tests];
27 if (null !== $else) {
28 $nodes['else'] = $else;
29 }
30 parent::__construct($nodes, [], $lineno, $tag);
31 }
32 public function compile(Compiler $compiler) : void
33 {
34 $compiler->addDebugInfo($this);
35 for ($i = 0, $count = \count($this->getNode('tests')); $i < $count; $i += 2) {
36 if ($i > 0) {
37 $compiler->outdent()->write('} elseif (');
38 } else {
39 $compiler->write('if (');
40 }
41 $compiler->subcompile($this->getNode('tests')->getNode((string) $i))->raw(") {\n")->indent();
42 // The node might not exists if the content is empty
43 if ($this->getNode('tests')->hasNode((string) ($i + 1))) {
44 $compiler->subcompile($this->getNode('tests')->getNode((string) ($i + 1)));
45 }
46 }
47 if ($this->hasNode('else')) {
48 $compiler->outdent()->write("} else {\n")->indent()->subcompile($this->getNode('else'));
49 }
50 $compiler->outdent()->write("}\n");
51 }
52 }
53