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 |