Plug:Samson:Samson-User:doc:de
From phpCMS
Contents |
[edit] Dokumentation
[edit] Schnellinstallation
- Archiv samson-user.zip in das Plugin-Verzeichnis entpacken. Am besten dort ein neues Verzeichnis anlegen.
- Pfade in index.php anpassen. Zeilen 9 und 22 bis 27.
- Plugin im Template ganz vorn einbinden: {PLUGIN FILE="Pfad/index.php" TYPE="DYNAMIC"}. Das Plugin muß auf jeden Fall zuerst aufgerufen werden !
- [--SAMSONUSERPM--] dort ins Template schreiben, an der Ausgaben wie die Benutzerliste und der Nachrichtenfunktion erscheinen sollen.
- [--SAMSONUSER--] dort ins Template schreiben, wo die Links zum Login, Logout usw. angezeigt werden sollen. Hier erscheint auch die Login-/Registrierungsbox.
- Das Plugin sollte jetzt korrekt eingebaut sein und funktionieren. Bei der Registrierung wird das Passwort übrigens per Email verschickt. Alternativ kann man auch in data/members.dat das Passwort nachlesen - falls ein Emailversand gescheitert sein sollte.
[edit] FFDB-Textdatenbank
Das Plugin nutzt die Flat File Database von John Papandriopoulos. FFDB ist im Archiv ohne Dokumentation enthalten.
[edit] Installation
[edit] Entpacken des Archivs
Beim Berliner Schachverband nutze ich folgende Verzeichnisstruktur:
[1] /parser/plugin/samson-user [2] /template
Entpacke den Archivinhalt in das Verzeichnis [1].
Verschiebe jetzt den Inhalt von Unterverzeichnis 1 in folgende Verzeichnisse:
class.bbcode.php -> /parser/include class.tparser.php -> /parser/include ffdb.inc.php -> /parser/include plug_email.tpl -> /template plug_form.tpl -> /template
Sie können natürlich auch andere Verzeichnisse verwenden. Der Einfachheit halber bleibe ich bei meiner Struktur.
Die beiden tpl-Dateien speichere ich in /template, weil diese noch von anderen Skripten und Plugins benutzt werden.
[edit] Pfade bearbeiten
Öffnen Sie index.php und ändern Sie ggfs. folgende Zeilen:
[9] $Pluginpfad = $PHP->GetDocRoot()."/parser/plugin/samson-user";
[10] $Admins = array("Webmaster","Dennis");
[22] include_once($PHPCMS_INCLUDEPATH."/class.tparser.php");
[23] include_once($PHPCMS_INCLUDEPATH."/ffdb.inc.php");
[24] include_once($PHPCMS_INCLUDEPATH."/class.bbcode.php");
[25] $Templatedatei = $SMU["Templatepfad"]."/benutzer.tpl";
[26] $Mailtemplatedatei = $PHP->GetDocRoot()."/template/plug_email.tpl";
[27] $Formtemplatedatei = $PHP->GetDocRoot()."/template/plug_form.tpl";
Wenn Sie dieselbe Verzeichnisstruktur wie ich haben, können Sie diese Einstellungen natürlich beibehalten.
Zeile [10] können Sie bei der Gelegenheit gleich mit ändern. Hier stehen die Benutzernamen der Admins, deren Accounts natürlich noch garnicht existieren, weil die Benutzerdatenbank noch leer ist. Wenn Sie sich jetzt als Webmaster oder Dennis registrieren, sind Sie automatisch Admin !
[edit] Weitere Konfiguration
Öffnen Sie jetzt die Datei config.php und passen Sie dort die Einstellungen an:
[2] $SMU["Pluginpfad"] = $Pluginpfad;
[3] $SMU["Templatepfad"] = $Pluginpfad . "/template";
[4] $SMU["Datenpfad"] = $Pluginpfad . "/data";
[5] $SMU["Grafikpfad"] = $Pluginpfad . "/pics";
[6] $SMU["Bibliothek"] = $Pluginpfad . "/library.php";
[8] $SMU["Gastbenutzer"] = "Gast";
[9] $SMU["Gastpasswort"] = "Gast";
[10] $SMU["Admin"] = "Webmaster";
[11] $SMU["Gesperrt"] = array("gast","guest");
[12] $SMU["Sitzungszeit"] = 3600;
[13] $SMU["Mitgliederliste"] = FALSE;
[14] $SMU["MitgliederJeSeite"] = 20;
[16] $SMU["Speicherdauer"] = 3600 * 24 * 30
Das Plugin nutzt nicht alle Einstellungen, die hier genannt sind (eben halt eine Entwicklungsversion ...).
[2]-[6] Wichtig sind diese Pfade, wobei der Grafikpfad nicht genutzt wird.
[8]-[9] Hier werden die Cookiedaten für Gäste zugewiesen. Hier habe ich aber schon daran gearbeitet, das dann überhaupt keine Cookies gespeichert werden.
[10] Legt den Webmaster fest, wobei diese Variable nicht mehr genutzt wird.
[11] Legt die Namen für gesperrte Usernamen fest. Groß- und Kleinschreibung wird dabei nicht unterschieden. Besucher können sich nicht mit diesen Namen anmelden.
[12] Legt die Sitzungszeit in Sekunden fest (hier 1 Stunde). Jeder angemeldete Benutzer wird mit der Zeit seiner letzten Anforderung gespeichert. Liegt die länger als die Sitzungsdauer zurück, wird eine Sitzung addiert. Die Anzahl der Sitzungen kann man sich in der Benutzerliste anschauen.
[13]-[14] Sind nicht in Gebrauch.
[16] Hier wird die Lebensdauer von gelesenen Nachrichten in Sekunden festgelegt (30 Tage).
[edit] Einbindung in phpCMS
Ich habe beim Berliner Schachverband mein Template in mehrere Subtemplates aufgeteilt. Mein Haupttemplate sieht wie folgt aus:
[1] {TEMPLATE FILE="web_header.tpl"}
[2] {TEMPLATE FILE="spalte_werbung.tpl"}
[3] {TEMPLATE FILE="web_contentoben.tpl"}
[4]
[5] [--SAMSONUSERPM--]
[6] <!-- PHPCMS CONTENT START -->
[7] <!-- ISEARCH##_BEGIN_INDEX -->
[8] {CONTENT0}
[9] <SEITENTITEL "{TITEL}">
[10] <AUTORNAME>
[11] <!-- PLUGIN:SAMSON-TICKER ADMIN -->
[12] {CONTENT}
[13] {SCRIPT}
[14] {SEARCHRESULT SEARCHTEMP="SUCHE"}
[15] {CONTENT_PLUGIN_0}
[16] <!-- ISEARCH##_END_INDEX -->
[17] <!-- PHPCMS CONTENT STOP -->
[18]
[19] {TEMPLATE FILE="web_contentunten.tpl"}
[20] {TEMPLATE FILE="spalte_suche.tpl"}
[21] {TEMPLATE FILE="web_footer.tpl"}
Wichtig sind folgende Zeilen:
[1] Einbindung des Subtemplates web_header.tpl. In diesem Subtemplate ist der Pluginaufruf eingebaut
[5] An dieser Stelle wird die Ausgabe des Plugins eingesetzt - und zwar die Ausgabe der Benutzerliste und der Nachrichtenfunktion.
[21] Im Subtemplate web_footer.tpl gebe ich die zweite Ausgabe des Plugins aus: das Registrierungs- bzw. Loginformular und die Links zur Benutzerliste, zur Nachrichtenfunktion usw.. Der Platzhalter dafür ist [--SAMSONUSER--].
[edit] Pluginaufruf
web_header.tpl sieht bei mir so aus:
[1] {PLUGIN FILE="/parser/plugin/samson-user/index.php" TYPE="DYNAMIC"}
[2] {PLUGIN FILE="/parser/plugin/lastmod/lastmodtag.php" TYPE="STATIC"}
[3] {PLUGIN FILE="/parser/plugin/verwandte/verwandte.php" TYPE="STATIC"}
[4] {PLUGIN FILE="/parser/plugin/argv.php" TYPE="DYNAMIC"}
[5] {PLUGIN FILE="/parser/plugin/editor/index.php" TYPE="DYNAMIC"}
[6] {PLUGIN FILE="/parser/plugin/ticker/index.php" TYPE="STATIC"}
[7] {PLUGIN FILE="/parser/plugin/translate/translate.php" TYPE="STATIC"}
[8] <html>
[9] <head>
[10] <title>Berliner Schachverband :: {TITEL}</title>
...
[1] Der Aufruf des Plugins hat Vorrang vor allen anderen Pluginaufrufen und dem HTML-Code.
[edit] Templates bearbeiten
[edit] Template benutzer.tpl
[edit] {TABELLE.PRE}
Vorhergehende Ausgabe für den Template-Platzhalter [--SAMSONUSER--]
[edit] {TABELLE.PAST}
Nachfolgende Ausgabe für den Template-Platzhalter [--SAMSONUSER--]
[edit] {LOGINFORM}
Loginformular für den Template-Platzhalter [--SAMSONUSER--]
[edit] {REGISTERFORM}
Registrierungsformular für den Template-Platzhalter [--SAMSONUSER--]
[edit] {ADMINS}
Adminmenü für den Template-Platzhalter [--SAMSONUSER--]
[edit] {MITGLIED}
Benutzermenü für den Template-Platzhalter [--SAMSONUSER--]
[edit] {MITGLIED.?}
Fehlermeldungen für den Template-Platzhalter [--SAMSONUSER--]
[edit] {PROFILEDITOR}
Profilformular für den Template-Platzhalter [--SAMSONUSER--]
[edit] {PM.NEU}
"Neue Nachrichten"-Meldung für den Template-Platzhalter [--SAMSONUSER--]
[edit] {PM.?}
Diese Abschnitte (außer PM.NEU und PM.ADMIN) legen das Aussehen der Nachrichtenansicht fest. Die Ausgabe erfolgt über den Template-Platzhalter [--SAMSONUSERPM--]
[edit] {PM.ADMIN.?}
Texte für die Registrierungsmail
[edit] {USERLISTE.?}
Layout der Benutzerliste für den Template-Platzhalter [--SAMSONUSERPM--]
[edit] Funktionsbeschreibung
[edit] Nachrichtenfunktion
Wenn man beim Berliner Schachverband auf den vom Plugin generierten Link zu den Nachrichten klickt, bekommt man anstelle von [--SAMSONUSERPM--] Folgendes zu sehen:
Im Beispiel habe ich keine Nachrichten erhalten, aber dafür welche verschickt (automatische Registrierungsmail), die größtenteils ungelesen blieb. Der Benutzer Morgenrot hatte darauf geantwortet, aber meine Antwort nicht gelesen.
Gelesene Nachrichten werden nach 30 Tagen gelöscht (s.o.).
Unter der Nachrichtenliste erscheint das Eingabeformular für eine neue Nachricht an einen beliebigen Benutzer bzw. eine Antwort.
Die Benutzer werden bei neuen Nachrichten nicht per Email informiert, bekommen aber einen Hinweis auf der Website bei neuen Nachrichten.
[edit] Benutzerliste
Administratoren können die Benutzerliste einsehen. Eine Änderung der Daten ist (noch) nicht möglich.
Neben dem realen Namen (falls angegeben) erscheint die Zeit des letzten Besuchs, die Anzahl der Sitzungen und das Registrierungsdatum.
[edit] Registrierungsmail
Im Template benutzer.tpl in den Abschnitten {PM.ADMIN.BETREFF} und {PM.ADMIN.BETREFF} legen Sie den Text für die Registrierungsmail fest.
Jeder neu registrierte Benutzer bekommt solch eine Email zugeschickt. Darin stehen auch die Zugangsdaten für die Website.
[edit] Nutzung der Zugangsdaten durch andere Skripte/Plugins
[1] <?
[2] $Skriptbenutzer = $SmuBenutzer;
[3] if($Skriptbenutzer=="Gast") $Skriptbenutzer="";
[4] $Admins = array("Webmaster","Dennis");
[5] $Adminuser = in_array(Skriptbenutzer,$Admins);
...
In diesem Beispielskript wird das vom Plugin geprüfte Cookie $SmuBenutzer abgefragt und mit den berechtigten Benutzern (Zeile 4) verglichen (Zeile 5). Berechtigt für die Benutzung des Beispielskriptes wären hier die Benutzer Webmaster und Dennis.
[6] if($Adminuser) {
[7] echo "Sie sind berechtigter Benutzer für dieses Skript";
[8] }
[9] else {
[10] echo "Sie haben keine Berechtigung für dieses Skript";
[11] }
...
--Samson 18:14, 2 Dec 2004 (CET)
Main Page: Plugin Documentation MainPage | Top Page: Plug:Samson:Samson-User



