Datentyp Option
Wertebereich des Datentyps Option
In einigen mengenwertigen Eingabekomponenten, wie z. B. CHECKBOX, COMBOBOX, LIST und RADIOBUTTON, können ein oder mehrere Einträge ausgewählt werden.
Ein Eintrag wird in FirstSpirit durch den Datentyp Option repräsentiert.
Kann in der Eingabekomponente nur ein Eintrag (z. B. COMBOBOX) ausgewählt werden, so wird ein Option-Objekt zurückgeliefert.
Bei Eingabekomponenten, in denen mehrere Einträge ausgewählt werden können (z. B. CHECKBOX), wird von der Eingabekomponente eine Liste von Option-Objekten zurückgeliefert. Eine solche Liste kann mithilfe einer $CMS_FOR(...)$-Anweisung ausgegeben werden.
Definition über die Standard-Eingabekomponenten
Im Formularbereich von Vorlagen können unterschiedliche Eingabekomponenten definiert werden. Über diese Formularelemente können dann die eigentlichen redaktionellen Inhalte in die Seite einfügen werden. Die von FirstSpirit unterstützten Standard-Eingabekomponenten liefern unterschiedliche Datentypen zurück.
Die folgenden Standard-Eingabekomponenten liefern ein Objekt vom Datentyp Option zurück:
Auf diesem Objekt lassen sich dann mithilfe einer $CMS_VALUE(...)$-Anweisung Methoden anwenden:
$CMS_VALUE(BEZEICHNER.METHODE)$
Unter BEZEICHNER muss der Parameter resultname, der in der Eingabekomponente definiert wurde, angegeben werden.
Wird ein Feld über eine Beziehungskante (z. B. N:M) erworben, so fehlen die Informationen zur Oberfläche (GUI), beispielsweise die sprachabhängige Beschriftung (Label) der Eingabekomponente. Diese Problematik muss in der Vorlagenentwicklung berücksichtigt werden: |
Ausgabe über die Eingabekomponente:
Informationen zur Eingabekomponente können über $CMS_VALUE(cs_componentName...)$ ausgegeben werden. Der Ausdruck $CMS_VALUE(cs_componentName.class)$ liefert daher die Klasse ContentOption zurück, die die Eigenschaften der Klasse Option erbt. Dabei handelt es sich um eine Menge von sprachabhängigen Optionen der Eingabekomponente. Über den Ausdruck können Informationen zur definierten Oberflächenbeschriftung der Eingabekomponente angefordert werden. Diese Informationen werden innerhalb der LANGINFO-Tags im Formularbereich definiert.
<LANGINFOS>
<LANGINFO label="Produktauswahl:" lang="*"/>
<LANGINFO label="Bitte wählen sie ein Produkt aus:" lang="DE"/>
<LANGINFO label="Please select a product:" lang="EN"/>
</LANGINFOS>
Die Ausgabe ist abhängig von der übergebenen Sprache. Ist diese Sprache in den LANGINFO-Tags nicht vorhanden, wird auf den Standardwert lang="*" zurückgegriffen:
$CMS_VALUE(cs_componentName.label(#global.language))$
Diese Ausgabe ist über das Systemobjekt #row nicht möglich.
Ausgabe über das Systemobjekt #row:
Über das Systemobjekt #row kann auf die sprachabhängigen LANGINFO-Definitionen der Eingabekomponente nicht zugegriffen werden. Die Ursache hierfür ist, dass das Systemobjekt #row keinen Zusammenhang zu einer Vorlage herstellen kann. Folglich kann nur auf den gespeicherten Wert zurückgegriffen werden. Die Ausgabe
$CMS_VALUE(#row.product_category.category_name)$
liefert also den gespeicherten Attributwert des ausgewählten Datensatzes (aus der Eingabekomponente) zurück, z. B. für eine Produktkategorie im Demoprojekt FIRSTools den Wert "Nägel". Die Information wird sprachabhängig zurückgeliefert, indem abhängig von Sprache, die für eine Vorschau ausgewählt wurde, automatisch nach der sprachabhängigen Erweiterung, z. B. category_name_EN gesucht wird. (Bei der Generierung werden die sprachabhängige Erweiterung für die Sprache vorgenommen, die aktuell generiert wird.) Ist die Spracherweiterung nicht vorhanden, wird automatisch der Standardwert category_name verwendet. Informationen zur Oberflächenbeschriftung der Eingabekomponente, beispielsweise das sprachabhängige Label, können über #row nicht ausgegeben werden.
Methoden auf Option-Objekten
In der unten angegebenen Tabellen werden alle Methoden aufgelistet, die auf Objekten von Datentyp Option aufgerufen werden können:
Objekt wird von folgenden Formular-Objekten erzeugt: |
---|
CMS_INPUT_RADIOBUTTON |
CMS_INPUT_CHECKBOX |
CMS_INPUT_COMBOBOX |
CMS_INPUT_LIST |
compareTo(Comparable)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
compareTo(Comparable) | int |
compareTo(Object)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
compareTo(Object) | int |
equals(CharSequence)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
equals(CharSequence) | boolean |
equals(Object)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
equals(Object) | boolean |
getClass
Die Methode .getClass() (in Bean-Syntax: .class) liefert die Klasse des aufrufendes Objektes zurück (vgl. java.lang.Class).
Aufruf:
$CMS_VALUE(myString.class)$
$CMS_VALUE(myString.getClass())$
Ausgabe:
java.lang.String
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
getClass | Class |
getKey
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
getKey | String |
getLabel(String)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
getLabel(String) | String |
getLabel(Language)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
getLabel(Language) | String |
getValue
Die Methode getValue liefert die ausgewählte Option zurück.
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
getValue | Object |
ignore(Language)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
ignore(Language) | boolean |
isCase(Object)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
isCase(Object) | boolean |
isNull
Die Methode .isNull() (in Bean-Syntax: .isNull) prüft, ob ein Ausdruck bzw. Objekt Null ist, z.B. storeElement.isNull(). Bei Objekten mit komplexen Werten oder Objekten entscheidet das Objekt wann es null ist. Der Datentyp DomElement enthält beispielsweise immer ein leeres Dokument, ist also nie null. Die Prüfung einer leeren DOM-Editor-Eingabekomponente mit der Methode .isNull() liefert daher den Wert false, während die Prüfung der Komponente auf .isEmpty() den Wert true liefern würde.
Die Methode .isNull() gibt einen booleschen Wert als Ergebnis der Prüfung zurück. true (=wahr) ist die Prüfung, wenn der Ausdruck bzw. das Objekt Null ist und false (=unwahr) wenn nicht.
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
isNull | boolean |
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
void |
putLabel(String, String)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
putLabel(String, String) | void |
putLabel(Language, String)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
putLabel(Language, String) | void |
set(String, Object)
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
set(String, Object) | Object |
toJson
Convert to JSON string representtion (only handles Maps, Collections, Arrays, Numbers, and Strings)Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
toJson | String | 4.2.14 |
toString
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
toString | String |
type
Methodenname | Rückgabetyp | Verfügbar seit |
---|---|---|
type | String |