- Fixed a recursivity bug with the OR token inside another foreach/or instance
This commit is contained in:
parent
ce4ef6351a
commit
92e304daf3
|
@ -10,11 +10,15 @@ class ForeachToken implements ControlStructure {
|
|||
switch($token) {
|
||||
case "foreach":
|
||||
$name = "$".uniqid("foreach_");
|
||||
|
||||
$count = count($context->iterationStack ?? []);
|
||||
|
||||
$stack = array_filter($context->iterationStack ?? [], function($item) {
|
||||
return ! $item['or'];
|
||||
});
|
||||
|
||||
$count = count($stack);
|
||||
|
||||
if ( $count > 0 ) {
|
||||
$name .= "[" . $context->iterationStack[$count - 1]['uid'] . "]";
|
||||
$name .= "[" . end($stack)['uid'] . "]";
|
||||
}
|
||||
|
||||
$context->iterationStack[] = [
|
||||
|
|
|
@ -12,13 +12,11 @@ class OrToken implements ControlStructure {
|
|||
}
|
||||
|
||||
$key = count( $context->iterationStack ) - 1;
|
||||
|
||||
$context->iterationStack[$key]['or'] = true;
|
||||
|
||||
$name = $context->iterationStack[$key]['uid'];
|
||||
|
||||
#if ($key !== 0) {
|
||||
#}
|
||||
|
||||
return "<?php {$context->iterationStack[$key]['token']}; if( false === ($name ?? false) ): ?>";
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue