Hendrik
New Responder

ValueService: Übergabe der Seite / ID als Parameter

Hallo Community,

ich möchte über eine Regel eines Seitentemplates beim Speichern einer auf dem Seitentemplate basierenden Seite eine Eingabekomponente automatisch über einen ValueService, welchen ich als Public Komponenten über ein Modul installiert habe, befüllen. Der Service wird beim Speichern der Seite angesprochen (<ON_SAVE> oder <ON_EVENT>) mit einer Bedingung ob die zu befüllende Eingabekomponten leer ist, soweit so gut. Ich kann Parameter übergeben, das klappt auch. Allerdings will es mir nicht gelingen die Seite selber oder die ID der Seite als Parameter zu übergeben, hat jemand eine Idee wie ich an die Informtion heran komme im ValueService?

Ich habe bereits

<PROPERTY source="global.node" name="VALUE" />

<PROPERTY source="global" name="ID" />

und dergleichen ausprobiert, leider erfolglos :smileyplain:

0 Kudos
7 Replies
thmarx
I'm new here

Hallo Hendrik,

damit wirst du leider keinen Erfolg haben. Du kannst in den Regeln nur auf die in der Doku beschriebenen Dinge von global zugreifen.

Du kannst dafür aber gerne einen Feature Request stellen.

Viele Grüße

Thorsten

0 Kudos

Hallo Thorsten,

danke für das Feedback!

Gruß,

Hendrik

0 Kudos
Martin_Dirlewan
Returning Observer

Hallo Hendrik,

nach längerem rumprobieren habe ich es dennoch geschafft an die ID der Inhaltsseite zu kommen.

Hilfereich war hierfür folgender Eintrag: https://community.e-spirit.com/message/17405#17405

Code:

public Object getValue(SpecialistsBroker specialistsBroker, Map<String, ?> parameters)

    {

        WebeditUiAgent webeditUiAgent = specialistsBroker.requestSpecialist(WebeditUiAgent.TYPE);

        UIStoreAgent uiStoreAgent = specialistsBroker.requestSpecialist(UIStoreAgent.TYPE);

       

        // JavaClient.

        if (uiStoreAgent != null)

        {

            GuiStoreElement activeUiElement = uiStoreAgent.getActiveUiElement();

           

            if (activeUiElement != null)

            {

                System.out.println("Debug id:" + activeUiElement.getId());

                System.out.println("Debug storeElement:" + activeUiElement.getStoreElement());

            }

        }

       

        // WebEdit.

        if (webeditUiAgent != null)

        {

            String uid = webeditUiAgent.getPreviewElement().getUid();

            long id = webeditUiAgent.getPreviewElement().getId();

        }

...

Grüße

Martin Dirlewanger

0 Kudos

Die Nutzung des UIStoreAgent wird nicht empfohlen, es handelt sich hier nicht um freigegebene API!

Gruß

Stefan

0 Kudos
Peter_Jodeleit
Crownpeak employee

Welche Informationen benötigt denn deine Implementierung genau? Wirklich die Seiten-ID?

Peter
0 Kudos

Die ID wäre schonn toll. Könnt ihr da was machen ? ;--)

Von mir war zwar der andere Beitrag https://community.e-spirit.com/message/18760 Wir hatten den Anwendungsfall, dass wir die Sichtbarkeit von Eingabekomponenten abhängig von der Verwendung steuern wollten. Felder sollten z.B. sichtbar sein, wenn der Absatz in einer FS_LIST verwendet wird, jedoch nicht in einer Content Section.

0 Kudos
Martin_Dirlewan
Returning Observer

Mit der SeitenID kann man alle gewünschten Anwendungsfälle abarbeiten, bei mir war es speziell der Zugriff auf die MetaDaten der Inhaltsseite.

0 Kudos