Search the FirstSpirit Knowledge Base
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.
Gruß
D.
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$
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
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.
(Gefällt mir nicht, aber einen anderen Weg sehe ich zur Zeit nicht.
LG
D.
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$
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.