Für alle Schleifen gültige Kriterien

Bestimmte Kriterien können auf (fast) alle Typen von Schleifen angewandt werden. Dies sind die Kriterien, mit denen man die Anzahl der angezeigten Resultate eingrenzen oder eine Reihenfolge für die Anzeige angeben kann. Man kann ohne weiteres mehrere dieser Auswahl-Kriterien kombinieren.

Sortierung der Resultate

{par sortier_kriterium} gibt die Reihenfolge an, in der die Resultate präsentiert werden. Das Sortier-Kriterium (sortier_kriterium) korrespondiert für jeden Schleifentyp mit einem der aus der Datenbank entnommenen Tags. Beispielsweise könnte man die Artikel {par date}, {par date_redac} oder {par titre} sortieren. (Beachten Sie, daß die Tags mit Großbuchstaben, die Sortierungs-Kriterien aber mit Kleinbuchstaben geschrieben werden.)

Sonderfall: {par hasard} erlaubt die Beschaffung einer Liste in einer zufälligen Reihenfolge.

Umkehrung der Sortierung. Darüberhinaus bewirkt {inverse} die Anzeige in der umgekehrten Sortierung. Beispielsweise beginnt {par date} mit den ältesten Artikeln; verwendet man {par date}{inverse}, beginnt die Liste mit den neuesten Artikeln.

Sortierung nach Nummer. Wenn man eine Sortierung nach Maßgabe eines Text-Elements vornimmt (beispielsweise des Titels), wird in alphabetischer Reihenfolge sortiert. Man kann indessen eine Zahl vor dem Titel anzeigen, um eine bestimmte Reihenfolge der Sortierung zu erzwingen, z.B.: «1. Mein erster Artikel», «2. Zweiter Artikel», «3. Dritter ...» usw. Bei einer alphabetischen Sortierung dieser Elemente erhält man dann die Serie «1, 10, 11, 2, 3...». Um eine Sortierung nach Nummern zu erreichen, kann man folgendes Kriterium verwenden:

{par num sortier_kriterium}

Ein Beispiel:

<BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}>

zeigt die Artikel einer Rubrik in umgekehrter chronologischer Reihenfolge an (die neuesten am Anfang, die ältesten am Schluß), und:

<BOUCLE_articles(ARTICLES){id_rubrique}{par titre}>

zeigt sie in alphabetischer Reihenfolge nach ihren Titeln an; schließlich zeigt:

<BOUCLE_articles(ARTICLES){id_rubrique}{par num titre}>

sie in der Reihenfolge der Nummern ihrer Titel an (Anmerkung: Die Option {par num titre} funktioniert nicht mit älteren Versionen von MySQL vor der Version 3.23).

Vergleiche und Identitäten

{Kriterium < Wert} Der Vergleich mit einem festgelegten Wert (man kann «>», «<», «=», «>=» und «<=» verwenden). Alle Sortier-Kriterien (wie sie aus der Datenbank entnommen werden) können auf dieselbe Weise zur Begrenzung der Anzahl der Resultate benutzt werden.

Beispiele:

<BOUCLE_art(ARTICLES){id_article=5}>

zeigt den Artikel an, dessen Nummer 5 ist (wird benutzt, um einen Artikel ins Auge springend auf die Startseite zu setzen).

<BOUCLE_art(ARTICLES){id_secteur=2}>

zeigt die Artikel aus Sektor Nummer 2 an.

Reguläre Ausdrücke. Sehr leistungsfähig (aber noch diffiziler zu handhaben) führt der Vergleichsoperator «==» einen Vergleich anhand eines regulären Ausdrucks durch. Zum Beispiel:

<BOUCLE_art(ARTICLES){titre==^[aA]}>

wählt die Artikel aus, deren Titel mit «a» oder «A» beginnt.

Negation. (SPIP 1.2) Man kann als Negationsoperator {xxx != yyy} verwenden; das «!» korrespondiert mit der Negation (logischer NOT-Operator).

<BOUCLE_art(ARTICLES){titre!==^[aA]}>

wählt die Artikel aus, deren Titel nicht mit «a» oder «A» beginnt.

<BOUCLE_art(ARTICLES){id_secteur != 2}>

wählt die Artikel aus, die nicht zum Sektor Nummer 2 gehören.

Datumsvergleiche. Um Datumsangaben leichter vergleichen zu können, wendet man folgende Kriterien an:

-  age und age_redac korrespondieren mit dem Alter in Tagen der Veröffentlichung beziehungsweise der ersten Veröffentlichung eines Artikels: {age<30} wählt die seit einem Monat veröffentlichten Elemente aus;

-  die Kriterien mois, mois_redac, annee und annee_redac erlauben den Vergleich mit festgelegten Werten ({annee<=2000} für die Elemente, die vor dem Jahresende 2000 veröffentlicht wurden).

Man kann mehrere dieser Kriterien kombinieren, um eine sehr differenzierte Auswahl zu erreichen. Zum Beispiel:

<BOUCLE_art(ARTICLES){id_secteur=2}{id_rubrique!=3}{age<30}>

zeigt die Artikel aus dem Sektor Nummer 2 an (mit Ausnahme derjenigen aus der Rubrik Nummer 3), die seit weniger als 30 Tagen veröffentlicht wurden.

Tip. Das Kriterium age eignet sich sehr gut, um Artikel oder Meldungen anzuzeigen, deren Datum «in der Zukunft» liegt, indem man mit negativen Werten arbeitet (unter der Voraussetzung, daß man in der Konfiguration der Site (Website-Konfiguration → Inhalte der Website → Veröffentlichung von vordatierten Artikeln) die Option «Sofort veröffentlichen, egal welches Datum ein Artikel trägt» aktiviert hat). Dieses Kriterium erlaubt, zukünftige Ereignisse zu berücksichtigen. {age<0} wählt die Artikel oder Meldungen aus, deren Datum in der Zukunft liegt («nach» heute).

(SPIP 1.3) Alter bezüglich eines festgelegten Datums. Das Kriterium age ist auf den Vergleich mit dem Datum des heutigen Tages angelegt ({age<30} korrespondiert also mit Artikeln, die seit weniger als einem Monat von heute aus gesehen veröffentlicht wurden). Das Kriterium {age_relatif} vergleicht das Datum eines Artikels oder einer Meldung mit einem «variablen» Datum; beispielsweise kennt man im Inneren einer ARTICLES-Schleife schon ein Datum für jedes Resultat der Schleife, daher kann man mit Bezug auf dieses Datum auswählen (und nicht mit Bezug auf das heutige Datum).

Zum Beispiel:

<BOUCLE_haupt_artikel(ARTICLES){id_article}>

	<h1>#TITRE</h1>

	<BOUCLE_naechster(ARTICLES){id_rubrique}{age_relatif<=0}{exclus}{par date}{0,1}>
	Nächster Artikel: #TITRE
	</BOUCLE_naechster>

</BOUCLE_haupt_artikel>

Die Schleife «BOUCLE_naechster» beschafft nach Datum sortiert die Liste der Artikel aus derselben Rubrik, deren Veröffentlichungsdatum kleiner oder gleich dem Veröffentlichungsdatum des Hauptartikels («BOUCLE_haupt_artikel») ist, und zeigt dann nur den ersten Artikel dieser Liste an; das heißt denjenigen Artikel aus derselben Rubrik, der direkt nach dem Hauptartikel veröffentlicht wurde.

Anzeige einer Teilmenge der Resultate

-  {a,b} wobei a und b allgemeine Bezeichner sind. Dieses Kriterium erlaubt eine Begrenzung der Anzahl der Resultate. a gibt an, mit welchem Resultat man die Anzeige beginnen möchte (Achtung, das erste Resultat trägt die Nummer 0 - null); b gibt die Anzahl der anzuzeigenden Resultate an.

Beispielsweise zeigt {0,10} die ersten 10 Resultate an; {4,2} zeigt die beiden Resultate ab dem fünften (einschließlich) an.

-  {debut_xxx,b} ist eine elaboriertere Variante des vorherigen. Sie erlaubt es, den Beginn der Resultats-Anzeige mit einer in der URL übergebenen Variable zu besetzen (diese Variable ersetzt also das a in den vorangehenden Ausführungen). Das funktioniert ein wenig kompliziert, aber man braucht es glücklicherweise nur selten zu benutzen.

Die in der URL übergebene Variable muß mit debut_xxx beginnen (wobei xxx ein Wort ist, das der Webmaster frei wählen kann). Wenn also eine Seite folgende URL hat:

petition.php3?id_article=13&debut_unterschrift=200

mit einem Template (petition.html), das beispielsweise folgendes enthält:

<BOUCLE_signatures(SIGNATURES){id_article}{debut_unterschrift,100}>

erhält man eine Liste von 100 Unterschriften, die mit der 200sten Unterschrift beginnt. Mit der URL:

petition.php3?id_article=13&debut_unterschrift=300

erhält man eine Liste von 100 Unterschriften, die mit der 300sten Unterschrift beginnt.

-  {a/b} , wobei a und b allgemeine Bezeichner sind. Dieses Kriterium erlaubt die Anzeige einer «Bruchteil»-Menge der Resultate. Die Menge der Resultate wird in b gleichgroße Teilmengen aufgeteilt, diese Teilmengen werden mit 1 beginnend durchnummeriert, und die Teilmenge mit der Nummer a wird angezeigt.

Beispielsweise zeigt {1/3} das erste Drittel der Resultate an. Dieses Kriterium wird im allgemeinen benutzt, um die Listen in mehreren Spalten anzuzeigen. Um eine zweispaltige Anzeige zu erhalten, genügt die Erzeugung einer ersten Schleife, angezeigt in einem Feld einer Tabelle, mit dem Kriterium {1/2} (der ersten Hälfte der Resultate), darauf dann eine zweite Schleife in einem zweiten Tabellenfeld mit dem Kriterium {2/2} (der zweiten Hälfte der Resultate).

Achtung. Die Verwendung des Kriteriums {doublons} zusammen mit diesem Kriterium ist gefährlich. Ein Beispiel:

<BOUCLE_eins(ARTICLES){id_rubrique}{1/2}{doublons}>
	<li> #TITRE
</BOUCLE_eins>
<BOUCLE_zwei(ARTICLES){id_rubrique}{2/2}{doublons}>
	<li> #TITRE
</BOUCLE_zwei>

zeigt nicht alle Artikel aus der Rubrik an! Stellen wir uns beispielsweise vor, es gäbe in unserer Rubrik insgesamt 20 Artikel. Die Schleife BOUCLE_eins wird die erste Hälfte der Artikel anzeigen, also die zehn ersten, und verbieten (wegen {doublons}), daß sie nochmals verwendet werden. Die Schleife BOUCLE_zwei indessen wird die zweite Hälfte der Artikel dieser Rubrik beschaffen, die noch nicht in der Schleife BOUCLE_eins angezeigt wurden; die Hälfte der zehn folgenden Artikel, das heißt die letzten fünf Artikel der Rubrik. Es sind Ihnen also unter der Operation fünf Artikel «verlorengegangen».

Anzeige zwischen den Resultaten

{"inter"} erlaubt es, einen HTML-Code (hier: inter) zwischen die Resultate der Schleife einzufügen. Wenn man beispielsweise eine Liste der Autoren mit Kommazeichen trennen möchte, kann man angeben:

<BOUCLE_autoren(AUTEURS){id_article}{", "}>

Autor wshSchlegel Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, Deutsch, English, Español, français, italiano, Nederlands