Die Tabelle mit Bildern füllen

Wird eine Tabelle mit den children des Bilderordners gefüllt, erhalten wir für alle Unterdateien eine Tabellenzelle, also auch für den Ordner homepage, in dem sich weitere Bilder befinden (die wir jedoch nicht zeigen möchten). Wir müssen also dafür sorgen, dass nur Bilder berücksichtigt werden und keine Ordner, Dokumente oder Ressourcen. Hierfür verwenden wir eine so genannte Exportvariable, hier mit dem Namen images. In diese Variable kopieren wir mit Hilfe einer list-Anweisung die Bilder des Zielordners. Welche Datei ein Bild ist, lässt sich mit einer condition-Anweisung feststellen:

<npsobj list="ip_galleryFolders">
  <npsobj modifyvar="clear" varname="images" />
  <npsobj list="destination.children">
    <npsobj condition="isEqual" name1="objType" value2="image">
      <npsobj modifyvar="append" varname="images" name="self" />
    </npsobj>
  </npsobj>

  <npsobj table="images" columns="3">
    <npsobj insertvalue="var" name="name" />
  </npsobj>
</npsobj>

Mit modifyvar="clear" wird zunächst die Kontextliste images gelöscht, für den Fall, dass sie im Laufe des Exports der Bildergalerieseite bereits verwendet wurde. Anschließend werden die children mit Hilfe einer list-Anweisung aufgelistet und einzeln mit modifyvar="append" in die Variable images kopiert. self referenziert hierbei die aktuelle Datei. Eine Datei in der children-Liste wird nur dann zu images hinzugefügt, wenn ihr Typ (objType) gleich image ist. Dies wird mit der condition-Anweisung geprüft. In der table-Anweisung wird dann images statt destination.children herangezogen. Bitte prüfen Sie das Ergebnis in der Vorschau:

In der Tabelle brauchen wir jetzt nur noch statt des Namens das Bild auszugeben. Hierfür ersetzen wir insertvalue="var" durch insertvalue="image":

<npsobj list="ip_galleryFolders">
  <npsobj modifyvar="clear" varname="images" />
  <npsobj list="destination.children">
    <npsobj condition="isEqual" name1="objType" value2="image">
      <npsobj modifyvar="append" varname="images" name="self" />
    </npsobj>
  </npsobj>

  <npsobj table="images" columns="3">
    <npsobj insertvalue="image" name="self" width="80" title="@self.title" />
  </npsobj>
</npsobj>

Die Anweisung insertvalue="image" erzeugt ein img-Tag. Sie enthält ein title-Attribut, das nicht zur Anweisung gehört und daher in das erzeugte img-Tag übernommen wird. Der Wert des Attributs wird mit @self.title auf den Titel des jeweiligen Bildes gesetzt. Das @-Zeichen vor dem eigentlichen Tag-Attributwert kennzeichnet diesen als Namen, der im aktuellen Kontext ausgewertet werden soll. Solche Attributwerte werden @-Referenzen genannt.

Belegen Sie den Hauptinhalt Ihres Bildergalerie-Ordners bitte noch mit einem kurzen Text wie "Hier finden Sie die Bilder, die Sie auch als Poster bestellen können. Ein Klick auf ein Bild öffnet die Großansicht." (für letzteres werden wir anschließend sorgen). Betrachten Sie nun das Ergebnis in der Vorschau. Durch das title-Tag sehen Sie den Titel eines Bildes als Tooltip, wenn sich der Mauszeiger darüber befindet: