CMS_INPUT_OBJECTCHOOSER
Inhaltsverzeichnis |
zum Beispiel |
zu den Methoden: Entity |
Mithilfe dieser Eingabekomponente kann ein einzelner Datensatz aus einer Datenquelle ausgewählt werden. Der ausgewählte Datensatz ist dabei nur ein Verweis auf das jeweilige Objekt in der Datenquellen-Verwaltung. Die Eingabekomponente bietet aber auch direkte Bearbeitungsmöglichkeiten für den Datensatz, z.B. können einzelne Datensätze verändert, neue Datensätze in der Datenquelle hinzugefügt oder nicht mehr benötigte gelöscht (aus der Eingabekomponente und aus der Datenquelle) werden.
Um deutlich abzugrenzen, mit welchen Feldern und Buttons die Inhalte des Datensatzes bearbeitet werden und wo stattdessen nur die Referenz des Datensatzes in der Eingabekomponente betroffen ist, ist eine farbliche Visualisierung innerhalb der Komponente vorgegeben. Die Elemente der Eingabekomponente werden mit dem Farbkonzept des jeweiligen Verwaltungsbereichs dargestellt: grün für Elemente der Inhalte-Verwaltung, braun für Elemente oder Bearbeitungsmöglichkeiten der Datenquellen-Verwaltung.
Weitere Funktionen: Über den Button "Springe zu" kann direkt zur Datenquellen-Verwaltung gewechselt werden, um den ausgewählten Datensatz dort zu bearbeiten. Weitere Stellen, an denen der Datensatz referenziert wird, können über "Verwendungen anzeigen" angezeigt werden. Darüber hinaus können sprachabhängige Datenbankinhalte ein- und ausgeblendet werden.
Access-API Anwendungsbeispiel
Die Beispiel-Implementierung ObjectChooserEditorValueExample veranschaulicht einige einfache Anwendungsfälle für den Lesenden-, Schreibenden-, Erstellenden-Zugriff auf das Daten-Objekt (ObjectChooserEditorValue) und dessen innerer Daten-Container (Entity) der Eingabekomponente anhand der FirstSpirit Access-API.
- Anwendungs-Beispiel: ObjectChooserEditorValueExample
- Daten-Objekt: ObjectChooserEditorValue
- Container-Typ: Entity
Die Eingabekomponente CMS_INPUT_OBJECTCHOOSER wird im FirstSpirit-WebClient unterstützt. Zu Einschränkungen siehe Kapitel Einschränkungen in WebEdit. |
Pflichtparameter
Pflichtparameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Pflichtparameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Parameter
Der nachfolgenden Tabelle können die Parameter der Eingabekomponente OBJECTCHOOSER entnommen werden.
name
Das Attribut "name" ist der Variablenname einer Eingabekomponente, mit dem in den Vorlagen - mit Hilfe von $CMS_VALUE()$ - das Ergebnisobjekt der Eingabekomponente verwendet oder der Inhalt ausgegeben werden kann.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 3.1 | Designator | Keiner |
table
Mit dem Parameter table wird die Referenz zur Tabellenvorlage angegeben.
Als Wert ist der eindeutige Bezeichner der Tabellenvorlage anzugeben.
Die Angabe der Referenz wird dafür benötigt, um festzulegen aus welcher Tabelle ausgewählt werden kann und welche Eingabekomponenten dargestellt werden sollen.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
table* | Ja | 3.0 | TableTemplateReference | Keiner |
allowChoose
Mit dem Parameter allowChoose kann festgelegt werden, ob in der Eingabekomponente bestehende Datensätze ausgewählt werden dürfen oder nicht.
Standardmäßig ist die Auswahl von Datensätzen möglich.
Wird allowChoose mit NO (allowChoose="NO") angegeben, so ist eine Auswahl nicht mehr möglich. Datensätze in der Eingabekomponente können dann nur über das Anlegen von neuen Datensätzen hinzugefügt werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowChoose | Nein | 3.0 | YesNo | YES |
allowDelete
Über dieses Attribut kann eingestellt werden, dass ein ausgewählter Datensatz direkt über die Eingabekomponente gelöscht werden kann, ohne zum jeweiligen Datensatz in der Datenquellen-Verwaltung wechseln zu müssen. Mit allowDelete="YES" kann der Datensatz aus der Eingabekomponente und der Datenquelle gleichzeitig entfernt werden. Standardmäßig ist der Parameter auf NO gesetzt.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowDelete | Nein | 4.2 | YesNo | NO |
allowEdit
Mit dem Parameter allowEdit kann in der Eingabekomponente das Bearbeiten von Einträgen erlaubt oder aber unterbunden werden.
Wird der Parameter nicht angegeben, so können die Einträge bearbeitet werden.
Das Bearbeiten von Einträgen ist mit der Angabe NO (...allowEdit="NO"...) nicht möglich.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowEdit | Nein | 3.0 | YesNo | YES |
allowEmpty
Mit dem Parameter "allowEmpty" wird festgelegt, ob für eine Eingabekomponente ein Wert angegeben werden muss oder nicht.
Bei der Angabe von allowEmpty="YES" ist eine Eingabe nicht zwingend, bei allowEmpty="NO" jedoch schon.
Eingabekomponenten mit allowEmpty="NO" werden auch als Pflichteingabekomponenten bezeichnet.
Der Standardwert für allowEmpty ist YES.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowEmpty | Nein | 3.0 | YesNo | YES |
allowNew
Mit dem Parameter allowNew kann das Anlegen von neuen Einträgen erlaubt oder aber unterbunden werden.
Wird der Parameter nicht angegeben, so können neue Einträge angelegt werden.
Bei der Angabe von NO (...allowNew="NO"...) können keine neue Einträge angelegt werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowNew | Nein | 3.0 | YesNo | YES |
convertEntities
Mit dem Attribut "convertEntities" werden Sonderzeichen, die in die Eingabekomponenten eingeben wurden, bei der Ausgabe in HTML-Zeichen umgewandelt.
Es gibt hier drei Ausprägungen:
- convertEntities="NONE" (Standard)
- convertEntities="STANDARD"
- convertEntities="QUOTE"
Bei NONE werden keinerlei Konvertierungsregeln angewendet.
Wird STANDARD angegeben, so werden die Konvertierungsregeln angewendet, die im Bereich "convert" der ausgewählten Konvertierungsregel des Präsentationskanales stehen.
Die Angabe QUOTE schließt STANDARD explizit mit ein. Es wird jedoch zusätzlich der Bereich "quote" der Konvertierungsregel angewendet.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
convertEntities | Nein | 2.0 | ConvertEntity | NONE |
hFill
Die Anzeige einer Eingabekomponente erfolgt immer mit einer vordefinierten Breite.
Ist es aber gewünscht, dass die Eingabekomponente die volle zur Verfügung stehende Anzeigebreite nutzt, ist der Parameter hFill mit dem Wert YES anzugeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
hFill | Nein | 2.0 | YesNo | NO |
hidden
Mit dem Parameter "hidden" kann eine Eingabekomponente für den Redakteur ausgeblendet werden.
Bei der Angabe von hidden="YES" wird die Eingabekomponente ausgeblendet, bei hidden="NO" nicht.
Der Standardwert für hidden ist NO, so dass Eingabekomponenten standardmäßig für den Redakteur sichtbar sind.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
hidden | Nein | 4.0.44 | YesNo | NO |
noBreak
Mit dem Parameter noBreak kann der automatische Zeilenumbruch nach einer Eingabekomponente unterdrückt werden.
Um den automatischen Zeilenumbruch zu unterdrücken, ist der Parameter noBreak mit dem Wert "YES" anzugeben (noBreak="YES").
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
noBreak | Nein | 2.0 | YesNo | NO |
preset
Mit dem Attribut preset kann festgelegt werden, wie Vorgabewerte in einer Eingabekomponente behandelt werden (vgl. dazu auch Kapitel Vorgabewerte). Wird preset="default" gesetzt, wird der im Formular definierte Rückgriffwert verwendet. Nachträgliche Änderungen im Formular an diesem Wert wirken sich auf alle Verwendungen in den vom Redakteur gepflegten Eingabekomponenten aus, solange bis ein manueller Wert in die Eingabekomponente gesetzt wird. Dies ist die Standardeinstellung. Wird preset="copy" gesetzt, wird der durch den Redakteur gewählte Wert "hart" in der Eingabekomponente gespeichert. Nachträgliche Änderungen am Vorgabewert im Formular wirken sich nicht aus.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
preset | Nein | 4.0 | Preset | DEFAULT |
useLanguages
Mit dem Parameter useLanguages kann festgelegt werden, ob eine Eingabekomponente für verschiedene Sprachen unterschiedliche bzw. abweichende Werte speichern soll oder nicht (mehrsprachige Pflege).
Wird der Parameter nicht angegeben so werden standardmäßig abweichende Werte für die verschiedenen Sprachen gespeichert.
Bei der Angabe von NO (...useLanguages="NO") wird ein Wert für alle Sprachen gespeichert.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
useLanguages | Nein | 2.0 | YesNo | YES |
LANGINFOS
Über das Tag LANGINFOS können für jede Eingabekomponente sprachabhängige Angaben definiert werden, z. B. wie die Eingabekomponente in den unterschiedlichen Projektsprachen betitelt sein soll (Parameter label), welcher Tooltip angezeigt werden soll (Parameter description) usw. Aus Gründen der Übersichtlichkeit werden dabei Definitionen, die in mehreren Sprachen identisch sind, zusammengefasst. So wird z. B. aus
<LANGINFOS>
<LANGINFO lang="*" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="DE" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="EN" label="Date" format="MM/dd/yy"/>
</LANGINFOS>
beim Speichern
<LANGINFOS>
<LANGINFO lang="*" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="EN" label="Date" format="MM/dd/yy"/>
</LANGINFOS>
Die Definition für den Rückfallwert (*) bleibt dabei immer erhalten, von Definitionen für Sprachen mit gleichen Werten bleibt immer die oberste erhalten.
Ab FirstSpirit-Version 4.2R4 kann der Rückfallwert weggelassen werden. Dann wird beim Speichern automatisch die zuerst definierte Sprache als Rückfallwert verwendet, z. B. wird aus
<LANGINFOS>
<LANGINFO lang="EN" label="Date"/>
<LANGINFO lang="DE" label="Datum"/>
</LANGINFOS>
beim Speichern
<LANGINFOS>
<LANGINFO lang="*" label="Date"/>
<LANGINFO lang="DE" label="Datum"/>
</LANGINFOS>
LANGINFO
Mit dem Tag LANGINFO werden Werte oder Attribute für eine Sprache oder aber für die Verwendung als Rückfallwerte angegeben.
Um Werte bzw. Attribute für eine Sprache anzugeben ist im Parameter lang die Abkürzung der Projektsprache anzugeben:
...
<LANGINFO lang="DE".../>
...
Rückfallwerte werden mit dem speziellen Sprachkürzel * ("für alle Sprachen") angegeben:
...
<LANGINFO lang="*".../>
...
Bei dem Parameter lang handelt es sich um einen Pflichtparameter.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 3.1 | LanguageAbbreviation | Keiner |
description | Nein | 3.1 | String | Keiner |
expression | Nein | 4.0 | String | Keiner |
label | Nein | 3.1 | String | Keiner |
lang
Mit dem Parameter lang wird das Sprachkürzel, das in den Servereigenschaften im Feld Abkürzung eingetragen ist (siehe FirstSpirit Handbuch für Administratoren, Kapitel "Sprach-Vorlagen"), angegeben, um festzulegen für welche Projektsprachen die Definitionen gelten sollen, z.B. DE für Deutsch, EN für Englisch, FR für Französisch usw. Folgende Zeichen können dabei beliebig oft angegeben werden: -, _, 0-9 und A-Z. Kleinbuchstaben werden nach dem Speichern der Vorlage automatisch in Großbuchstaben umgewandelt. Alternativ kann * für Rückfallwerte verwendet werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 3.1 | LanguageAbbreviation | Keiner |
description
Mit dem Parameter description kann eine Beschreibung angegeben werden, die zur Anzeige eines Tooltipps (Mouse-Over) genutzt wird.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
description | Nein | 3.1 | String | Keiner |
expression
Wird die Eingabekomponente CMS_INPUT_OBJECTCHOOSER in der Datenquellen-Verwaltung verwendet, können mit dem Parameter expression in der Spaltenübersicht Werte einer Spalte aus einer Tabelle ausgegeben werden, die über einen Fremdschlüssel mit der Datenquelle verbunden ist.
Dazu muss CMS_INPUT_OBJECTCHOOSER in einer Tabelle A definiert sein, die mit der Tabelle B in einer 1:N-Fremdschlüsselbeziehung steht. In der Tabellenvorlage der Tabelle A wird in der Eingabekomponente CMS_INPUT_OBJECTCHOOSER die Tabellenvorlage der Tabelle B über den Parameter table referenziert. Tabelle A ist somit die Ziel-Tabelle (N Elemente), Tabelle B ist die Quell-Tabelle (1 Element). CMS_INPUT_OBJECTCHOOSER muss mit dem Fremdschlüssel verknüpft sein.
In CMS_INPUT_OBJECTCHOOSER kann dann über expression auf die in die Spalten der Tabelle B eingepflegten Werte zugegriffen werden.
Dazu stehen die Systemobjekte #item und #row zur Verfügung. Diese repräsentieren z. B. die anzuzeigende Datenbankzeile der über den Parameter table definierten Tabellenvorlage. Eine Spalte der Datenbankzeile kann durch einen Punkt getrennt für die Beschriftung verwendet werden, wie z. B. im Beispiel #item.Country_DE.
Weiterhin werden über den Ausdrucksmechanismus sprachspezifische Endungen automatisch gesetzt, sollten sie vorhanden sein, d. h. folgende Definition ist möglich:
<CMS_INPUT_OBJECTCHOOSER name="cs_objectchooser" table="Products.contacts">
<LANGINFOS>
<LANGINFO lang="*" label="Kontakt" expression="#item.Country_DE"/>
</LANGINFOS>
</CMS_INPUT_OBJECTCHOOSER>
Es ist darauf zu achten, dass der Spaltenname korrekt angegeben wird und die Spalten auch tatsächlich in der angegebenen Tabelle vorhanden ist, da sonst kein Wert in der Datenquellen-Übersicht angezeigt wird. |
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
expression | Nein | 4.0 | String | Keiner |
label
Mit dem Parameter label wird die Oberflächenbeschriftung für Eingabe- und Visualisierungkomponenten angegeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
label | Nein | 3.1 | String | Keiner |
Beispiel
Ein Beispiel für die Eingabekomponente "CMS_INPUT_OBJECTCHOOSER":
<CMS_INPUT_OBJECTCHOOSER useLanguages="NO" table="TABELLENVORLAGE" hFill="YES" name="BEZEICHNER">
<LANGINFOS>
<LANGINFO lang="*" label="TEXT" description="TEXT"/>
<LANGINFO lang="DE" label="TEXT" description="TEXT"/>
<LANGINFO lang="EN" label="TEXT" description="TEXT"/>
</LANGINFOS>
</CMS_INPUT_OBJECTCHOOSER>