vtLoop

(Basic, Pro, Master ab 1.0)

Wiederholt den nachfolgenden Codeblock für alle Subseiten der aktuellen Seite oder (innerhalb eines vtSelect-Blocks) für alle Seiten, die zur aktuellen Auswahl gehören.

Verwendung

<!--{{vtLoop}}--> ... <!--{{vtEndLoop}}-->

oder

<!--{{vtLoop: %Seitentyp}}--> ... <!--{{vtEndLoop}}-->

oder

<!--{{vtLoop: -type="%Seitentyp", 
        -show="%Sichtbarkeit", 
        -store="%Name", 
        -size="%Länge", 
        -sortfield="%Sortierfeld", 
        -sortorder="%Sortierfolge"
}}-->
...
<!--{{vtEndLoop}}-->
%Seitentyp

(optional) Wenn sich die vtLoop-Anweisung außerhalb eines vtSelect-Blocks befindet, lässt sich mit diesem Parameter die Wiederholung auf Seiten eines bestimmten Typs beschränken.

%Sichtbarkeit

(optional) Beschränkt die Wiederholung auf Seiten, die eine bestimmte Sichtbarkeitseigenschaft besitzen. Mögliche Werte sind:

Anzeige Bedeutung
all es werden alle Seiten berücksichtigt, für die der aktuelle Benutzer ein Leserecht besitzt
visible es werden nur "sichtbare" Seiten berücksichtigt (eine Seite ist sichtbar, wenn in den Seitenvorgaben die Option "Seite nicht in Menüs und Sitemap anzeigen" deaktiviert ist)
viewable es werden nur "sichtbare" und "darstellbare" Seiten berücksichtigt (eine Seite ist darstellbar, wenn ein Template zu dem betreffenden Seitentyp existiert)

Bei fehlender Angabe verhält sich vtLoop, als wäre visible angegeben.

%Name

(optional) Name, unter der die Seitenliste gespeichert werden soll. Das Speichern ermöglicht es, zwischen den einzelnen Seiten der Liste mit Hilfe der speziellen Seitenangaben > und < vor- und zurückzublättern.

%Länge

(optional) Maximale Zahl von Wiederholungen. Wenn es mehr Seiten gibt als diesem Wert entspricht, werden die überzähligen Seiten nicht mehr durchlaufen. Durch diesen Parameter wird die Seitenliste in sogenannte Portionen unterteilt, die mit Hilfe des URL-Parameters -prt einzeln durchlaufen werden können. Fügt man zum Beispiel -prt=2 in den Seitenaufruf ein, wird die zweite Portion durchlaufen, mit -prt=3 die dritte etc. Mit dem Platzhalter vtPortions ist es auf einfache Weise möglich, ein komplettes "Portionierungsmenü" aufzubauen.

%Sortierfeld

(optional, ab v3.0.1) Name des Feldes, nach dem die Seiten sortiert werden sollen. Mögliche Werte sind vtName, vtPageType, vtCreationDate und vtModificationDate. Ist ein %Seitentyp angegeben, können Sie auch den Namen eines Platzhalters verwenden, der in dem betreffenden Template vorkommt. Bei fehlender Angabe wird das Sortierfeld verwendet, das in der umschließenden vtSelect-Anweisung oder (wenn sich vtLoop außerhalb eines vtSelect-Blocks befindet) in den Vorgaben der aktuellen Seite festgelegt ist. Dieser Parameter wird ignoriert, wenn Sie die Sortierfolge random verwenden.

%Sortierfolge

(optional, ab v3.0.1) Die gewünschte Art der Sortierung. Mögliche Werte sind:

Wert Bedeutung
ascending oder asc Sortierung in aufsteigender Folge
descending oder desc Sortierung in absteigender Folge
random Sortierung nach Zufallsprinzip (bei jedem Seitenaufruf anders)

Bei fehlender Angabe wird die Sortierfolge verwendet, die in der umschließenden vtSelect-Anweisung oder (wenn sich vtLoop außerhalb eines vtSelect-Blocks befindet) in den Vorgaben der aktuellen Seite festgelegt ist.

Hinweise

Mit vtLoop lassen sich Listen und Navigationsmenüs aufbauen, die sich beim Hinzufügen und Entfernen von Seiten automatisch anpassen. Alle innerhalb des vtLoop-Blocks verwendeten Platzhalter werden im Kontext der gerade durchlaufenen Seite interpretiert (siehe Kapitel "Seitenkontext"). Auch ein Verschachteln von vtLoop-Blöcken ist möglich.

Die Angabe eines %Seitentyps hat -- abgesehen von der Eingrenzung der zu durchlaufenden Subseiten -- noch eine weitere Auswirkung: Beim Erstellen einer neuen Subseite wird die Template-Auswahl übersprungen und sofort das Erstellenformular für den angegebenen Seitentyp eingeblendet. Dies funktioniert selbst dann, wenn zu dem angegebenen Seitentyp überhaupt kein Template existiert. Das Erstellenformular stellt dann für alle freien Platzhalter, die sich innerhalb des vtLoop-Blocks befinden, entsprechende Eingabefelder zur Verfügung.

Gibt es mehrere nebengeordnete (nicht-verschachtelte) vtLoop-Anweisungen mit Seitentypangabe, wird beim Erstellen einer neuen Seite eine Auswahl mit den verwendeten Seitentypen eingeblendet. Gibt es vtLoop-Anweisungen sowohl mit als auch ohne Seitentypangabe, werden alle verfügbare Seitentypen eingeblendet.

Beispiel 1

<!--{{vtLoop: -show="viewable"}}-->
    <p>{{Headline}}<br>{{Intro}} <a href="{{vtLink}}">mehr</a></p>
<!--{{vtEndLoop}}-->

Beispiel 2

<table>
    <tr>
        <th>Name</th>
        <th>Vorname</th>
        <th>Telefon</th>
    </tr>
    <!--{{vtLoop: -type="kontakt", -store="Kontaktliste"}}-->
        <tr>
            <td><a href="{{vtLink}}">{{Name}}</a></td>
            <td>{{Vorname}}</td>
            <td>{{Telefon}}</td>
        </tr>
    <!--{{vtEndLoop}}-->
</table>

Siehe auch