Main Links Oben mindestbreite Main Rechts Oben
mindestbreite


KONFIGURATION

Die Gästebuch-Klasse XVW_Guestbook enthält zu Beginn eine Default-Konfiguration aller möglichen Parameter:

  class XVW_Guestbook {

    /***
     # Default-Konfiguration
     #
     # Mit "!" gekennzeichnete Werte müssen geprüft und gegebenenfalls mittels
     # << p_config >> beim Konstruktoraufruf überschrieben werden
    ***/

    var $config = array
    ( 'on'                      => true
    , 'edit'                    => true
    , 'mysql_host'              => null
    , 'mysql_port'              => null
    , 'mysql_user'              => null
    , 'mysql_pw'                => null
    , 'mysql_dbname'            => null
    , 'mysql_init'              => null
    , 'tablename'               => null
    , 'mail_sender'             => null
    , 'mail_to'                 => null
    , 'mail_cc'                 => null
    , 'mail_static_server'      => null
    , 'mail_static_link'        => "/guestbook40.php"
    , 'mail_info_admin'         => false
    , 'mail_info_user'          => false
    , 'mail_debug'              => false
    , 'mail_static_guestbook'   => "Gästebuch"
    , 'mail_static_webmaster'   => null
    , 'adm_name'                => "test"
    , 'adm_pw'                  => "test"
    , 'images'                  => "/images/guestbook"
    , 'external_params'         => null
    , 'headline'                => "Gästebuch"
    , 'headline_add'            => "Herzlich willkommen"
    , 'allowed_tags'            => "<b><i><u><a><blockquote>"
    , 'quote_start'             => "<blockquote><b>Zitat:</b><hr><font color=blue><b>"
    , 'quote_end'               => "</b></font><hr></blockquote>"
    , 'perpage'                 => 10
    , 'navigation_range'        => 2
    , 'addpost_top_on'          => true
    , 'addpost_top_image'       => "/images/guestbook/guestbook-arrow-down.bmp"
    , 'addpost_top_linktext'    => "Eintrag hinzufügen"
    , 'addpost_bottom_on'       => true
    , 'addpost_bottom_image'    => "/images/guestbook/guestbook-arrow-up.bmp"
    , 'addpost_bottom_linktext' => "Eintrag hinzufügen"
    , 'max_post_length'         => 2048
    , 'is_html'                 => true
    , 'phpself'                 => null
    , 'ip_delete_after'         => 30
    , 'css'                     => '/guestbook40.css'
    );
    
    ... hier kommt der restlichen Code
    
  }  // -- end of class -- //
  
All diese Parameter werden innerhalb des Gästebuchs verwendet.



KONFIGURATION ANPASSEN ($gb_gv_configuration)

Die default-Konfiguration muss an die tatsächlichen Gegebenheiten angepasst damit das Gästebuch ordnungsgemäß funktioniert. So sind z.B. die MYSQL-Parameter dem Gästebuch natürlich nicht bekannt. Um die Konfiguration anzupassen ist der Gästebuch Klasse XVW_Guestbook bei Aufruf ein Array mit Parametern, die die default-Konfiguration überschreibt, mitzugeben.

Dazu ist ausserhalb der Gästebuch-Klasse ein Array zu definieren in dem die Parameter, die überschreiben werden sollen bzw. müsssen, angegeben sind. In den Beispielen ist das der Parameter $gb_gv_configuration. Der folgende Beispiel Array enthält die wichtigsten Parameter, die man für eine sinnvolle Konfiguration angeben sollte:

  /***
   # Parameter, die die default-Konfiguration des Gästebuchs
   # überschreiben.
   # HINWEIS: die Variable ist ausserhalb der Gästebuch-Klasse zu definieren
  ***/
  $gb_gv_configuration = array
  ( 'mysql_host'             => "localhost"
  , 'mysql_port'             => 3306
  , 'mysql_user'             => "SCOTT"
  , 'mysql_pw'               => "TIGER"
  , 'mysql_dbname'           => "database123"
  , 'mysql_init'             => "SET NAMES UTF-8"
  , 'tablename'              => "table_guestbook"
  , 'mail_address'           => "ut.void@gmx.de"
  , 'mail_cc'                => ""
  , 'mail_sender'            => "guestbook@domain.tld"
  , 'mail_static_server'     => "http://www.domain.tld"
  , 'mail_static_link'       => "/guestbook40.php"
  , 'mail_static_guestbook'  => "Mein Gästebuch"
  , 'mail_static_webmaster'  => "webmaster@domain.tld"
  , 'adm_name'               => "test"
  , 'adm_pw'                 => "test"
  , 'headline'               => "Mein Gästebuch"
  , 'headline_add'           => "Herzlich willkommen in meinem Gästebuch"
                               ." <img src=\"#images#/smile.gif\" border=\"0\">"
  , 'is_html'                => true
  );

  /***
   # Der Parameter-Array muss beim Anlegen des Gästebuchs mitübergeben
   # werden.
  ***/
  $gb_guestbook = new XVW_Guestbook( $gb_gv_configuration );
  ...

  
Das ist natürlich nur ein Beispiel. Man muss die eigenen MYSQL -Daten und auch die eigene Domain und Mailadressen eintragen. Auch soll euer Gästebucjh sicher nicht "VoiD's Gästebuch" heissen?

KONFIGURATION PARAMETER IM DETAIL

Konfigurations-Parameter des Gästebuchs
Parameter Beispiel Erläuterung
on true|false boolean der angibt, ob das Gästebuch überhaupt aktiv ist. Bei false wird nur eine Fehlernachricht ausgegeben
edit true|false boolean der angibt, ob Eintragungen im Gästebuch vorgenommen werden können. Bei false können die Eintragungen nur betrachtet werden, aber keine neuen Eintragungen erstellt werden (read-only).
mysql_host String die Adresse des Datenbank-Hosts. Meistens reicht hier loaclahost als Angabe aus.
mysql_port integer der Port auf des Datenbank Servers. Default ist 3306.
mysql_user String der Datenbank Benutzer
mysql_pw String das Passwort des Datenbank Benutzers (s.o.)
mysql_dbname String der Name der Datenbank in dem sich die Gästebuch Tabelle befindet
mysql_init String|Array ein oder mehrere Befehle die bei der Verbindungsherstellung zur Datenbank ausgeführt werden sollen
tablename String|vw_guestbook der Name der Gästebuch Datenbank-Tabelle
Bei einer MySQL-Datenbank die über localhost erreichbar ist sehen die Eintragungen folgendermassen aus:
  $config = array
  (
  ..
  , "mysql_host"   => "localhost"
  , "mysql_port"   => 3306
  , "mysql_user"   => "SCOTT"
  , "mysql_pw"     => "TIGER"
  , "mysql_dbname" => "prod"
  , "mysql_init"   => "SET NAMES UTF-8"
  , "tablename"    => "vw_guestbook"
  ...
  );
  
Im Beispiel oben ist die Gästebuch-Tabelle vw_guestbook in der Datenbank prod, welche über den MySQL-Server der über die Adresse localhost:3306 erreichbar ist. Der Benutzer loggt sich mit den Anmeldedaten SCOTT und TIGER an der Datenbank an.
mail_sender String EMail-Adresse unter der die Benachrichtigungen des Gästebuchs versandt werden ("Absender").
mail_to String E-Mailadresse für interne Benachrichtigung des Gästebuchs. Der Administrator/Webmaster erhält an diese Adresse eine Benachrichtigung über einen neuen Eintrag im Gästebuch.

Hinweis: nur bei mail_info_admin=true
mail_cc String Zusätzliche E-Mailadressee für interne Mitteilung. Die Adresse dient - wie mail_to - dazu, dass der Administrator/Webmaster über neue Einträge im Gästebuch informiert wird, indem er hier eine Alternative E-Mailadresse angegeben kann.
mail_static_server String Statischer Text, der als Platzhalter für die Serveradresse des Gästebuchs verwendet werden kann. Der Text wird nur in den Mailnachrichten verwendet und wird in den internen Gästebuch-Funktionalitäten nicht benutzt.
mail_static_link String|/guestbook40.php Statischer Text, der als Platzhalter für die URL des Gästebuchs verwendet werden kann. Der Text wird nur in den Mailnachrichten verwendet und wird in den internen Gästebuch-Funktionalitäten nicht benutzt.
mail_info_admin true|false Flag mit dem angegeben werden kann, ob der Administrator über eine neue Eintragung im Gästebuch per EMail benachrichtigt werden soll.
mail_info_user true|false Flag mit dem angegeben werden kann, ob der Benutzer, der den vorangegangenen Eintrag erstellt hat, über den neuen Eintrag benachrichtigt werden soll.
mail_debug true|false Möglichkeit zum Debug der Mailnachrichten, die versendet werden. Bei true wird die Nachricht auf der Seite ausgegeben und es wird keine Mail versandt. Bei false werden die Mails versandt, aber es erfolgt keine Ausgabe auf der Seite. Der Parameter dient der Kontrolle der Mails.

Hinweis: Gästebuch Einträge werden trotzem im Gästebuch gespeichert, es ist daher ggfs. ein manuelle Bereinigung der Einträge vorzunehmen.
mail_static_guestbook Guestbook Statischer Text für den Namen des Gästebuchs, der in den Informations-Mails ausgegeben wird.

Hinweis: Unterschied zwischen mail_static_guestbook und headline ist, dass in headline Formatierungsanweisungen enthalten ein können. In mail_static_guestbook sollte der reine Text enthalten sein.
mail_static_webmaster webmaster@domain.tld Statischer Text für den Webmasters, der in den Informations-Mails ausgegeben wird.
adm_name test Name des Administrators
adm_pw test ..und zugehöriges Passwort
test und test sollten natürlich NICHT als Anmeldeinformationen verwendet werden.

Der Login als Admin kann über 2 Wege erfolgen:
  • im Link sind die Parameter admName=adminname und admPW=passwort anzugeben
  • im Gästebuch ist im Feld "Mailadresse" die Eingabe adminname@@passwort anzugeben und "Vorschau" zu wählen
images /guestbook/images Pfad in den Images Ordner
external_params array(...) Externe Parameter die in die Links des Gästebuchs miteingebunden werden
Soll z.B. in jeden Link die Paramter app, page und action mit den jeweiligen Werten miteingebunden werden ist folgender Array anzugeben:
  array( "app"    => "WORLD"
       , "page"   => "GUESTBOOK"
       , "action" => "DO_SOMETHING"
       );
  
headline Gästebuch Titel des Gästebuchs
headline_add Willkommen im Gästebuch von ... Zusätzliche Zeile die unterhalb von headline ausgegeben wird
allowed_tags <b><i><u><a><blockquote> Erlaubte HTML-Tags
quote_start <blockquote><b>Zitat:</b><hr><font color=blue><b> HTML-Code der vor einem Zitat eingebunden wird.
quote_end </b></font><hr></blockquote> HTML-Code der nac einem Zitat eingebunden wird
perpage integer|10 Anzahl der Einträge je Seite
navigation_range integer|2 Anzahl der Seiten vor/nach in der Navigationsleiste
addpost_top_on true|false Link zum Eintragen neuer Posts oberhalb des Gästebuchs darstellen
addpost_top_image #images#/guestbook-arrow-down.bmp Pfad zum Bild bei "Neuer Eintrag" oberhalb des Gästebuchs. Der Platzhalter #image# wird durch die image-Eintragung zur Laufzeit ersetzt
addpost_top_linktext String|Eintrag hinzufügen Bezeichnung des Links für neue Posts (oberhalb)
addpost_bottom_on true|false Link zum Eintragen neuer Posts unterhalb des Gästebuchs darstellen
addpost_bottom_image #images#/guestbook-arrow-up.bmp Pfad zum Bild bei "Neuer Eintrag" oberhalb des Gästebuchs. Der Platzhalter #image# wird durch die image-Eintragung zur Laufzeit ersetzt
addpost_bottom_linktext String|Eintrag hinzufügen Bezeichnung des Links für neue Posts (unterhalb)
max_post_length integer|2048 Maximale Länge des Posts, der eingetragen werden kann
is_html true|false Flag das angibt, ob das Gästebuch eine eigenständige HTML-Seite (true oder in einer anderen HTML-Seite eingebunden ist (false)
phpself $_SERVER['PHP_SELF'] Adresse der eigenen Seite
ip_delete_after integer|30 Vorhaltezeit der IP-Adresse in Tagen. Bei Einträgen die älter als ip_delete_after sind, wird die IP-Adresse aus der Gästebuch Tabelle entfernt.

Meine private Einschätzung: Die IP-Adresse wird als schützenswerte Informaton gesehen. Eine dauerhafte Speicherung sollte daher nicht erfolgen. Aus Gründen der eventuellen Nachverfolgung erscheit es sinnvoll die IP-Adresse zumindest eine bestimmte Anzahl an Tagen vorzuhalten. Über den Parameter kann diese Vorhaltezeit geregelt werden.
css String|/guestbook40.css Name der CSS-Datei in der die Style-Informationen für das Gästebuch enthalten sind.

Hinweis: die CSS-Datei sollte im selben Ordner wie die Gästebuch PHP-Datei abgelegt werden, dann reicht der Angabe des Dateinamens aus. Die Datei wird mittels file_get_contents geladen. Bei abweichendem Ablageort ist der Parameter entsprechend anzupassen.


STYLE (guestbook40.css)

Mit den style-Angaben kann das Gästebuch optisch angepasst werden. Der Style wird durch eine externe CSS Datei definiert. Es können beliebige Anpassungen gemacht werden. Für weitere Anpassungen muss eventuell der Quellcode angepasst werden.

CSS Style Angaben für die HTML-Elemente
CSS Erläuterung
Allgemein:
  #XVW  {
    ...
  }
  
DIV in dem das Gästebuch dargestellt wird. Bei allen folgenden Style-Angaben ist #XVW vorangestellt, so dass sich die Definition nur auf Elemente innerhalb des DIV-Bereichs beziehen.
  #XVW a {
    font-size: 16px;
    text-decoration: none;
  }
  
alle Links formatieren
  #XVW TABLE {
    font-family: Arial;
    font-size: 16px;
    color: black;
    background-color: darkgray;
    width: 80%;
  }
  
alle Tabellen formatieren
  #XVW TR.head {
    color: white;
    background-color: darkblue;
  }
  
Reguläre HEAD-Zeile
  #XVW TR.subhead {
    color: black;
    background-color: #8E8EAE;
  }
  
Unter HEAD-Zeile
  #XVW TR.base {
    background-color: #EDEDED;
  }
  
Basis-Zeile #1
  #XVW TR.base-alt {
    background-color: #DEDEDE;
  }
  
Basis-Zeile #2
  #XVW TD {
    padding: 4px;
    text-align: left;
    vertical-align: top;
  }
  
Formatierung alle Tabellen-Zellen
  #XVW HR {
    color: darkgray;
  }
  
xxxx
  #XVW TR.err-head {
    color: white;
    background-color: darkred;
  }
  
HEAD-Zeile der Fehler-Tabelle
  #XVW TR.err-base {
    background-color: white;
  }
  
Text-Zeile der Fehler-Tabelle
  #XVW INPUT , #XVW TEXTAREA , #XVW SELECT {
    color: darkblue;
    font-family: "Courier New";
    font-size: 0.9em;
  }
  
Formatierung der Eingabefelder
  #XVW INPUT[type="submit"] {
    font-family: Arial;
    font-size: 12px;
    color: black;
  }
  
Buttons um-definieren. Ist notwendig, da diese auch vom Typ INPUT sind
  #XVW .headline ,
  #XVW .headline-sub {
    font-family: Arial;
    font-size: 18px;
    color: black;
    width: 100%;
    text-align: center;
  }
  
Formatierung der beiden Überschrifts-Zeilen oberhalb des Gästebuchs
  #XVW .headline-sub {
    font-size: 16px;
  }
  
Spezialformatierung für die 2. Überschrifts-Zeile
  #XVW .xvw-navigation {
    background-color: transparent;
  }
  
Navigatons Tabelle ohne Hintergrundfarbe
  #XVW .xvw-navigation TD {
    font-size: 18px;
    padding: 0px;
  }
  
das allgemeine Padding (s. #XVW TD) bei den Navigationselementen aufheben
  #XVW .xvw-navigation A {
    font-size: 12px;
    text-decoration: none;
  }
  
die allgemeine Linkformatierung ((s. #XVW A) bei den Navigationselementen aufheben
  #XVW TABLE.footer {
    background-color: transparent;
    font-size: 14px;
    font-family: Arial;
    width: 40%;
    white-space: nowrap;
  }
  
FOOTER benötigt eine spezielle Formatierung
  #XVW .footer TD {
    padding: 0px;
  }
  
s. FOOTER
  #XVW .footer A {
    font-size: 12px;
    font-family: Arial;
  }
  
s. FOOTER


KONSTANTE

Ausserhalb der Gästebuch-Klasse werden 2 Konstante definiert. Diese sind GB_MAIL_MESSAGE und GB_MAIL_INFO_MESSAGE und stellen die Mailinhalte als Template dar. Das Gästebuch kann bei entsprechender Konfiguration Mails an

  • den Administrator senden um zu informieren, dass eine neuer Eintrag erfolgt ist
  • den vorangehenden Ersteller senden, um diesen auf den neuen Eintrag hinzuweisen
Die Konstanten (und damit der zu versendende Mailinhalt) können an die eigenen Erfordernisse angepasst werden.

Verwendete Konstante
Konstante Erläuterung
GB_MAIL_MESSAGE In der Konstanten wird der Mailtext, der an den vorangehenden Ersteller versandt wird definiert. In dem Template kann alle Konfigurationsparameter mit der Syntax ##<PARAMETER>## verwendet werden. Zusätzlich kann auf den aktuellen Eintrag (Post) mit:
  • ##POST_ID## - Name des Erstellers
  • ##POST_NAME## - Name des Erstellers
  • ##POST_DATE## - Datum der Erstellung
  • ##POST_MAIL## - E-Mailadresse des Erstellers
  • ##POST_HOMEPAGE## - Homepage des Erstellers
  • ##POST_IP## - IP-Adresse des Erstellers
  • ##POST_MESSAGE## - Nachricht des Erstellers
zugegriffen werden.

Neben den statischen Werten mail_static_server und mail_static_link kann auch
  • MAIL_DYN_SERVER
  • MAIL_DYN_LINK
verwendet werden.

Hinweis: der Mailversand erfolgt nur mail_info_user=true
Beispiel:
   define("GB_MAIL_MESSAGE",
     "Hallo,\n"
  	."auf Ihren Beitrag in ##MAIL_STATIC_GUESTBOOK## ist eine Antwort eingegangen.\n"
  	."\n"
  	."Sie erhalten diese eMail nur, weil Sie der unmittelbare Vorposter\n"
  	."sind. Sie erhalten aufgrund dieses Posts keine weiteren eMails.\n"
  	."\n"
  	."##POST_NAME## antwortete:\n"
  	."==================================================\n"
  	."##POST_MESSAGE##\n"
  	."==================================================\n"
  	."\n"
  	."Sie erreichen das Gästebuch mit diesem Link:\n"
  	."##MAIL_DYN_SERVER####MAIL_DYN_LINK##\n"
  	."\n"
  	."Mit freundlichem Gruß\n"
  	."##MAIL_STATIC_WEBMASTER##\n"
  );
  
GB_MAIL_INFO_MESSAGE In der Konstanten wird der Mailtext, der an den Gästebuch-Administrator zwecks Information über einen neuen Eintrag versandt wird, definiert. In dem Template können alle Konfigurationsparameter mit der Syntax ##<PARAMETER>## verwendet werden. Zusätzlich kann auf den aktuellen Eintrag (Post) mit:
  • ##POST_ID## - Name des Erstellers
  • ##POST_NAME## - Name des Erstellers
  • ##POST_DATE## - Datum der Erstellung
  • ##POST_MAIL## - E-Mailadresse des Erstellers
  • ##POST_HOMEPAGE## - Homepage des Erstellers
  • ##POST_IP## - IP-Adresse des Erstellers
  • ##POST_MESSAGE## - Nachricht des Erstellers
zugegriffen werden.

Neben den statischen Werten mail_static_server und mail_static_link kann auch
  • MAIL_DYN_SERVER
  • MAIL_DYN_LINK
verwendet werden.

Hinweis: der Mailversand erfolgt nur mail_admin_user=true
Beispiel:
   define("GB_MAIL_INFO_MESSAGE",
     "Neuer Eintrag in Ihrem Gästebuch:\n"
  	."\n"
  	."==================================================\n"
  	."\n"
  	."Name: ##POST_NAME##\n"
  	."Zeit: ##POST_DATE##\n"
  	."eMail: ##POST_MAIL##\n"
  	."Homepage: ##POST_HOMEPAGE##\n"
  	."IP: ##POST_IP##\n"
  	."--------------------------------------------------\n"
  	."##POST_MESSAGE##\n"
  	."==================================================\n"
  	."\n"
  	."\n"
  	."Sie erreichen Ihr Gästebuch unter:\n"
  	."##MAIL_DYN_SERVER####MAIL_DYN_LINK##\n"
  	."\n"
  	."\n"
  	."------\n"
  	."Dies ist eine automatisch erzeugte Mail, die bei jedem neuen Eintrag\n"
  	."in ihr Gästebuch versandt wurde. Möchten Sie keine weiteren\n"
  	."Benachrichtigungsmails erhalten, ändern die bitte den Konfigurations-\n"
  	."wert [mail_info_admin]\n"
  );
  




mindestbreite
Main Links Unten mindestbreite Main Rechts Unten