Dies ist ein BHP-Gästebuch Verzeichnis.

Verzeichnisname = Gästebuchname

Schablonen

Das Gästebuch CGI-Script bietet Ihnen die Möglichkeit Ihr Gästebuch im Design an Ihre Wünsche anzupassen. Es benutzt für alle seine Ausgaben nämlich HTML-Schablonen, die mit dem Anlegen des Gästebuchs in das Verzeichnis kopiert werden. Diese Funktionalität ist jedoch nur für erfahrenen Benutzer gedacht, da Sie direkt erweiterten HTML-Code editieren müssen und außerdem mit Konzepten wie Variablensubstitution und Programmschleifen vertraut sein sollten.

Welche Möglichkeiten Sie genau haben steht als Kommentare in den Standardschablonen oder weiter unten in dieser Datei. Die Standardschablonen können sie können sie jederzeit wiederherstellen, indem Sie auf der Einbauen - Seite der Gästebuch Administration auf den Button Standard klicken.
Achtung: Eventuelle Änderungen Ihrerseits werden dabei überschrieben. Das aber auch kann zur Folge haben, daß Ihr Gästebuch nicht mehr korrekt angezeigt wird, besonders wenn Sie eigene Felder definiert haben. Behalten Sie also immer eine Kopie der letzten funktionierenden Version Ihrer Schablonen an einem sichern Ort.

Für diejenigen die jetzt noch nicht abgeschreckt sind, folgt hier eine kleine Aufstellung der Dateien im Gästebuchverzeichnis:

book.gb
Die Rohdaten ihres Gästebuchs
book.html
Schablone für die Gästebuch Seiten. In dieser Schablone werden die variablen Felder durch Werte aus der Datenbankdatei book.db ersetzt.
message.html
Formular-Schablone für die Eingabe des Eintrags. Hier werden die Variablen definiert, die in book.html eingesetzt werden können.
receipt.html
Die Schablone für die Quittung, die ein Nutzer nach Eingabe eines Eintrags angezeigt bekommt
index.html
Die aus book.html und book.db erzeugte Gästebuch Hauptseite.
page[nnn].html
Eventuelle Folgeseiten des Gästebuchs
README.html
Diese Datei. In dieser Datei sind die Editiermöglichkeiten noch einmal erklärt. Sie können sie als Referenz ausdrucken

Sie können die Schablonen ansehen, lokal abspeichern und editieren. Benutzen Sie einen HTML-Editor, bei dem Sie Kontrolle über den erzeugten Code haben oder einen Texteditor, um die Schablonen zu editieren. Netscape Composer rearrangiert öfters eigenmächtig die Zeilen, falls er HTML-TAGS nicht kennt. Dies tritt besonders in Tabellen auf.

Um neue Schablonen zu testen müssen Sie die Gästebuchseiten neu erzeugen lassen. Dies können Sie ohne Neueingabe einer Nachricht erreichen, indem Sie in der Eigenschaften-Seite der Gästebuch-Administration auf ausführen klicken.

message.html

Alle Felder die im folgenden Formular definiert werden können in der Ausgabe Schablone benutzt werden. Der Name des Feldes, in Dollarzeichen eingeschlossen, wird durch den Wert des Feldes ersetzt. Ausnahme sind Felder deren Namen mit einem Unterstrich beginnen und solche deren Namen mit check_ beginnen.

Mit den check_ - Feldern kann man andere Felder überprüfen lassen. Dazu hängt man an das check_ den Namen des zu überprüfenden Feldes. Es gibt z.Zt. vier Check-Modi, die mit value='modi' ausgewählt werden können.

required
Feld muss ausgefüllt werden.
email
Feld wird auf das Vorhandensein der Buchstaben '&' und '.' geprüft.
number
Feld muss einen numerischen Wert haben
url
Inhalt des Feldes muss eine korrekte URL sein.
Außer beim Modus 'required' können die Felder auch leer bleiben. Durch hinzufügen von required kann man aber das Ausfüllen erzwingen:

Beispiel:

      <input type=text name=Email size=60 maxsize=60>
      <input type=hidden name=check_Email value="email required">
      
verlangt zwingend die Angabe eine Email-Adresse im Feld Email.

receipt.html

Hier wird die neu Nachricht noch einmal zur Kontrolle ausgegeben. Da nicht bekannt ist, welche Felder Sie im Eingabeformular 'message.html' definiert haben, wird Sie in einem generischen Tabellenformat dargestellt. Sie können hier natürlich auch die Variablen für Ihre definierten Felder angeben und so ein schöners Layout generieren.

book.html

Dies ist eine Schablone die durch Variablensubstitution mit Werten gefüllt wird. Gültige Variablen sind die unten aufgeführten, sowie die Namen der Input-Felder der Eingabeschablone. Diese sind jedoch nur zwischen den 'foreach' tags gültig. Die Variablennamen müssen mit einem Dollarzeichen '$' eingerahmt werden, damit die Ersetzung stattfindet. Durch die Einrahmung sind auch Variablennamen mit Leerzeichen möglich.
Auch möglich ist ein <input name=variablenname value=""> Feld, value="" wird dann durch value="Variablenwert" ersetzt.
Check- und Radiobuttons, sowie Popupmenus werden entsprechend der Einstellung gleicher Elemente in der Eingabeschablone gesetzt, sofern sie den gleichen Namen haben.

Die if - Tags möglichen es Variablen gegen bestimmte Werte oder auf Vorhandensein zu testen. Auch die Negation mit 'not' bzw. '!' ist möglich und es gibt einen else Zweig.
Wichtig:Man kann sie nicht schachteln!

Syntax:

	<if [!|not] variable [operator value]> HTML-TEXT [<else> HTML-TEXT]</if>

OperatorBedeutung
==gleich (numerisch)
!=ungleich (numerisch)
gtgrößer (numerisch)
ltkleiner (numerisch)
gegrößer gleich (numerisch)
lekleiner gleich (numerisch)
eqgleich (Zeichenkette)
neungleich (Zeichenkette)
=~enthält Zeichenkette (bzw. match regex)
!~enthält Zeichenkette nicht

Beispiel:

		<if Variable == 1>
			Variable hat numerischen Wert: 1
		</if>

	oder:
		Test ob Variable bestimmte Zeichenkette enthält:
		<if Variable =~ "Hallo">
			Variable enthält "Hallo": $Variable$
		</if>
	oder:
		Test ob Variable gleich String ist:

		<if Variable eq "Hallo">
			Variable ist: $Variable$
		</if>
	oder:
		Test ob Variable vorhanden und nicht leer ist,
		mit else Zweig:

		<if Variable>
			Variable ist: $Variable$
		<else>
			Variable ist leer
		</if>

Zwischen den <foreach messages> ... </foreach> Tags findet die Nachrichtenersetzung statt. Dort sind für jede Nachricht alle Variablen belegt für die Sie entsprechende Felder in der Eingabeschablone definiert haben. Zusätzlich sind folgende automatische Variablen gültig:

Zwischen den 'foreach' Tags zusätzlich gültig:

$date$
Eingabedatum der Nachricht
$time$
Eingabezeit der Nachricht
$number$
Lfd. Nummer der Nachricht
$generic_message$
Die ganze Nachricht in einem allgemeinem Format (Feldname: Feldinhalt), als HTML-Tabelle, so wie Sie es beim Nachrichten löschen zu sehen bekommen.

Folgende globale Variablen existieren:

$name$
Name des Buches
$addurl$
URL der Eingabeseite
$nrMessages$
Anzahl der Einträge
$nrPages$
Anzahl der Seiten
$page$
Seitennummer
$prevpage$
URL der vorherigen Seite
$nextpage$
URL der nächsten Seite

Anwendungsbeispiel

Falls Sie in Ihrer Eingabeschablone folgende Buttons definieren:

          <input type=radio name=Icon value="Frage"> Icon Nr.1
          <input type=radio name=Icon value="Antwort"> Icon Nr.2
so können Sie in der Ausgabeschablone ein Bild abhängig von dieser Einstellung anzeigen, z.B. mit:
	<img src="$Icon$.gif">