- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Abfrage auf Datenquelle mit Filterparam aus Element CMS_INPUT_CHECKBOX
Hallo Community,
ich habe eine Frage zur Nutzung einer Abfrage auf eine Datenquelle.
Die Datenquelle enthรคlt einzelne Newsbeitrรคge als Datensรคtze. Diese Newsbeitrรคge kรถnnen anhand eines Formularelements vom Typ CMS_INPUT_CHECKBOX nochmal verschiedenen Typen von Newsbeitrรคgen zugeordnet werden (Pressemeldung value: pm, News, value: nr).
Der Inhalt dieser Checkbox wird in das Datensatzfeld 'formats' geschrieben.
Nun will ich eine Abfrage auf die Datenquelle (Name: news) bauen in der nur Datensรคtze angezeigt werden in denen der Typ 'News' (value: nr) angeklickt ist. Datensรคtze die nur als Pressemeldung (value: pm) gekennzeichnet sind sollen nicht ausgegeben werden.
Dies probiere ich รผber eine Abfrage im Definitionsmodus 'Quelltext'
<QUERY entityType="news">
<FILTERPARAM parameter="formats" datatype="java.util.List"/>
<EQ attribute="formats" parameter="Format"/> ???
</QUERY>
Hier bin ich mir nicht sicher ob der Datatype java.util.List so stimmt und mit welcher Abfrage ich auf den Wert fรผr News abfragen kรถnnte.
รberlegungen:
Brรคuchte ich ein Contains auf den String der Liste ? Wie kann ich dies dann in der Syntax schreiben?
Kann ich irgendwie eine Abfragebedingung auf den Datatype Option (Checkbox) machen?
Gibt es eine Mรถglichkeit รผber eine Abfrage nur die als News gekennzeichneten Datensรคtze ausgeben zu lassen.
Hatte hier schonmal jemand ein รคhnliches Problem?
Fรผr Hilfe und Tips wรคre ich sehr dankbar.
Eine Lรถsung wรคre sicherlich fรผr viele Programmierer interessant, die ein Formularelement vom Typ 'Option' (z.B.CMS_INPUT_CHECKBOX oder cms_input_radiobutton) in einer Tabellenvorlage verwenden und dann einen Filter dazu benรถtigen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Juncus,
ich fange mal mit ein paar Hintergrundoptionen an. Wenn eine CMS_INPUT_CHECKBOX in ein Datenbankfeld geschrieben wird, so ist dieses normalerweise vom Typ FirstSpirit Editor (die Sonderfรคlle, dass das irgendwie einen anderen Feldtyp gemappt wurde, ignoriere ich hier mal).
Das bedeutet, dass in der Datenbank der Wert als XML gespeichert wird. Wobei die Datenbank das Ganze als String behandelt. (der exakte Typ der Spalte hรคngt davon ab, wie ein [รผblicherweise bis zu 64kB groรer] String in der jeweiligen Datenbank gespeichert wird).
In dem XML, dass gespeichert wird, stehen viele zusรคtzliche Informationen, die schnell dazu fรผhren kรถnnen, dass der Versuch, entsprechende Daten abzufragen, zu unerwarteten Ergebnissen fรผhrt. Das Ganze sieht ungefรคhr so aus:
<CMS_VALUE name="tt_news"><LANG id="DE" set="1"><SEL><VALUE>pm</VALUE><VALUE>nr</VALUE></SEL></LANG></CMS_VALUE>
Man kรถnnte nun versuchen, eine Abfrage zu machen, die auf einen Teilstring (in diesem Fall "pm" oder "nr") des Strings abfragt. Aber das ist weder performant noch empfehlenswert!
Besser wรคre es, statt dessen eine Fremdschlรผsselbeziehung zu einer weiteren Tabelle anzulegen, in der die Optionen stehen, die in der CMS_INPUT_CHECKBOX (oder COMBOBOX, RADIOBUTTON) angezeigt werden sollen. In diesem Fall wรคre das eine N:M Beziehung, bei den beiden anderen Eingabekomponenten eine 1:N Beziehung.
Die mรถglichen Optionen bekommt man jeweils รผber <CMS_INCLUDE_OPTIONS type="DATABASE">. Man kann dann problemlos eine Abfrage erstellen, die alle Datensรคtze zurรผckgibt, die รผber die entsprechende Fremdschlรผsselbeziehung die gewรผnschte Option ausgewรคhlt haben.
Und wenn man will, kann man auf den Datensรคtzen fรผr die Optionen noch eine Eingabekomponente anzeigen lassen, die die Rรผckrichtung visualisiert (z.B. FS_INDEX).
Viele Grรผรe
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Holger,
danke fรผr deine schnelle und ausfรผhrliche Beantwortung meiner Frage.
Viele Grรผรe v.
Juncus

