HTML-Syntax der kibeo-Templates

Die Standard-Darstellung der einzelnen Einrichtungen auf statischen HTML-Seiten, aber auch die Such- und Administrationsmasken werden durch Templates gesteuert. Dabei stehen u.a. Variablenersetzung, Bedingungen und Schleifen zur Verfügung.

 

Variablenersetzung $Feld$

Ersetze gegen den aktuellen Feldinhalt.

Der Feldname wird in Dollarzeichen ($) eingeschlossen.

Beispiel: Ersetze $Name$ gegen den Feldinhalt von {Name}:

<h1>Index</h1>
<ul>
<li>Name: $Name$
</ul>

Variablenersetzung ohne Inputfeld (readonly)

Ist an einer bestimmten Stellen nicht gewünscht, dass ein Feld auch editiert werden kann, kann das Feld (an dieser Stelle) "nur lesbar" (readonly) gesetzt werden. Dazu die Option readonly mit einem Doppelpunkt : hinter den Feldnamen angeben.

Beispiel:

<h1>Index</h1>
<ul>
<li>Name: $Name:readonly$
</ul>

Include %Include:Dateiname%

Ersetze gegen den Inhalt einer anderen Datei.

Die Include-Anweisung, gefolgt vom Doppelpunkt und Dateiname wird mit Prozentzeichen umschlossen.

Beispiel:

<html>
%Include:menu-start.incl%
<h1>Index</h1>
%Include:menu-end.incl%
</html>

Zusammenwirkung mit anderen Anweisungen

Es wird zuerst das %Include ausgeführt, und dann eine Variablenersetzung durchgeführt, d.h. auch in der eingefügten Datei werden Feldinhalte ersetzt.

Es wird aber nach einer Bedingung ausgeführt, so dass eine Include-Anweisung innerhalb eines

%if

-Blockes bedingt ausgeführt wird, aber eine {%if}-Anweisung in einer eingefügten Datei nicht beachtet wird.

Bedingungen: Prüfung auf Definition eines Feldes %if $feld%

Der folgende Block wird nur ausgeführt, wenn ein Feldinhalt definiert ist, also ein Wert zugewiesen wurde.

Beispiel:

%if $Email$%
<li> E-Mail: $Email$
%endif%

Bedingung: Prüfung auf Gleichheit %if text1=text2%

Der folgende Block wird nur bei Gleichheit von Werten ausgeführt.

Beispiel:

%if $Traeger$=katholisch%
%Include:kosten_katholisch.incl
%endif%

Bedingung: Sonst %else%

Der folgende Block wird ausgeführt, wenn die vorherige Bedingung nicht erfüllt ist.

Beispiel:

%if $Email$%
<li> E-Mail: $Email$
%else%
<li> Keine E-Mail-Adresse bekannt.
%endif%

Bedingungen: Syntax-Besonderheiten

Schleifen %for%, %forelse%, %endfor%

Je nach verwendetem Skript können Variabeln für eine For-Schleife zur Verfügung gestellt werden. Zm Beispiel das Suchskript suche.pl stellt Informationen über die gefundenen IDs zur Verfügung. Im Skript muss dafür die Funktion expandLoop definiert werden.

Hinter dem %for-Statement wird die Variable angegeben, nach der gesucht wird, je nach Script können hier verschiende Möglickeiten existieren.

Der %forelse% Block ist optional. Dieser Block wird nur ausgegeben, wenn keine Ergebnisse gefunden wurde.

%if $_Suche$=Suche%
<table border=1 cellpadding=6 cellspacing=0>
<tr style=background-color:#336699;color:white>
<th><th>ID<th>Name<th>Strasse<th>Träger<th>Stadtbezirk<th>Stadtteil</th>
</tr>
%for $Name$%
<tr style=background-color:#DDDDDD;color:black>
<td> $_Edit$ </td>
<td>$ID$</td>
<td> <a href=$_HtmlPraefix:readonly$/$ID$/index.htm>$Name$</a> </td>
<td>$Strasse$</td>
<td>$Traeger$</td>
<td>$Stadtbezirk$</td>
<td>$Stadtteil$</td>
</tr>
%forelse%
<tr><td>Nichts gefunden</td></tr>
%endfor%

Speicher-Button %Speichern%

Diese Angabe ist optional, ohne %Speichern% wird der Speicher-Button an das Ende der Seite gesetzt.

Ist im Edit-Modus nicht gewünscht, dass der Speicher-Button automatisch an das Ende gesetzt wird, weil z.B. noch weiterer Text hinter dem Button erscheinen soll, kann die Position im Template durch %Speichern% definiert werden.

Beispiel:

<html>
<h1>Benutzereinstellungen</h1>
<p>
$Meldungen$
<ul>
<li> Neues Passwd: $_passwort$
</ul>
%Speichern%
<p>
$_loginlogout$
<p>
<a href=./index.pl>Index</a>
<a href=./edit.pl?id=$id:readonly$>Edit</a>
</html>

Abbrechen-Button %Abbrechen%

In derselben Situation, in der der Speichern-Button angezeigt wird, kann auch ein Abbrechen-Button angezeigt werden. Dies geschieht aber nicht automatisch, sondern muss im Template durch %Abbrechen% definiert werden.

Beispiel:

<html>
<h1>Benutzereinstellungen</h1>
<p>
<ul>
<li> Neues Passwd: $_passwort$
</ul>
%Speichern%
%Abbrechen%
</html>

Zeilenende aufheben %gleicheZeile%

Es kann vorkommen, dass man explizit will, dass die nächste Zeile des Templates nicht auch eine neue Zeile im generierten HTML-Output erzeugt. Dies kann vorkommen in Kombination mit Bedingungen, die immer in einzelnen Zeilen angegeben werden müssen.

Beispiel:

$TraegerName$,
$TraegerStrasse$, $TraegerPlz$ $TraegerOrt$,
Tel. $TraegerTelefon$%gleicheZeile%
%if $TraegerFax$%
, Fax $TraegerFax$%gleicheZeile%
%endif%

Ohne die Angabe %gleicheZeile% würde die Fax-Angabe eine neue Zeile erzeugen (falls definiert), was in der Ausgabe im Browser ein Leerzeichen vor dem Komma bewirkt (z.B. Tel. 123 , Fax 456 anstatt Tel. 123, Fax 456).

Aktualisiert am 30.05.2008 - Startseite           ▲ nach oben