bx:containerloop
Das Tag containerloop listet Datensätze einer Datenliste.
In den unten aufgeführten Formen muss die ID eines vorhandenen Containers angegeben werden (<id>). Alternativ kann statt <bx:containerloop pool="<id>" auch <bx:containerloop.<bez> definition="<id>" verwendet werden. Hier muss dann ein Bezeichner (<bez>) angegeben werden, welcher in der Administration angezeigt wird. Ebenfalls wird hier die ID einer Container-Definition angegeben. In der Verwaltung wird dann eine Auswahlliste mit allen verfügbaren Containern angezeigt, die auf dieser Definition beruhen.
eine Anzahl an Elementen
<bx:containerloop pool="{id}" [force={single | list | random | choice}] [indexparam="{param}" | index="{param}" | forceindex="{n}"] [max="{n}"] [show="all"] [orderbyparam="[+|-]{param}" [directionparam="{param}"] | orderby="{feld}" [desc]] >
Inhalt
</bx:containerloop>
Es werden die Listenelemente ab einer bestimmten Position ausgegeben, diese wird über ein Request-Parameter (indexparam oder index) festgelegt oder direkt dem Tag übergeben (forceindex). Standardmäßig werden alle Elemente ausgegeben, falls max angegeben ist, dann maximal nur <n>.
pool
enthält die Containerid bzw. den Containernamen
indexparam
enthält den Request-Parameter-Namen, der die Startposition für die Ausgabe enthält
index
enthält die Startposition für die Ausgabe
forceindex
feste Angabe für die Startposition der Ausgabe
max
maximal Anzahl ausgegebener DS im Schleifendurchlauf
show="all"
auch Anzeige von inaktiven Elementen
orderbyparam
Sortierungsfeldangabe über einen Request-Parameter (+ für aufsteigend und - für absteigend vor den Feldnamen) NEU: reagiert jetzt auch auf mehrfach vorkommende Request-Parameter (siehe Beispiel) (ab V2.7, siehe auch bei containerfilter)
directionparam
Sortierrichtung über einen Request-Parameter (wenn nicht bei orderbyparam vorangestellt)
orderby
Sortierfeld für die Anzeigereihenfolge (standardmäßig aufsteigend) NEU: Der Parameter orderby nimmt jetzt mehrere Feldnamen, getrennt durch Komma, Leerzeichen, Semikolon oder Pipe an und es kann über eine Einzelverknüpfung sortiert werden (siehe Beispiel) (ab V2.7)
desc
kehrt die Sortierreihenfolge um
force
- list: Listenanzeige
- single: einzelner Datensatz
- random: Erzwinge Einzelanzeige eines Zufallsdatensatzes
- choice: Erzwinge Listenanzeige einer im Request übergebenen Auswahl von Datensätzen, braucht idfield=... (oder der Requestparameter heißt recordid)
Beispiele
Containeranzeige: Listen- und Detailseite
Listenseite
<form>
Sortierung nach:<br>
Titel Preis
</form>
<bx:containerloop pool="Artikel" indexparam="anzeigeAb" max="10" orderbyparam="sortierfeld" directionparam="sortierrichtung" orderby="Titel">
<a href="detail.htm?art=<bx:recorddata.id/>"><bx:recordfield.Titel/></a><br>
</bx:containerloop>
In der Liste werden pro Seite 10 Artikel angezeigt (max).
Detailseite
<bx:containerloop pool="{id}" [indexparam="{param}" | index="{param}" | forceindex="{n}"] [max="{n}"] [show="all"] [orderbyparam="[+|-]{param}" [directionparam="{param}"] | orderby="{feld}" [desc]] >
Inhalt
</bx:containerloop>
mehrere Sortierparameter: ** (ab V2.7)**
Der Parameter orderby nimmt jetzt mehrere Feldnamen, getrennt durch Komma, Leerzeichen, Semikolon oder Pipe an. Dem Feldnamen kann man ein Pluszeichen für aufsteigende Sortierung (A..Z) oder ein Minuszeichen für absteigende Sortierung (Z..A) voranstellen.
zugehöriger Filter
<bx:containerloop orderby="-Datum,+Titel"> <!-- wenn kein + oder - vorangestellt ist, wird nach desc geschaut -->
<bx:containerloop orderby="-Datum,Titel" [asc]>
<bx:containerloop orderby="Datum,+Titel" desc> <!-- ergeben die gleiche Sortierung wie das Beispiel oben -->
<bx:containerloop orderby="-Jahr -Monat -Tag">
<bx:containerloop orderby="Jahr Monat Tag" desc> <!-- ergeben auch beide die selbe Sortierung.
Sortierung über Einzelverknüpfung: (ab V2.7)Sortierung über Einzelverknüpfung ist auch für jedes Feld möglich:
zugehöriger Filter
<bx:containerloop orderby="Kategorie/Titel;-Preisgruppe/Nummer">
ein zufälliges Element
<bx:containerloop pool="<id>" force="random" [show="all"] >
Inhalt </bx:containerloop>
id
Objekt-ID
Es wird ein zufälliges Element der Liste ausgewählt. Falls show="all" gesetzt ist, werden auch inaktive Elemente in Betracht gezogen.
.
Beispiele
<bx:tag.feature param="value" />
ein bestimmtes Element
<bx:containerloop pool="<id>" force="single" [idfield="<param>"] >
Inhalt </bx:containerloop>
id
Objekt-ID
param
Name eines Request-Parameters
Die ID des gewünschten Datensatzes wird durch ein Request-Parameter (festgelegt durch idfield, Standard ist "recordid") übergeben.
mehrere bestimmte Elemente
<bx:containerloop pool="<id>" force="choice" [idfield="<param>"] [id="<idlist>"] [boundary="<text>"] [show="all"]
[oderbyparam="[+|-]<param>" [directionparam="<param>"] | orderby="<feld>" [desc]] >
Inhalt </bx:containerloop>
id
Objekt-ID
param
Name eines Request-Parameters
text
beliebiger Text
idlist
Liste von IDs
idfield gibt den Request-Parameter an, in welchem die Auswahl an Datensätzen steht. Es kann entweder eine Liste an IDs (getrennt durch Komma oder anderen Zeichen laut boundary) angegeben werden oder es wird der gleiche Request-Parameter (gleicher Name) mehrfach spezifiziert (für jeden gewünschten Datensatz einmal mit der entsprechenden Datensatz-ID). Alternativ kann die Liste der IDs im Attribut id übergeben werden.
Um auch hier inaktive Elemente anzuzeigen, muss show="all" gesetzt sein.
Die Möglichkeiten zur Sortierung sind die selben, wie unter eine Anzahl an Elementen
Verweise auf diese Seite:
bx:recorddata bx:tableloop bx:tableloop bx:recorddata
(4 Verweise)