Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich möchte eine Reihe von Checkboxen mit Hilfe der u.g. Konfiguration und der implementierten Klasse selbst erzeugen. Dazu habe ich die u.g. Klasse auch über ein Modul sichtbar gemacht. Soweit so gut, es funktioniert.
Leider weiß ich nicht, wie ich programmatisch an die im XML definierten Parameter p1, p2 und p3 komme. Muss die Klasse IncludeServiceOptions dazu ein spezielles Interface implementieren?
Viele Grüße,
Claus Kolb
<CMS_INPUT_CHECKBOX name="st_auswahl" gridWidth="1" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="public">
<NAME>de.xyz.firstspirit.template.IncludeServiceOptions</NAME>
<PARAMS>
<PARAM name="p1">1</PARAM>
<PARAM name="p2">2</PARAM>
<PARAM name="p3">3</PARAM>
</PARAMS>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Auswahl" description="TEXT"/>
</LANGINFOS>
</CMS_INPUT_CHECKBOX>
package de.xyz.firstspirit.template;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.store.templatestore.gom.GomIncludeValueProvider;
import de.espirit.firstspirit.service.permission.groups.Users;
public class IncludeServiceOptions implements GomIncludeValueProvider<String> {
Map<String, String> values;
String p1;
String p2;
String p3;
public IncludeServiceOptions() {
}
@Override
public String getKey(String key) {
return values.get(key);
}
@Override
public Class getType() {
return String.class;
}
@Override
public List getValues(UserService userservice) {
values = new HashMap<String, String>();
values.put("1", "1");
values.put("2", "2");
values.put("3", "3");
values.put("4", "4");
return new ArrayList(values.values());
}
/* getter/setter... */
}
Eine Lösung ist ab 4.2.434 verfügbar, das Beispiel in der API-Doc wurde um den beschriebenen Anwendungsfall (setzen von Parametern über das Formular) erweitert.
@Claus Kolb: Eventuell haben Sie Interesse (sobald die Version verfügbar ist) ein Blog-Posting zu machen, indem Sie Ihre Lösung vorstellen?
Interne ID #96703
Leider weiß ich nicht, wie ich programmatisch an die im XML definierten Parameter p1, p2 und p3 komme.
Dafür gibt es aktuell keinen Weg. Sie können einen Feature-Request dazu erstellen.
Rein aus Interesse: Was soll über die Parameter gesteuert werden?
Ich sehe das als einen Bug. Die Tags PARAMS & PARAM sind in der Dokumentation beschrieben, aber die notwendige Funktion ist nicht implementiert. DIe Parameter steuern, welche Checkboxen angezeigt werden.
Das stimmt, das ist aktuell ein Bug in der Dokumentation. Vielen Dank für den Hinweis. Das Java-Doc wird korrigiert werden.
Ihr Beispiel kann auch ohne eigene Implementierung über <ENTRIES> abgwickelt werden, damit wird die Wertemenge direkt im Formular spezifiziert.
[EDIT]
Interne ID #96703
Die Verwendung von ENTRIES deckt nicht die gewünschte Funktionalität ab. Die in der Checkbox-Liste angezeigten Einträge sind abhängig von den o.g. drei Parametern, die in der Vorlage gesetzt sind, und dem angemeldeten Benutzer.
Insofern stehe ich jetzt leider weiterhin ohne Lösung da.
Hallo Herr Kolb,
der nächste Schritt wäre einen entsprechenden Feature-Request zu stellen, damit auch andere Community-Teilnehmer ihr Interesse an solch einer Funktion zum Ausdruck bringen können.
Eine Lösung ist ab 4.2.434 verfügbar, das Beispiel in der API-Doc wurde um den beschriebenen Anwendungsfall (setzen von Parametern über das Formular) erweitert.
@Claus Kolb: Eventuell haben Sie Interesse (sobald die Version verfügbar ist) ein Blog-Posting zu machen, indem Sie Ihre Lösung vorstellen?
Interne ID #96703
Ich freue mich, dass es das Feature jetzt (überraschend doch) gibt und wir (zumindest mit der neuesten Version, auf die wir aber leider derzeit aufgrund der massiven Veränderungen im Bereich der Module kein Upgrade machen können) dieses Feature nutzen können.
Wir leben derzeit mit einem Workaround, in dem wir für eine eigene Public-Klasse für jede Parameterkombination definieren. Nicht schön, aber es funktioniert.
Ich habe das Feature mit der Version 4.2.4 getestet - funzt!