In den ObjectLoader (Provider) Store
kann man, während des Renderns einer Seite, vorübergehend einen Wert speichern. Jeder Store
besteht aus einem Namen (key) und Wert (value). Der Name muss vom Typ String sein. Der Wert kann ein beliebiges Element, das von einem anderen RenderTag oder ObjectLoader abgerufen werden kann, oder eine direkt zugewiesene Zeichenfolge sein.
Es gibt auch den RenderTag store
, dieser unterscheidet sich im ObjectLoader (Provider) Store
in folgenden Bereichen:
store
wird in der ausführlichen Schreibweise genutzt.Store
dient als Kurzschreibweise.
Für ObjectLoader (Provider) Store
gelten folgende Einschränkungen:
Quelle: OpenText Web Site Management Server Online-Hilfe
Set(String, Object)
<%!! Store:Set(String:storeKey, String:storeValue) !!%>
Get(String)
<%!! Store:Get(String:storeKey) !!%>
Quelle: OpenText Web Site Management Server Online-Hilfe
Ausführliche Schreibweise für den RenderTag store
<reddot:cms> <store key="storeKey" object="String:storeValue"/> </reddot:cms> <reddot:cms> <output type="object" object="Store:storeKey"/> </reddot:cms>
Kurzschreibweise für den ObjectLoader (Provider) Store
<%!! Store:Set(String:storeKey, String:storeValue) !!%> <%!! Store:Get(String:storeKey) !!%>
Alternative und noch kürzere Schreibweise für den ObjectLoader (Provider) Store
<%!! Store:Set(storeKey,storeValue) !!%> <%!! Store:storeKey !!%>
Quelle: OpenText Web Site Management Server Online-Hilfe
Der ObjectLoader (Provider) Store
kann beispielsweise innerhalb einer Kontrollstruktur vom Typ foreach
verwendet werden.
<reddot:cms> <foreach itemname="item" object="Context:CurrentPage.Elements"> <output type="object" object="Store:item.Name"/> </foreach> </reddot:cms>
Alternativ auch innerhalb eines Navigation-Renderings.
<reddot:cms> <foreach itemname="item" object="Context:CurrentIndex.SubIndexes"> <output type="object" object="Store:item.Headline" /> </foreach> </reddot:cms>
Oder auch innerhalb einer Kombination der Kontrollstruktur vom Typ foreach
und vom Typ if
.
<reddot:cms> <foreach itemname="item" object="Context:CurrentIndex.SubIndexes" countername="counter"> <if> <query valuea="Store:counter" operator="!=" valueb="Int:0"> <output type="string">, </output> </query> </if> <output type="object" object="Store:item.Headline" /> </foreach> </reddot:cms>
Ebenso lassen sich auch komplette Objekte bzw. Collections zwischenspeichern und wieder abfragen.
<%!! Store:Set(String:storeKey, Context:CurrentPage.Elements) !!%> <%!! Store:Get(String:storeKey)[Int32:1] !!%> <%!! Store:Get(String:storeKey).GetElement(String:elementName).GetHtml() !!%>
Es gibt auch die Möglichkeit eigene s.g. Custom RenderTags mit .NET Framework zu erstellen und dann beim Template Rendering aufzurufen. Dazu findet man im OpenText™ Developer Network Beispiel Code und eine ausführliche Anleitung.
... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.
Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.