Quicknavi |
|
Standard TagLibs
Folgende TagLib-Tags stehen zur Verfügung. In nicht selbstschließenden Tags sind alle HTML-
Tags und -Formatierungen erlaubt. Die Tags können mit den üblichen HTML-Attributen ausgestattet
werden, sofern diese für die Ausgabe oder Funktion relevant sind.
1. Core
1.1. Addtaglib
TagLibs sind nur innerhalb eines Dokuments des Objektbaums gültig. Um eine selbst implementierte
TagLib im aktuellen Dokument einbinden zu können wird folgender Tag verwendet. Dieser sollte
möglichst am Anfang des Dokuments plaziert sein, da Tags erst nach erfolgreicher Einbindung einer
TagLib geparst werden können.
<core:addtaglib namespace="" prefix="" class="" />
Beschreibung der Attribute:
-
namespace: Ein mit "::" getrennter Namespace-Pfad.
(Zeichen:
[A-Za-z0-9_-:])
-
prefix: XML-Prefix
(Zeichen:
[a-z])
-
class: XML-Klasse
(Zeichen:
[a-z])
Die vom Entwickler erzeugte TagLib-Klasse muss dir Form "<prefix>_taglib_<class>" haben. Die
innerhalb der Klasse zu implementierenden Methoden sind der API-Dokumentation zu entnehmen. In der Regel
wird das Tag für die Einbindung der Form-TagLib verwendet. Eigene Taglibs machen vor allem dann Sinn,
wenn eigene abgetrennte Bereiche einer Applikation mehrfach verwendbar gemacht werden wollen (z.B. Warenkorb).
1.2. Importdesign
Möchte der Template-Bauer an einer definierten Stelle ein weiteres Document einfügen, so
kann der Tag
<core:importdesign namespace="" template="" [incparam=""] />
Beschreibung der Attribute:
-
namespace: Ein mit "::" getrennter Namespace-Pfad.
(Zeichen:
[A-Za-z0-9_-:])
-
template: Name eines Templates.
(Zeichen:
[A-Za-z0-9-_:])
-
incparam: URL-Parameter der abgefragt wird, welches Template eingebunden werden soll.
verwendet werden. Wird bei der Definition des Tags ein sog. pagepart-Template definiert, kann ein
Template abhängig vom URL-Parameter eingebunden werden. Standard-Parameter ist "pagepart",
dieser kann jedoch mit dem optionalen Attribut "incparam" angepasst werden. Beispiel für die
Einbindung mit pagepart-Parameter:
<core:importdesign namespace="sites::testsite::pres::templates" template="[pagepart = test]" />
<core:importdesign namespace="sites::testsite::pres::templates" template="[cmsmodule = test]" \
incparam="cmsmodule" />
Das eingebundene Template erbt automatisch die Eigenschaften des Vater-Objekts. Insbesondere Context und
Sprache werden übertragen.
1.3. Setproperty
Um eine Eigenschaft des aktuellen Documents im Template setzen zu können steht dem, Entwickler
der "core:setproperty"-Tag zur Verfügung. Typischer Anwendungsfall ist es den Context oder
die Sprache eines Documents mit diesem Text zu setzen um auf eine anderssprachige Seite zu wechseln.
<core:setproperty name="" value="" />
Eine Liste der Eigenschaften eines von der Klasse "Document" erbenden Klasse entnehmen Sie bitte der
API-Dokumentation.
Um das Tag verwenden zu können muss die TagLib "core:setproperty" erst via
<core:addtaglib namespace="core::pagecontroller" prefix="core" class="setproperty" />
eingebunden werden.
Beschreibung der Attribute:
-
name: Name der zu befüllenden Eigenschaft.
(Zeichen:
[A-Za-z0-9_-])
-
value: Wert der Eigenschaft.
(Zeichen:
[A-Za-z0-9-_:.])
1.4. Setattribute
Der Tag "core:setattribute" verhält sich analog zu "core:setproperty", nur wird bei diesem der
Wert eines Attributes des Dokuments gesetzt.
<core:setattribute name="" value="" />
Um das Tag verwenden zu können muss die TagLib "core:setattribute" erst via
<core:addtaglib namespace="core::pagecontroller" prefix="core" class="setattribute" />
eingebunden werden.
Beschreibung der Attribute:
-
name: Name des Attributes.
(Zeichen:
[A-Za-z0-9_-])
-
value: Wert des Attributes.
(Zeichen:
[A-Za-z0-9-_:.])
2. Html
2.1. Placeholder
Um in einem DocumentController Inhalte dynamisch füllen zu können gibt es den html:placeholder-
Tag.
<html:placeholder name="" />
Beschreibung der Attribute:
-
name: Name des Platzhalters. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
Um einen Platzhalter mit Inhalt zu füllen kann man in einem DocumentController folgendes einbauen:
$this->setPlaceHolder('NameDesPlatzhalters','InhaltDesPlatzHalters');
2.2. Getstring:
Der Tag "html:getstring" dient dazu einen Konfigurations-String aus einer sprachabhängigen
Konfigurations-Datei auszulesen und anzuzeigen. So können auf einfache Weise mehrsprachige
Anwendungen aufgebaut werden.
<html:getstring namespace="" config="" entry="" />
Um das Tag verwenden zu können muss die TagLib "html:getstring" erst via
<core:addtaglib namespace="tools::html::taglib" prefix="html" class="getstring" />
eingebunden werden.
Beschreibung der Attribute:
-
namespace: Namespace der Konfigurationsdatei.
(Zeichen:
[A-Za-z0-9_-:])
-
config: Name der Konfigurationsdatei.
(Zeichen:
[A-Za-z0-9-_])
-
value: Name des Konfigurations-Offsets.
(Zeichen:
[A-Za-z0-9-_.])
Die sprachabhängige Konfigurationsdatei muss jeweils eine Sektion pro Sprache (zweistelliger
ISO-Länder-Code) und die verwendeten Konfigurationsschlüssel in den Sektionen enthalten
sein. Soll der Tag
<html:getstring namespace="modules::mymodule" config="language" entry="title" />
zur Anzeige eines sprachabhängigen Titels in einem Template genutzt werden, muss die
Konfigurationsdatei
/config/modules/mymodule/{APPS__CONTEXT}/{APPS__ENVIRONMENT}_language.ini
mit dem Inhalt
[de]
title = "Mein Modul"
[en]
title = "My module"
gefüllt werden. Diese Beschreibung gilt ebenso für die Tags
<form:getstring /> (Kapitel 2.4.19.) und <template:getstring />
(Kapitel 2.3.3.).
2.3. Template
2.3.1. Basis-Funktionen
Um weitere Elemente für die Ausgabe-Steuerung definieren zu können gibt es so genannte
Templates. Diese können innerhalb eines DocumentControllers manipuliert und verarbeitet werden.
In einem Template gibt es wiederum Platzhalter, die dynamisch gesetzt werden können.
<html:template name="">
[<template:placeholder name="" />]
[<template:addtaglib namespace="" prefix="" class="" />]
</html:template>
Beschreibung der Attribute:
-
name: Name des Templates bzw. des Platzhalters innerhalb des Templates. Über
den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
Zugriff auf ein Template gewährt die private Methode "__getTemplate()" eines DocumentControllers.
Mit Hilfe dieser Funktion kann eine Referenz auf ein Template-Objekt zurückgeliefert werden. Ein
typischer Anwendungsfall sieht so aus:
Template:
<@controller namespace="" file="" class="" @>
<html:placeholder name="Content" />
<html:template name="MyTemplate">
<template:placeholder name="MyPlaceHolder">
</html:template>
Controller:
class myDocumentController extends baseController { function myDocumentController(){ }
function transformContent(){ $Template__MyTemplate = &$this->__getTemplate('MyTemplate'); $Template__MyTemplate->setPlaceHolder('MyPlaceHolder','MyContent'); $this->setPlaceHolder('Content',$Template__MyTemplate->transformTemplate()); } }
Hier wird in der XML-Datei ein Document-Controller, ein HTML-Platzhalter und ein Template mit zugehörigem
Platzhalter definiert. Im Controller kann man nun mittels der Methoden __getTemplate() eine Referenz
auf das Template holen und mit setPlaceHolder() den Platzhalter im Template füllen.
Anschließend wird das Template transformiert und die Ausgabe in den HTML-Platzhalter mittels
setPlaceHolder() eingesetzt. Es ist möglich mehrere Templates auf einer Seite zu platzieren.
Oft wird das für die Ausgabe von unterschiedlichen Meldungen bei unterschiedlichen Events
eingesetzt.
2.3.2. Template-Erweiterungen:
Um die Funktionalitäten innerhalb eines Templates mit weiteren TagLibs erweitern zu können
steht der Tag "<template:addtaglib />" zur Verfügung. Ähnlich dem "<core:addtaglib />"-
Tag können hier innerhalb eines Templates weitere TagLibs hinzugefügt werden.
<template:addtaglib namespace="" prefix="" class="" />
Beschreibung der Attribute:
-
namespace: Ein mit "::" getrennter Namespace-Pfad.
(Zeichen:
[A-Za-z0-9_-:])
-
prefix: XML-Prefix
(Zeichen:
[a-z])
-
class: XML-Klasse
(Zeichen:
[a-z])
Ein Beispiel für die Verwendung des XML-Tags ist der TagLib-Tag <[html|template]:getstring />
zum Auslesen und Darstellen eines Strings aus einer Konfigurations-Datei.
Siehe hierzu Kapitel 2.2.3. bzw. 2.4.
2.3.3. Getstring:
Der Tag "template:getstring" dient dazu einen Konfigurations-String aus einer sprachabhängigen
Konfigurations-Datei auszulesen und anzuzeigen. So können auf einfache Weise mehrsprachige
Anwendungen aufgebaut werden.
<template:getstring namespace="" config="" entry="" />
Um das Tag verwenden zu können muss die TagLib "template:getstring" erst via
<template:addtaglib namespace="tools::html::taglib" prefix="template" class="getstring" />
eingebunden werden.
Beschreibung der Attribute:
-
namespace: Namespace der Konfigurationsdatei.
(Zeichen:
[A-Za-z0-9_-:])
-
config: Name der Konfigurationsdatei.
(Zeichen:
[A-Za-z0-9-_])
-
value: Name des Konfigurations-Offsets.
(Zeichen:
[A-Za-z0-9-_.])
2.4. Form
Zur dynamischen Generierung und Handhabung von Formularen gibt es das html:form-Tag. Mit diesem
können Formulare innerhalb eines Dokuments beschreiben werden. Ähnlich wie Templates sind
diese im DocumentController verfügbar uns können entsprechend in das Dokument eingesetzt
werden.
<html:form name="" [method=""]>
...
</html:form>
Beschreibung der Attribute:
-
name: Name des Formulars. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
method: Versand-Methode des Formulars. Standardmäßig wird post verwendet.
(Zeichen:
[get|post])
Innerhalb eines Formulars stehen folgende Tags zu Verfügung. Diese können in unterschiedlichen
Kombinationen auftreten. Für ein Anwendungsbeispiel wird auf das Kontaktformular der Beispiel-Seite
auf die API-Dokumentation verwiesen.
Des Weiteren stehen für Eingabe-Felder folgende Attribute zur Aktivierung und Konfiguration der
Validierung von Benutzereingaben zur Verfügung
(z.B. bei einer Textarea):
<form:area name="" [validate="" button="" [validator=""]]/>
Beschreibung der Attribute:
-
validate: Ist der Wert des Attributes mit "true" gefüllt, so wird der Eingabe-
Werte beim Absenden überprüft. Fehlt das Attribut oder ist es mit dem Wert "false" versehen
wird keine Validierung vorgenommen. Der Wert "true" bedingt jedoch das Attribut "button".
(Zeichen:
[true|false])
-
button: Name des Buttons, bei dessen Klicken das Feld validiert werden soll.
(Zeichen:
[A-Za-z0-9-_])
-
validator: Name des Validators. Standard ist "Text" und prüft auf Vorhandensein
von mind. einem beliebigen Zeichen. Die hier möglichen Validatoren ergeben sich aus den Methoden
der Klasse "myValidator" durch weglassen des Keywords "validate". Beispiel: Möchte eine E-Mail
validiert werden, so ist hierfür die Methode "validateEMail" zuständig. Im Feld "validate"
kann damit ein "EMail" notiert werden. Sollen weitere Validatoren möglich gemacht werden muss
die Klasse "myValidator" erweitert werden.
(Zeichen:
[A-Za-z])
2.4.1. Textarea
<form:area name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Textarea. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Style des Feldes.
2.4.2. Textarea mit Content
<form:area name="" [id=""] [class=""] [style=""]>
[..]
</form:area>
Beschreibung der Attribute:
-
name: Name des Textarea. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.3. Button
<form:button name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Buttons. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.4. Checkbox
<form:checkbox name="" [id=""] [class=""] [style=""] [checked=""] />
Beschreibung der Attribute:
-
name: Name der Checkbox. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
-
checked: Zeigt an, ob der Radio-Button vorselektiert ist.
2.4.5. Datums-Control
<form:date name="" [id=""] [class=""] [style=""] [yearrange=""] [offsetnames=""]/>
Beschreibung der Attribute:
-
name: Name des Datum-Controlls. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
-
yearrange: Range des Jahres-Feldes. Beispiel:
1990-2007.
(Zeichen: [0-9-])
-
offsetnames: Namen der Felder für Tag, Monat und Jahr. Einzelne Felder müssen
durch ";" getrennt werden. Beispiel:
Tag;Monat;Jahr.
(Zeichen: [A-Za-z])
2.4.6. Dateiupload-Feld
<form:file name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Dateiupload-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.7. Hidden-Feld
<form:hidden name="" value="" />
Beschreibung der Attribute:
-
name: Name des Hidden-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
value: Wert des Hidden-Feldes.
2.4.8. Multiselect-Feld
<form:multiselect name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Multiselect-Felds. Über den Namen kann auf das Element
zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.9. Multiselect-Feld mit Optionen
<form:multiselect name="" [id=""] [class=""] [style=""]>
<select:option value="" [selected="selected"]></select:option>
</form:multiselect>
Beschreibung der Attribute:
-
name: Name des Text-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
-
value: Wert der Option.
-
selected: Gibt an, ob die aktuelle Option vorselektiert ist.
(Zeichen:
[selected|<leer>])
2.4.10. Passwort-Feld
<form:password name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Passwort-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.11. Platzhalter
<form:placeholder name="" />
Beschreibung der Attribute:
-
name: Name des Hidden-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
2.4.12. Radio-Button
<form:radio name="" id="" [class=""] [style=""] [checked=""]/>
Beschreibung der Attribute:
-
name: Name des Radio-Buttons. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
-
value: Wert der Option.
-
checked: Zeigt an, ob der Radio-Button vorselektiert ist.
2.4.13. Select-Feld
<form:select name="" [id=""] [class=""] [style=""] />
Beschreibung der Attribute:
-
name: Name des Select-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.14. Select-Feld mit Optionen
<form:select name="" [id=""] [class=""] [style=""]>
<select:option value="" [selected="selected"]></select:option>
</form:select>
Beschreibung der Attribute:
-
name: Name des Select-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
-
value: Wert der Option.
2.4.15. Text-Feld
<form:text name="" [id=""] [class=""] [style=""]/>
Beschreibung der Attribute:
-
name: Name des Text-Felds. Über den Namen kann auf das Element zugegriffen werden.
(Zeichen:
[A-Za-z0-9-_])
-
id: Eindeutige ID innerhalb eines Formulars.
(Zeichen:
[A-Za-z0-9-_])
-
class: CSS-Klasse des Feldes.
-
style: CSS-Klasse des Feldes.
2.4.16. Validator
<form:validate validator="" button="" field="" [type=""] [msginputreq=""] [msginputwrg=""] />
Beschreibung der Attribute:
-
validator: Name des Validators, mit dem der Wert geprüft werden soll. (Zeichen:
[A-Za-z])
-
button: Name des Buttons des Formulars.
-
field: Name des Feldes, das validiert werden soll.
-
type: Ausgabe-Typ des Validators. Bei "text" gibt der Validator-Tag einen in der Konfigurations-Datei
angegebenen Text aus, bei "css" eine CSS-Formatierung. (Werte:
text|css).
-
msginputreq: Eintrag der Konfigurations-Datei, der bei Angabe des "type"s "text" statt der
Standard-Meldung ausgegeben werden soll um anzuzeigen, dass das mit "field" gekennzeichnete Feld nicht
gefüllt wurde. Wird der Parameter nicht angegeben werden Standard-Werte verwendet.
(Zeichen:
[A-Za-z0-9_-]).
-
msginputwrg: Eintrag der Konfigurations-Datei, der bei Angabe des "type"s "text" statt der
Standard-Meldung ausgegeben werden soll um anzuzeigen, dass das mit "field" gekennzeichnete Feld mit
dem falschen Wert gefüllt wurde. Wird der Parameter nicht angegeben werden Standard-Werte verwendet.
(Zeichen:
[A-Za-z0-9_-]).
2.4.17. Validator-Gruppe
<form:valgroup name="">
<valgroup:validate validator="" button="" field="" [type=""] [msginputreq=""] [msginputwrg=""] />
[<valgroup:placeholder name="" />]
</form:valgroup>
Beschreibung der Attribute:
-
name: Name der Validator-Gruppe. Es kann mehrere Gruppen in einem Formular geben.
-
validator: Name des Validators, mit dem der Wert geprüft werden soll. (Zeichen:
[A-Za-z])
-
button: Name des Buttons des Formulars.
-
field: Name des Feldes, das validiert werden soll.
-
type: Ausgabe-Typ des Validators. Bei "text" gibt der Validator-Tag einen in der Konfigurations-Datei
angegebenen Text aus, bei "css" eine CSS-Formatierung. (Werte:
text|css).
-
msginputreq: Eintrag der Konfigurations-Datei, der bei Angabe des "type"s "text" statt der
Standard-Meldung ausgegeben werden soll um anzuzeigen, dass das mit "field" gekennzeichnete Feld nicht
gefüllt wurde. Wird der Parameter nicht angegeben werden Standard-Werte verwendet.
(Zeichen:
[A-Za-z0-9_-]).
-
msginputwrg: Eintrag der Konfigurations-Datei, der bei Angabe des "type"s "text" statt der
Standard-Meldung ausgegeben werden soll um anzuzeigen, dass das mit "field" gekennzeichnete Feld mit
dem falschen Wert gefüllt wurde. Wird der Parameter nicht angegeben werden Standard-Werte verwendet.
(Zeichen:
[A-Za-z0-9_-]).
Optional besitzt die Validator-Gruppe Platzhalter, die mit der Methode setPlaceHolder() auf das Validator-
Gruppen.Objekt gesetzt werden können. Attribute sind den html:placeholder-Tag zu entnehmen.
2.4.18. Generischer Validator
Der generische Validator kommt immer dann zum Einsatz, wenn es für den aktuellen Anwendungsfall
keinen passenden gibt. Dieser gibt den Inhalt des Tags bei nicht erfolgreicher Prüfung des
angegebenen Feldes zurück. So lassen sich beispielsweise einfach CSS-Attribute von HTML-Tags
beeinflussen.
Reichen die Prüfmethoden der Klasse myValidator
nicht aus, gibt es die Möglichkeit, die Validierung über einen regulären Ausdruck
auszuführen. Hierzu muss das Attribut validator mit dem Wert RegExp
gefüllt und der reguläre Ausdruck im Attribut regexp bereitgestellt werden.
<form:genericval button="" field="" [validator="" [regexp=""]]>[text]</form:genericval>
Beschreibung der Attribute:
-
button: Name des Buttons des Formulars.
-
field: Name des Feldes, das validiert werden soll.
-
validator: Name des Validators, mit dem der Wert geprüft werden soll. (Zeichen:
[A-Za-z])
-
regexp: Regulärer Ausdruck. Das Attribut muss dann vorhanden sein, wenn der
Inhalt des Attributes validator "RegExp" ist. Letzteres indiziert, dass
die Validierung gemäß einem regulären Ausdruck erfolgen soll.
-
text: Text, der ausgegeben werden soll, falls das beschriebene Feld nicht
erfolgreich validiert werden konnte. Der Text kann beliebige HTML- bzw. XML-Fragmente enthalten.
2.4.19. Getstring
Der Tag "form:getstring" dient dazu einen Konfigurations-String aus einer sprachabhängigen
Konfigurations-Datei auszulesen und anzuzeigen. So können auf einfache Weise mehrsprachige
Formulare aufgebaut werden.
<form:getstring namespace="" config="" entry="" />
Beschreibung der Attribute:
-
namespace: Namespace der Konfiguration des Attributes.
(Zeichen:
[A-Za-z0-9_-:])
-
config: Name der Konfiguration.
(Zeichen:
[A-Za-z0-9-_])
-
value: Name des Konfigurations-Offsets.
(Zeichen:
[A-Za-z0-9-_.])
2.4.20. Addtaglib
Die Taglib "form:addtaglib" bildet das Pendant zur Taglib "core:addtaglib" und bietet die
Möglichkeit, die bestehende Funktionalität der Formular-Tags zu erweitern. Die Implementierung
des Tags erlaub es beliebige weitere Formular-Tags einzubinden und zu verwenden.
<form:addtaglib namespace="" prefix="" class="" />
Beschreibung der Attribute:
-
namespace: Ein mit "::" getrennter Namespace-Pfad.
(Zeichen:
[A-Za-z0-9_-:])
-
prefix: XML-Prefix
(Zeichen:
[a-z])
-
class: XML-Klasse
(Zeichen:
[a-z])
2.4.21. Marker
Wie im Kapitel Dynamische Formulare
beschrieben, ist der Tag <form:marker />-Tag zur Positionierung von dynamischen
Formular-Elementen gedacht. Der Tag selbst erzeugt keine Ausgabe.
<form:marker name="" />
Beschreibung der Attribute:
-
name: Name des Markers. Dieser dient zur Adressierung desselben.
(Zeichen:
[A-Za-z0-9_-])
3. Document
3.1. createobject
Der Tag erzeugt aus einer Inhalts-Datei unter dem Ordner ./frontend/content/ einen
weiteren Unter-Objektbaum. Die Inhalts-Dateien werden in der Form
c_{LANGCODE}_{NAME}.html
erwartet, wobei
- LANGCODE für ein zweizeichen Länderkürzel (de, en, it, es, ...) steht und
- NAME der URL-Name ist.
<doc:createobject requestparam="" defaultvalue="" />
Beschreibung der Attribute:
-
requestparam: URL-Parameter, der angibt, welche Content-Datei gezogen wird. (Zeichen:
[A-Za-z0-9])
-
defaultvalue: Default-Wert für den Parameter requestparam.
Um die TagLib verwenden zu können muss diese mit einem
<core:addtaglib namespace="tools::html::taglib" prefix="doc" class="createobject" />
in der Template-Datei eingebunden werden.
Wichtiger Hinweis:
Wird keine zum zu requestparam passende Datei im Ordner gefunden, erwartet der Tag eine
Datei mit dem Namen
c_{LANGCODE}_404.htm
um anzeigen zu können, dass die gewünschte Seite nicht verfügbar ist. Ist auch diese
Datei nicht verfügbar kommt es zu einem PHP-Fehler.
4. DocumentController
Um einem Dokument einen Controller zu deklarieren muss folgender Tag am Anfang des Templates platziert
werden:
<@controller namespace="" file="" class="" @>
Beschreibung der Attribute:
-
namespace: Namespace-Pfad zum Controller. (Zeichen:
[A-Za-z0-9:])
-
file: Datei-Namen in dem der Controller residiert. (Zeichen:
[A-Za-z0-9_])
-
class: Klassen-Namen des Controllers. (Zeichen:
[A-Za-z0-9_])
Die Implementierung des DocumentControllers muss immer vom baseController ableiten. Dieser ist
bereits im PageController definiert und stellt grundlegende Methode für das Handling von DOM-
Objekten bereit. Beispiel hierfür ist die __getForm()-Methode, die eine Referenz auf ein
Formular zurückgibt.
5. FrontController
Mit dem Release 1.4-18.11.2007 wurde der Tag "<fcon:importdesign />" eingefügt. Dieser
unterstützt bei der Implementierung von FrontController-basierten Applikationen und bindet Views
auf Grund von Model-Informationen im Sinne des MVC-Pattern ein. Hierzu muss eine eigene Model-Klasse
für die aktuelle Applikation oder das eingebundene Modul erstellt werden, aus dem die
Informationen für die Einbindung des Views bezogen werden können. Die Steuerung der
View-Einbindung wird typischerweise durch eigene FrontController-Actions geregelt, die im Modus
"prepagecreate" (siehe FrontController,
Kapitel 1.6) ausgeführt wird. Diese kann in der URL enthaltene Parameter an das Model-Objekt
weitergeben.
<fcon:importdesign
templatenamespace=""
modelnamespace=""
modelfile=""
modelclass=""
modelparam=""
[sessionsingleton=""]
/>
Beschreibung der Attribute:
-
templatenamespace: Namespace zum Template-Ordner.
(Zeichen::
[A-Za-z0-9:])
-
modelnamespace: Namespace zur Model Klasse.
(Zeichen:
[A-Za-z0-9:])
-
modelfile: Name der Datei, in der sich die Model-Klasse befindet.
(Zeichen:
[A-Za-z0-9_])
-
modelclass: Name der Model-Klasse.
(Zeichen:
[A-Za-z0-9_])
-
modelparam: Model-Parameter, der für die Einbindung des Templates verwendet werden soll.
(Zeichen:
[A-Za-z0-9_])
-
sessionsingleton: Definiert, ob das Model-Objekt im SINGLETON oder SESSIONSINGLETON
Modus vom ServiceManager bezogen werden soll. Ist das Attribut nicht vorhanden oder enthält
es einen anderen Wert als true, so wird der SINGLETON Modus verwendet.
(Werte:
true|false)
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
«
1
»
Einträge/Seite: |
5 |
10 |
15 |
20 |
|
1
|
Christian
01.02.2008, 00:45:42
|
Hinweise zu untenstehendem Kommentar:
1. Zu den TagLibs *:getstring haben sich einige Tippfehler eingeschlichen, die gerade berichtigt wurden.
2. Es gibt drei Varianten zu den *:getstring-Taglibs: <html:getstring />, <template:getstring /> und <form:getstring />. Die ersten beiden müssen jeweils im entsprechenden Gültigkeitsbereich durch <core:addtaglib /> bzw. <template:addtaglib /> für die <template:getstring />-TagLib bekannt gemacht werden.
|
2
|
fliegermichl
29.01.2008, 11:11:12
|
Im Bereich 2.2.3 getstring steht:
Um das Tag verwenden zu können muss die TagLib "core:setattribute" erst via
<template:addtaglib namespace="tools::html::taglib" prefix="template" class="getstring" />
Wie nun? <core:addtaglib> oder <template:addtaglib>?
|