Rekursive Schleifen

Die rekursiven Schleifen sind eine sehr leistungsfähige Funktionalität zur Gestaltung der Schnittstelle. Ihre Programmierung ist besonders einfach, ihre Benutzung verlangt aber eine gute, logische Beherrschung der Verkettung von Schleifen.

Der Aufruf einer rekursiven Schleife ist sehr einfach: es genügt, als TYP der Schleife den Namen einer anderen Schleife anzugeben:

<BOUCLEn(boucle_x)></BOUCLEn>

Hier gibt es keine Kriterien: tatsächlich korrespondiert die Schleife n mit einer bloßen und einfachen Kopie der Schleife x. Zusammen funktionieren die Schleifen so, als ob man die gesamte Schleife x (alle Tags und den HTML-Code sowie auch die bedingten voranstehenden, nachstehenden und alternativen Texte) an der Stelle, wo man die Schleife n einfügt, noch einmal abgeschrieben hätte. (Man führe sich vor Augen, daß die Schleife x vor der Schleife n kommt.)

Die einfachste Verwendung besteht darin, eine Schleife zu duplizieren, ohne daß man sie nochmals hinschreiben muß. Auf diese Weise werden alle Modifikationen an der Originalschleife x automatisch in der Schleife n dupliziert.

Wirklich interessant wird es, wenn man die Schleife n im Inneren der Schleife x anbringt; so erhält man ein rekursives Verhalten: die Schleife x enthält eine Schleife n, die ihrerseits die Schleife x reproduziert, welche die Schleife n enthält, und so weiter in Folge, bis die Schleife x kein Resultat mehr liefert.

Diese Technik erlaubt insbesondere die Anzeige von Threads in Foren. Das geht sehr einfach: eine erste Schleife «fabriziert» den Eingang zu den Threads (die Nachrichten, die direkt auf einen Artikel antworten), eine zweite Schleife zeigt die Antworten auf diese Nachrichten an, und eine rekursive Schleife sorgt für die Rekursivität über diese zweite Schleife:

<BOUCLE_forum(FORUMS){id_article}>
<P>#TITRE
    <B_antworten>
    <UL>
    <BOUCLE_antworten(FORUMS){id_parent}>
    <LI>#TITRE
      <BOUCLE_rekursiv(boucle_antworten)>
      </BOUCLE_rekursiv>
    </BOUCLE_antworten>
    </UL>
    </B_antworten>
</BOUCLE_forum>

Auf diese Weise kann man mit sehr wenigen Zeilen die Anzeige der gesamten Struktur der Site (Rubriken, Unterrubriken...) hervorrufen.

Autor wshSchlegel Publié le : Mis à jour : 26/10/12

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