Dokumentation Gästebuch-Script

Vielen Dank für Ihr Interesse an unserem Gästebuch-Script. Wir empfehlen Ihnen, sich Zeit für die Lektüre dieser Anleitung zu nehmen.

Smilies powered by eLouai Smilies

Nach oben

Einleitung

Das Script ist für den sofortigen Einsatz konfiguriert und eingerichtet. Nachdem Sie das Script per FTP auf den Server kopiert und mit Hilfe der Installations-Routine die Datenbanktabellen eingerichtet haben, können Sie es sofort verwenden.

Wenn Sie Änderungen vornehmen möchten, sollten Sie diese schrittweise durchführen und nach jeder Änderung die Auswirkung auf das Script testen. Sie behalten dadurch den Überblick, welche der Änderungen einen eventuell auftretenden Fehler verursacht hat.

Das HTML-Template wurde nach den Spezifikationen für XHTML 1.0 erstellt. Deshalb enthalten alle einfachen Tags (<br> oder <input>) einen abschließenden Slash (<br /> oder <input type="text" name="feld" />).

Nach oben

Funktionsweise des Scripts

Das Script funktioniert wie ein klassisches Gästebuch-Script. Besucher Ihrer Website sehen eine Liste der Einträge - der letzte Eintrag wird zuerst angezeigt. Der Besucher kann über ein Formular einen eigenen Eintrag in das Gästebuch vornehmen.

Zur Administration des Gästebuchs kann der Betreiber sich mit Hilfe der Datenbank-Zugangsdaten (Benutzername und Passwort) über die Datei "/admin/index.php" einloggen. Ist der Administrator eingeloggt, kann er die Datenbanktabellen des Scripts installieren und deinstallieren, und die Einträge ändern und löschen. Der Administrator erhält zusätzlich Informationen über den Autor des Eintrags (IP-Adresse, Browser).

Nach oben

Konfiguration des Scripts

Die Datei "config.php" stellt die Konfigurationsdatei für das Script dar. Zum Ändern der Einstellungen öffnen Sie die Datei am besten in einem Texteditor (z.B.: Wordpad unter Windows).

Die folgende Variable $database enthält die Zugangsdaten zu Ihrer MySQL-Datenbank. Diese Zugangsdaten erhalten Sie beim Einrichten einer Datenbank oder auf Nachfrage bei Ihrem Webspace-Provider. Die $database-Variablen haben folgende Bedeutungen:

$database['host']     Name des Datenbank-Servers, z.B.: localhost, db98.puretec.de oder db23.kundenserver.de.

$database['name']     Name der Datenbank.

$database['user']     Benutzername für die Datenbank.

$database['pass']     Passwort für die Datenbank.

$database['prefix']     Um die Tabellen von eventuell bereits bestehenden Tabellen unterscheiden zu können, haben Sie die Möglichkeit, den Tabellen für das Gästebuch eine spezielle Vorsilbe zu geben.

                             

Folgende Variablen können ebenfalls editiert werden:

$language     Hier können Sie die Sprache festlegen. Eingetragen werden muss hier das Kürzel, dass auch im Namen der Sprachdatei im Verzeichnis "languages" verwendet wurde ("de" bei languages.de.inc.php und "en" bei languages.en.inc.php).

$results_per_page     Diese Variable enthält die Anzahl der Gästebuch-Einträge, die pro Seite angezeigt werden sollen. Für den Fall, dass mehr Einträge existieren, werden automatisch Links zur Navigation zwischen den einzelnen Gästebuchseiten eingeblendet. Wenn Sie die Variable leer lassen oder auf 0 setzen, werden alle Ergebnisse auf einer Seite angezeigt.

$direct_page_links     Bei einer hohen Anzahl von Einträgen kann die Liste der Links zu den einzelnen Gästebuch-Seiten recht lang werden und das Layout der Seite sprengen. Sie können deshalb festlegen, wie viele der Links angezeigt werden sollen. Wenn Sie also zum Beispiel 20 Gästebuchseiten haben, erhalten Sie folgende Liste der Direkt-Links zu den einzelnen Seiten:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    Das können beispielsweise auf 9 beschränken. Alle Zahlen nach der 9 werden durch drei Punkte (können Sie im HTML-Template ändern) ersetzt:

    1 2 3 4 5 6 7 8 9 ...

    Die Anzeige der Direkt-Links wird sich erst ab Seite 6 ändern:

    ... 2 3 4 5 6 7 8 9 10 ...

    Tipp: Sie können dieses Verhalten relativ einfach testen, wenn Sie einige Test-Einträge vornehmen und Zahl der Einträge pro Seite auf 1 beschränken.

$show_error_messages     Bei Auslieferung des Scripts ist diese Variable standardmäßig auf 'yes' gesetzt. Das hat zur Folge, dass Sie bei der Konfiguration des Scripts Fehlermeldungen und Hinweise zur Einrichtung des Scripts erhalten. Sobald jedoch das System funktioniert, können Sie die Ausgabe der Meldungen abschalten. So verwehren Sie allzu neugierigen Besuchern den Einblick in das System.

$path['templates']     Diese Variable enthält den Pfad zum Verzeichnis mit den HTML-Templates.

$file[]     Alle Variablen dieser Form enthalten Dateinamen von Templates. Diese Templates sind näher im Kapitel "HTML-Templates" erklärt.

$add_text     Sie können weitere Werte, Text, Variablen oder andere Inhalte an dieser Stelle festlegen. Diese Inhalte können dann mit Hilfe von entsprechenden Markierungen in geschweiften Klammern in die Templates übertragen werden.

    Wenn Sie eigene Werte in der Variable $add_text hinzufügen, folgen Sie bitte dem Muster, das durch die beiden Beispieleinträge deutlich gemacht wurde.


 $add_text = array(

                     'txt_additional' => 'Additional',
                     'txt_more'       => 'More'

                   );

Der erste Teil eines Eintrags (z.B.: 'txt_additional') stellt den Namen der Platzhalter im Template dar. Wenn Sie den Wert von 'txt_additional' im Template anzeigen möchten, tragen Sie dort den Namen umschlossen von geschweiften Klammern ein - {txt_additional}. Der Name darf keine Leer- oder Sonderzeichen enthalten. Erlaubt ist nur der Unterstrich (_).

Nach oben

Dateien auf den Webserver kopieren - Upload

Erstellen Sie auf dem Server folgende Verzeichnisse (bei den meisten FTP-Programmen ist es auch möglich, alle Dateien und Verzeichnisse zu markieren und zusammen auf den Server zu laden):

 /guestbook/
 /guestbook/inc/
 /guestbook/languages/
 /guestbook/templates/

Kopieren Sie alle Dateien in ihre entsprechenden Verzeichnisse auf den Server. Alle Bilddateien (.gif, .jpg, .png) müssen im Binär-Modus (Binary) auf den Server übertragen werden. Alle restlichen Dateien müssen im ASCII-Modus (Text-Modus) hochgeladen werden.

Nach oben

Installation

Vor dem Hochladen der Dateien müssen Sie die Zugangsdaten zu Ihrer MySQL-Datenbank in der Datei "config.php" angeben. Diese Zugangsdaten erhalten Sie beim Einrichten einer Datenbank oder auf Nachfrage bei Ihrem Webspace-Provider.

Dabei haben die $database-Variablen folgende Bedeutungen:

$database['host']     Name des Datenbank-Servers, z.B.: localhost, db98.puretec.de oder db23.kundenserver.de.

$database['name']     Name der Datenbank.

$database['user']     Benutzername für die Datenbank.

$database['pass']     Passwort für die Datenbank.

$database['prefix']     Um die Tabellen von eventuell bereits bestehenden Tabellen unterscheiden zu können, haben Sie die Möglichkeit, den Tabellen für das Gästebuch eine spezielle Vorsilbe zu geben.

                             

Wenn Sie alle Daten eingetragen und die aktualisierten Dateien auf den Server kopiert haben, können Sie die Datenbank-Tabellen installieren. Loggen Sie sich dafür in den Admin-Bereich ein (/admin/index.php) und gehen Sie in den Bereich "Datenbank". Am Fuß der Seite finden Sie eine Liste mit den notwendigen Datenbanktabellen und den aktuellen Status. Klicken Sie auf "Tabelle installieren", um die entsprechende Tabelle einzurichten.

Wenn Sie alle Daten eingetragen und die aktualisierten Dateien auf den Server kopiert haben, können Sie die Datenbank-Tabellen installieren. Sie erhalten beim ersten Aufruf des Gästebuch automatisch die Installationsseite. Klicken Sie auf den grünen Submit-Button. Nach erfolgreicher Installation wird das (noch leere) Gästebuch angezeigt.

Nach oben

Konfiguration der Formularfelder

Die Formularfelder werden in der Datei "form_config.php" in der folgenden Form konfiguriert.


 $new_form_fields[] = array(
                             'name'       => 'name',
                             'label'      => 'Name',
                             'type'       => 'text',
                             'required'   => 'yes',
                             'value'      => ''
                            );

Jedes Formularfeld wird durch ein solches Element ($new_form_fields[]) definiert und enthält bestimmte Unterelemente:

name     Hier können Sie den Namen des Formularfeldes festlegen. Dieser Name wird intern durch das Script verwendet. Bitte vermeiden Sie Leerzeichen und Sonderzeichen.

label     Hier können Sie die Bezeichnung des Formularfelds eintragen, die auch der Benutzer zu sehen bekommt. Diese Bezeichnung können Sie später im Formular-Template neben dem Formularfeld platzieren.

type     Mit "type" bestimmen Sie den Typ des Feldes. Zur Verfügung stehen:

textarea     Mehrzeiliges Textfeld.

   

text     Einzeiliges Textfeld.

   

password     Passwort-Feld - alle eingegebenen Werte werden als Sternchen (***)
angezeigt.

   

radio     Radio-Button.   

checkbox     Checkbox.   

select     Auswahlmenü.   

required     Wenn Sie diese Option auf "yes" setzen, deklarieren Sie das Feld als Pflichtfeld. Der Gästebucheintrag wird erst gespeichert, wenn der Benutzer alle Pflichtfelder ausgefüllt hat. Sie können diese Option leer oder ganz weg lassen.

value     Mit dieser Option können Sie einen Wert für das Formularfeld vorgeben. Dieser Wert erscheint dann automatisch beim Aufruf des Formulars als Wert des Formularfeldes. Sie können diese Option aber auch ohne Weiteres leer oder weg lassen.

    Bei Auswahlmenüs und Radio-Buttons können Sie die einzelnen Auswahlmöglichkeiten durch Komma getrennt eintragen. Beispiel Auswahlmenü:

    'value' => 'Rot, Grün, Gelb, Blau'

    wird zu:   

selected     Bei Auswahlmenüs und Radio-Buttons können Sie einen der in "value" angegebenen Werte vor-selektieren. Wenn Sie beim obigen Beispiel zum Beispiel den Wert Gelb vor-selektieren möchten, muss die Option wie folgt lauten: 'selected' => 'Gelb'.

Weitere Optionen

Zusätzlich zu den vom Script vorgegebenen Optionen können Sie jedem Formularfeld-Element weitere Optionen hinzufügen. Diese werden dann automatisch in das Formularfeld eingefügt. Mögliche Optionen wären zum Beispiel: maxlength, size, cols, rows, selected, checked. Aber auch CSS-Inhalte können Sie angeben: class, style.

Beispiel:


 $new_form_fields[] = array(
                             'name'       => 'comment',
                             'label'      => 'Kommentar',
                             'type'       => 'textarea',
                             'required'   => 'yes',
                             'value'      => '',
                             'cols'       => '20',
                             'rows'       => '10',
                             'style'      => 'padding:5px;'
                          );

Hier wurde ein mehrzeiliges Textfeld ('type' => 'textarea') mit dem internen Namen "comment" ('name' => 'comment') definiert. In der HTML-Seite erscheint hingegen die Bezeichnung "Kommentar" ('label' => 'Kommentar'). Außerdem ist dieses Feld ein Pflichtfeld ('required' => 'yes') - Der Benutzer muss das Feld ausfüllen, um einen Eintrag im Gästebuch zu schreiben. Es ist kein Wert (Inhalt) für das Feld voreingestellt ('value' => ''). Das Textfeld wurde mit einer Breite von 20 Spalten ('cols' => '20') und einer Höhe von 10 Zeilen ('rows' => '10') definiert. Darüber hinaus erhält es noch einen Randabstand von 5 Pixel per CSS-Definition ('style' => 'padding:5px;').

Beispiel-Formular

Zur Veranschaulichung der Konfiguration der verschiedenen Formularfelder wurden in der Datei "form_config_example.php" alle möglichen Formularfeldtypen definiert. Sie können das Beispiel-Formular mit der Datei "sign_example.php" aufrufen. Das zugehörige HTML-Template ist "form_detail_example.tpl.html".

Eintrag der Formulare im HTML-Template

Wie die Formularfelder im HTML-Template eingetragen werden, können Sie anhand des Template "form_detail.tpl.html" nachvollziehen.

Durch die Formularfeld-Definition erhalten Sie automatisch zwei Platzhalter: {label:...} und {field:...}. Die Punkte sind jeweils durch den Namen des Formularfeldes zu ersetzen, z.B.: {label:name} und {field:name} oder {label:comment} und {field:comment}.

Der Platzhalter {label:...} enthält die Bezeichnung des Formularfeldes, die der Benutzer sehen soll. Der Platzhalter {field:...} enthält den HTML-Code des Formularfeldes selbst, z.B.: <input type="text" name="name" value=" " size="30" style="width:350px;" />

Die Namen der Formularfelder tauchen in Form von Platzhaltern ({name} oder {comment}) auch im Template "entry_detail.tpl.html" auf. Innerhalb des LOOP-Blocks <LOOP NAME="guestbook_entries"> werden sie durch die Werte aus der Datenbank ersetzt.

Nach oben

Anpassung der HTML-Templates

Mit Hilfe von HTML und CSS können Sie die Templates, die sich im Verzeichnis "/templates/.../" befinden, komplett Ihren Wünschen anpassen. Die bereits bestehenden Unterverzeichnisse "default" und "simple" können als Vorschläge betrachtet werden, wie Sie Ihr Gästebuch gestalten können.

Sollten Sie für die Anpassung WYSIWYG-Editoren wie Adobe GoLive, Macromedia Dreamweaver, MS Frontpage oder NetObjects Fusion verwenden, achten Sie bitte darauf, dass die Software keine eigenmächtigen Veränderungen vornimmt. Die Funktionsweise des Scripts könnte dadurch beeinträchtigt werden.

In den Templates befinden sich Markierungen/Platzhalter in geschweiften Klammern, wie zum Beispiel {txt_next_page}. Die werden beim Aufruf des Scripts durch die entsprechenden Wörter ersetzt. Diese Wörter finden Sie in der Datei "languages/language.de.inc.php". Natürlich können Sie diese Wörter auch ändern oder an eine andere Position innerhalb des Templates verschieben. Es spricht auch nichts dagegen, wenn Sie die Markierungen durch richtige Wörter ersetzen. Ebenso können Sie die Sprachdatei nach dem vorgegebenen Muster erweitern.

Neben den Platzhaltern für die Wörter existieren die so genannten Loops. Ähnlich wie HTML-Tags gehört immer ein Paar zusammen und darf auch nicht getrennt werden (<LOOP ...>...</LOOP>). Sie haben aber die Möglichkeit, die Position des gesamten Blocks zu verändern sowie den HTML-Code innerhalb des Blocks anzupassen.

Des weiteren gibt es IF-Blöcke. Diese dienen dazu, bei bestimmten Bedingungen Teile des HTML-Codes ein- oder auszublenden. Die IF-Blöcke sind genauso wie die Loop-Blöcke zu handhaben.

Die einzelnen HTML-Templates

main_layout.tpl.html

Diese Datei kann Layout-Elemente enthalten, die für alle Seiten gelten. Dabei übernehmen alle Seiten des Gästebuchs automatisch das Layout, dass Sie in dieser Datei festlegen. Sie können diese Datei auch leer lassen und das Layout in den anderen Templates festlegen.

Die Datei enthält den speziellen Platzhalter {main_content}. Dieser Platzhalter wird vom Script automatisch durch den Inhalt der einzelnen Detail-Templates ersetzt. Der Platzhalter darf unter keinen Umständen gelöscht werden. Auch nicht, wenn Sie die Datei ansonsten leer lassen möchten.

Das Haupt-Template enthält außerdem den Platzhalter {txt_title} im Title-Tag (). Dieser Platzhalter wird in der Datei "config.php" in der Variable $add_text definiert. Dort wiederum wir die Variable $script_title verwendet. Diese Variable können Sie in den einzelnen PHP-Dateien (index.php, delete.php, edit.php, login.php, sign.php) definiert werden. Tragen Sie in diesen Dateien einfach den von Ihnen gewünschten Seitentitel ein.

entries.tpl.html

Diese Datei ist für das Layout der Seite für die Gästebucheinträge zuständig. Sie enthält folgende Elemente:

<IF NAME="logged_in">

Wenn der Administrator eingeloggt ist, wird hier der Link zum Ausloggen angezeigt.

{txt_entries} {txt_page} {currentpage} {txt_page_of} {allpages}

Diese Platzhalter enthalten Information über die Gesamtzahl der Gästebuchseiten und die Nummer der aktuellen Seite.

<IF NAME="previous_result_page">

Dieser IF-Block enthält Links zur Navigation. {txt_first_page} linkt zur ersten Seite der Ergebnisse. {txt_previous_page} linkt zur vorhergehenden Ergebnisseite.


 <IF NAME="page_link_start">
 <IF NAME="page_link_end">

Wenn Sie die Anzahl der Direktlinks auf die einzelnen Gästebuchseiten auf eine bestimmte Zahl beschränkt haben, wird am Anfang und/oder Ende der Linkliste der Inhalt dieser IF-Blöcke eingeblendet.

<LOOP NAME="page_direct">

Innerhalb dieses Loop-Blocks werden die Direkt-Links zu den einzelnen Gästebuchseiten angezeigt. Sie erhalten eine Link-Liste bestehend aus Zahlen (1 2 3 4 5 6 7 8 9 ...).

<IF NAME="next_result_page">

Dieser IF-Block enthält Links zur Navigation. {txt_last_page} linkt zur letzten Seite der Ergebnisse. {txt_next_page} linkt zur nächsten Ergebnisseite.

{entry_detail}

Das eigentliche Layout der Gästebucheinträge ist in der Datei "entry_detail.tpl.html" enthalten.

entry_detail.tpl.html

<LOOP NAME="guestbook_entries">

Innerhalb dieses Loop-Blocks tauchen die Namen der Formularfelder in Form von Platzhaltern (z.B.: {name} oder {comment}) auf. Sie werden durch die Werte aus der Datenbank ersetzt.

Das Script erstellt automatisch Variablen, die den modifizierten Inhalt der Gästebucheinträge enthalten. Folgende Änderungen werden vorgenommen:

Anstelle des einfachen Platzhalters müssen Sie einen erweiterten Platzhalter nach folgendem Muster verwenden:

{modified:...}

Aus dem Feld {comment} würde das Feld {modified:comment} werden.

sign.tpl.html
edit.tpl.html

<LOOP NAME="message">

Dieser Loop-Block dient der Anzeige von Hinweisen und Fehlermeldungen, z.B. wenn ein Pflichtfeld nicht ausgefüllt wurde.

{form_detail}

Dieser Platzhalter wird vom Script automatisch durch das Formular-Template "form_detail.tpl.html" ersetzt.

form_detail.tpl.html

Durch die Formularfeld-Definition erhalten Sie automatisch zwei Platzhalter: {label:...} und {field:...}. Die Punkte sind jeweils durch den Namen des Formularfeldes zu ersetzen, z.B.: {label:name} und {field:name} oder {label:comment} und {field:comment}.

Der Platzhalter {label:...} enthält die Bezeichnung des Formularfelds, die der Benutzer sehen soll. Der Platzhalter {field:...} enhält den HTML-Code des Formularfeldes selbst, z.B.: <input type="text" name="name" value=" " size="30" style="width:350px;" />.

{emoticon_matrix}

An dieser Stelle wird die Liste der verfügbaren Emoticons (Smilies) angezeigt. Wenn Sie keine Emoticons anbieten möchten, löschen Sie einfach diesen Platzhalter.

Nach oben

Hilfe und Support

Antworten auf Ihre Fragen und Lösungen für Probleme mit dem Script finden Sie in unserem Support-Forum.

Nach oben

Informationen zur Script-Lizenz

Das Formmail-Script können Sie kostenlos nutzen. Wenn Sie das Script ohne Hinweis und Link auf STADTAUS.com betreiben möchten, können Sie die Vollversion online erwerben.

Kontakt: http://www.stadtaus.com/

Weitere Scripts auf STADTAUS.com:

Besuchen Sie unser neuestes Projekt MetaCollection. Die Seite ist ein Verzeichnis deutscher und internationaler Script-Archive.

http://www.metacollection.com/

Nach oben