claus_kolb
I'm new here

CMS_INCLUDE_OPTIONS, Typ public, Parameterübergabe

Jump to solution

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... */

}

0 Kudos
1 Solution

Accepted Solutions

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

Peter

View solution in original post

0 Kudos
8 Replies
Peter_Jodeleit
Crownpeak employee
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?

Peter
0 Kudos

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.

0 Kudos

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

Peter
0 Kudos

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.

0 Kudos

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.

0 Kudos

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

Peter
0 Kudos
claus_kolb
I'm new here

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.

0 Kudos

Ich habe das Feature mit der Version 4.2.4 getestet - funzt!

0 Kudos