PHPOpenChat Handbuch

Michael Oertel

Dieses Dokument unterliegt der PHPOpenChat-Lizens.

10.01.2002

Abstract

Dieses Dokument wendet sich an Webmaster und Designer, die die Einrichtung, Anpassung bzw. Konfiguration einer Community auf Basis des PHPOpenChat durchführen. Es beschreibt detailiert den Installationsvorgang und die Möglichkeiten der Anpassung von Templates an vorhandene Corporate Designs.


Table of Contents

Vorwort
1. Überblick
Copyrights and Trademarks
2. Installation
Bestandteile
Installation des PHP-Moduls
Installation der PHPOpenChat-Distribution
Installation der MySQL-Datenbank
Windows
Linux
Einrichten der Datenbank
Anpassen der Konfigurationsdateien
Apache Webserver
PHP
3. PHPOpenChat-Konfiguration
Die Konfigurationsdatei
Das Administrationsinterface
Benutzerverwaltung
Konfiguration der Channel
Benachrichtigungen
A. References

Vorwort

Der PHPOpenChat ermöglicht synchrone Echtzeitkommunikation zwischen zwei oder mehreren Benutzern. Diese Diskussionen können sich auf mehere Benutzergruppen in verschieneden Räumen (Channels) aufteilen. Dabei hat jeder der Benutzer defaultmäßig einen eigenen privaten Raum, in denen er mit von ihm selbst eingeladenen Benutzern geschlossen diskutieren.

Chapter 1. Überblick

Table of Contents

Copyrights and Trademarks

Für die Echtzeitkommunikation über den PHPOpenChat ist es nicht nötig, eine ständige Verbindung zwischen Client und Server offen zu halten. Neue Daten werden per dynamischen Polling (abhängig von den Benutzerzahlen) an die Clients übermittelt.

Das System benötigt neben dem http-Port 80 keine weiteren Ports, um von außen angesprochen zu werden.

Copyrights and Trademarks

Copyright © 2001 PHPOpenChat-Team, http://www.ortelius.de/phpopenchat/, http://sourceforge.net/projects/phpopenchat/

Chapter 2. Installation

In diesem Kapitel werden die einzelnen Schritte beschrieben, die zur Installation des PHPOpenChat durchgeführt werden müssen.

Bestandteile

Für den Betrieb des PHPOpenChat werden folgende Softwarekomponenten benötigt:

  • Webserver

  • PHP-Modul für den gewählten Webserver

  • MySQL-Datenbanksystem

  • PHPOpenChat-Distribution

Installation des PHP-Moduls

Der PHPOpenChat ist in PHP geschrieben. Bitte installiere daher ein PHP-Modul für den gewählten Webserver.

Installation der PHPOpenChat-Distribution

Entpacke die PHPOpenChat-Distribution, die in Form einer ZIP- oder einem gezipten TAR-Datei vorliegt, in ein beliebiges Verzeichnis (im folgenden als "[PHPOpenChat_Dir]" bezeichnet), so dass die folgende Verzeichnisstruktur relativ zu diesem Verzeichnis entsteht:

Table 2.1. PHPOpenChat-Verzeichnisstruktur

./ Basisverzeichnis des PHPOpenChat; enthält die PHPOpenChat-Lizens, das Datenbankschema, eine weitere Installationsanleitung, die ChangeLog-Datei (chronologische Liste aller Codeänderungen mit Beschreibung)
dist/ Dieses Verzeichnis enthält alle Progamme oder Dateien, die wir zusammen mit dem PHPOpenChat verteilen.
doc/ Basisverzeichnis für Dokumentationen
doc/de/ Basisverzeichnis für die deutschsprachige Dokumentation
doc/en/ Basisverzeichnis für die englischsprachige Dokumentation
html/ Basisverzeichnis des Chats
html/admin/ Basisverzeichnis der webbasierten Chatadministration
html/chatmail/ Basisverzeichnis des Moduls "Chat-Mail"
html/forum/ Basisverzeichnis des Moduls "Black Board"
html/images/ Verzeichnis der zum PHPOpenChat gehörenden Grafiken
html/images/chatter Verzeichnis für die hochgeladenen chattereigenen Grafiken. Auf dieses Verzeichnis benötigt der Webserver Schreiberechte!
html/images/smileys/ Verzeichnis für die Standardgrafiken der Community
includes/ Basisverzeichnis für
  • die Templates des Presentation Layer

  • die Konfigurationsdateien

Installation der MySQL-Datenbank

Im folgenden wird die Installation von MySQL beschrieben. Dabei wird ein zum Betrieb notwendiger Datenbankzugang erzeugt und die initialen Daten importiert.

Windows

  1. Entpacke die MySQL-Distribution in ein beliebiges Verzeichnis

  2. Starte setup.exe, um die MySQL-Datenbank zu installieren und wähle dabei z.B. das Programmverzeichnis c:\mysql

  3. Starte MySQL aus einer Command-Shell heraus durch folgende Befehle:

    cd c:\mysql\bin
    mysqld-shareware --standalone
                    

  4. Öffne eine zweite Command-Shell und gib ein:

    cd c:\mysql\bin
    mysql -u root mysql
                    

  5. Gib folgende SQL-Kommandos ein, um den Zugang zur Datenbank anzulegen.

    INSERT INTO user VALUES('localhost','phpopenchat',PASSWORD('<your password>'),
                            'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
    FLUSH PRIVILEGES;
                    

  6. Verlasse die MySQL-Kommandoebene durch die Eingabe von exit

  7. Erzeuge mit dem folgenden Befehl eine Datenbank für den PHPOpenChat!

    mysqladmin -u root create phpopenchat
                    

Linux

  1. Bei der Installation der MySQL-Distribution gehen wir von der Installation mittels des RedHat-Package Managers (rpm) aus. Das Installationsverzeichnis ist distributionabhängig.

  2. Starte rpm -i mysql-xx.xx.xx.rpm und rpm -i mysql-clients-xx.xx.xx.rpm, um die MySQL-Datenbank zu installieren.

  3. Starte MySQL aus einer Shell heraus durch folgende Befehle:

    cd /etc/init.d
    ./mysqld start
                    

  4. Gib anschließend in dieser Shell folgendes ein:

    mysql -u root mysql
                    

  5. Gib folgende SQL-Kommandos ein, um den Zugang zur Datenbank anzulegen.

    INSERT INTO user VALUES('localhost','phpopenchat',PASSWORD('<your password>'),
                            'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
    FLUSH PRIVILEGES;
                    

  6. Verlasse die MySQL-Kommandoebene durch die Eingabe von exit

  7. Erzeuge mit dem folgenden Befehl eine Datenbank für den PHPOpenChat!

    mysqladmin -u root create phpopenchat
                    

Einrichten der Datenbank

Für die Community muss im Datenbankmanagementsystem (MySQL) eine Datenbank eingerichtet werden (siehe Installation der MySQL-Datenbank). Nachdem die Datenbankeingerichtet ist, müssen noch die PHPOpenChat-spezifischen Daten sowie das Datenbankschema importiert werden. Dies wird sowohl unter Windows als auch unter Linux wie folgt erreicht:

Windows

  1. Öffne eine Command-Shell und gib ein:

    cd c:\mysql\bin
    mysql -u phpopenchat -p[Dein passwort] phpopenchat < [PHPOpenChat_Dir]/db.schema
                

Linux

  1. Öffne eine Command-Shell und gib ein:

    mysql -u phpopenchat -p[Dein passwort] phpopenchat < [PHPOpenChat_Dir]/db.schema
                  

Anpassen der Konfigurationsdateien

Bevor Du mit dem Ausprobieren der Community anfangen kannst, sind noch die folgenden Konfigurationsdateien anzupassen.

Apache Webserver

apache/conf/httpd.conf

  • Aktiviere die PHP-Unterstützung:

    für Windows:

        ScriptAlias /php/ "C:/php/"
        AddType application/x-httpd-php .php
        Action application/x-httpd-php "/php/php.exe"
                

    für Linux:

        AddType application/x-httpd-php .php .php3
                

Optional kann sollte auch noch der DirectoryIndex um index.php erweitert werden.

<IfModule mod_dir.c>
          DirectoryIndex index.html index.php
</IfModule>
        

PHP

Damit der PHPOpenChat die außerhalb der DocumentRoot liegenden Include-Dateien finden kann, muss in der Datei php.ini der include_path wie folgt erweitert werden:

php.ini

  • Windows

    Bitte führe folgende Kommandos in einer Command-Shell aus. Wir gehen von einem Windows-Systemverzeichnis c:\windows aus. Unter anderen Windowsversionen kann das Windows-Systemverzeichnis andere Namen, wie bspw. c:\winnt für die Windowsversion "NT" besitzen.

                  
    cd c:\windows
    edit php.ini
                  
    Innerhalb der Datei ist die Variable include_path wie folgt zu ergänzen:
                    include_path = ".;c:\php\includes;[PHPOpenChat_Dir]\includes"
                  

  • Linux

    Bitte führe folgende Kommandos in einer Command-Shell aus. Der Ort, an dem die PHP-Konfigurationsdatei zu finden ist, differiert zwischen den einzelnen Distributionen. Meist ist sie aber im Verzeichnis /etc zu finden. Bei einer Standardinstallation findet man die Datei unter /usr/local/lib. Im folgenden Beispiel gehen wir von einer Standardinstallation aus.

                  
    cd /usr/local/lib
    vi php.ini
                  
    Innerhalb der Datei ist die Variable include_path wie folgt zu ergänzen:
    include_path = ".:[PHPOpenChat_Dir]/includes"
                  

Chapter 3. PHPOpenChat-Konfiguration

Die Konfigurationsdatei

Die Datei defaults_inc.php ist die zentrale Konfigurationsdatei des PHPOpenChat. In ihr werden alle Änderungen zu jedem der verfügbaren Module vorgenommen.

Sprachauswahl : Alle verfügbaren Sprachen sind in Form von PHP-Includestatements aufgelistet. Zum Aktivieren einer bestimmten Sprache müssen lediglich die führenden Kommentarzeichen ('//') entfernt werden. Defaultmäßig ist die Sprache English aktiviert.

$CHATNAME : Name der Community

$MAX_NICK_LENGTH : Anzahl der maximal für einen Nicknamen benutzbaren Zeichen. Sollte die Zahl verändert werden, muß auch das Datenbankschema beachtet werden.

$FILE_EXTENSION : benutzte Dateiendung. Wird dieser Wert geändert, müssen alle Dateien so umbenannt werden, das sie diese Dateiändung tragen.

$INSTALL_DIR : Installationsverzeichnis des PHPOpenChat relativ zur Webserver "DocumentRoot". Soll die Community in der DocumentRoot laufen, bleibt diese Variable leer. Für ein angenommenes Installationsverzeichnis des PHPOpenChat unter "phpopenchat/" muß die Variable wie folgt gesetzt werden: $INSTALL_DIR = "/phpopenchat";

$CHATSERVERNAME : Der DNS-Name oder die IP des Communityservers wird hier definiert werden.

$BACKGROUNDIMAGE : Definition der Hintergrundgrafik des Eingabefensters.

$DATABASENAME : Name der Datenbank innerhalb des Datenbankmanagementsystems (MySQL) auf der die Communityinstallation basiert.

$DATABASEHOST : DNS-Name oder IP des Servers, auf dem MySQL installiert ist.

$DATABASEUSER : Benutzername mittels dem die Community auf die Datenbank zugreift.

$DATABASEPASSWD : Das Passwort des spezifizierten MySQL-Benutzers im Klartext.

$CONNECT_TRIES : Anzahl der MySQL-Verbindungsversuche.

$ENTRYCHANNELNAME : Name des ersten Channels im Chat. Wird hier der Wert geändert, muß in der Datenbank ein gleichnamiger Channel angelegt werden. Das Admin-Tool bietet die Möglichkeit auf leichte Art und Weise dies zu tun.

$MAX_LINE_LENGTH : Maximallänge einer im Chat geschriebenen Zeile. Alle darüberhinaus eingegebenen Zeilen werden verworfen.

$ROW_BUFFER_SIZE : Größe des für jeden Channel zur Verfügung stehenden Ringpuffers. Diese Größe kann beliebig verändert werden, wobei zusätzlich bei der Datenbanktabelle "Channels" Felder hinzugefügt werden müssen. Format dieser Felder: "Zeile_" (Prefix) plus eine laufende Nummer. Da der Defaultwert für die Größe des Ringpuffers "40" ist, existieren die Felder "Zeile_0" bis "Zeile_39" schon in der Datenbank.

$MODERATOR_RATE : Zeitintervall in Sekunden in dem automatische Nachrichten im Chat ausgegeben werden.

$LAST_TIME_ONLINE : Zeitspanne die ein Community-Mitglied maximal abwesend sein darf, bevor seine Registration gelöscht wird.

$ADDITIONAL_LETTERS : Buchstaben oder Sonderzeichen, die zusätzlich zur Benutzung in einem Nicknamen erlaubt sind.

$ENABLE_SESSION : Schaltet die Verwendung von Sessions und damit die sicherste Arbeitsweise der Community ein (true) oder aus (false).

$USERIMG_MAX_BYTES : Beschränkt die maximale Größe eines Benutzer-Icons auf die angegebene Größe in Bytes ein. Dieser Wert spielt beim Upload des Benutzer-Icons innerhalb des Profils eine Rolle.

$USERIMG_IMGSIZE_X : Beschränkt die Größe des Benutzer-Icons auf die angegebene Anzahl Pixel in der X-Achse.

$USERIMG_IMGSIZE_Y : Beschränkt die Größe des Benutzer-Icons auf die angegebene Anzahl Pixel in der Y-Achse.

$SESSION_NAME : Name der Session.

$VERSION_NUMBER : PHPOpenChat-Versionsnummer

$ADMIN_DIR : Pfad ab der DocumentRoot des Webservers hin zum Administrationsinterface.

$NO_NO_WORDS : Im Chat nicht erlaubte Wörter. Falls sie engegeben werden, werden sie durch ein "Ooops" ersetzt.

$NICK_NOT_ALLOWED : Reservierte und nicht erlaubte Nicknamen.

$UNACCEPTABLE_CONTENT : Wenn über URLs inerhalb des Chat-Moduls auf Webseiten verwiesen wird, dürfen diese keines der hier angegebenen Wörter enthalten. Ansonsten wird nicht zur angegebenen URL weitergeleitet.

$pass_phrase : Dieser Satz oder Wortgruppe wird zur Ermittlung der Prüfsummen verwand. Es ist sehr wichtig, den Inhalt dieser Variablen sofort nach der Installation zu ändern!

$FORUMDATE : Zeitspanne in Tagen, aus der Forenbeiträge angezeigt werden.

$KICK_COUNT : Störer können auch durch eine Gruppe von Benutzern, die diesen Benutzer ignorieren, rausgeworfen werden. Ist die Gruppe groß genug, wird ein Störer automatisch ausgeschlossen. Mit dieser Variablen bestimmt man die Größe dieser Gruppe.

$SPERRPASSWORT : Wurde ein Benutzer rausgeworfen, bleibt seine Registration erhalten, lediglich das Passwort wird geändert, so dass ein nochmaliges Einloggen unmöglich ist. Hier wird dieses Passwort ermittelt.

$MAIL_TEXT_COLOR : Farbe des Mailtextes im Chatmail-Modul.

$MODERATOR_COLOR : Nicknamenfarbe innerhalb moderierter Channels des Moderators.

$COMODERATOR_COLOR : Nicknamenfarbe innerhalb moderierter Channels des Co-Moderators.

$VIP_COLOR : Nicknamenfarbe innerhalb moderierter Channels des VIPs bzw. des Spezialgastes.

$PATEN_COLOR : Nicknamenfarbe eines Paten/Operators der Community.

$CHAT_TEXT_SIZE : Größe in Pixeln des Textes innerhalb des Chat-Moduls.

$PRIVAT_ICON_PATH : Pfad zu den Privat-Icons der Benutzer relativ zur Webserver-DocumentRoot.

$ICON_PATH : Pfad zu den Chat-Icons relativ zur Webserver-DocumentRoot.

$BG_IMAGE : Hintergrundgrafik im Eingabe-Frame des Chat-Moduls.

$LOGO : Logo im Eingabe-Frame des Chat-Moduls.

$TEAM_MAIL_ADDR : Mailadresse des Community-Teams. Diese wird an einigen Stellen zur Hilfe der Benutzer ausgegeben.

$LOOK_IN_COLOR : Voreingestellte Textfarbe für jeden neuen Benutzers, der noch keine eigene Farbe auswählen konnte.

$DEFAULT_TEXT_COLOR : Hintergrundfarbe der Adminoberfläche.

$DEFAULT_BG_COLOR : Zeit an der eine Zeile im Chatmodul geschrieben wurde anzeigen.

$SHOW_TIME : IRC-Kommandos im Chatmodul erlauben.

$IRC_COMMANDS : Das Wechseln in verschiedene Channels/Räume erlauben.

$SELECT_CHANNEL : Direktes Ansprechen von Benutzern erlauben.

$SELECT_USER : Wahl verschiedener Scrollgeschwindigkeiten erlauben.

$CHANGE_SCROLLING : Filtermöglichkeit von Statusmeldungen im Chatmodul erlauben.

$SET_STATUSFILTER : Filtermöglichkeit nicht eigener Kommunikation im Chatmodul erlauben.

$SET_TWADDLEFILTER : Hilfeknopf anzeigen.

$BUTTON_HELP : Zugang zum Modul Blackboard erlauben.

$BUTTON_FORUM : Zugang zum Modul Chat-Mail erlauben.

$BUTTON_MESSAGES : Ignorieren von Benutzern und Einladen von Benutzern in private Räume erlauben.

$BUTTON_IGNORE : Wechsel der eigenen Textfarbe erlauben.

$CHANGE_COLOR_LINK : Flüßstern zu anderen Benutzern erlauben.

$WISPERING : Erstellen von Freundeslisten erlauben.

$BUTTON_NOTIFY : Zugang zum Dialog "Wer ist online" erlauben.

Das Administrationsinterface

Das Administrationsinterface ist, soweit nicht anders in der Konfigurationsdatei angeben, unter Webserver-DocumentRoot/$INSTALL_DIR/admin (siehe auch the section called “Die Konfigurationsdatei”) zu finden.

Benutzerverwaltung

Für die Benutzerverwaltung stehen drei Menüpunkte zur Verfügung:

  • Administration der Paten/Operatoren
  • Administration der Moderatoren und VIPs
  • Administration der Co-Moderatoren

Administration der Paten/Operatoren

Paten oder auch Operatoren genannte Benutzer, haben besondere Rechte innerhalb der Community. Sie sind ab der Version 2.2.2 in der Lage, über ein spezielles Interface Benutzer zu sperren.

Mit einem Klick auf (1) gelangt man zur Verwaltung der Paten/Operatoren. Unter (2) ist es dann möglich zu der Liste der Paten bzw. Operatoren beliebig viele Benutzer hinzuzufügen. Dabei ist auf Existenz der zu addierenden Benutzer zu achten.

Administration der Moderatoren und VIPs

Moderatoren geben einzelne Textzeilen von Benutzern frei, so dass sie durch alle Benutzer lesbar sind. VIPs können ausschließlich Zeilen lesen, die durch einen Moderator freigegeben wurden. Zeilen, die ein Moderator oder ein VIP selbst schreibt, werden sofort angezeigt.

Definiert werden die Moderatoren und VIPs immer paarweise.

Note

Moderatoren- und VIP-Rechte sind nur innerhalb von moderierten Channels gültig.

Unter (1) gelangt man zur Administration der Moderatoren und VIPs. Ein Eintrag besteht dabei aus drei Feldern:

  • (2) dem (Spitz-)namen des VIPs
  • (3) dem (Spitz-)namen des Moderators
  • (4) dem Namen eines als moderiert konfigurierten Channels.

Note

Die (Spitz-)namen des VIPs oder des Moderators müssen in der Benutzerdatenbank registriert sein.

Administration der Co-Moderatoren

Co-Moderatoren können innerhalb als moderiert gekennzeichneter Channels alle Zeilen lesen.

>Mit einem Klick auf (1) gelangt man zur Verwaltung der Co-Moderatoren. Unter (2) ist es dann möglich zu der Liste der Co-Moderatoren beliebig viele Benutzer hinzuzufügen. Dabei ist auf Existenz der zu addierenden Benutzer zu achten.

Konfiguration der Channel

Unter dem Menüpunkt "Administration der Channels" (1) ist das Konfigurationsinterface zu erreichen.

Unter (2) kann eine beliebig große Anzahl an Channels der Community hinzugefügt werden. Das Neuanlegen bzw. das Editieren existierender Channels (3) unterscheidet sich bzgl. der Vorgehensweise nicht. Deswegen wird hier ledliglich auf das Editieren der Channels eingegangen.

  • Name des Channels: Name über den der Channel im Chatinterface angewählt werden kann.

    Note

    Wird der defaultmäßig eingestellte Name "Channel_1" geändert, muß zusätzlich die Konfigurationsvariable $ENTRYCHANNELNAME (siehe auch the section called “Die Konfigurationsdatei”) geändert werden!
  • Passwort: Passwort des Channels. Wird dieses Feld leer gelassen, kann der Channel durch jedes Community-Mitglied betreten werden. Wird hier ein Passwort eingetragen, kann im Channel erstgelesen werden, wenn das Passwort zur Authentifizierung eingegeben wurde.
  • Thema: Ein hier eingetragener Satz, erscheint im Chat als Thema des Channels direkt über der Texteingabezeile.
  • Maximale Teilnehmerzahl: Limitierung der maximalen Teilnehmerzahl für einen Channel. Der Channel ist unbeschränkt bei der Eingabe von 0.
  • Hintergrundfarbe: Hintergrundfarbe des Textausgabeframes.
  • Farbe des Spitznamens: Farbe des Spitznamens im Ausgabeframe.
  • Pfad zur Grafikdatei des Channellogos: Ausgabe innerhalb der Templates mit '<img src="<?=$changrafik>">' eingebunden werden.
  • Exit URL: URL auf die beim Verlassen des Chats gesprungen wird.
  • Channel moderieren: Wird hier 'ja' gewählt, werden in diesem Channel ausschließlich von Moderatoren freigegebene Zeilen angezeigt. Benutzer, die Zeilen abschicken, werden darüber informiert, dass ihre Zeile zum Moderator gesandt wurde.
  • der channel ist offen/geschlossen ab: "Öffnungszeit-Intervall" des Channels.

Benachrichtigungen

Über automatisch im Chat erscheinende Nachrichten (1) oder über eine Chatmail an alle registrierte Benutzer (2), kann der Chatsdministrator Neuerungen, Änderungen oder Ankündigungen an die Community leicht kommunizieren.

Appendix A. References

PHPOpenChat HomePage

http://www.ortelius.de/phpopenchat/, http://sourceforge.net/projects/phpopenchat/

Websites, wo der PHPOpenChat erfolgreich eingesetzt wird.

http://www.ortelius.de/phpopenchat/links.html