|
9 | 9 |
|
10 | 10 | namespace Latte\Essential; |
11 | 11 |
|
12 | | -use Latte; |
13 | 12 | use Latte\CompileException; |
14 | 13 | use Latte\Compiler\Node; |
15 | | -use Latte\Compiler\Nodes; |
16 | 14 | use Latte\Compiler\Nodes\Html; |
17 | 15 | use Latte\Compiler\Nodes\Html\ElementNode; |
18 | 16 | use Latte\Compiler\Nodes\Php; |
@@ -124,31 +122,18 @@ public function checkUrlsPass(TemplateNode $node): void |
124 | 122 | if ($node instanceof Html\ElementNode) { |
125 | 123 | $elem = $node; |
126 | 124 |
|
127 | | - } elseif ($node instanceof Html\AttributeNode) { |
128 | | - if ( |
129 | | - $node->name instanceof Nodes\TextNode |
130 | | - && Latte\Runtime\HtmlHelpers::isUrlAttribute($elem->name, $node->name->content) |
131 | | - ) { |
132 | | - $value = $node->value instanceof Nodes\FragmentNode && $node->value->children |
133 | | - ? $node->value->children[0] |
134 | | - : $node->value; |
135 | | - |
136 | | - (new NodeTraverser)->traverse($value, function (Node $node) { |
137 | | - if ($node instanceof Nodes\PrintNode) { |
138 | | - $check = true; |
139 | | - foreach ($node->modifier->filters as $i => $filter) { |
140 | | - match ($filter->name->name) { |
141 | | - 'nocheck', 'noCheck' => array_splice($node->modifier->filters, $i, 1) && $check = false, |
142 | | - 'datastream', 'dataStream' => $check = false, |
143 | | - default => null, |
144 | | - }; |
145 | | - } |
146 | | - |
147 | | - if ($check) { |
148 | | - $node->modifier->filters[] = new Php\FilterNode(new Php\IdentifierNode('checkUrl')); |
149 | | - } |
150 | | - } |
151 | | - }); |
| 125 | + } elseif ($node instanceof Html\ExpressionAttributeNode && HtmlHelpers::isUrlAttribute($elem->name, $node->name)) { |
| 126 | + $check = true; |
| 127 | + foreach ($node->modifier->filters as $i => $filter) { |
| 128 | + match ($filter->name->name) { |
| 129 | + 'nocheck', 'noCheck' => array_splice($node->modifier->filters, $i, 1) && $check = false, |
| 130 | + 'datastream', 'dataStream' => $check = false, |
| 131 | + default => null, |
| 132 | + }; |
| 133 | + } |
| 134 | + |
| 135 | + if ($check) { |
| 136 | + $node->modifier->filters[] = new Php\FilterNode(new Php\IdentifierNode('checkUrl')); |
152 | 137 | } |
153 | 138 | } |
154 | 139 | }); |
|
0 commit comments