Dieses Dokument ist eine Anleitung für die Installation/Update und die Konfigurierung des Programms.

Aktuelle Informationen finden Sie unter http://www.gtchat.de.

Überblick
Systemvoraussetzungen
Erstinstallation des Programms
Update von einer älteren Version
Weiterleitungsadresse einstellen
Farben, Schriftarten und -größen anpassen
Templates bearbeiten
JavaScript-Einstellungen


Überblick

Was ist GTChat?
Bei GTChat handelt es sich um einen schnellen und komfortablen Chat, der primär mit der Server-Push-Technik arbeitet. Der Ressourcenverbrauch des Chats ist sehr niedrig, was sich aber in keinster Weise auf die Leistung auswirkt. Für die Benutzer, die (meistens wegen einem schlecht konfigurierten Proxy-Server) Server-Push nicht verwenden können, wird ein alternatives Client-Pull-Modus bereitgestellt.

Was kostet GTChat?
GTChat ist Freeware, er darf auf nicht-kommerziellen Seiten kostenlos eingesetzt werden. Änderungen am Programmtext (ausgenommen JavaScript) sind jedoch nicht gestattet. Mehr dazu steht in license.txt.

Wie installiert man GTChat?
Wenn Sie diese Anleitung lesen, dann haben Sie wahrscheinlich bereits das Archiv mit den Programm-Dateien bereits dekomprimiert. Sie müssen:
  • Falls eine andere Sprache als Deutsch verwendet werden soll, die Dateien durch die des entsprechenden Language Packs ersetzen
  • Den Upload der Daten auf Ihren Server vornehmen
  • Das Konfigurationsprogramm install.pl ausführen
  • Die Weiterleitungsadresse in index.html einstellen
  • Die Templates login.html und register.html für Ihre Seite anpassen
  • Sich mit Benutzername und Paßwort admin einloggen, das Paßwort für das Account sofort unter Profil ändern, Einstellungen anpassen, Räume erstellen und Chat-News festsetzen
Einige der Schritte sind im folgenden erklärt. Außerdem finden Sie eine Anleitung, wie Sie das Aussehen des Chats ändern. Bitte beachten Sie, daß Sie einen Editor benutzen müssen, der mit UNIX-Zeilenumbrüchen klarkommt (also nicht Notepad).

Systemvoraussetzungen

Anforderungen an den Server:
  • UNIX oder ein Derivat
  • Perl 5.005 oder höher
  • Im Server-Push-Modus: Kein Zeitlimit für Perl-Prozesse (wenn der Server den Prozeß wegen einem Timeout abbricht, muß sich der Benutzer neu einloggen)
  • Im Server-Push-Modus: Die Möglichkeit, Named Pipes zu erstellen (z.B. mit dem Programm mknod oder mkfifo, alternativ kann die System-Funktion mknod aufgerufen werden)
  • Etwa 2 MB Arbeitsspeicher pro Benutzer (nur solange der Server nicht überlastet wird)
Anforderungen an den Client:
  • Internet Explorer ab 4.x oder Netscape Communicator ab 4.x.
  • JavaScript aktiviert
  • Im Server-Push-Modus: Sofortige Weiterleitung der Daten durch den Proxy-Server. Dies ist mit Ausnahme der T-Online-Proxies meistens der Fall. Bei T-Online ist der Internet-Zugang auch ohne Proxy-Server benutzbar. Ansonsten wäre nur Client-Pull-Modus möglich.
  • Im Server-Push-Modus: Keine Zeitbeschränkung für Verbindungen. Zum Beispiel bricht Mannesmann Arcor jede Verbindung nach 5 Minuten ab, in diesem Fall ist der Client-Pull-Modus zu empfehlen.
Erstinstallation des Programms

Erstellen Sie dann in Ihrem normalen HTML-Verzeichnis ein Unterverzeichnis gtchat. Kopieren Sie dorthin mit Ihrem FTP-Programm den Inhalt des Verzeichnisses www.

Erstellen Sie dann in Ihrem CGI-Verzeichnis auch ein Unterverzeichnis gtchat und kopieren Sie den Inhalt des cgi-bin-Verzeichnisses des Programms dorthin. Setzen Sie die Zugriffsrechte von install.pl auf ausführbar und starten Sie das Programm über Ihren Browser. Das Programm setzt dann die Verzeichniseinstellungen und die Zugriffsrechte. Allerdings kann es vorkommen, daß die Servereinstellungen die Änderung der Zugriffsrechte nicht erlauben, folgen Sie dann den Anweisungen des Programms.

Update von einer älteren Version

Es empfiehlt sich, vor dem Update das Chat-Verzeichnis zu sichern.

Folgende Dateien müssen kopiert/ersetzt werden:
  • cgi-bin/Sources (das komplette Verzeichnis)
  • cgi-bin/chat.pl
  • cgi-bin/install.pl (ausführbar machen)
  • cgi-bin/german.descr
  • cgi-bin/german.lng (falls bereits Änderungen daran vorgenommen, kann auch der Teil angehängt werden, der mit der Marke Version 0.93 anfängt)
  • cgi-bin/Templates (seit der Version 0.92 wurden fast alle Vorlagen geändert, deswegen ist es empfehlenswert, alles zu ersetzen)
  • www/chat.js
  • www/images/at.gif
  • www/images/msg.gif
  • www/images/question.gif (falls Update von GTChat 0.91)
  • eventuell www/commands.html und www/faq.html
Machen Sie install.pl auführbar und starten Sie es über Ihren Browser, das Update der Daten wird dann durchgeführt.

Weiterleitungsadresse einstellen

Erstmals, warum überhaupt Weiterleitung? Ich empfehle, bei Verweisen auf den Chat stets die Datei index.html in Ihrem GTChat-Verzeichnis anzugeben. Von dort aus wird der Benutzer sofort per JavaScript an die eigentliche Adresse weitergeleitet. Damit wird sichergestellt, daß JavaScript aktiviert ist. Denn falls nicht, bleibt der Benutzer bei index.html und liest die Mitteilung dort.

Die Weiterleitung soll auf chat.pl im CGI-Verzeichnis erfolgen. Passen Sie die entsprechende Adresse im JavaScript und in der Mitteilung an.

Farben, Schriftarten und -größen anpassen

GTChat ist so programmiert worden, daß alle Anpassungen der Farben und Schriften einfach in der Datei style.css vorgenommen werden können, ohne die Templates zu bearbeiten. Hier folgt die Liste der CSS-Klassen und ihrer Funktionen:
A
A:active
A:hover
Das sind die Definitionen für die Links, die sich innerhalb von Tabellen befinden (active - aktiver Link, hover - Link, der unter dem Mauszeiger liegt). Nicht angegebene Attribute werden vom Kontext übernommen. Man könnte auch A:visited festlegen, jedoch macht eine unterschiedliche Darstellung besuchter Links bei einem Chat keinen Sinn.
#stdlink
A#stdlink:active
A#stdlink:hover
Diese Definitionen gelten für die Links, die sich außerhalb von Tabellen befinden (active - aktiver Link, hover - Link, der unter dem Mauszeiger liegt). Wenn Sie die Templates ändern und einen Link außerhalb einer Tabelle anbringen, sollte immer id=stdlink dabeistehen:

   <a href="file.html" id=stdlink>

Falls sich diese nicht von den anderen Links unterscheiden sollen, können diese Klassen gelöscht werden. Nicht angegebene Attribute werden vom Kontext übernommen.
TD
#normaltext
Das sind die Standardeinstellungen für den Text innerhalb von Tabellen. #normaltext sollte dasselbe wie TD sein, es wird dazu benutzt, diese Formatierung zu erzwingen, falls das nicht automatisch passiert.
#smalltext Verkleinerte Version von TD, wird z.B. für die Anzeige des Datums in der Liste der IP-Sperren benutzt. Alle nicht angegebenen Attribute werden von TD übernommen.
TH Definiert den Text und Hintergrundfarbe von Tabellenüberschriften.
#table1 Definiert die Hintergrundfarbe von Tabellenzeilen, die besonders hervorgehoben werden sollen, wie z.B. die Raum-Namen auf der Login-Seite des Chats.
#table2 Standard-Hintergrundfarbe von Tabellenzeilen.
#lines Linienfarbe für Tabellen. Bitte beachten: das Attribut, das gesetzt werden muß, ist nicht color, sondern background-color!
#body Hier werden die Standardwerte für Schriftart und Farben festgelegt. Z.B. werden alle Chat-Meldungen in der Standardfarbe angezeigt. Die Hintergrundfarbe gilt für den kompletten Chat. Damit das funktioniert, muß in sämtlichen HTML-Dateien der Text id=body beim BODY-Tag bleiben.
#headertext Standardformatierung des Textes außerhalb von Tabellen. Falls Sie die Templates ändern sollten und Text außerhalb von Tabellen anbringen, sollten Sie diesen mit <div id=headertext> </div> umschließen.
#bigheadertext Vergrößerte Version von headertext, wird z.B. in der Chat-Hilfe benutzt.

Templates bearbeiten

Die Chat-Templates sind normale HTML-Dateien, die aber bestimmte Marken enthalten, die der Chat durch die eigenen Daten ersetzt. Vier der Marken sind universell, können also in jedem Template vorkommen:
{CHATNAME} Wird durch den Wert von $chatname aus Settings.dat ersetzt, wird normalerweise für die Überschrift der HTML-Datei verwendet.
{CGI} Wird durch die URL von chat.pl ersetzt, wobei der Parameter id bereits enthalten ist. Wenn also zusätzliche Parameter angehängt werden sollen, schreibt man das z.B. so:

   {CGI}&action=allusers
{HTMLURL} Wird durch $htmlurl aus Settings.dat ersetzt. Diese Marke wird in fast allen Templates in folgender Form verwendet:

   <base href="{HTMLURL}">

Damit braucht man dann für die Dateien im HTML-Verzeichnis des Chats keinen Pfad mehr anzugeben.
{PULLMODE} Wird durch 1 ersetzt, wenn der Client-Pull-Modus benutzt wird bzw. durch 0, wenn der Benutzer den Server-Push-Modus gewählt hat.

Alle anderen Marken sind nur in bestimmten Templates definiert.
Zu beachten: alle außer den universellen Marken müssen in einer eigenen Zeile stehen, ohne führende und nachfolgende Leerzeichen.

Wenn man den Chat installiert, sollte man die Templates login.html und register.html anpassen (Logo, Begrüssungstext usw.). Falls man in chat.html die Frames umordnet, sollte man auf jeden Fall die Namen der Frames beibehalten. Eine detailierte Beschreibung der Templates und der verwendeten Marken soll bald verfügbar sein, für aktuelle Informationen schauen Sie auf http://www.gtchat.de.

JavaScript-Einstellungen

Am Anfang von chat.js können folgende Variablen gesetzt werden:
roomlistdelay
Voreinstellung: 10000
Zeitliche Verzögerung (in Millisekunden), mit der die Raumliste erscheinen soll. Die Standardvorlagen von GTChat zeigen an der Stelle der Raumliste zuerst das Logo an. Falls Sie das Logo nicht anzeigen wollen oder es in ein anderes Frame plaziert haben, können Sie hier 0 einstellen.
scrolldelay
Voreinstellung: 150
Zeitlicher Abstand (in Millisekunden), in dem das Textfenster runtergescrollt wird (falls nicht vom Benutzer deaktiviert).
aliveinterval
Voreinstellung: 50000
Nur relevant für den Server-Push-Modus. Zeitlicher Abstand (in Millisekunden), in dem der Chat einen /alive-Befehl an den Server senden soll, um anzuzeigen, daß der Benutzer noch da ist. Der Server prüft seinerseits in Abständen, die in Settings.dat durch $alive_test_rate festgelegt sind, ob seit der letzten Überprüfung ein solcher Befehl eingegangen ist. Ich empfehle, aliveinterval auf etwas unter der Hälfte des Wertes von $alivetestrate zu setzen - sicher ist sicher.
refreshdelay
Voreinstellung: 6000
Nur relevant für den Client-Pull-Modus. Legt den zeitlicher Abstand (in Millisekunden) fest, in dem der Chat neue Nachrichten vom Server anfordern soll. Wenn der Server eine gewisse Zeit keine Anforderungen empfängt (festgelegt durch $alive_test_rate_pull), wird ein Verbindungsabbruch angenommen und der Benutzer entfernt.

Bemerkung: Neue Nachrichten werden auch immer dann angefordert, wenn der Benutzer einen Text sendet.
logoutpage
Voreinstellung: ""
Fall angegeben, wird beim Logout nicht die Login-Seite des Chats, sondern die Seite unter dieser URL angezeigt.
autokick
Voreinstellung: 0
Fall von Null verschieden, wird ein Benutzer, der länger als diese Anzahl von Sekunden nichts geschrieben hat, automatisch aus dem Chat geschmissen.
send_blocking_timeout
Voreinstellung: 15000
Damit beim Senden nichts verloren geht, wird nach dem Abschicken eines Textes eine Sendesperre verhängt bis die Übertragung erfolgt ist (alle neuen Texte werden in einen Puffer geschrieben). Manchmal wird die Sendesperre aufgrund eines Browser-Fehlers nicht aufgehoben, dann geschieht das nach dieser Anzahl von Millisekunden trotzdem.
flooding_***
Voreinstellung:
..._maxnum: 5
..._interval: 5000
..._warnings: 1
..._expireinterval: 600000
Der Anti-Flooding-Mechanismus: immer wenn der Benutzer flooding_maxnum Texte innerhalb von flooding_interval Millisekunden abgeschickt hat, erhält er eine Warnung. Nach flooding_warnings Warnungen wird er rausgeschmissen. Nach der Zeit flooding_expireinterval wird die Zahl der abgegebenen Warnungen auf 0 zurückgesetzt. flooding_maxnum=0 oder flooding_interval=0 deaktiviert den Flooding-Schutz, flooding_expireinterval=0 deaktiviert die Zurücksetzung der Zahl der Warnungen.

Die korrekte Funktion des Chats ist wesentlich abhängig von einem korrekt funktionierenden JavaScript. Deswegen sollten Sie nur dann Änderungen an den JavaScript-Funktionen vornehmen, wenn Sie genau wissen, was Sie tun. Bei Problemen, die aus solchen Änderungen resultieren, werde ich wahrscheinlich keine Hilfe bieten können. Eine detailierte Beschreibung der JavaScript-Funktionen soll bald verfügbar sein, für aktuelle Informationen schauen Sie auf http://www.gtchat.de.