Trotz der vielen Einstellmöglichkeiten von do action=all oder do
action=list werden Sie in vielen Fällen mit der standardisierten
Ausgabeform nicht zufrieden sein: Sie möchten die Ausgabe jedes
Feldes selbst bestimmen. loop ermöglicht dies, indem es durch
alle Einträge einer Datenbank geht und Zeile für Zeile die einzelnen
Felder als Variablen zur Verfügung stellt.
Definition:
<loop[Parameter]> ...[$<i>Feldname</i>]... </loop> |
|
Beispiel:
<b>Neueste Neuigkeiten:</b>
<loop db=news sort=->
<h3><a href="$URL">$Titel</a></h3>
<ul>$Text</ul>
<i>von $Autor</i>
<p>
</loop>
|
Dieses Beispiel könnte Teil eines Redaktionssystems sein: loop
durchläuft alle Einträge der Datenbank news. Da kein Feld
für die Sortierung angegeben wurde, erfolgt die Ausgabe chronologisch
- allerdings in umgekehrter Reihenfolge, aufgrund des Minus-Zeichens (sort=-).
Die neuesten Einträge kommen also ganz oben, was für ein News-System
sicherlich wünschenswert ist.
Die Variablen mit dem vorangestellten "Dollar"-Zeichen $
entsprechen jeweils dem Namen eines Feldes, so wie sie bei der
Datenbank-Definition vergeben wurden (Achtung auf
Gross/Klein-Schreibung, diese wird unterschieden!). Wird ein Feldname
verwendet, der nicht existiert, wird einfach nichts eingefügt.
Etwas komplizierter ist der Zugriff auf Felder, deren Namen nicht
als Variablennamen verwendet werden können, z.B. "Preis in
$" oder "Frage / Antwort". Wegen der Leerzeichen und
den Sonderzeichen ("$", bzw. "/") ist eine direkte
Abfrage nicht möglich. Stattdessen müssen Sie folgendes schreiben:
$_loop{"Preis in $"}
$_loop{"Frage / Antwort"}
Und so könnte die Ausgabe der News-Seite aussehen:
Neueste Neuigkeiten:
Nachdem letztes Jahr nur noch wenige Hundert hartnäckige
Loveparade-Fans auf dem inzwischen nach Pankow verlegten
Techno-Umzug erschienen sind, haben die Veranstalter dieses
Jahr aufgrund der wiederum geringen Resonanz gleich
abgesagt. Motte meint dazu: Endlich Frieden...
von Anja
Nach herben Umsatzeinbrüchen hat sich die Führung von
Microsoft nun auch noch heillos über die zukünftige
strategische Ausrichtung des ehemals so mächtigen
Software-Unternehmens zerstritten. Wo wird das alles enden?
von Hans Albers
von Stefan Ehrlich
|
(Achtung: Die Nachrichten sind nur Beispiele und NICHT real!! ;-)
|
Ein paar Tipps zur Ergänzung:
- Loop heisst "Schleife" und bedeutet, dass in obigem Beispiel alles, was innerhalb von <loop> und </loop> steht, entweder so oft hintereinader ausgegeben wird, wieviel tatsächlich Datensätze in der Datenbank sind.
Der Ausdruck sort=- wird an der etsprechenden Stellen erklärt.
- Im Template werden zur Formatierung der Ausgaben ganz normale HTML-Tags angewandt, ganz egal, ob da noch zusätzlich baseportal - interne Tags stehen, auch innerhalb von <loop> und </loop>.
Schließlich werden hier ja Ausgaben für Web-Browser generiert, so dass ein paar HTML-Kenntnisse beim Einsatz von baseportal durchaus von Vorteil sind.
|
do action=all und loop kombinieren
Manchmal möchte man die komfortablen Menüs des <do action=all> mit einer eigenen Ausgabe kombinieren. Das geht einfach mit dem Parameter "listtype=-". Hier ein Beispiel, das die Blätter-Links vom <do action=all> erhält und trotzdem eine eigene Ausgabe ermöglicht:
<do action=all listtype=- selectbrowse=no>
<loop>
$Feld1 - $Feld2... etc.<br>
</loop>