- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Abfragen eines QUERY PARAM Wertes einer CMS_INPUT_CHECKBOX
Hallo Community,
Ich bin gerade dabei, in einem Modul eine CMS_INPUT_CHECKBOX vom typ "database" auszuwerten.
Wir bauen dynamisch ein Checkbox-Formular aus einem parametrisierten Query zusammen.
Im Modul mรถchte ich gerne den gesetzten Parameter-Wert fรผr den Query aus der Eingabekomponente ermitteln.
Bis zum Parameter komme ich auch, allerdings ist der Wert darin nicht gesetzt:
Hier die CMS_INPUT_CHECKBOX, implementiert in einer Linkvorlage:
<CMS_INPUT_CHECKBOX name="lt_branches" gridWidth="3" hFill="yes" noBreak="yes" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="database">
<LABELS>
<LABEL lang="*">#item.name</LABEL>
</LABELS>
<QUERY name="main.manifestations_for_dimension">
<PARAM name="dimensionId">S</PARAM>
</QUERY>
<TABLE>main.manifestation</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Sparten"/>
</LANGINFOS>
</CMS_INPUT_CHECKBOX>
Im Modul frage ich sie dann wie folgt ab:
Language lang = this.context.getProject().getMasterLanguage();
GomCheckbox dimGomForm = (GomCheckbox) targetGroupLink.getFormData().getForm().findEditor("lt_branches");
ContentOptionModel optionModel = (ContentOptionModel) dimGomForm.getOptionFactory().getOptionModel(this.context, lang, false);
String dimensionID = (String) optionModel.getQuery().getSelectStatement().getParameterValue("dimensionId");
Leider ist der Wert in in dimensionID null.
Der Parameter selbst wird gefunden. Die Ausgabe von:
LOGGER.info("parameters are ("+StringUtils.join(optionModel.getQuery().getSelectStatement().getParameters().toArray(), ", ")+")");
liefert mir:
"parameters are (dimensionId)"
Es sieht so aus, als ob die Funktion getParameterValue() der zugrunde liegenden Impl Klasse de.espirit.or.impl.SelectImpl kein korrektes Ergebnis liefert. Oder spreche ich die API falsch an?
Getestet habe ich es mit den FS-Versionen
5.2.311
5.2.424
5.2.426
Java-Vesion:
1.8.0_74
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Lenz,
die Methoden & Interfaces, die du verwendest, gehรถren meines Wissens grรถรtenteils nicht zur offiziellen FirstSpirit API, weshalb es keinerlei Garantie gibt, dass sich daran nichts รคndern wird.
Wรคre es eine Option fรผr dich, einfach die Formulardefinition der Linkvorlage auszuwerten und รผber eine passende RegEx den Parameterwert herauszufinden?
LinkTemplate implementiert GomSourceProvider, welches die Methode getGomSource beinhaltet. Darรผber kommst du an die Formulardefinition
Viele Grรผรe
Tim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Tim,
Danke fรผr den Tipp. Das ist auf jeden Fall ein Workaround.
Zu dem Code: Die verwendeten Funktionen sind (nahezu) ausschlieรlich aus der offiziellen Access-API.
Einzig der Cast des OptionModel in ein ContentOptionModel ist nicht offizieller Teil der API.
Die betreffende Funktion getParameterValue() aus dem Interface de.espirit.or.query.Select, welche den Null Wert liefert, ist ebenfalls Teil der offiziellen API.
Danke und viele Grรผรe,
Lenz

