![]() |
Hallo, mit verschachtelten IF's hab ich's jetzt auch hinbekommen, aber sicherlich ganz anders als vermutet: Ich habe mit strpos, substr() und substr_replace() jedem IF eine ID zugewiesen, wobei jede else bzw. /if-Anweisung die ID des letzten IF's bekommt. Dies geschieht beim ersten Laden des Templates. Anschließend (wenn man das Template ausgeben will) wird der folgende REGEXP drüber gejagt: /\{if (\d+) (.*)\}(.*)\{else \\1\}(.*)\{\/if \\1\}/sieU bzw. /\{if (\d+) (.*)\}(.*)\{\/if \\1\}/sieU wobei \\1 die ID ist, die jeden "If-Tag" identifiziert und somit einzigartig macht. Ich möchte nun aber auch Schleifen einbauen, also beispielsweise foreach. Das Problem ist, dass man auch If in Schleifen verwenden können soll und umgekehrt (also Schleifen zwischen {if ...} und {/if}. Wenn ich das aber nacheinander parse (also nacheinander einen REGEXP für If und danach einen für Schleifen drüberjage), dann funzt If in Schleifen nicht. Wenn ich erst Schleifen parsen würde und dann If würde wiederum Schleifen zwischen {if} und {/if} nicht funktionieren. Hat jemand eine Idee, wie man das lösen könnte? |
Ich hol das Thema nochmal hoch weil es für mich grade Interessant wird ;) Ich hab leider komplett die Übersicht verloren deswegen wäre es für mich ganz nützlich wenn mir jemand kurz nochmal das komplette, funktionierende Script posten könnte :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr. |