rbitdd
Returning Responder

Abfrage der aufrufenden Komponente in Verweisvorlagen

Jump to solution

Hallo,

ich benötige innerhalb meiner Verweisvorlage eine Information darüber, ob diese im DOM oder im CMS_INPUT_LINK aufgerufen wurde.

Kann mir da jemand weiterhelfen? Meine bisherigen Versuche / Recherchen haben mich da leider nicht weit gebracht. Smiley Sad

Gruß

D.

0 Kudos
1 Solution

Accepted Solutions

Vielleicht kann man hier noch über die unterschiedliche Kontexte gehen.

Ausgabe eines Links aus einem DOM heraus (Aufruf: $CMS_VALUE(#global.dumpcontext("<br/>"))$

Context 'ElementRenderer-CMS_LINK':

#link=de.espirit.firstspirit.client.access.link.LinkImpl@1d47c83b

#content=

Context 'ElementRenderer-p':

#content=de.espirit.firstspirit.generate.ElementRenderer$ChildPrinter@14427f9

Context 'ElementRenderer-DOM':

#content=de.espirit.firstspirit.generate.ElementRenderer$ChildPrinter@19c533c

.............

/////////////////////////////////////////////

Ausgabe eines Links ohne umgebenden DOM

Ausgabe:

Context 'ElementRenderer-CMS_LINK':

#link=de.espirit.firstspirit.generate.IdentifiableLink@ceab3f

#content=

Context 'PAGE':

#this=

............

Jetzt könnte man in der Linkvorlagen folgendermaßen arbeiten (das müsste noch weiter ausgearbeitet werden, weil ja ggf. weitere Absatzformatvorlagen verwendet werden und dann nicht ElementRenderer-p zurückgeliefert wird, sondern ElementRenderer-MEINUUIDDERFORMATVORLAGE)

Beispiel:

$CMS_IF(#global.evaluator.context.parentContext.name.equals("ElementRenderer-p"))$

Link im DOM

$CMS_ELSE$

Link ausserhalb des DOM

$CMS_END_IF$

View solution in original post

0 Kudos
4 Replies
boesebeck
Crownpeak employee

Hallo,

direkt ist mir leider kein Weg bekannt, du kannst aber folgendes machen. In der Absatzvorlage bei der Ausgabe eine Variable im Seitenkontext setzen und diese in der Linkvorlage auslesen.

Gruß

Gerrit

0 Kudos
rbitdd
Returning Responder

Hallo Gerrit,

danke für die Idee, die hatte ein Kollege auch schon. Das Problem ist, das ist ein ewig altes Projekt und ich will nicht wissen, wieviele Vorlagen ich dann dahingehend noch ändern müsste... Zumal ich auch so wenig wie möglich ändern soll / will... :smileyplain:

Ich werde jetzt erst mal zwei verschiedene Vorlagen erstellen und weiterhin hoffen, das ich hier eine schöne Lösungsidee bekomme. Smiley Wink

(Gefällt mir nicht, aber einen anderen Weg sehe ich zur Zeit nicht.

LG

D.

0 Kudos

Vielleicht kann man hier noch über die unterschiedliche Kontexte gehen.

Ausgabe eines Links aus einem DOM heraus (Aufruf: $CMS_VALUE(#global.dumpcontext("<br/>"))$

Context 'ElementRenderer-CMS_LINK':

#link=de.espirit.firstspirit.client.access.link.LinkImpl@1d47c83b

#content=

Context 'ElementRenderer-p':

#content=de.espirit.firstspirit.generate.ElementRenderer$ChildPrinter@14427f9

Context 'ElementRenderer-DOM':

#content=de.espirit.firstspirit.generate.ElementRenderer$ChildPrinter@19c533c

.............

/////////////////////////////////////////////

Ausgabe eines Links ohne umgebenden DOM

Ausgabe:

Context 'ElementRenderer-CMS_LINK':

#link=de.espirit.firstspirit.generate.IdentifiableLink@ceab3f

#content=

Context 'PAGE':

#this=

............

Jetzt könnte man in der Linkvorlagen folgendermaßen arbeiten (das müsste noch weiter ausgearbeitet werden, weil ja ggf. weitere Absatzformatvorlagen verwendet werden und dann nicht ElementRenderer-p zurückgeliefert wird, sondern ElementRenderer-MEINUUIDDERFORMATVORLAGE)

Beispiel:

$CMS_IF(#global.evaluator.context.parentContext.name.equals("ElementRenderer-p"))$

Link im DOM

$CMS_ELSE$

Link ausserhalb des DOM

$CMS_END_IF$

0 Kudos
rbitdd
Returning Responder

Hallo Daniel,

hat was gedauert, aber ich hatte gerade tatsächlich wieder eine derartige Anforderung und genau diese Lösung hat mir geholfen.

Vielen Dank.

0 Kudos