pbender
I'm new here

context Variable bei Seitenvorlagen HTML Kanal

Jump to solution

Hallo Community,

wie bekomme ich den BaseContext innerhalb einer Seitenvorlage? In dem HTML Ausgabekanal rufe ich eine Hilfsklasse auf, die den Context benötigt:

$CMS_SET(myVar, class("de.test.MyUtil").getValue(context))$

Anscheinend ist die Variable context bei Seitenvorlagen nicht vorhanden. Gibt es hierzu eine weitere Möglichkeit?

#global.context liefert einen Context von dem Typ de.espirit.firstspirit.access.template.Context. Mit diesem Context kann ich leider nicht viel anfangen.

Danke und Grüße

Philipp Bender

1 Solution

Accepted Solutions

Hallo Phillip,

probier mal "#global". Ansonsten würde ich dir raten deine Klasse als Executable zu bauen und die über ein CMS_RENDER einzubinden. Das ist schöner als Java-Klassen mittels "class()" zu instanziieren. Ein einfaches Beispiel, indem auch der Context ausgelesen wird, findest du unter https://community.e-spirit.com/message/8955#8955

View solution in original post

0 Kudos
5 Replies
maaroufi
I'm new here

Hallo Philipp,

evtl. hilft #global.context("BEZEICHNER") weiter, wobei BEZEICHNER der gewünschte Context ist. Näheres dazu findet man in der Dokumentation unter Vorlagenentwicklung > Variablen > Kontexte > projektbezogen.

Freundliche Grüße

Ismail 

Hallo Ismail,

danke für deine Antwort.

Leider bekomme ich immer ein Context von dem Typ de.espirit.firstspirit.parser.ContextImpl zurück. Mit diesem kann ich leider nicht arbeiten. Der Context müsste von dem Typ de.espirit.firstspirit.access.BaseContext sein, um beispielsweise an den StoreAgent heranzukommen.

Viele Grüße

Philipp Bender

0 Kudos

Hallo Phillip,

probier mal "#global". Ansonsten würde ich dir raten deine Klasse als Executable zu bauen und die über ein CMS_RENDER einzubinden. Das ist schöner als Java-Klassen mittels "class()" zu instanziieren. Ein einfaches Beispiel, indem auch der Context ausgelesen wird, findest du unter https://community.e-spirit.com/message/8955#8955

0 Kudos

Hallo Christoph,

wird der Rückgabewert mit dem CMS_RENDER berücksichtigt, oder muss ich das Ergebnis in der Pagecontext legen?

Objectexecute(Map<String,Object> context, Writer out, Writer err) 
           Execute this executable.

Viele Grüße

Philipp Bender

0 Kudos

Wenn Sie einen Rückgabewert definieren, wird er bei der Generierung ausgegeben. Sie können aber auch etwas in den aktuellen Page/Section Kontext schreiben. Was für ihren Anwendungsfall günstiger ist.

Oft ist das Schreiben in den Kontext sinnvoller, da man dann die Informationen mit normalen Templatemitteln ausgeben und formatieren kann.