| KONFIGURATION Die Gästebuch-Klasse XVW_Guestbookenthä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 (Die$gb_gv_configuration) 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 KlasseXVW_Guestbookbei Aufruf ein Array mit Parametern, die diedefault-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 eigenenMYSQL-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 | booleander angibt, ob das Gästebuch überhaupt
  aktiv ist. Beifalsewird nur eine Fehlernachricht ausgegeben |  
| edit | true|false | booleander angibt, ob Eintragungen im Gästebuch
  vorgenommen werden können. Beifalsekö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 loaclahostals 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 localhosterreichbar 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_guestbookin der
  Datenbankprod, welche über den MySQL-Server der über die
  Adresselocalhost:3306erreichbar ist. Der Benutzer loggt sich
  mit den AnmeldedatenSCOTTundTIGERan 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 truewird die Nachricht auf der Seite ausgegeben und es wird
  keine Mail versandt. Beifalsewerden 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_guestbookundheadlineist, dass inheadlineFormatierungsanweisungen
  enthalten ein können. Inmail_static_guestbooksollte 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 |  
| testundtestsollten natürlich NICHT als
  Anmeldeinformationen verwendet werden.
 Der Login als Admin kann über 2 Wege erfolgen:
 
  im Link sind die Parameter admName=adminnameundadmPW=passwortanzugebenim Gästebuch ist im Feld "Mailadresse" die Eingabe
    adminname@@passwortanzugeben 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,pageundactionmit 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 headlineausgegeben 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 dieimage-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 dieimage-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
    ( trueoder 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_aftersind, 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_contentsgeladen. 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 #XVWvorangestellt, 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 INPUTsind |  
  | 
  #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;
  }
   | FOOTERbenö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_MESSAGEundGB_MAIL_INFO_MESSAGEund stellen die Mailinhalte als Template dar. Das Gästebuch kann bei
  entsprechender Konfiguration Mails an 
  Die Konstanten (und damit der zu versendende Mailinhalt) können an die eigenen
  Erfordernisse angepasst werden.den Administrator senden um zu informieren, dass eine neuer Eintrag erfolgt
  istden vorangehenden Ersteller senden, um diesen auf den neuen Eintrag hinzuweisen 
| 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: 
 
    zugegriffen werden.##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 
 Neben den statischen Werten
 mail_static_serverundmail_static_linkkann auch
      verwendet werden.MAIL_DYN_SERVERMAIL_DYN_LINK 
 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: 
 
    zugegriffen werden.##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 
 Neben den statischen Werten
 mail_static_serverundmail_static_linkkann auch
      verwendet werden.MAIL_DYN_SERVERMAIL_DYN_LINK 
 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"
  );
   |  
 
 |