Neu in Version 2.5 (vom 27.11.2011)
set_vars() und add_vars():set_vars() und add_vars() ist es nun möglich, die interne Variablenliste komplett zu überschreiben oder mit mehreren Variablen und Werten auf einmal zu ergänzen.{TRIM}-Blöcke in der Perl-Version funktionieren jetzt:{TRIM}-Blöcke hat in der Perl-Version nicht funktioniert, da eine falsche Variable verwendet wurde. Dieser Fehler wurde behoben.reset()- und die save_state()-Methode unvollständig.Neu in Version 2.0 (vom 9.8.2006)
get_var(), set_var() und parse():get_var(), set_var() und parse().
get_var() gibt den Wert einer Variablen zurück. Wenn kein Name angegeben wurde, gibt get_var() die Namen aller definierten Variablen zurück.set_var() weist einer Variablen einen Wert zu.parse() setzt die Variablen ein, verarbeitet die {IF}-Blöcke, verarbeitet die Schleifen und liest die in der Template definierten Variablen aus.{DEFINE}-Blöcke Variablen direkt in der Template-Datei definieren, so als hätte man sie mit set_var() definiert.{DEFINE Name "Wert"}:\n durch einen Zeilenumbruch ersetzt.{DEFINE Name}Wert{ENDDEFINE}:set_var() haben allerdings Vorrang gegenüber den erst über {DEFINE} definierten. Zusätzlich werden zweitere erst von parse() abgearbeitet, wenn erstere abgearbeitet wurden.{LOOP}...{ENDLOOP}-Blöcke einschließen. Dieser Block bekommt einen Namen, diesem Namen werden dann über die Methoden add_loop_data() und/oder set_loop_data() Variablen zugewiesen. Der Block wird dann für jeden Durchgang mit neuen Werten ausgegeben.{TRIM}-Blöcke:{TRIM}-Blöcke einschließen. Beim Inhalt werden vorangestellte und abschließendende Leerzeichen und Zeilenumbrüche entfernt.{INCLUDE}-Anweisungen verändert:{INCLUDE}-Anweisungen wurde in einigen Fällen geändert:
{INCLUDE}-Anweisung einen relativen Pfad angibt, so gilt dieser Pfad nun relativ zur Template-Datei und nicht mehr zum Script.{INCLUDE}-Anweisung angegeben werden, können nun auch Leerzeichen oder das }-Zeichen enthalten. In diesem Fall muss man den Dateinamen aber in doppelte Anführungszeichen setzen.reset()-Methode können Sie den Template-Text in den Zustand zurückversetzen, den er nach dem Auslesen der Template-Datei hatte. Zusätzlich können Sie mit save_state() den aktuellen Zustand des Template-Textes sichern und diesen dann bei Bedarf eben mit reset() wiederherstellen.addtext(), as_string(), condtag() und readin() entfernt.split(), um eine Zeichenkette aufzuteilen. Stattdessen verwendet sie nun meine Portierung der explode()-Funktion von PHP. Die Grund hierfür ist ein Problem von split(), welches auch auf der verlinkten Seite beschrieben wird.Neu in Version 1.5a (vom 6.6.2005)
error_reporting der Wert E_ALL eingestellt war.fread() eine Fehlermeldung erzeugt. Das ist nun behoben.Neu in Version 1.5 (vom 5.5.2005)
{IF}-Blöcke verneinen:{IF}-Blöcke nun verneinen, indem man vor den Namen des Blockes ein ! stellt. Die Methode parse_if_block() verarbeitet diese Blöcke automatisch, es sei denn man setzt den neuen dritten Parameter dieser Routine auf true.{INCLUDE}-Dateien:{INCLUDE}-Anweisung eingebunden werden soll und die Datei existiert nicht, so wird diese Anweisung nicht mehr aus dem Vorlagentext entfernt.Neu in Version 1.4a (vom 21.3.2005)
{ENDIF} am Ende des Vorlagentextes:{ENDIF} endete, hat der {IF}-Parser der Perl-Version diese nicht gefunden und das Script wegen eines Verschachtelungsfehlers beendet.add_text() existiert aus Kompatibilitätsgründen ein Alias namens addtext(). In der PHP-Version der Klasse wurden die Argumente, die addtext() übergeben wurden, nicht an add_text() weitergegeben.Neu in Version 1.4 (vom 5.2.2005)
{IF}-Blöcken:{IF}-Parser immer in eine Endlosschleife, wenn die {IF}-Blöcke nicht korrekt verschachtelt waren.{ENDIF} überschritten wurde. In diesem Fall wird das Script sofort mit einer Fehlermeldung beendet.{IF}-Blöcken in {IF}-Blöcken:{IF}-Block in einem {IF}-Block zu erkennen, wird jetzt nicht mehr nach {IF, sondern nach {IF  gesucht.\{IF .+?\} oder so sucht, aber das hat nur noch mehr Probleme bereitet.read_file() eingelesenen Template-Datei wird jetzt in den Objekteigenschaften gespeichert.Neu in Version 1.3 (vom 20.5.2004)
{INCLUDE}-Anweisungen:{INCLUDE Dateiname}-Anweisungen einzubauen. Die Anweisungen werden beim Einlesen der Vorlagen-Datei durch den Inhalt der angegebenen Datei ersetzt.{INCLUDE}-Anweisungen lässt sich auch von Hand durchführen und das automatische Verarbeiten beim Lesen einer Datei lässt sich auch verhindern.to_file():to_file() ist es möglich, den kompletten Vorlagentext in eine zuvor geöffnete Datei zu schreiben.add_text() existiert aus Kompatibilitätsgründen ein Alias namens addtext(). In der PHP-Version der Klasse rief dieser Alias jedoch nicht add_text() auf, sondern die nicht existierende Methode add_template().Neu in Version 1.2a (vom 12.9.2003)
substr_count():substr_count() enthielt einen Fehler. Wenn sich der zu suchende am Ende des zu durchsuchenden Strings befand, wurde er nicht gefunden.Neu in Version 1.2 (vom 9.9.2003)
addtext() => add_text()as_string() => get_template()condtag() => parse_condtag()readin() => read_file(){ELSE}-Abschnitte, die angezeigt werden, wenn die Bedingung nicht erfüllt ist.fillin_array() ist es nun möglich, Variablen durch Arrays zu ersetzen.get_template() und set_template():get_template() und set_template() ist es viel leichter geworden, auf den in den Objekt-Eigenschaften gespeicherten Vorlagentext zuzugreifen.substr_count() überarbeitet:substr_count() wurde ein wenig verbessert. Sie teilt zunächst die Zeichenkette mit der zu zählenden Zeichenkette auf. Anschließend zählt sie von der Anzahl der so entstandenen Array-Elemente 1 ab und gibt das Ergebnis zurück.Neu in Version 1.1 (vom 21.7.2003)
{IF} eingeleitet und von einem {ENDIF} abgeschlossen.Neu in Version 1.0 (vom 3.6.2003)
© 2002-2011 Patrick Canterino
| Homepage: | http://www.patshaping.de/ | 
| E-Mail: | patrick@patshaping.de |