Copyright © 2001, 2002, 2003 PHPOpenChat-Team
Herausgegeben unter der Open Content License.
letzte Änderung am 01.05.2003
| Versionsgeschichte | |||||
|---|---|---|---|---|---|
| Version 0.1 | 13.04.2003 | letreo | |||
| |||||
| Version | 12.05.2003 | letreo | |||
| |||||
Zusammenfassung
Dieses Dokument wendet sich sowohl an Webmaster als auch 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 sowie das Erstellen eines komplett neuen Motivs, auch Theme genannt. Desweiteren werden die Admninistrationsmöglichkeiten beschrieben, die dem Communitybetreiber zur Verfügung gestellt werden.
Inhaltsverzeichnis
Tabellenverzeichnis
Inhaltsverzeichnis
Der PHPOpenChat ist ein in PHP4 geschriebenes Chatsystem, welches zur freien Verfügung als Open Source Software (OSS) zum Download angeboten wird. Der Vorteil ist die Möglichkeit der Benutzung ohne etwas dafür bezahlen zu müssen oder anderen kommerziellen Einschränkungen unterworfen zu sein. Der Nachteil ist, dass es keinen Anspruch auf Hilfeleistungen oder sonstige Unterstützung gibt. Sicher gibt es aber auch andere Benutzer, die ihre Erfahrungen zur Verfügung stellen oder bei eventuellen Erweiterungen helfen. Siehe dazu den Abschnitt Support.
Der PHPOpenChat wird unter der GNU General Public License als Open Source Software veröffentlicht und ist somit für jederman kostenlos verfügbar.
Der PHPOpenChat wurde von 1996 bis 2000 von Michael Oertel innerhalb des Projektes SchulWeb an der Abt. "Pädagogik und Informatik" der Humboldt-Universität zu Berlin entwickelt. Nach Abschluss des Projektes konnte der Source Code unter die GNU General Public License gestellt und damit öffentlich gemacht werden. Seitdem setzt sich das Entwickler-Team des PHPOpenChat wie folgt zusammen.
Projektleiter
Entwickler
Berater
Entwickler (Shared Memory Support)
Entwickler (Weiterentwicklung/Bugfixing der Version 2.x)
Entwickler (Mitentwicklung der Templateklasse) z.Z. nicht aktiv
Inhaltsverzeichnis
Der PHPOpenChat ist ein offenes System, das über Schnittstellen erweitert und mit anderen Systemen bzw. Applikationen kombiniert werden kann. Internationale Standards werden unterstützt. Der Einstig in die Verwendung des PHPOpenChat ist dadurch denkbar einfach. So können z.B. bestehende WebSites ohne große Änderungen weiterverwandet und PHPOpenChat-Features integriert werden.
Der PHPOpenChat ermöglicht somit 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 vonvornherein einen eigenen privaten Raum, in dem er, mit von ihm selbst eingeladenen Benutzern, ungestört von anderen diskutieren kann. Zur asynchronen Kommunikation steht das Mail-Modul zur Verfügung, was das Versenden von Nachrichten innerhalb der Community erlaubt und ein Benutzergästebuch, was ein öffentliches Hinterlassen von Nachrichten für Benutzer ermöglicht.
Die Gesamtarchitektur entspricht grundsätzlich dem MVC-Ansatz. Die PHP-Skripte innerhalb des PHPOpenChats(POC)-Installationsverzeichnisses, übernehmen die Controler-Funktion, in ihnen wird entschieden, welche Objekte und deren Methoden benutzt werden (Modell) und in welcher Art und Weise das Resultat präsentiert wird (View). Für den View sind XHTML-Templates implementiert, jede andere Form der Präsentation ist jedoch denkbar. Siehe dazu auch die Architekturgrafik unter "Architektur" auf der POC-HomePage.
Hochperformantes Konferenz-Tool
Modell View Controller basiert, für ein leichtes Anpassen an unterschiedlichste Designs.
Die Kommunikation läuft über das Schreiben in bzw. Lesen (Polling) aus einem Ringpuffer, der im Shared Memory liegen kann. So ist eine sehr geringe Systembelastung auch bei großen Benutzerzahlen möglich.
Leistungsstarkers Interface durch valides XHTML, umgesetzt nach den Accessablility Guidelines des W3C.
Um den PHPOpenChat zu betreiben, ist keinerlei kommerzielle Software vonnöten. Natürlich ist er aber auch auf solcher Software lauffähig, so die erforderlichen Voraussetzungen mitgebracht werden. Die empfohlene Softwareplattform ist eine LAMP-Architektur, also
L: Linux
A: Apache
M: MySQL
P: PHP
Allerdings können solwohl das Betriebsystem, der Webserver als auch die Datenbank entgegen dieser Empfehlung ausgetauscht werden. Nur PHP ist hier eine gesetzte Größe.
PHP 4.2.1 (oder neuer)
Eins der von ADOdb unterstützen Datenbanksysteme
Linux/Unix oder Windows, nicht unterstützt wird Windows95 und Windows98.
Webserver mit PHP-Unterstützung
Der PHPOpenChat wird in PHP entwickelt, ist damit Plattformunabhängig und auf nahezu jedem Betriebssystem (z.B. Linux, Solaris, Windows2000, WindowsNT) lauffähig. Nicht unterstützt werden die Betriebsysteme Windows95 und Windows98.
Im PHPOpenChat gibt es drei strikt voneinander getrennte Schichten ("three tiers"), die die Kontrolle, Präsentation sowie Logik und Datenzugriff übernehmen.
Auf der Datenzugriffsebene wird nicht eine bestimmte Datenbank vorausgesetzt. Für die Datenhaltung können alle Datenbanksysteme benutzt werden, die von ADOdb unterstützt werden. Für die Authentifizierung wird darüberhinaus auch LDAP unterstützt.
Auf Präsentationsebene werden alle Browser unterstützt, die XHTML und Javascript 1.2 korrekt interpretieren. Das sind bspw.
alle mozillabasierten Browser, wie Netscape ab Version 7.x oder Galeon,
Mozilla selbst,
Internet Explorer ab Version 5.5 oder
Opera ab Version 6
Inhaltsverzeichnis
Administrationsskripte zur Verwaltung der Räume und Benutzer
Dokumentationen des POC
Klassen des POC. Siehe auch die API-Dokumentation.
Datenbank-Layer für die Datenbankunabhängigkeit. Siehe ADOdb.
Sprachdateien. Soll eine neue Sprache unterstützt werden, muss die zuvor entsprechend erstellte Sprachdatei an diese Stelle kopiert werden. Zusätzlich ist innerhalb der Konfigurationsdatei config.inc.php, innerhalb des Installationverzeichnis des POC, das Array $supported_languages zu ergänzen.
Theme-Verzeichnisse, die zur verschiedenartigen Ausgabe benutzt werden. Alle Dateien, die zu einem Theme gehören, befinden sich innerhalb eines Verzeichnisses unter include/templates.
Verschiedene Tests der PHP-Umgebung
Alle KLassen des PHPOpenChat befinden sich unter include/ und tragen den Prefix class.. Für ausführlichere Informationen steht die API-Dokumentation zur Verfügung.
Implementiert einen Ringpuffer für Textzeilen innerhalb des Chats auf Basis der Datenbank.
Implementiert einen Ringpuffer für Textzeilen innerhalb des Chats auf Basis des Shared Memory.
Implementiert einen Raum innerhalb des Chats
Implementiert die Basisfunktionalität des Chats
Implementiert einen registrierten Benutzer
Implementiert ein Benutzer-Gästebuch
Implementiert einen Gästebucheintrag
Implementiert die Spracheinstellung des Chats
Implementiert eine Textzeile im Chat
Implementiert einen Logging-Mechanismus und benutzt dazu syslogd(SM).
Implementiert ein Postfach im Chat-Mailmodul
Implementiert das Versenden und Empfangen von Chat-Mails
Implementiert eine Mail innerhalb des Chats.
Implementiert die Art und Weise der Datenausgabe.
Implementiert die jeweilige Sprachausgabe abhängig vom HTTP-REQUEST-HEADER
Implementiert ein Datei-Upload.
Inhaltsverzeichnis
Die Installation des PHPOpenChat teilt sich auf in zwei Schritte. Zum Einen muss installiert und zum Anderen konfiguriert werden. Beide Schritte werden folgend erklärt und beschrieben.
Der PHPOpenChat steht als TAR- oder ZIP-Archiv zum Herunterladen bereit. Er entpackt sich automatisch in ein Verzeichnis 'phpopenchat-3.x'. Empfohlen wird das Entpacken direkt in der Document Root des Webservers. Bei den meisten Internet Service Providern (ISP) steht ein HOME-Verzeichnis und ein Verzeichnis zur Verfügung, wo alle, vom Webserver lesbaren und auszuliefernden Dateien stehen. Dieses Verzeichnis wird auch Document Root genannt und ist das angesprochene Zielverzeichnis für das Entpacken des PHPOpenChat-Pakets.
Vorraussetzungen für die einzelnen LAMP-Komponenten wären:
PHP 4.2.2 oder höher
MySQL 3.23.x oder höher
Apache 1.3.x oder höher
Die LAMP-Architektur ist empfohlen, jedoch nicht Voraussetzung für das Betreiben des PHPOpenChats. Allgemeine Vorraussetzungen sind:
PHP mit Datenbankunterstützung
Webserver mit PHP-Unterstützung
Datenbank unterstützt von ADOdb
Ist der PHPOpenChat entpackt und die Vorraussetzungen geklärt, muss eine Datenbank erstellt, die Datenstrukturen importiert und ein Datenbankbenutzer angelegt werden. Der Datenbankbenutzer muss eine Zugriffsberechtigung für diese Datenbank besitzen. Am Beispiel von MySQL seien diese Schritte hier kurz beschrieben.
Datenbank erstellen: # mysqladmin create DATABASE_TABLESPACE
Datenbankbenutzer anlegen: # mysqlaccess DATABASE_HOST DATABASE_USER DATABASE_TABLESPACE
Datenstrukturen importieren: # mysql -u DATABASE_USER -pDATABASE_PASSWORD DATABASE_TABLESPACE < /your/path/to/phpopenchat/db.schema
Diese Datenbank-Zugangsdaten und andere Systemspezifika, müssen innerhalb der Konfiguration dem PHPOpenChat noch bekanntgemacht werden.
Die Konfigurationsdatei config.inc.php ist die zentrale Stelle für Einstellungen des PHPOpenChat. Im folgenden Abschnitt, werden alle Einstellungsmöglichkeiten detailiert beschrieben.
Die Datei config.inc.php, zu finden innerhalb des Installationsverzeichnisses, ist die zentrale Konfigurationsdatei des POC. Alle Schalter sind entweder als Konstanten oder als Arrays definiert. Folgend werden alle Schalter ausführlich beschrieben.
Verzeichnis für temporäre Daten, für das der Webserver Schreibrechte haben muss. Das Verzeichnis wird automatisch gesetzt, kann aber auch per Hand definiert werden. Für Unix/Linux-Systeme wird das Verzeichnis /tmp als schreibbar für den Webserver angenommen. Manche ISPs schränken diese Rechte allerdings über safe_mode oder open_basedir ein. In diesem Falle ist ein Verzeichnis außerhalb der Document Root des Webservers mit schreibrechten für den Webserver anzulegen und TMPDIR entsprechend zu definieren.
Für Windowssysteme wird versucht eine entsprechende Umgebungsvariable auszulesen. Ist keine solche gesetzt, wird C:\WINDOWS\TEMP angenommen. Dies kann auch beliebig geändert werden, das Verzeichnis kann auch auf anderen Laufwerken als auf C: liegen.
Beschreibt das Betriebssystem, auf dem der POC installiert ist. Diese Einstellung sollte nicht verändert werden.
Beschreibt das Installationsverzeichnis absolut. Hauptsächlich dazu verwandt, in allen Skripten und Klassen die jeweiligen include- oder require_once-Statements korrekt zu formulieren, so das die entsprechenden Dateien auch gefunden werden.
Diese Einstellung sollte nicht verändert werden.
Beschreibt das POC-Include-Verzeichnis absolut.
Diese Einstellung sollte nicht verändert werden.
Verfallszeit eines, durch den POC gesetzten Cookies. Z.Z. gesetzt auf 25 Jahre
Der POC läuft auch unabhängig von Cookies, sie werden zum einen von PHP selbst benutzt, um automatisch die Session-ID zu übertragen und zum anderen vom POC, um das vom Benutzer ausgewählte Motiv/Theme beim ersten Zugriff sofort auswählen zu können.
Cookie-Pfad
Cookie-Domain
Cookie-Sicherheitseinstellung
Beschreibt die Methode, mit der ein Benutzer beim Login authentifiziert wird. Implementiert ist z.Z. zum einen die Methode 'poc', es wird zur Authentifizierung die Benutzerdatenbank des POC benutzt und zum anderen die Methode 'ldap', hier wird ein ggf. im Intranet/Internet erreichbarer LDAP-Server zur Authentifizierung der Benutzer verwandt.
LDAP-Einstellungen die, wenn nicht bekannt, auch mittels des Skriptes test/ldap.php vom LDAP-Server erfragt werden können.
Beim LDAP stellt dn, Distinguished Name, das Äquivalent zum FQND (Fully Qualified Domain Name) des DNS (Domain Name Service) dar. Diese Bezeichnung ist innerhalb eines Verzeichnisses immer einzigartig. Zum Beispiel lautet mein dn: uid=michael.oertel, ou=NTUser, ou=Accounts, o=pixelpark.com
Bestimmt die Lage des Zeilenpuffers. Er kann entweder in der Datenbank oder im Shared Memory liegen.
Im Fall des Shard Memory, muss PHP mit SHM- und SEM-Unterstützung kompiliert worden sein. Außerdem ist die Größe des Shard Memory (SHM) innerhalb der php.ini mit sysvshm.init_mem = 32595000 anzupassen bzw. zu vergrößern.
Jede Zeile ist durchschnittlich zwischen 3,8 und 4 kB groß, wobei pro Raum ein Zeilenpuffer von je 50 Zeilen exsistiert, also ein Platzbedarf an Shared Memory pro Raum von ca. 200 kByte besteht.
Voreingestellt ist die Lage innerhalb der Datenbank. Hier müssen keine zusätzlichen Anpassungen durchgeführt werden, allerdings ist das, im Gegensatz zur Lage im SHM, nicht die performanteste Lösung!
Für Chats mit geplanten Größenornungen an gleichzeitigen Benutzern von über 100, wird die Lage des Zeilenpuffers im Shared Memory empfohlen.
Host, auf dem die Datenbank installiert ist und läuft.
Loginname des Datenbank-Accounts
Kennwort des Datenbank-Accounts
Name des eigenen Tablespaces. Der Platz also, wo die eigenen SQL-Tabellen liegen. Bei einigen Datenbanken auch einfach nur Datenbank genannt.
Treiber, passend zur eingesetzten Datenbank. Mögliche Werte können sein:
mysql
sybase
odbc
informix
oci8po (Oracle)
postgres7
Für mehr Optionen siehe ADOdb HomePage.
Ist der Wert FALSE, werden alle Datenbankverbindungen sofort wieder geschlossen, sobald sie nicht mehr gebraucht werden. Andernfalls wird die Datenbankverbindung erst mit dem Beenden des Webserver-Prozesses geschlossen.
Empfohlen wird die Einstellung FALSE, weil so die Zahl der Datenbankprozesse und damit der Hauptspeicherverbrauch gering gehalten wird.
Dateiendung der Template-Dateien unter /path/to/phpopenchat/include/templates.
Das Standard-Motiv, welches alle neuregistrierten Benutzer voreingestellt bekommen. Alle Motive befinden sich innerhalb des Verzeichznisses /path/to/phpopenchat/include/templates.
Relativer Pfad zu den Motiven (Themes). Muss in den meisten Fällen nicht speziell angepasst werden.
Schalter, um den Benutzern das selbstständige Auswählen und Ändern der installierten Motive (Themes) zu erlauben.
Verzeichnissname des PHPOpenChat innerhalb des PostNuke-Modulverzeichnisses /path/to/postnuke/modules/
Ist der Wert true, werden alle Leerzeichen aus dem auszuliefernden XHTML-Code entfernt, um Bandbreite zu sparen.
Dieses Array enthält alle unterstützen Sprachen, zweistellig nach ISO-639. Die Standardsprache, auf die immer wieder zurückgegriffen wird, wenn keine Übersetzungen für die aktuell ausgewählte Sprache existieren, muss hier an erster Stelle stehen. Standardeinstellung für die Standardsprache ist Englisch ('en')
Wird an verschiedenen Stellen (z.B. HTML-Titel) benutzt. Soll durch den jeweiligen Namen des realisierten Chats definiert sein.
Der URL, auf die beim Verlassen des Chats verwiesen wird. Ist der Wert leer, wird auf die HomePage des Chats verwiesen.
Ein URL hat das Format: http://host.domain.tld/
Schalter für das Contextmenü, welches auf einen Rechtsklick innerhalb des Textausgabefensters erscheint. Der Standardwert ist 'true'
Der Wert muss vom Typ String sein, also in Hochkomma angegeben werden!
Schalter für die Icons im Kontextmenü. Jede Option des Contextmenüs wird mit einem Icon näher beschrieben.
Schalter für die Möglichkeit für Benutzer, sich ohne Registrierung in den Chat einzuloggen. Sie erhalten dann einen Spitznamen im Format 'Gast_1234'.
Alle Meldungen des Chats, wie 'Benutzer betritt den Raum', werden von diesem imaginären Benutzer gesagt.
Geforderte Minimallänge der Benutzerpasswörter.
Maximalzahl der innerhalb eines Raumes gleichzeitig chattenden Benutzer.
Schalter für das Versenden von Bestätigungsmails. Diese Mails, die an den bei der Registrierung angegebenen E-Mailaccount gesendet werden, enthalten einen Link, der zum Bestätigen der Registrierung vom Benutzer angeklickt werden muss.
Schalter für das Versenden von Bestätigungsmails an Free-Mail-Accounts, wie GMX oder WEB.DE
Der Standardwert ist true. Ist der Wert false, werden keine Mails an diese Free-Mail-Accounts verschickt.
E-Mail-Adresse des Chatbetreibers, wird innerhalb des Contextmenüs zur Kontaktaufnahme angeboten.
Name des Chatbetreibers.
URLs, die innerhalb des Chats von Benutzern 'gesagt' bzw. geschrieben werden, werden automatisch in Links umgewandelt. Enthalten Web-Seiten einen dieser hier angegebenen Werte, scheitert das Weiterleiten auf diesen URL.
Spitznamen, die vom System nicht vergeben werden.
Diese Spitznamen werden vom System nie automatisch gelöscht.
Der PHPOpenChat unterstützt auch das Einloggen aus anderen PHP-Applikationen heraus. Innerhalb der anderen Applikation können die zur Chat-Authentifizierung nötigen Session-Objekte angelegt werden. Sind beim Zugriff auf den Chat diese Session-Objekte vorhanden, wird der Benutzer sofort in den hier angegebenen Raum geleitet.
Schalter für das direkte Einloggen aus anderen PHP-Applikationen heraus.
Sind beim Zugriff auf den Chat die zur Authentifizierung nötigen Session-Objekte vorhanden (siehe dafür auch das Beispielskript /path/to/phpopenchat/external_login.php), kann der Benutzer entwerden sofort in den unter ENTRY_CHANNEL angegebenene Raum geleitet werden oder er wird auf die Chat-HomePage geleitet, wo er sich, ohne sich nochmals authentifizieren zu müssen, den Raum selbst aussuchen kann, in dem er seine Chatsitzung beginnen möchte.
Name des Raumes, der auf der Chat-HomePage von allen vorhandenen Räumen vorausgewählt ist.
Zeitinterval, mit dem auf dem Server nach neuen Zeilen für den jeweiligen Benutzer geschaut wird.
Je kleiner der Interval, desto größer die Serverbelastung. Je größer der Interval, desto länger müssen die Benutzer auf neue Zeilen vom Server warten.
Ein Interval von minimal fünf und maximal zehn Sekunden, hat sich in der Praxis als optimal erwiesen.
Zeitangabe in Sekunden, wie lange ein Benutzer den Online-Status behält, ohne aktiv zu sein. Wird die hier angegebene Zeit vom Benutzer überschritten, wird er automatisch ausgeloggt.
Zeitangabe in Tagen, innerhalb der sich ein Benutzer mindestens einmal einloggen muss, damit er nicht automatisch aus der Registrationsdatenbank gelöscht wird.
Schalter für das IRC-Kommano 'query'. Ist der Wert true, wird auf ein '/query nickname' im Chat, ein weiteres Fenster für einen privaten Chat geöffnet.
Ist der Wert false, wird der angegebene Benutzer in den jeweils eigenen privaten Raum eingeladen und benachrichtigt. Der Einladende Benutzer wechselt automatisch in seinen eigenen privaten Raum.
Schalter für Emoticons innerhalb des Chats. Ist der Wert true, werden alle Emoticons, wie bspw. :-) automatisch in Grafiken gewandelt.
Maximale Anzahl von Grafik-Smileys pro Zeile.
Schalter für benutzereigene Grafikdateien/private Icons. Ist der Wert true, können Benutzer innerhalb ihres Profils Grafikdateien hochladen und sie als Smileys im Chat benutzen.
:me steht für das eigene,
:you für ein fremdes privates Icon
Wird :you benutzt, muss ein Benutzer direkt angesprochen werden, damit das Ersetzen des Codes funktionieren kann.
Maximalgröße in Bytes eines privaten Icons.
Maximale Breite des privaten Icons in Pixeln
Maximale Höhe des privaten Icons in Pixeln
MIME-Typen, die beim Hochladen des privaten Icons erlaubt sind.
Speichermodus für das private Icon. Mögliche Werte können sein:
1 (eine ggf. schon vorhandene Datei wird überschrieben)
2 (ist schon eine Grafikdatei vorhanden, wird der Upload abgebrochen)
Schalter für das Icon des Geschlechts des jeweiligen Benutzers. Ist der Wert true, wird ein Icon für das Gechlecht des Benutzers innerhalb des Ausgabefensters angezeigt.
Erstes Jahr, was innerhalb des Profiles als Geburtsjahr zur Auswahl angeboten wird.
Mindestlänge des Inhalts einer Chat-Mail.
Maximalgröße einer Notiz von einem Benutzer über einen Benutzer.
Spaltenanzahl der Tabelle zur Anzeige der gerade engeloggten Benuzter.
Schalter für die Anzeige des Ranges der Benutzers.
Schalter für die mehrzeilige Texteingabe beim Chatten.
Mindestwerte für das Erreichen der insgesamt vier Ränge für Benutzer. Die folgende Tabelle enthält die Standardwerte, die an die jeweiligen Bedürfnisse angepasst werden können.
Tabelle 3.1. Standard-Limits für die Einzelnen Ränge
| Zeilen pro Tag [a] | Logins pro Tag [a] | Gesamtonlinezeit in Tagen | |
|---|---|---|---|
| Grünschnabel (kein Stern) | 0 | 0 | 0 |
| Mitglied (ein Stern) | 50 | 0,1 | 10 |
| Stammchatter (zwei Sterne) | 100 | 0,4 | 50 |
| Elitechatter (drei Sterne) | 200 | 0,7 | 100 |
[a] seit der Registration | |||
Schalter für das zeitweise Caching also Zwischenspeichern von dynamischen Inhalten.
Performanzintensive Inhalte, wie das Ermitteln der Chatstatistiken oder die Anzahl der Online-Chatter auf der HomePage, können bei stark frequentierten Sites zeitweise zwischengespeichert werden. Wird das Caching mit dem Wert true angeschalten, werden die folgenden Skripte zeitweise zwischengespeichert.
Tabelle 3.2. Zwischengespeicherte Inhalte
| Skript | Aktualisierungsinterval |
|---|---|
| HomePage | zwei Minuten |
| Startseite Administration | eine Woche |
| UserPage | zehn Minuten |
| Registration | einen Monat |
| Stammtisch | einen Tag |
| Hilfe | einen Monat |
Durch das Einfügen von
$_SESSION['template']->get_cached_content( 60*2 );
am Anfang eines beliebigen Skripts, wird in Abhängigkeit vom Parameter (Zeit in Sekunden), an dieser Stelle die Skriptverarbeitung abgebrochen und die zwischengespeicherte Inhalte ausgegeben. Zuvor muss allerdings die PHP-Session gestartet und die betreffende Klasse importiert werden. Bei Skripten an die Daten gepostet werden können, ist vor dem eventuellen Ausliefern von zwischengespeicherten Inhalten sicherzustellen, dass keinerlei Daten gepostet wurden, die ja sonst ausgewertet werden müssten.
//Get default values
require_once('config.inc.php');
require_once(POC_INCLUDE_PATH.'/class.Template.inc');
session_start();
...
if( (count($_POST) + count($_GET)) == 0 ) $_SESSION['template']->get_cached_content( 60*2 );
...
Wird bei Template::get_cached_content() keine Zeit als Parameter angegeben, wird der Cache-Aktualisierungsinterval auf diese Zeit (in Sekunden) gesetzt.
Schalter für das Loggen von Informationen des PHPOpenChats in die Systemlogdatei. Ist der angegebene Wert true, werden keine Informationen geloggt.
Schalter zum Loggen von normalen Informationen.
Schalter zum Loggen von Zeilen, geschrieben von Benutzern im Chat.
Schalter zum Loggen von Debugmeldungen.
Schalter zum Loggen von Warnungen.
Schalter zum Loggen von Fehlern.
Schalter zum Loggen von sehr schweren Fehlern.
Herunterladen des PHPOpenChat
Entpacken des Pakets nach /path/to/postnuke/modules
Editieren der Konfiguration und Anpassen von PN_MODULE_NAME. Diese Einstellung muss den Verzeichnisnamen des PHPOpenChat innerhalb des PostNuke-Modulsverzeichnisses haben, also der Form "phpopenchat-3.x.x" entsprechen.
Als 'Admin' bei PostNuke einloggen und den PHPOpenChat als neues Modul installieren.
Beim POC ist ein Theme ein Paket aus allen nötigen Templatedateien mit der Dateiendung TPL und anderen Dateien, wie den CSS-Dateien unter css/ oder den Sounddateien unter sound/. Ein Template befindet sich immer in einem Verzeichnis unterhalb von /path/to/phpopenchat/include/templates. So findet man das Standard-Theme "openchat" unter /path/to/phpopenchat/include/templates/openchat. Alle installierten Themes, werden den Benutzern unter "Mein Profil" sofort zur Auswahl angeboten, so die Option ALLOW_TEMPLATE_CHANGES das innerhalb der Konfiguration vorsieht.
Um neue Themes zu installieren, müssen die unter http://phpopenchat.org/themes.php heruntergeladenen Themearchive nach /path/to/phpopenchat/include/templates entpackt werden.
Um eigene Themes zu erstellen, empfiehlt sich das Kopieren und anschließende umbenennen des Standardthemes "openchat". Beim Umbenennen muss darauf geachtet werden, dass ein solches Theme unter http://phpopenchat.org/themes.php noch nicht existiert. Innerhalb dieses neuen Verzeichnisses unter /path/to/phpopenchat/include/templates kann dann das neue Theme implementiert werden. In den einzelnen Templatedateien kann ausnahmslos alles verändert werden, nur beim eventuellen Entfernen von PHP-Tags (z.B. <?=$TEMPLATE_OUT['foo']?>) sollte man Vorsicht walten lassen.
Die Templatedateien sind so implementiert, das in den meisten Fällen das Ändern der CSS-Dateien unter /path/to/phpopenchat/include/templates/theme_foo/css für ein komplett neues Theme ausreichen sollte.
Es gibt insgesamt zwei verschiedene Typen von Templates
die mit Platzhaltern für den Inhalt (Dateiname 'foo.tpl') - sie werden mit Template::get_template() vom dazugehörigen Skript importiert - und
die ohne solche Platzhalter, in diesen stehen die Inhalte in der jeweiligen Sprache direkt im Template (Dateiname 'bar.tpl.en') - sie werden mit Template::get_language_template() vom dazugehörigen Skript importiert
In den Templates der Form a findet man keine direkten Textausgaben, sondern ausschließlich Platzhalter für diese. Solche Platzhalter für Textausgaben können sein:
<?=TEMPLATE_OUT['foo']?>: Es werden dynamisch ermittelte Inhalte, aus den dazugehörigen Skriptdateien ausgegeben. Meistens sind das numerische Werte.
<?=$_SESSION['translator']->out('BAR')?>: Es werden Texte in der gerade vom Benutzer ausgewählten Sprache ausgegeben. Der Platzhalter BAR muss in allen zurverfügungstehenden Sprachdateien unter /path/to/phpopenchat/include/languages definiert sein. Die Definition erfolgt über ein Define-Statement der From define('BAR','This is an example text.'); innerhalb der Sprachdateien. Zur Zeit sind im Programmpaket die Sprachen Deutsch (de.inc) und Englisch (en.inc) enthalten.
Für eigene Erweiterungen steht eine Vorlage ohne Platzhalter für Textausgaben zur Verfügung.
| skeleton.php, ein PHP-Skript, was beliebig mit PHP-Code ausgebaut werden kann |
| skeleton.tpl.en, das Template für die Sprache Englisch |
| skeleton.tpl.de, das Template für die Sprache Deutsch |
Für eigene Erweiterungen, die die Platzhaltertechnologie, also den POC-Translator ausnutzen wollen, muss
| eine Skriptdatei, ähnlich der index.php innerhalb von /path/to/phpopenchat und |
| eine dazugehörige Templatedatei innerhalb von /path/to/phpopenchat/include/templates/theme_foo angelegt werden. |
Sind mehrere Themes installiert, muss für jedes Theme die Templatedatei existieren!
Um eigene Smileys hinzuzufügen, muss wie folgt vorgegangen werden:
Erstellen einer neuen Grafik foo.gif im GIF-Format mit einer Breite und Höhe von 16 Pixeln.
Kopieren der Datei foo.gif nach /path/to/phpopenchat/include/templates/openchat/images/icons/smileys
Ist ALLOW_TEMPLATE_CHANGES auf TRUE gesetzt, muss die GIF-Datei für jedes Theme nach images/icons/smileys kopiert werden, damit der neue Smiley auch für jedes gewählte Theme verfügbar ist.
Den entsprechenden Smiley-Code :foo: in Line::_smiley_mapping(), innerhalb der case-Anweisung hinzufügen.
Für eine Kontaktanbahnung zwischen Benutzern des PHPOpenChat stehen verschiedene Kanäle zur Verfügung wie,
PHPOpenChat HomePage
http://phpopenchat.org/, http://sourceforge.net/projects/phpopenchat/
Websites, wo der PHPOpenChat erfolgreich eingesetzt wird.