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