bx:containerloop
InhaltDas 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 geladen…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.
Funktionen:
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
Beispiel Titel
<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)