48D362BBCB4641178905885AB27034E1
  • Thomas Pollinger
  • 05.06.2019
  • DE

Output: Ausgabe und Schreibweisen

 

Allgemein

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:

  • XmlSpot: Ausgabe von Objekten
  • XmlSpot: Ausgabe von Zeichenfolgen
  • XmlSpot: Ausgabe von HTML
  • XmlSpot: Ausgabe von XML
  • DirectSpot: Ausgabe per Kurzschreibweise
  • Kombination beider Schreibweisen

 

Hinweise

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.

 

Ausgabe von Objekten

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>

 

Ausgabe von Zeichenfolgen

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 &lt; und &gt; (XmlSpot).

  • <reddot:cms>
      <output type="string">
        Hello World&lt;br/&gt;
      </output>
    </reddot:cms>

 

Ausgabe von HTML

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.

 

Ausgabe von XML

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

 

Ausgabe per Kurzschreibweise

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:

  • Der ObjectLoader String:Hello World liefert die Zeichenfolge Hello World.
  • Der ObjectLoader 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.

 

Kombination beider Schreibweisen

Quelle: OpenText Web Site Management Server Online-Hilfe

Man kann die Kurzschreibweise (DirectSpot) auch mit der ausführlichen Schreibweise (XmlSpotkombinieren. 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.

 

Custom RenderTag

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.

 

Gilt für

  • OpenText™ Web Site Management Server
    Release 16.0.3
  • Letztes Artikelupdate
    23.06.2019

 

Siehe auch


Über den Autor:
Thomas Pollinger

... 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.