- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Zusammen,
wir wollen die Werte von einem CMS_INPUT_COMBOBOX mittels GomIncludeValueProvider befรผllen, so dass der Redakteur die Werte auswรคhlen kann. Die Werte sollen dynamisch ermittelt werden, so dass diese sich รคndern kรถnnen. Jetzt besteht ja die Mรถglichkeit der COMBOBOX einen PARAM zu รผbergeben. Diesen PARAM wรผrde ich jetzt gerne im GomIncludeValueProvider auslesen, aber leider finde ich keine Mรถglichkeit dazu.
<CMS_INPUT_COMBOBOX name="lt_field" singleLine="no" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="public">
<NAME>BaukastenValueProvider</NAME>
<PARAMS>
<PARAM name="max">10</PARAM>
</PARAMS>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="feld"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
public class BaukastenValueProvider implements GomIncludeValueProvider<Integer> {
private List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
@Override
public String getKey(Integer value) {return "Option2 with value " + value;
}
@Override
public Class<Integer> getType() {return Integer.class;
}
@Override
public List<Integer> getValues(SpecialistsBroker arg0) {FormsAgent formsAgent = arg0.requestSpecialist(FormsAgent.TYPE);
UIAgent uiAgent = arg0.requestSpecialist(UIAgent.TYPE);
OperationAgent operationAgent = arg0.requestSpecialist(OperationAgent.TYPE);
StoreElementAgent agent = arg0.requireSpecialist(StoreElementAgent.TYPE);
return list;
}
}
Habt ihr da eine Lรถsung? Oder ist das der falsche Weg?
Gruร
Daniel
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
die Parameter werden dem GomIncludeValueProvider รผbergeben, wenn dieser das Interface de.espirit.firstspirit.access.store.templatestore.gom.Parameterizable implementiert.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
die Parameter werden dem GomIncludeValueProvider รผbergeben, wenn dieser das Interface de.espirit.firstspirit.access.store.templatestore.gom.Parameterizable implementiert.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Stefan,
kannst du mir hier kurz ein kleines Beispiel zeigen?
Gruร
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
ein Beispiel wozu genau? Wenn dein BaukastenValueProvider die Schnittstelle Parameterizable implementiert, dann werden die im GOM definierten Parameter als Map an die einzige Methode setParameters รผbergeben. Dann kannst du damit im Baukasten arbeiten.
Die genaue Definition der Schnittstelle findest du in unserer API-Dokumentation (unter Developer-API).
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Stefan,
ich wรผrde jetzt gerne auf den Parameter zugreifen, aber leider wird mir immer #global.id als String angezeigt.
<CMS_INPUT_COMBOBOX name="lt_formfield" singleLine="no" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="public">
<NAME>FormularframeworkValueProvider</NAME>
<PARAMS>
<PARAM name="project_id">#global.id</PARAM>
</PARAMS>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Formularfeld"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
@Override
public void setParameters(Map<String, String> map) {this.demo = map.get("project_id");
System.out.println(map.get("project_id"));
}
Kannst du mir sagen, warum ich nicht die ID erhalte? BZW. ich mรถchte gerne die section.uid haben als Parameter.
Hast du da vielleicht eine Lรถsung?
Dies soll ein dynamischer Parameter sein.
Gruร
Daniel Lรผttel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Daniel,
die Parameter im GOM dienen lediglich zur wertebasierten Parameterisierung des Dienstes. Umgebungsvariablen (wie #global) gibt es an dieser Stelle (bislang) nicht.
Wenn die Anforderung besteht, an spezifische Informationen aus dem ValueProvider-Kontext heranzukommen, wรคre der einzige Weg aktuell einen Feature Wunsch zu formulieren. Dieser sollte mรถglichst das Anwendungsszenario beschreiben (evtl. gibt es ja einen anderen Lรถsungsweg) und weniger eine konkrete Umsetzung.
Beispielsweise kรถnnte in deinem Fall auch der Einsatz einer FS_INDEX Komponente mit eigenem DataAccessPlugin eine Alternative sein. So ein Plugin verfรผgt รผber wesentlich mehr Kontextwissen als ein ValueProvider.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo stefan,
vielen dank fรผr deine Antwort.
Gibt es den eine Mรถglichkeit, dass man รผber eine Regel den PARAM-Wert setzen kรถnnte? Ich brauche dort nur den Referenznamen der Absatzvorlage. Die kann ich mir ja in einer Variable speichern bei setParameters und spรคter bei getValues nuw. getValue drauf zugreifen, wenn ich die Werte befรผllen will.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
das ist leider an dieser Stelle nicht mรถglich, Sorry.
Grรผรe
Stefan.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Stefan,
dann muss ich mir einen andere Lรถsung einfallen lassen.
Das Szenario ist eigentlich relativ leicht. Wir wollen in einem DOM (z.B:. st_text) eine Link-Vorlage (lt_link_formular) nutzen. Diese Link-Vorlage beinhaltet dann eine Komponente, wie z.B. CMS_INPUT_COMBOBX, die alle Eintrรคge aus einem FS_CATALOG von der Absatzvorlage liest und diese Werte sollen dann in das CMS_INPUT_COMBOBOX รผbergeben werden, so dass hier eine dynamische Liste entsteht.
Oder gibt es hier vielleicht eine andere coolere Lรถsung von eurer Seite aus?
Vielen Dank.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
"relativ leicht"?
Wenn ihr euch innerhalb einer Seite bewegt, wรผrde ich mich fragen, ob man statt des Catalog evtl. echte Absรคtze zur Seite nutzt. Diese kann man dann per FS_REFERENCE referenzieren.
Der Ansatz รผber die Combobox und Value Service wรผrde zudem wohl nur Werte aus einem alten Stand des Absatzes (Speicherstand) liefern, weil ja kein Zugriff auf das aktuelle Formular erfolgt.
Beste Grรผรe
Stefan

