next up previous contents index
Next: Funktionen für Erzeugung von Up: Funktionen für die Erstellung Previous: Funktion zum Ersetzen von

*html_substitute_data ($string, $data, $allflag = 0, $subst_type = 7, $defaultkey = "", $complex_names_allowed = 0, $startchar = '$'):

´html_substitute_data´ ersetzt in einem gegebenem Eingabestring $string bestimmte Strings durch andere. Vor allem wird die Ersetzung von Variablenbezeichnern durch Variablenwerte aus dem gegebenen Datentupel $data damit realisiert. Weiterhin besteht die Möglichkeit sehr einfache Bedingungen auszuwerten.
Es gibt 5 verschiedene Arten von Ersetzungen (Variablenname bei den Punkten 1. bis 3. meint im folgenden einen String, der nur aus Klein/Groß-Buchstaben, Zahlen und den Zeichen ``-`` und ``_'' besteht. Ist $complex_names_allowed true, so sind auch noch die Zeichen ``[`` und ``]'' zugelassen):

1.
String "$(keyname)", wobei keyname ein Variablenname ist, wird ersetzt durch Wert des Datentupels $data[keyname] bzw.
ist der String $defaultkey nicht leer, so werden die Strings "$()" und "$$" beide jeweils ersetzt durch den Wert des Datentupels $data[$defaultkey], d.h. bei fehlendem keyname wird $defaultkey verwendet;
Die Ersetzung findet jeweils nur statt, falls $data[keyname] definiert ist oder $allflag true ist.
Diese Ersetzung findet außerdem nur dann statt, wenn Bit 0 von $subst_type gesetzt ist.
2.
Ähnlich zu 1.: der String "$[keyname]", wobei keyname ein Variablenname ist, wird ersetzt durch den htmlencodeten (z.B. Umlaute, ``<'',''>'',... codieren) Wert des Datentupels $data[keyname] bzw.
ist der String $defaultkey nicht leer, so wird der String "$[]" ersetzt durch den htmlencodeten Wert des Datentupels $data[$defaultkey], d.h. bei fehlendem keyname wird $defaultkey verwendet;
Die Ersetzung findet nur statt, falls $data[keyname] definiert ist oder $allflag true ist.
Außerdem findet diese Ersetzung nur statt, wenn Bit 1 von $subst_type gesetzt ist.
3.
Ähnlich zu 1.: der String "$<keyname>", wobei keyname ein Variablenname ist, wird ersetzt durch den urlencodeten (für Verwendung in Parameterstrings in URLs) Wert des Datentupels $data[keyname] bzw.
ist der String $defaultkey nicht leer, so wird der String "$<>" ersetzt durch den urlencodeten Wert des Datentupels $data[$defaultkey], d.h. bei fehlendem keyname wird $defaultkey verwendet;
Die Ersetzung findet nur statt, falls $data[keyname] definiert ist oder $allflag true ist.
Außerdem wird nur dann ersetzt, falls Bit 2 von $subst_type gesetzt ist.
4.
Falls der String $defaultkey nicht leer ist, wird der String
"$?%(<urlencodeter Vergleichswert>:<Ausgabe>)" durch leeren String oder durch den String "<Ausgabe>" ersetzt, je nachdem, ob der urlencodete Wert $data[$defaultkey] ungleich oder gleich dem String "<urlencodeter Vergleichswert>" ist. Dabei ist "<urlencodeter Vergleichswert>" ein urlencodeter String und "<Ausgabe>" ein beliebiger String, der kein ")" enthält.
Dies wird v.a. bei den Form-Elementen select, radio und checkbox bei Benutzung des selected2 bzw. checked2-Flags ausgenutzt (siehe ´html_form_element´).
Diese Ersetzung findet nur statt, falls Bit 3 von $subst_type gesetzt ist.
5.
Ein String der Form "$?<bedingung>(<attributname>:<Ausgabe>)", wobei der String "<bedingung>" nur aus Buchstaben besteht sowie der String "<attributname>" kein ":" und kein ")" und der String "<Ausgabe>" kein ")" enthalten darf, wird ersetzt durch den leeren String oder durch "<Ausgabe>", je nachdem, ob die durch <bedingung> und <attributname> spezifizierte Bedingung wahr ist oder nicht.
Zur Zeit sind folgende Bedingungen möglich:
Der Eingabe-String wird von links nach rechts nach den zu ersetzenden Strings durchsucht und ggf. Ersetzungen vorgenommen. Insbesondere wird ein Teilstring, der durch Ersetzung entstanden ist nicht noch einmal neu durchsucht. Sonst wären unter Umständen unerwünschte Ersetzungen die Folge. Denn dann könnte z.B. ein Variablenbezeichner der im Inhalt einer Variable, d.h. im Datentupel steht (was ja z.B. aus der Datenbank stammen kann und beliebige Strings enthalten kann) selbst ersetzt werden, oder anders gesagt, wären die Variablenbezeichner nie als echter Dateninhalt möglich.

´html_substitute_data´ war ursprünglich nur als Hilfsfunktion zu den Tabellen- bzw. Form-Erzeugungsfunktionen gedacht. Sie wird jedoch auch von einigen anderen Teilen des Workflowsystem, z.B. db-table-Funktionen benutzt.
Sie hat die folgende Parameter:

Rückgabe ist der Eingabe-String nach der Ersetzung.


next up previous contents index
Next: Funktionen für Erzeugung von Up: Funktionen für die Erstellung Previous: Funktion zum Ersetzen von
Copyright Munich Network Management Team