Man kann das Template Rendering innerhalb der RenderSpots mit verschiedenen Schreibweisen verwenden. Im folgenden Beispiel wird der Text Hello World<br/>
durch das Template Rendering mit den verschiedenen Schreibweisen der RenderSpots gerendert. Es gibt die beiden nachfolgenden Varianten für den RenderTag output
. Einmal die ausführliche Schreibweise per XmlSpot und dann die Kurzschreibweise per DirectSpot:
Wie schon im Artikel RenderSpots und Kommentare beschrieben, gibt es mehrere Arten von s.g. RenderSpots. Aktuell sind nur zwei Arten gültig, einmal die ausführliche Schreibweise (XmlSpot) und dann noch die Kurzschreibweise (DirectSpot). Wenn man also von RenderSpots spricht, kann es sich um die eine oder andere Variante handeln. Daher sind in den Artikeln auch immer Querverlinkungen zu den anderen verfügbaren Artikeln, sofern sinnvoll, vorhanden.
Quelle: OpenText Web Site Management Server Online-Hilfe
Bei der Ausgabe als Objekt wird die Darstellung des Objektes als Zeichenfolge gerendert (XmlSpot). Hierbei wird das Objekt selbst per ObjectLoader oder direkt bestimmt (Value vom angegenen Objekt).
<reddot:cms> <output type="object" object="String:Hello World" /> <output type="object" object="Escape:Br" /> </reddot:cms>
Quelle: OpenText Web Site Management Server Online-Hilfe
Man kann innerhalb von RenderTags auch Zeichenfolgen rendern. Dabei werden die HTML-Tags jedoch als RenderTags interpretiert. Aus diesem Grund encodiert man die Sonderzeichen <
und >
als <
und >
(XmlSpot).
<reddot:cms> <output type="string"> Hello World<br/> </output> </reddot:cms>
Quelle: OpenText Web Site Management Server Online-Hilfe
Anstatt die Sonderzeichen zu encodieren, kann man den auszugebenden Text mit einem CDATA
-Abschnitt umgeben (InnerHtml vom Knoten). HTML-Tags werden innerhalb dieses CDATA
-Abschnitts nicht interpretiert.
<reddot:cms> <output type="string"> <![CDATA[Hello World<br/>]]> </output> </reddot:cms>
Den RenderTag output
und den CDATA
-Abschnitt kann man durch den RenderTag htmltext
ersetzen. Innerhalb dieses htmltext
RenderTags werden HTML-Tags ebenfalls nicht interpretiert.
<reddot:cms> <htmltext> Hello World<br/> </htmltext> </reddot:cms>
Technische Erläuterung, was beim Rendering der Seite dann aus dem htmltext
gemacht wird:
- rendertag: <htmltext>Inhalt</htmltext> - replaced with: <output type="string"><![CDATA[Inhalt]]></output> - by: Preparse > SpotParse - config: main.config > Rendering > Preparse > SpotParse
Hinweis: Kein CDATA
-Abschnitt innerhalb des RenderTags htmltext
. Der RenderTag htmltext
wird vom Management Server wie ein CDATA
-Abschnitt behandelt. Deshalb verwendet man keine CDATA
-Abschnitte innerhalb des RenderTags htmltext
. Mit dem Tag xmltext
kann man CDATA
-Abschnitte bereitstellen.
Quelle: OpenText Web Site Management Server Online-Hilfe
Der Ausgabetyp xml
kann beispielsweise zum liefern von XML-Text, Text mit Sonderzeichen oder Text der bereits in einen CDATA
-Abschnitt eingeschlossen ist, verwendet werden (InnerXml vom angegebenen Objekt). Andere HTML-Tags werden innerhalb dieses CDATA
-Abschnitts nicht interpretiert (XmlSpot).
<reddot:cms> <output type="xml" object="Escape:HtmlEncode(String:Hello World)"/> </reddot:cms>
Es gibt noch die Variante innerxml
bei das Attribut object
ähnlich wie bei der Variante string
nicht verwendet wird und man die Ausgabe dazwischen schreibt (InnerXml vom Knoten).
<reddot:cms> <output type="innerxml"> <p><![CDATA[Hello World]]></p> </output> </reddot:cms>
Der RenderTag output
und den CDATA
-Abschnitt können durch den RenderTag xmltext
ersetzen. Innerhalb dieses xmltext
RenderTags werden XML-Tags ebenfalls nicht interpretiert.
<reddot:cms> <xmltext> <p><![CDATA[Hello World]]></p> </xmltext> </reddot:cms>
Technische Erläuterung, was beim Rendering der Seite dann aus dem xmltext
gemacht wird:
rendertag: <xmltext>Inhalt</xmltext> replaced with: <output type="innerxml"><![CDATA[Inhalt]]></output> by: Preparse > SpotParse config: main.config > Rendering > Preparse > SpotParse
Quelle: OpenText Web Site Management Server Online-Hilfe
Mit der Kurzschreibweise (DirectSpot) kann man Objekte direkt abfragen, ohne die ausführliche Schreibweise (XmlSpot) verwenden zu müssen. Die Kurzschreibweise wird über s.g. ObjectLoader (Provider) realisiert:
String:Hello World
liefert die Zeichenfolge Hello World
.Escape:Br
gibt die Zeichenfolge <br/>
aus.<%!! String:Hello World !!%> <%!! Escape:Br !!%>
Um die Beispiele in dieser Artikelserie auf das Wesentliche zu beschränken, wird diese Kurzschreibweise (DirectSpot) verwendet, sofern es möglich und sinnvoll ist.
Quelle: OpenText Web Site Management Server Online-Hilfe
Man kann die Kurzschreibweise (DirectSpot) auch mit der ausführlichen Schreibweise (XmlSpot) kombinieren. Innerhalb des RenderTags htmltext
kann man beispielsweise ein Objekt (via ObjectLoader) mit der Kurzschreibweise (DirectSpot) abfragen.
<reddot:cms> <htmltext> <%!! String:Hello World !!%> <br /> </htmltext> </reddot:cms>
Diese Kombination ist dann sinnvoll, wenn man beispielweise Kombinationen von RenderTags, ObjectLoadern und HTML-Tags innerhalb einer Kontrollstruktur vom Typ if
oder foreach
ausgeben möchten.
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.