Sie sind hier:   » ZMS home » Dokumentation » Details » ZMS API » nach Objekten » zmsobject » zmscontainerobject

zmscontainerobject.ZMSContainerObject

ZMSContainerObject ist die abstrakte Basisklasse von der alle ZMS-Container (ZMSRubrik, ZMSDocument) und spezielle Objekte abgeleitet werden.

ZMSContainerObject.filteredChildNodes(REQUEST, meta_types=None)

BESCHREIBUNG:
Gibt für das aktuelle Objekt eine sortierte Liste aller sichtbaren (->isVisible) Unterobjekte vom spezifizierten Metatyp zurück.

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt.
meta_types[list|string]: Metatyp der Unterobjekte (optional); dieser kann eine Liste von meta_types, die Meta-ID eines spez. Objekts oder eins der Schlüsselwörter PAGES oder PAGEELEMENTS sein.

AUSGABE-PARAMETER:
nodes[list]: Liste von Objekten

BEISPIELE
[1]  Liste aller sichtbaren Unterobjekte des aktuellen Objekts:
 filteredChildNodes(REQUEST)
[2]  Liste aller sichtbaren Unterobjekte vom Typ ZMSTextarea oder ZMSDocument des aktuellen Objekts:
 filteredChildNodes(REQUEST,['ZMSTextarea','ZMSDocument'])
[3]  Liste aller sichtbaren Unterobjekte vom Typ PAGE (ZMSRubrik, ZMSDocument, etc.) des aktuellen Objekts:
 filteredChildNodes(REQUEST,PAGES)
[4]  Komma-getrennte Liste der IDs aller sichtbaren Unterobjekte vom Typ PAGE:
 <dtml-in "filteredChildNodes(REQUEST,PAGES)">
  <dtml-var id>
  <dtml-unless sequence-end>,</dtml-unless>
 </dtml-in>
[5]  alternativ zu filteredChildNodes(REQUEST,PAGES) liefert getIndexNavElements(REQUEST) nur die Unterdokumente (Standdard- und Spezielle Dokumente), nicht aber die Unterrubriken; Beispiel für eine Komma-getrennte Liste der Kurztitel aller Unterdokumente:
 <dtml-in "getIndexNavElements(REQUEST)">
  <dtml-var "getTitlealt(REQUEST)">
  <dtml-unless sequence-end>,</dtml-unless>
 </dtml-in>


ZMSContainerObject.filteredTreeNodes(REQUEST, meta_types, order_by=None, order_dir="asc", max_len=None)

BESCHREIBUNG:
Durchsucht für das aktuelle Objekt den kompletten Unterbaum nach Objekten vom spezifizierten Metatyp, sortiert diese nach den angegebenen Kriterien und liefert die sortierte Liste mit der maximal angegebenen Länge zurück.

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt.
meta_types: Metatyp der Unterobjekte; dieser kann eine Liste von meta_types oder eins der Schlüsselwörter PAGES oder PAGEELEMENTS sein; dieser kann auch die meta_id eines speziellen Dokuments sein.
order_by: Schlüssel des Attributs, nach dem sortiert werden soll.
order_dir: Art der Sortierung (asc= aufsteigend, desc= absteigend).
max_len: maximale Anzahl der Objekte, die zurückgegeben werden sollen.

AUSGABE-PARAMETER:
nodes[list]: Liste von <ZMSObject>-Objekten

BEISPIELE
[1]  Liste der drei neuesten News innerhalb der WWW-Site:
Die News sind spezielle Dokumente mit der meta_id='news'. Das Datum der News ist im Attribut 'date' gespeichert, nach dem absteigend ('desc') sortiert wird. Der Newstext wird aus dem Attribut 'text' ausgelesen.
<dtml-with "getDocumentElement()">
 <table>
  <dtml-in "filteredTreeNodes(REQUEST,'news','date','desc',3)">
    <tr>
     <th>
      <a href="<dtml-var "getHref2IndexHtml(REQUEST)">">
       <dtml-var "getObjProperty('date',REQUEST)">
      </a>
     </th>
    </tr>
    <tr>
     <td>
      <dtml-var "getObjProperty('text',REQUEST)">
     </td>
    </tr>
  </dtml-in>
 </table>
</dtml-with>


ZMSContainerObject.getFirstPage(REQUEST)

BESCHREIBUNG:
Liefert die erste Anfangsseite des Content-Baums (s.u.).

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt

AUSGABE-PARAMETER:
node[object]: Objekt


ZMSContainerObject.getIndexNavElements(REQUEST)

BESCHREIBUNG:
Gibt für das aktuelle Objekt eine Liste der Unterdokumente (Standard und spezielle Dokumente) für die Indexnavigation im Contentbereich zurück (Template bodyContent_Index).

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt.

AUSGABE-PARAMETER:
nodes[list]: Liste von -Objekten

BEISPIELE
[1]  Listet die Kurztitel aller Unterdokumente komma-separiert auf:
<dtml-in "getIndexNavElements(REQUEST)">
 <dtml-var "getTitlealt(REQUEST)">
 <dtml-unless sequence-end>,</dtml-unless>
</dtml-in>


ZMSContainerObject.getPrevPage(REQUEST)

BESCHREIBUNG:
Liefert die vorherige Seite des Content-Baums; None falls es keine vorherige Seite gibt (s.u.).

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt

AUSGABE-PARAMETER:
node[object]: Objekt


ZMSContainerObject.getNavElements(REQUEST, expand_tree=1)

BESCHREIBUNG:
Gibt für das aktuelle Objekt eine Liste von Objekten für die Hauptnavigation im Contentbereich zurück (Template bodyContent_MacroNavigation):
- immer alle Objekte der ersten Ebene
- die Vorfahren des aktuellen Objekts (falls expand_tree=1 inkl. ihrer Geschwister)
- alle Objekte der Ebene unterhalb des aktuellen Objekts

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt.
expand_tree[int]=1: Geschwister der Vorfahren expandieren (optional)

AUSGABE-PARAMETER:
nodes[list]: Liste von -Objekten

BEISPIELE
[1]  Listet alle Kurztitel von Elementen der Hauptnavigation eingerückt auf:
 <dtml-in "getNavElements(REQUEST)">
  <dtml-in "_.range(0,getLevel())"> </dtml-in>
  <a href="<dtml-var "getHref2IndexHtml(REQUEST)">">
    <dtml-var "getTitlealt(REQUEST)">
  </a>
 </dtml-in>


ZMSContainerObject.getNextPage(REQUEST)

BESCHREIBUNG:
Liefert die nächste Seite des Content-Baums; None falls es keine vorherige Seite gibt (s.u.).

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt

AUSGABE-PARAMETER:
node[object]: Objekt


ZMSContainerObject.getLastPage(REQUEST)

BESCHREIBUNG:
Liefert die letzte Seite des Content-Baums.

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt

AUSGABE-PARAMETER:
node[object]: Objekt

BEISPIELE
[1]  Seitennavigation:
 <dtml-let first="getFirstPage(REQUEST)"
              prev="getPrevPage(REQUEST)" 
              next="getNextPage(REQUEST)"
              last="getLastPage(REQUEST)">
   <a href="<dtml-var "first.getHref2IndexHtml(REQUEST)">">[First]</a>
   <dtml-if prev>
    <a href="<dtml-var "prev.getHref2IndexHtml(REQUEST)">">[Previous]</a>
   </dtml-if>
   <dtml-if next>
    <a href="<dtml-var "next.getHref2IndexHtml(REQUEST)">">[Next]</a>
   </dtml-if>
   <a href="<dtml-var "last.getHref2IndexHtml(REQUEST)">">[Last]</a>
 </dtml-let>


ZMSContainerObject.getLinkList(REQUEST)

BESCHREIBUNG:
Liefert für das aktuelle Objekt aus den darin befindlichen Link-, Linksammlung- und Datei-Objekten eine Liste der internen und externen Verknüpfungen.

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt

AUSGABE-PARAMETER:
list: Liste von Dictionaries
src= Quelle (-Objekt; ZMSFile oder ZMSLinkElement)
dst= Ziel (-Objekt; nur für interne Links!)
url= URL des Ziels
title= Titel
description= Beschreibung
internal= 0|1 für externe/interne Links

BEISPIELE
[1]  Listet alle Links einer Seite auf:
 <dtml-in "getLinkList(REQUEST)" mapping>
  <a href="<dtml-var url>"
   <dtml-if src>
    <dtml-if "src.meta_type=='ZMSLinkElement' and 
              src.getObjProperty('attr_type',REQUEST)=='new'">
     target="_blank"
    </dtml-if>
   </dtml-if>>
   <dtml-var title>
  </a>
  <dtml-var description>
 </dtml-in>

REFERENZEN:

zmsfile.ZMSFile
Das Datei-Objekt ist in der Klasse ZMSFile implementiert.


zmslinkelement.ZMSLinkElement
Das Link-Objekt ist in der Klasse ZMSLinkElement implementiert.


ZMSContainerObject.getTeaserElements(REQUEST)

BESCHREIBUNG:
Liefert eine Liste aller Teaser-Elemente des aktuellen Objekts. Dabei werden auch Teaser-Elemente berücksichtigt, die aus einer höheren Hierarchie-Ebene in die aktuelle Ebene penetrieren.

EINGABE-PARAMETER:
REQUEST: das Http-Request Objekt.

AUSGABE-PARAMETER:
nodes[list]: Liste von Teaser-Elementen