Questions & Answers

SOLVED
mfitt
Returning Observer

Section GID auslesen

Jump to solution

Hallo,

ich versuche seit Stunden die GID einer Section in der Absatzvorlage auszulesen.

Die ID die ich mit $CMS_VALUE(#global.section.id)$ bekomme, mรถchte ich nicht. Ich mรถchte quasi den identifier, wie er auch im CaaS steht. Beispiel: 94033605-82e8-408b-a46f-2612746e9da6

Wenn ich folgendes in den Regeln mache, bekomme ich die korrekte ID: https://docs.e-spirit.com/odfs/vorlagenentwick/regeln/formulareigensc/eigenschaft-gid/index.html

Aber wie bekomme ich diese ID รผber Code in der Absatzvorlage?

Viele GrรผรŸe

Marcel

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Marcel,

ich wurde gerade darauf aufmerksam gemacht, dass mit 2022.1 der GidAgent entsprechend erweitert wurde, so dass nun auch die Gid eines IDProviders ausgelesen werden kann. 

Der Template Code sieht dann beispielsweise so aus, um die GID der aktuellen Seite auszulesen:
$CMS_SET(gidAgent,#global.requireSpecialist(class("de.espirit.firstspirit.common.GidAgent").TYPE))$
$CMS_VALUE(gidAgent.getGid(#global.page))$

Tut mir sehr leid, dass mir die ร„nderung durchgerutscht war ๐Ÿ˜ž
Ich hoffe, dass die falsche Antwort keinen grรถรŸeren Aufwand verursacht hat.

Viele GrรผรŸe
Holger

View solution in original post

0 Kudos
4 Replies
hoebbel
Crownpeak employee

Hallo Marcel,

die GID von IDProvidern ist รผber die API (und somit auch im Template) nicht auslesbar. 

Warum reicht denn die (serverweit eindeutige) ID des Absatzes nicht aus?

Wenn es einen Grund gibt, warum Du die GID zwingend benรถtigst, so stell bitte einen entsprechenden ร„nderungswunsch ein, dass die GID von IDProvidern รผber die API erreichbar sein soll.

Viele GrรผรŸe
Holger

P.S. Technisch wird die GID in der Registry gespeichert. รœber die Persistenz des Knotens selber ist sie also nicht erreichbar.

P.P.S. Wenn ich mich richtig erinnere, wird die GID nur erzeugt, wenn sie angefragt wird. Knoten, die weder รผber die JSON Funktion generiert wurden noch deren GID per Regel angefragt wurde, haben also keine GID. 

P.P.P.S. Workaround, wenn die GID zwingend benรถtigt wird, wรคre bei einem neuen! Projekt, in jedem Absatz eine versteckte Eingabekomponente unterzubringen, die die GID per Regel speichert.  Davon rate ich aber dringend ab!

0 Kudos
mfitt
Returning Observer

Hallo Holger,

nunja, es wird damit in der Frontendanwendung, die mit den CaaS Daten arbeitet, ein Direktlink/Ankerlink zu bestimmten Section gebildet. Und da das die eindeutige ID der Section ist, bietet es sich an dies zu verwenden

Im FS mรถchte ich diesen Direktlink in einem Feld generieren, damit ein Redakteur diesen Link fรผr z.b. externe PDF rauskopieren kann.

รœber die Regel bekomme ich auch die korrekte GID, wie sie im CaaS steht. Die ist auch fix und รคndert sich nicht.

 

Kann ich denn per Regel ein Feld mit mehreren Variablen befรผllen um eine URL zusammenzusetzen? Oder mรผsste ich das irgendwie per Skript machen?

Viele GrรผรŸe
Marcel

0 Kudos
hoebbel
Crownpeak employee

Hallo Marcel,

ich wurde gerade darauf aufmerksam gemacht, dass mit 2022.1 der GidAgent entsprechend erweitert wurde, so dass nun auch die Gid eines IDProviders ausgelesen werden kann. 

Der Template Code sieht dann beispielsweise so aus, um die GID der aktuellen Seite auszulesen:
$CMS_SET(gidAgent,#global.requireSpecialist(class("de.espirit.firstspirit.common.GidAgent").TYPE))$
$CMS_VALUE(gidAgent.getGid(#global.page))$

Tut mir sehr leid, dass mir die ร„nderung durchgerutscht war ๐Ÿ˜ž
Ich hoffe, dass die falsche Antwort keinen grรถรŸeren Aufwand verursacht hat.

Viele GrรผรŸe
Holger

0 Kudos
mfitt
Returning Observer

Hallo Holger,

alles gut ๐Ÿ™‚ danke, das klappt.

Viele GrรผรŸe
Marcel

0 Kudos

Type a product name