Hi zusammen,
Ich hab da ein kleines Problem:
Ich bastel im Moment an einem eigenen Template Parser und will jetzt Kontrollstrukturen innerhalb der Templates ermöglichen.
Mein Problem is, dass ich kein Plan hab, wie ich das umsetzen soll!
Der Parser funktioniert derzeit mit dem eval-Befehl und zuvor werden die Variablen (im Template in der Form {var} vorhanden) durch einen assoziatives Array mit dem Variablennamen als index ersetzt um unerwünschte Codes zu vermeiden!
Die $_GET Variablen und bestimmte Benutzervariablen haben eine Sondersyntax, auf die ich aber nich weiter eingehen will!
Das funktioniert soweit auch alles...
Aber kann mir irgendjemand von den erfahreneren hier einen Tipp geben, wie ich Kontrollstrukturen innerhalb des Templates umsetzen kann? Die Effizienz is erstmal zweitrangig, da kann man später noch dran rumschrauben ^^.
Mein Versuch:
Durch eine Syntax á la {IFExpression)}CODE{ENDIF}, welche durch preg_replace("!{IF:\((.*?)\)}\s*(.*?)\s*{ENDIF}!", "if($1)\{$2}", $templcode); ersetzt wird, sollte der Template-Code in normalen PHP-Code umgewandelt werden.
Das funktioniert aber nicht!
Ich denk gerade darüber nach, den Template-Code mit dem Suchmuster-Modifikator /e zu durchkämmen, aber irgendwie hab ich das Gefühl, dass das nich besonders sicher wird!
Ich freu mich auf Vorschläge und/oder Tipps!
lg, WirrWar2850.
Ich hab da ein kleines Problem:
Ich bastel im Moment an einem eigenen Template Parser und will jetzt Kontrollstrukturen innerhalb der Templates ermöglichen.
Mein Problem is, dass ich kein Plan hab, wie ich das umsetzen soll!
Der Parser funktioniert derzeit mit dem eval-Befehl und zuvor werden die Variablen (im Template in der Form {var} vorhanden) durch einen assoziatives Array mit dem Variablennamen als index ersetzt um unerwünschte Codes zu vermeiden!
Die $_GET Variablen und bestimmte Benutzervariablen haben eine Sondersyntax, auf die ich aber nich weiter eingehen will!
Das funktioniert soweit auch alles...
Aber kann mir irgendjemand von den erfahreneren hier einen Tipp geben, wie ich Kontrollstrukturen innerhalb des Templates umsetzen kann? Die Effizienz is erstmal zweitrangig, da kann man später noch dran rumschrauben ^^.
Mein Versuch:
Durch eine Syntax á la {IFExpression)}CODE{ENDIF}, welche durch preg_replace("!{IF:\((.*?)\)}\s*(.*?)\s*{ENDIF}!", "if($1)\{$2}", $templcode); ersetzt wird, sollte der Template-Code in normalen PHP-Code umgewandelt werden.
Das funktioniert aber nicht!
Ich denk gerade darüber nach, den Template-Code mit dem Suchmuster-Modifikator /e zu durchkämmen, aber irgendwie hab ich das Gefühl, dass das nich besonders sicher wird!
Ich freu mich auf Vorschläge und/oder Tipps!
lg, WirrWar2850.
Kommentar