5EC60DE4702D435988C6A67E7C032BDA
  • Thomas Pollinger
  • 01.07.2019
  • DE

Kontrollstruktur: if

 

Allgemein

Im Template Rendering kann man Kontrollstrukturen verwenden. Dazu verwendet man den RenderTag if. Innerhalb des RenderTag if definiert man die Bedingung für die Ausgabe mit dem nachfolgenden Tag query.

 

Hinweise

  • Der innere Teil des RenderTag if > query wird nur ausgeführt, wenn die Bedingung erfüllt ist.
  • Die Bedingung wird mit Attributen innerhalb des RenderTag if > query formuliert.
  • Der RenderTag if > query hat die folgenden Attribute:
    • valuea
      Steht für den ersten Wert.
    • valueb
      Steht für den zweiten Wert.
    • operator
      Gibt den Operator vor.
  • Die folgenden Operatoren können innerhalb if > query verwendet werden:
    • == (gleich)
      Prüft, ob der erste und zweite Wert gleich sind.
    • != (ungleich)
      Prüft, ob der erste und zweite Wert ungleich sind. Gibt immer das Gegenteil von == zurück.
    • eqlt (kleiner oder gleich)
      Prüft, ob der erste Wert kleiner als der zweite ist oder ob beide gleich sind.
    • eqgt (größer oder gleich)
      Prüft, ob der erste Wert größer als der zweite ist oder ob beide gleich sind.
    • lt (kleiner)
      Prüft, ob der erste Wert kleiner als der zweite ist.
    • gt (größer)
      Prüft, ob der erste Wert größer als der zweite ist.
  • Operatoren, welche die Größe vergleichen, können nur beim Vergleichen von Zahlen Int32/Int verwendet werden.

 

Beispiele

Quelle: OpenText Web Site Management Server Online-Hilfe

Im folgenden Beispiel wird der RenderTag navigation:nextlevel nur dann aufgerufen, wenn der aktuelle Index (Navigationspunkt) untergeordnete Index-Objekte (Seiten) hat.

  • <reddot:cms>
      <if>
        <query valuea="Context:CurrentIndex.HasChildren()" operator="==" valueb="Bool:True">
          <htmltext><navigation:nextlevel></htmltext>
        </query>
      </if>
    </reddot:cms>
    

Im nun folgenden Beispiel werden zwei Objekte miteinander verglichen:

  • <reddot:cms>
      <if>
        <query valuea="Context:CurrentPage.Id" operator="==" valueb="Context:CurrentMasterPage.Id">
          <htmltext>Gleiche Seite</htmltext>
        </query>
      </if>
    </reddot:cms>
    

Es gibt auch die Möglichkeit, dass man den Tag query mehrfach verwendet, innerhalb von if:

  • <reddot:cms>
      <if>
        <query valuea="Context:CurrentPage.Id" operator="==" valueb="Context:CurrentMasterPage.Id">
          <htmltext>Gleiche Seite</htmltext>
        </query>
        <query valuea="Context:CurrentPage.Headline" operator="==" valueb="Context:CurrentMasterPage.Headline">
          <htmltext>Gleiche Überschrift</htmltext>
        </query>
      </if>
    </reddot:cms>
    

Wichtig: Bei dieser Art der Verwendung ist, dass man ganz genau weiß welche Kombinationen möglich sind. Damit man sich über das Verhalten und die möglichen Ergebnisse nicht wundert.

 

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