PHP-Shoutbox
============

1. Anforderungen
----------------

Die Shoutbox läuft unter PHP5 (getestet wurde mit v5.2.x, v5.3.1 und v5.4.7).
Folgende PHP-Einstellungen MÜSSEN gegeben sein:

  magic_quotes      Off
  short_open_tag    On

Diese Einstellungen SOLLTEN gesetzt sein:

  register_globals  Off

Die MySQL-Extension für PHP muss installiert sein. Eine MySQL-Datenbank zum
Speichern der Einträge muss zur Verfügung stehen.

Der Web-Server muss so eingestellt sein, dass er "index.php" ausführt, wenn
nur das Verzeichnis aufgerufen wird.


2. Installation
---------------

Nach dem Entpacken kopieren Sie alle Dateien und Verzeichnisse an die gewün-
schte Stelle im Verzeichnis des Web-Servers (z.B. /srv/www/htdocs/shoutbox/).

WICHTIG: Das Verzeichnis "cfg" darf NICHT über den Web-Server (also "von
außen") lesbar sein! Beim Apache-Web-Server wird dies durch die mitinstal-
lierte Datei ".htaccess" erreicht. Bei anderen Web-Servern konsultieren Sie
bitte das Handbuch bzw. bitten den System-Administrator um Hilfe.

Sichern Sie zuerst das cfg-Verzeichnis gegen unbefugten Zugriff ab! Überprü-
fen Sie, ob die Absicherung erfolgreich war, indem Sie versuchen, eine Datei
aus dem cfg-Verzeichnis (z.B. "HISTORY") im Web-Browser anzeigen zu lassen.
WICHTIG: Es genügt NICHT, wenn nur der Zugriff auf das Verzeichnis selbst mit
einer Fehlermeldung quittiert wird! Prüfen Sie, was passiert, wenn Sie im
Browser hinter dem Verzeichnisnamen einen Dateinamen angeben (also z.B.
"http://www.meinedomain.de/shoutbox/cfg/HISTORY").

Stellen Sie sicher, dass alle .conf-Dateien im cfg-Verzeichnis beschreibbar
sind. Unter Unix/Linux erreichen Sie das, indem Sie "chmod a+w *.conf" im
cfg-Verzeichnis ausführen. Wenn Sie keinen Shell-Zugang haben, verwenden Sie
Ihr FTP-Programm, um die Rechte der Konfigurations-Dateien entsprechend zu
setzen.

Führen Sie jetzt das Installations-Script aus. Sie erreichen es z.B. unter
"http://www.meinedomain.de/shoutbox/admin/"). Füllen Sie die Felder aus und
klicken Sie auf "Speichern". Wenn Sie alles korrekt eingegeben haben, er-
halten Sie die Meldung, dass die Installation abgeschlossen wurde und Sie
mit der Administration der Shoutbox fortfahren können.

Die Shoutbox ist jetzt einsatzbereit. Rufen Sie sie z.B. über
"http://www.meinedomain.de/shoutbox/" auf. Zum Administrieren hängen Sie an
die Adresse der Shoutbox "/admin/" an, also z.B.
"http://www.meinedomain.de/shoutbox/admin/".


3. Update
---------

3.1. Update von Version 2.xx

Gehen Sie zum Update von einer früheren Version 2.xx auf die aktuelle Version
wie folgt vor:

- WICHTIG: Wenn Sie von einer früheren Version auf Version 2.07 aktualisieren,
  müssen Sie der Datenbanktabelle der Shoutbox (z.B. via phpMyAdmin oder
  MySqlDumper) eine neue Spalte hinzufügen: ip TEXT NULL
  "ip" ist der Name der neuen Spalte und "TEXT" der Typ. "NULL" gibt an, dass
  diese Spalte auch NULL-Werte aufnehmen kann.
- Kopieren Sie alle Dateien außer den .conf-Dateien der neuen Version in das
  Shoutbox-Verzeichnis.
- Wenn Sie eigene Style-Sheets erstellt haben, sollten Sie in diesen die
  Definition für "p.ack" sowie ggf. "a.m" nachpflegen. Diese Definitionen
  sind neu in Version 2.01.
- Wenn Sie eigene Style-Sheets für den Admin-Bereich erstellt haben, sollten
  Sie in diesen folgende Definitionen nachpflegen: "h3", "p.navm", "p.navmhi",
  "table.navm", "td.navm1" und "td.navm2". Diese sind neu in der Version 2.03.
  Darüber hinaus wurden für die Version 2.03 folgende Style-Definitionen für
  das neue Layout des ACPs angepasst: "h2" und "a.navm".
- Fertig.


3.2. Update von Version 1.xx

Gehen Sie zum Update von v1.xx auf Version 2 der Shoutbox wie folgt vor:

- WICHTIG: Wenn Sie von einer früheren Version auf Version 2.07 aktualisieren,
  müssen Sie der Datenbanktabelle der Shoutbox (z.B. via phpMyAdmin oder
  MySqlDumper) eine neue Spalte hinzufügen: ip TEXT NULL
  "ip" ist der Name der neuen Spalte und "TEXT" der Typ. "NULL" gibt an, dass
  diese Spalte auch NULL-Werte aufnehmen kann.
- Löschen Sie die Datei "admin.php" im Basis-Verzeichnis der Shoutbox.
- Löschen Sie die Datei "_adm.css" im "styles"-Verzeichnis.
- Löschen Sie die Datei ".htusers" aus dem cfg-Verzeichnis.
- Löschen Sie die Datei "create_table.sql" aus dem cfg-Verzeichnis.
- Stellen Sie sicher, dass in der Datei "cfg/smileys.conf" das Smiley-
  Verzeichnis als absoluter Pfad eingetragen ist, also z.B.
  "/shoutbox/smileys/" (der Schrägstrich am Ende ist wichtig!).
- Tragen Sie in der Datei adm.conf "21232f297a57a5a743894a0e4a801fc3" als
  Administrator-Passwort ein (="admin").
- Ändern Sie in adm.conf den Namen "max_entries" in "adm_max_entries".
- Ändern Sie in adm.conf den Namen "css_file" in "adm_css_file".
- Löschen Sie in adm.conf den Parameter "css_dir".
- Tragen Sie in adm.conf beim Parameter "adm_css_file" den Wert
  "standard.css" ein.
- Kopieren Sie nun alle Dateien außer den .conf-Dateien der neuen Version
  in das Shoutbox-Verzeichnis.
- Stellen Sie sicher, dass die .conf-Dateien beschreibbar sind (Maske 666).
- Fertig.


4. Einbinden in die Homepage
----------------------------

Verwenden Sie den Code-Generator im Administrations-Bereich, um sich ein
HTML-Code-Snippet zum Einbinden der Shoutbox erzeugen zu lassen.


5. Konfiguration
----------------

Die Shoutbox ist in weiten Teilen konfigurierbar. Normalerweise erfolgt seit
Version 2 die komplette Konfiguration über den Administrations-Bereich.
Sollte bei der Installation mal etwas schief gehen, kann es auch notwendig
sein, die eine oder andere Konfigurationsdatei "von Hand" anzupassen. Aus
diesem Grund sind hier alle Einstellungen aus dem cfg-Verzeichnis detailliert
erklärt.

Allen Einstellungen in den .conf-Dateien ist gemeinsam, dass sie gültige PHP-
Zuweisungen sein müssen. Die $-Zeichen vor den Namen der Einstellungen, das
Gleichheitszeichen sowie ggf. die Anführungszeichen um die Werte sind also
zwingend erforderlich!


5.1. .htaccess

Diese Datei dient dazu, den Zugriff auf das Konfigurationsverzeichnis über
den Web-Server zu verhindern. Dies gilt für den Apache-Web-Server. Bei ande-
ren Web-Servern müssen ggf. andere Maßnahmen ergriffen werden.


5.2. adm.cfg

In dieser Datei erfolgen die Einstellungen für den Administrations-Bereich.

  $adm_nick        - Der Benutzername, der bei der Anmeldungen zum Admini-
                     strieren der Shoutbox benötigt wird. Darf nicht leer
                     sein!
  $adm_pw          - Das Passwort zum Anmelden im Administrationsbereich.
                     Wählen Sie nach Möglichkeit immer ein sicheres Passwort,
                     das aus Großbuchstaben, Kleinbuchstaben und Ziffern be-
                     steht. Haben Sie das Passwort vergessen, können Sie hier
                     "21232f297a57a5a743894a0e4a801fc3" eintragen, um das
                     Passwort auf "admin" zu setzen.
  $adm_max_entries - Die Anzahl der Shoutbox-Einträge, die pro Seite im Ad-
                     ministrationsbereich angezeigt werden.
  $adm_css_file    - Das Style-Sheet für den Administrationsbereich. Wenn Sie
                     sich mit CSS auskennen, können Sie eine Kopie des mitge-
                     lieferten Style-Sheets anfertigen und diese gemäß Ihren
                     Vorstellungen anpassen.

5.3. db.conf

Die Einstellungen für die Datenbank werden i.d.R. nur bei der Installation
angepasst. Trotzdem sind sie hier der Vollständigkeit halber nochmal im De-
tail aufgehführt.

  $db_host    - Der Name (die Adresse) des DB-Servers. Normalerweise ist das
                "localhost".
  $db_user    - Der Name des DB-Benutzers für den Zugriff auf die Datenbank.
  $db_pass    - Das Passwort des DB-Benutzers für den Zugriff auf die Daten-
                bank.
  $db_catalog - Der Name der Datenbank, in der die Tabelle für die Shoutbox
                angelegt wurde.
  $db_table   - Der Name der Tabelle, in der die Shoutbox ihre Daten spei-
                chert. Muss mit dem Tabellen-Namen, der in "create_table.sql"
                eingetragen wurde, überein stimmen.


5.4. sb.conf

Dies ist die Haupt-Konfigurations-Datei für das Aussehen der Shoutbox.

  $max_entries - Anzahl der Einträge, die in der Shoutbox angezeigt werden.
                 Gibt gleichzeitig an, wieviele Einträge auf einer Seite des
                 Archivs dargestellt werden.
  $css_file    - Das Style-Sheet für die Shoutbox (z.B. "standard.css").
                 Wenn Sie sich mit CSS auskennen, können Sie eines der mitge-
                 lieferten Style-Sheets kopieren und dann gemäß Ihren Vorstel-
                 lungen anpassen. Die entsprechende Konfigurationsseite im
                 Administrationsbereich findet das neue Style-Sheet automa-
                 tisch und bietet es zur Auswahl an.
  $max_nick    - Gibt an, wie lang ein Nick-Name maximal sein darf.
  $max_msg     - Gibt an, wieviel Zeichen maximal in das Nachrichtenfeld ein-
                 gegeben werden dürfen.
  $max_inick   - Breite des Eingabefelds für den Nick-Namen.
  $max_imsg    - Breite des Eingabefelds für die Nachricht.


5.5. smiley.conf

In dieser Datei werden die Smileys für die Shoutbox definiert.

  $smiley_dir - Das Verzeichnis, in dem die Smileys abgelegt sind. Normaler-
                weise ist das z.B. "/shoutbox/smileys/" und wird bei der In-
                stallation automatisch auf den korrekten Wert gesetzt.
  $smileys    - Enthält die Einträge aller Smileys, die in der Shoutbox ver-
                wendet werden können sollen. Jeder Eintrag besteht aus 2 An-
                gaben: Die Text-Folge im Einagbefeld, die in den zugehörigen
                Smiley umgewandetl werden soll und den Namen der Smiley-Datei
                im Smiley-Verzeichnis, zu dem diese Text-Folge gehört. Beach-
                ten Sie dabei bitte folgendes:
                 o Vor der ERSTEN Zeile steht KEIN Komma!
                 o Die ersten 10 Smileys in der Liste werden direkt in der
                   Shoutbox angezeigt. Platzieren Sie also Ihre Lieblings-
                   Smileys unter den "Top 10".
                 o Beim Umwandeln der Smiley-Codes in der eingegebenen Nach-
                   richt wird von oben nach unten gesucht. Wenn Sie also z.B.
                   die Smiley-Codes ":-)" und ":-))" für verschiedene Smileys
                   verwenden wollen, achten Sie darauf, dass ":-))" ZUERST in
                   dieser Liste steht, sonst wird er nie gefunden!


6. Kontakt
----------

Sie haben noch Fragen oder finden die Shoutbox so toll, dass sie unbedingt ein
Lob loswerden müssen? Dann erreichen Sie mich unter

  info@schulz-koengen.de

Die aktuelle Version dieser Shoutbox kann unter

  http://www.schulz-koengen.de/projects/shoutbox/

gefunden werden.


7. Versionshistorie
-------------------

v2.08 - 2017-08-31 wrs
- Der Code der Shoutbox wurde komplett auf UTF-8 umgestellt, da sich das der-
  zeit als Standard im Web-Bereich durchsetzt.
- Die Style-Sheets wurden ein wenig gestrafft, wodurch sie etwas schneller ge-
  laden werden.
- Bugfix: Wurde in das Feld "Name" ein Text mit Umlauten eingegeben, konnte es
  vorkommen, dass die gepostete Nachricht anschließend ohne Namen angezeigt
  wurde. Das ist nun behoben.

v2.07 - 2017-06-12 wrs
- Die Shoutbox speichert jetzt auch die IP-Adresse, von der aus ein Eintrag
  gesendet wurde. Die IP-Adresse wird im Admin-Bereich hinter dem Datum des
  jeweiligen Eintrags angezeigt, wenn man dort mit der Maus über einen Eintrag
  fährt und einen Moment wartet. Steht für einen Eintrag keine IP-Adress zur
  Verfügung, wird "<no ip>" angezeigt.

v2.06 - 2015-06-23 wrs
 - Die Datenbank-Zugriffe wurden von mysql-Funktionen auf mysqli-Funktionen
   umgestellt, da die Verwendung der mysql-Funktionen seit PHP 5.5.0 als
   veraltet angesehen und ggf. entsprechend gemeldet wird.

v2.05 - 2015-03-04 wrs
 - Im Adminbereich gibt es beim Verwalten der Nachrichten jetzt die Möglich-
   keit, alle Nachrichten mit einem Klick zu markieren bzw. die Markierungen
   aufzuheben.
 - Die JavScript-Funktionen für den Admin-Bereich wurden in eine eigene Datei
   ausgelagert, sodass die Funktionen jetzt vom Browser gecachet werden kön-
   nen, was die Ladezeit der einzelnen Seiten etwas verkürzt.
 - Bugfix: In bestimmten Situationen konnte es vorkommen, dass Nachrichten,
   die Umlaute enthalten, von der Shoutbox nicht akzeptiert wurden. Das ist
   jetzt behoben.

v2.04 - 2013-10-31 wrs
 - Der Code der Shoutbox wurde an einigen Stellen überarbeitet, damit beim
   Einsatz eines HTML-Validators keine Fehler mehr angezeigt werden. Auf
   die Funktion der Shoutbox hat das keine Auswirkungen.

v2.03 - 2011-12-15 wrs
 - Der Administrationsbereich (ACP - Admin-Control-Panel) wurde komplett
   überarbeitet, die Navigation innerhalb des ACPs deutlich verbessert.
 - Neues Styleshet "Citric".
 - Neues ACP-Stylesheet "Deep Blue".
 - Bugfix: Die Design-Preview im ACP war fehlerhaft. Dies ist nun behoben.
 - Bugfix: Auf der Startseite des Admin-Bereichs gab es einen kleinen Logik-
   fehler, der dazu führen konnte, dass ungültiger HTML-Code erzeugt wurde
   (keine Beeinträchtigung der Anzeige). Dies ist nun behoben.

v2.02 - 2011-05-17 wrs
 - Der Nick-Name wird jetzt nicht mehr in einem separaten Cookie gespeichert,
   sondern in den Session-Daten. Auf diese Weise können in verschiedenen
   Shoutboxen, die auf der selben Domain laufen, unterschiedliche Nicks
   gleichzeitig verwendet werden, weil diese jetzt an die Session der je-
   weiligen Shoutbox gekoppelt sind.

v2.01 - 2010-10-04 wrs
 - Der Schreiber einer Nachricht kann diese jetzt löschen, so lange die
   Session besteht, in der sie geschrieben wurde.
 - Bugfix: Beim Aufruf der Hilfe-, Archiv- oder Smiley-Seite aus der Style-
   Vorschau heraus (Admin-Bereich), wurde der css-Parameter nicht weitergege-
   ben. Dies ist nun behoben.
 - Bugfix: In den mitgelieferten Style-Sheets fehlte die Angabe der Standard-
   schriftfarbe (Style "color" für den "body"-Tag). Dies ist nun behoben.
 - Verbesserung: In den mitgelieferten Style-Sheets wurde die Style-Defini-
   tion für den "a"-Tag vereinfacht.
 - Verbesserung: Links in Message-Texten haben jetzt die Style-Klasse "m".
   Somit kann deren Farbe jetzt besser dem Message-Hintergrund angepasst wer-
   den.

v2.00 - 2010-05-08 wrs
 - Deutlich einfachere Installation durch ein eigenes Installations-Script
   (admin/install.php).
 - Der Administrations-Bereich wurde in ein eigenes Verzeichnis verlegt
   (admin/) und deutlich erweitert. Nahezu alle Einstellungen können jetzt
   komfortabel über die Web-Oberfläche vorgenommen werden.
 - Im Admin-Bereich findet sich jetzt auch ein Code-Generator, mit dem man
   sich ein HTML-Code-Snippet zum Einbinden der Shoutbox in eine Homepage
   erzeugen lassen kann.
 - Das Administrator-Passwort wird jetzt verschlüsselt gespeichert.
 - Die Shoutbox verwendet beim Einloggen in den Administrationsbereich jetzt
   einen für den jeweiligen Server eindeutigen Session-Namen. Auf diese Weise
   können auf einem Server nun mehrere Shoutboxen installiert werden, ohne
   dass der Administrator einer Shoutbox die anderen versehentlich mitadmini-
   strieren kann.
 - Neues Style-Sheet "rose".
 - Das Style-Sheet für den Administrationsbereich befindet sich jetzt in
   einem eigenen Verzeichnis (admin/styles/), so dass es nicht mehr zu Ver-
   wechslungen mit den normalen Style-Sheets der Shoutbox kommen kann.
 - Die Zugriffsbeschränkung auf das cfg-Verzeichnis wurde so geändert, dass
   die Datei ".htusers" nicht mehr benötigt wird.
 - Im Smiley-Fenster der Shoutbox fehlte bei der Anzeige der Smiley-Codes das
   Umwandeln HTML-relevanter Zeichen. Das konnte bei Smiley-Codes wie z.B.
   :-> zu unerwünschten Effekten führen und ist nun behoben.


v1.00 - 2010-04-09 wrs
 - Erstmals für die Öffentlichkeit freigegeben.

<eof>