banner.jpg
Web-Development und Tools Powered by WebSellerTM

 

Home

Praxis-Tips
  Umlaute/UTF-8
  Normalisierung
  OemToAnsi
  MySQL-Import
  Site-Suche
  City Desk
  DynDNS
  MXLookup
  SPAM

SDT

Support
  Downloads
  Kontakt

Impressum

Englisch

RSS Feed

Suche:

Web Search

Made with CityDesk


Forumware

Von Uwe Holz
Letzte Änderung: Montag, 04. August, 2003

Mehr Informationen zum WebSeller Online Shop sowie den Download finden Sie auf http://www.webseller.de.

Ein Diskussionsforum zum Meinungsaustausch und Know-How-Transfer ist ein wichtiges Kennzeichen von Webseiten mit gutem Produkt-Support. Als es darum ging, wie das am besten zu realisieren sei, kam ich auf die Idee, den WebSeller dafür zu "missbrauchen". Und tatsächlich, es klappt prima. Der WebSeller ist weit mehr als nur ein Shop-Baukasten. Der folgende Beitrag zeigt, wie es geht.

Als Datenbank dient, wie sollte es anders sein, MySQL. Sie ist wie der WebSeller (Standard Edition) für alle gängigen Plattformen verfügbar. Der Inhalt des Forums kann in folgenden Tabellen verwaltet werden:

  • Tabelle topic für die Themen
  • Tabelle message für die einzelnen Beiträge

Tabellenstrukur

Die Strukturen sehen so aus:

CREATE TABLE topic (
  TOPIC int(10) unsigned NOT NULL auto_increment,
  CAPTION char(80) NOT NULL,
  POST_DATE bigint(20) NOT NULL default 0,
  LANGUAGE enum('ger','eng') NOT NULL default 'ger',
 PRIMARY KEY (TOPIC));

CREATE TABLE message (
  MESSAGE int(10) unsigned NOT NULL auto_increment,
  BODY text NOT NULL,
  TOPIC int(10) unsigned NOT NULL default 0,
  POST_DATE bigint(20) NOT NULL default 0,
  AUTOR varchar(64) NOT NULL,
  MAILTO varchar(64) NOT NULL,
 PRIMARY KEY (MESSAGE));

Die Relation zwischen beiden Tabellen wird über das Feld TOPIC hergestellt. 

Webseller-Konfiguration

Insgesamt werden im Prinzip acht Funktionen (CGI-Skripte) benötigt, um ein Forum aufzusetzen:

  • DEFAULT - Anzeige aller Themen
  • RECENT_TOPICS - Anzeige der neuesten Themen
  • VIEW_TOPIC - Anzeige aller Beiträge eines Themas
  • REPLY_TOPIC - Formular zur Eingabe der Antwort auf ein Thema
  • NEW_TOPIC - Formular zur Eingabe eines neuen Themas
  • SAVE_TOPIC - Abspeichern eines Beitrages
  • SAVE_NEW_TOPIC - Abspeichern eines Beitrages für ein neues Thema
  • SEARCH - Forumsuche

Der WebSeller bietet die Möglichkeit, derartige Funktionen zu definieren, ohne sie wirklich schreiben zu müssen. Stattdessen sind in der Konfigurationsdatei webseller.ini lediglich entsprechende Einträge anzulegen. Jeder Eintrag muss folgende Parameter besitzen:

  • Response - Html-Template, das zur Generierung der Antwortseite dient.
  • Action - Webseller-Basisfunktion, die aufgerufen werden soll (Link, TableUpdate, Login, SetLanguage ...).
  • Select - SQL-Anweisung, deren Ergebnismenge zur Generierung der Antwortseite auf der Basis des vorgegebenen Templates benutzt wird.
  • Id - Tracking-ID zur Identifizierung der aktuellen Sitzung bzw. des Benuters.

Die Funktionen DEFAULT und  RECENT_TOPICS können beispielsweise so definiert werden:

[SCRIPTS]
DEFAULT=action=Link&response=forumview.html&ID=-ID-&select=topics
RECENT_TOPICS=action=Link&response=recentview.html&ID=-ID-&select=alltopics

Die eigentlichen Select-Anweisungen (in diesem Fall topics und alltopics) sind in einer separaten Sektion definiert und werden in Funktionen nur mit einem Token referenziert. Dadurch wird verhindert, dass die URLs zum Aufruf des WebSellers zu lang werden:

[SELECT]
...
TOPICS=SELECT * FROM topic WHERE LANGUAGE='-LANGUAGE-' \
    ORDER BY POST_DATE DESC
ALLTOPICS=SELECT * FROM topic ORDER BY POST_DATE DESC

Die genauen Funktionsdefinitionen finden Sie in der Konfigurationsdatei, die im Downloadarchiv enthalten ist.

Die Definition der Funktionen in der Ini-Datei macht es möglich, dass z.B. der Aufruf

/cgi-bin/webseller.cgi?action=action=Link&response=recentview.html&ID=-ID-&select=alltopics

innerhalb eines Response-Templates lediglich mit

-SCRIPT-RECENT_TOPICS-

dargestellt werden kann. Dadurch wird die Pflege der Templates wesentlich einfacher und übersichtlicher.

 

Link auf das Forum

Der Link in das Forum erfolgt durch den Aufruf des CGI-Skriptes WebSeller, z.B.:

/cgi-bin/webseller.cgi     

Ohne weitere Parameter wird der Skript ausgeführt, der als DEFAULT ind der Konfiguration definiert ist. Falls Sie die Beiträge nach Sprachen unterscheiden, wie es in diesem Forum der Fall ist, so sehen die Links etwas anders aus:

  • Link ins englische Forum:
    /cgi-bin/webseller.cgi?action=SetLanguage&newlanguage=eng&location=DEFAULT
  • Link ins deutsche Forum:
    /cgi-bin/webseller.cgi?action=SetLanguage&newlanguage=ger&location=DEFAULT

Beispieldateien

Die Dateien zur Implementierung des Forums auf dieser Webseite befinden sich in der Archivdatei forum.zip. Passen Sie die fiktiven Werte mydomain.com bei E-Mail-Adressen, Mailsserver and Hompage-URL an Ihre Umgebung an und beachten Sie bitte, bei der Realisierung die Webseller-Version 3.1.104 (oder höher) zu benutzen.

Ich muss sicherlich nicht erwähnen, dass ich zur Verwaltung der Forumdaten SqlDBU benutzte. Selbstverständlich kann auch myPhpAdmin oder jedes andere MySQL-Tool verwendet werden.