Dokumentation des Forumsmoduls für Zope von netEstate ----------------------------------------------------- (C) netEstate GmbH, www.netestate.de 1. Installation -Voraussetzung für dieses Modul ist ein installiertes Produkt Zopilot - DTML Document mit den DTML-Methoden SeitenKopf und SeitenFuss im Zope-Startverzeichnis. -Importieren Sie Foren.zexp in Ihr Startverzeichnis. -Setzen Sie die Property forenTabellenPrefix des Startverzeichnisses auf den Wert "foren_". Es handelt sich um das Namensprefix für die Datenbanktabellen. Folgende Tabellen werden angelegt: autoren,beitraege, forenliste,,gelesen,themen -Setzen Sie folgende Properties des Verzeichnisses Foren auf die gewünschten Werte: -basisVerzeichnis typ string Installationsverzeichnis des Forensystems. Der Defaultwert /Foren sollte korrekt sein. -tageBisArchivierung typ int Nach dieser Anzahl von Tagen ist ein Artikel nur noch im Modus "Auch archivierte Artikel anzeigen" sichtbar. -beitraegeProSeite typ int Die Anzahl der Beiträge eines Themas die pro Seite angezeigt werden. -nameaenderbar typ bool Gibt an, ob der eigene Name geändert werden kann. Setzen Sie diese Option vorerst auf "true". -emailaenderbar typ bool Gibt an, ob die eigene E-Mail-Adresse geändert werden kann. Setzen Sie diese Option vorerst auf "true". -anmeldenOption typ bool Gibt an, ob eine Anmeldung der Nutzer vorgesehen ist. Diese wird dann auch bei nicht anmeldepflichtigen Foren in der Navigation angeboten, da das System sich nur bei angemeldeten Nutzern merken kann, welche Artikel diese bereits gelesen haben. Setzen Sie diese Option vorerst auf "false". -maxDateienProBeitrag typ int Die Anzahl der Dateien, die zu einem Beitrag hochgeladen werden können. Der Wert 0 ist zulässig, um dieses Feature zu deaktivieren. -maxDateiGroesseKb typ int Die maximale Dateigröße in kb. Beim Wert 0 ist die Dateigröße unbegrenzt. -zulaessigeDateiEndungen typ string Die Liste zulässiger Dateiendungen. Sofern der Wert leer ist sind alle Dateiendungen zulässig. -Rufen Sie das Skript InstallationsSkript auf. -Sofern das netEstate Datenbankinterface installiert ist: Die Tabelle forenliste sollte nun im Datenbankinterface editierbar sein. Fügen Sie die Tabellennamen autoren,beitraege,gelesen sowie themen der Property TabellenAusschliessen des Startverzeichnisses hinzu. -Legen Sie in der Tabelle forenliste das Forum Test an. -Richten Sie auf dem Apache-Webserver eine transparente Umleitung vom Verzeichnis /Foren auf das entsprechende Verzeichnis des Zope-Servers: ProxyPass /Foren http://zopeserver/Servername/Foren -Setzen Sie in Layout/SendeBenachrichtigungsEmail die korrekte Adresse des Mailservers (smtphost=) sowie die korrekte Absenderadresse (From: ). -Binden Sie das Stylesheet Layout/Foren.css in den SeitenKopf ein, z.B. mit: -Rufen Sie http://Servername/Foren/ForenUebersicht auf. Sie sehen das angelegte Testforum und können dort Beiträge schreiben. Durch Klick auf die Option "Moderatormodus" gelangen Sie nach Eingabe der Zope-Zugangsdaten für die Rolle Manager in den Moderatormodus, in dem auch Beiträge gelöscht werden können. Die Zugangsberechtigung für den Moderatormodus ändern Sie durch Anpassung der Sicherheitseinstellungen für die DTML-Methode Layout/UmschalteModerator. 2. Anpassung des Layouts Das Layout des Forensystems kann fast beliebig angepasst werden. Über die DTML-Methoden SeitenKopf und SeitenFuss läßt sich das Layout und die Navigation der eigenen Website einbinden. Die DTML-Templates für den eigenlichen Inhalt liegen im Verzeichnis Layout und können ebenfalls angepasst werden: -Foren.css Stylesheet für das Forumssystem. -ForenKopf/ForenFuss Wird vor und hinter jeden Inhalt des Forumssystems gesetzt. -Optionen Gibt aktuell verfügbare Handlungsoptionen als Link aus. -NeuerBeitragForm Formular zum Verfassen eines neuen Beitrags. -SendeBenachrichtigungsEmail Benachrichtigungsemail für neue Beiträge. -SeitenElement Link zu einer Seite eines Beitrags in der Seitenliste. -ForenUebersicht/Kopf,Fuss Kopf/Fusselement der Forenübersicht. -ForenUebersicht/Element Darstellung eines Forums in der Forenliste. -ThemenUebersicht/Kopf,Fuss Kopf/Fusselement der Themenübersicht eines Forums. -ThemenUebersicht/Element Darstellung eines Themas in der ThemenUebersicht. -BeitragsUebersicht/Kopf,Fuss Kopf/Fusselement der Beitragsübersicht eines Themas (alle Beiträge oder Seitenweise). -BeitragsUebersicht/Element Darstellung eines Beitrags in der Beitragsübersicht. 3. Konfiguration der Foren Die Tabelle forenliste enthält folgende Felder: forumsid Automatisch vergebene interne Kennnummer name Name des Forums nutzergruppen Zugelassene Nutzergruppen (durch Komma getrennt, 'all' für nicht anmeldepflichtige Foren) benachrichtigungsemail Durch Komma getrennte Liste von E-Mail-Adressen, die jeden neuen Beitrag erhalten moderatorgruppen Nutzergruppen, die Beiträge löschen dürfen (durch Komma getrennt, leer lassen falls nicht benötigt) beschreibung Beschreibung des Forums sortierung Die Forenübersicht ist nach sortierung und dann nach name sortiert. 3. Anmeldung Für eine Anmeldung der Nutzer wird die Schnittstelle für anmeldepflichtige Dokumente aus dem Python-Modul webdocument.py verwendet. Bitte lesen Sie die Dokumentation dieses Moduls. Sie müssen folgende Objekte anlegen: -Eine Datenbanktabelle, in der eine numerische Userid und ein Passwort gespeichert sind. Die Userid '0' darf nicht verwendet werden. -Eine DTML-Methode NichtAngemeldet, die nach Nutzernamen und Passwort fragt und ggf. zu einer Registrierungsprozedur linkt. -Das Zielobjekt des Formulars in NichtAngemeldet, welches Nutzernamen und Passwort prüft und bei Erfolg die Variablen ['webdocument']['userID'] sowie ['webdocument']['userGroups'] der aktuellen Session setzt. -Eine DTML-Methode NichtInGruppe, die darüber informiert, dass der Nutzer zu keiner zulässigen Nutzergruppe der Resource gehört. -Eine SQL-Methode SqlHoleNutzerDaten(userid), die Namen und E-Mail-Adresse des jeweiligen Nutzers als Felder 'autorenname' und 'email' zurückliefert. Sobald die Property anmeldenOption gesetzt oder der Nutzer angemeldet ist, wird die Menüoption Moderatormodus nicht mehr angeboten, da dann über die Zugehörigkeit zu den Nutzergruppen festgestellt wird, ob der jeweilige Nutzer ein Moderator für das Forum ist.