361EC166ED80440EAA507B80C23324E7
  • Thomas Pollinger
  • 04.07.2019
  • DE

Kontrollstruktur: foreach

 

Allgemein

Im Template Rendering kann man Kontrollstrukturen verwenden. Mit Schleifen kann man mit RenderTags auf alle Objekte innerhalb einer Collection anwenden. Schleifen realisiert man mit dem Element foreach.

 

Hinweise

  • Der RenderTag foreach hat drei Attribute:
    • itemname
      Mit diesem Attribut gibt man den Namen der Variable an, mit der die Objekte abgefragt werden sollen.
    • object
      Mit diesem Attribut gibt man die Collection oder das Array an, welche für das iterieren verwendet werden soll.
    • countername (optional)
      Mit diesem Attribut kann man einen Counter erzeugen, mit dem man die aktuelle Position beim Durchlaufen der Schleife abfragen kann.
  • Innerhalb der Schleife fragt man die Ergebnisse als Objekt mit dem folgenden ObjectLoader (Provider) ab:
    Store: <Wert des Attributs itemname>
  • Innerhalb der Schleife fragt man den Counter mit dem folgenden ObjectLoader (Provider) ab:
    Store: <Wert des Attributs counter>
  • Zählweise des Counters: Der Counter fängt bei 0 an zu zählen. Beim ersten Durchlauf einer Schleife beträgt der Wert des Counters deshalb 0. Beim zweiten Durchlauf beträgt der Wert 1 usw.

 

Beispiele

Quelle: OpenText Web Site Management Server Online-Hilfe

Eine einfache Schleife
Mit dem folgenden Template Rendering gibt man eine Liste aller Elemente der aktuellen Seite aus:

  • <reddot:cms>
      <foreach itemname="item" object="Context:CurrentPage.Elements">
        <output type="object" object="Store:item.Name"/>
      </foreach>
    </reddot:cms>
    

oder mit der alternative Schreibweise:

  • <reddot:cms>
      <foreach itemname="item" object="Context:CurrentPage.Elements">
        <htmltext><%!! Store:Get(String:item).Name !!%></htmltext>
      </foreach>
    </reddot:cms>
    


Eine Schleife mit Counter
Mit dem folgenden Template Rendering gibt man eine Liste aller Elemente der aktuellen Seite aus. Vor jedem Eintrag steht die aktuelle Position:

  • <reddot:cms>
      <foreach itemname="item" object="Context:CurrentPage.Elements" countername="counter">
        <output type="object" object="Store:counter" />
        <output type="object" object="Store:item.Name" />
        <output type="object" object="Escape:Br" />
      </foreach>
    </reddot:cms>
    

oder mit der alternative Schreibweise:

  • <reddot:cms>
      <foreach itemname="item" object="Context:CurrentPage.Elements" countername="counter">
        <htmltext><%!! Store:Get(String:counter) !!%> <%!! Store:Get(String:item).Name !!%> <br/></htmltext>
      </foreach>
    </reddot:cms>
    

 

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