Search the FirstSpirit Knowledge Base
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
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
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
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
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.