FFDF22668320401EB02984B359E43C1A
  • Thomas Pollinger
  • 19.06.2019
  • DE

Collections: Eine Sammlung von Objekten

 

Allgemein

Collections sind Sammlungen von Objekten des gleichen Typs. Collections sind aber ebenfalls Objekte und stellen daher eigene Eigenschaften bzw. Methoden bereit. Auf die Objekte innerhalb eines Objekt Array kann man ebenfalls, wie auf die Objekte einer Collection, auf die selbe Weise zugreifen.

 

Hinweise

Es gibt im Management Server mehrere Collections mit unterschiedlichen Objekt-Typen:

Je nach Anwendungsbereich, Content oder Navigation, steht dann die unterschiedlichen Collections zur Verfügung.

 

Zugriffsmethoden

Quelle: OpenText Web Site Management Server Online-Hilfe

Indexschreibweise:
Man kann die Objekte in der Collection elegant mit der Indexschreibweise abfragen. Bei der Indexschreibweise gibt man die Position des benötigten Objektes, innerhalb der Collection, in eckigen Klammern an. Die Zählung beginnt dabei immer mit 0. Wenn man nun das vierte Objekt aus der Collection benötigt, gibt man als Index Int:3 an.

Mit der folgenden Abfrage (Kurzschreibweise) bekommt man das vierte Element der aktuellen Seite zurückgeliefert (Collection: PageElementList):

  • <%!! Context:CurrentPage.Elements[Int:3] !!%>
    

Mit der folgenden Abfrage (Kurzschreibweise) bekommt man das dritte Element vom Template der aktuellen Seite, zurückgeliefert (Collection: TemplateElementList):

  • <%!! Context:CurrentPage.Template.Elements[Int:2] !!%>
    

Mit der folgenden Abfrage (Kurzschreibweise) bekommt man das erste Element (eine Seitenüberschrift) aus einem Container der aktuellen Seite zurückgeliefert (Collection: ContentList):

  • <%!! Context:CurrentPage.Elements.GetElement(String:Container).GetLinkedContents()[Int:0].Headline !!%>
    

Mit der folgenden Abfrage (ausführliche Schreibweise) bekommt man das zweite Element (eine Seitenüberschrift) aus einer Liste der aktuellen Seite zurückgeliefert (Collection: ContentList):

  • <reddot:cms>
      <output type="object" object="Context:CurrentPage.Elements.GetElement(String:Liste).GetLinkedContents()[Int:1].Headline" />
    </reddot:cms>
    

Mit der folgenden Abfrage (Kurzschreibweise) bekommt man das zweite Element (eine Seitenüberschrift) aus dem Navigations-Index, im Kontext der aktuellen Seite, zurückgeliefert (Collection: IndexList):

  • <%!! Context:CurrentIndex.SubIndexes[Int:1].Headline !!%>
    

 

Schleifen:
Der Zugriff auf Collections kann auch per Schleifen erfolgen. Dabei werden die RenderTags auf alle Objekte innerhalb einer Collection angewendet. Dazu steht im Management Server die foreach Schleife zur Verfügung.

Mit der folgenden Rendering-Anweisung gibt man die Überschriften aller untergeordneten Seiten im Navigationsindex aus. Indem man die Index-Objekte mit der Eigenschaft SubIndexes abfragt und das Ergebnis abarbeitet (Collection: IndexList):

  • <reddot:cms>
      <foreach itemname="obj" object="Context:CurrentIndex.SubIndexes">
        <output type="object" object="Store:obj.Headline" />
      </foreach>
    </reddot:cms>

Mit der folgenden Rendering-Anweisung gibt man die Überschriften aller verknüpften Seiten von einer Liste aus. Indem man die Page-Objekte mit der Methode GetLinkedContents() abfragt und das Ergebnis abarbeitet (Collection: ContentList):

  • <reddot:cms>
      <foreach itemname="obj" object="Context:CurrentPage.Elements.GetElement(String:Liste).GetLinkedContents()">
        <output type="object" object="Store:obj.Headline" />
      </foreach>
    </reddot:cms>

Mit der folgenden Rendering-Anweisung gibt man die Namen aller Elemente einer Content-Klasse aus. Indem man die TemplateElement-Objekte mit der Eigenschaft Elements abfragt und das Ergebnis abarbeitet (Collection: TempalteElementList):

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

Ausführliche Informationen über die Verwendung von Schleifen findet man im Abschnitt Schleife – foreach in der Online-Hilfe.

 

Gilt für

  • OpenText™ Web Site Management Server
    Release 16.0.3
  • Letztes Artikelupdate
    27.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.