Geschrieben von: Christoph Wille
Kategorie: ASP Grundlagen
This printed page brought to you by AlphaSierraPapa
Die besten Dinge im Leben sind gratis - das stimmt zwar nicht, aber zumindest einige gute Software ist tatsächlich gratis. So zum Beispiel ASPForums, das eine einfache, extrem konfigurierbare (Stichwort "Extremkonfiguriering") Forensoftware auf Basis von ASP darstellt.
Nur leider hat gratis auch einen Haken - und wie sooft ist dieser Haken, daß das Forum US-amerikanisch ist, was Sprache als auch Formatierung betrifft. Aber - und das ist das Gute an ASPForums - es läßt sich leicht lokalisieren, und das über Versionsgrenzen hinweg!
Vorweg noch ein kleiner Abriß über die Features, damit man weiß, wozu man sich die Arbeit angefangen hat:
Wenn man die Software downgeloadet hat, muß man im Prinzip nur eines machen - sie in das Verzeichnis seiner Wahl zu entpacken. Bis auf die Konfiguration des Connection Strings war das alles, was man für das Setup des Forums mit einer Access Datenbank benötigt.
In der HowTo Sektion auf ASPForums gibt es eine gute Anleitung, wie man ASPForums in einer SQL Server Datenbank aufsetzen kann: Changing the backend ASP Forums database to SQL Server. Meine Empfehlung geht klarerweise an SQL Server - schneller, stabiler, einfach gut.
Das äußerst lobenswerte an ASPForums ist, daß sich die ganze Konfiguration in einer einzigen Datei abspielt, nämlich aspforums.asp. Mitgeliefert wird eine sehr spärliche Version:
<!-- #INCLUDE file="discussionengine/adoconsts.asp" --> <!-- #INCLUDE file="discussionengine/discussionengine.asp" --> <SCRIPT LANGUAGE="JavaScript" RUNAT="Server"> currentUsername_disc = "Unset"; currentUserFullName_disc = "Name Unset"; currentUserEmailAddress_disc = "unset@unset.com"; isAdministrator_disc = false; config.emailAdminAddress = ""; // config.ADMINSETTING_DatabaseDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath (config.ADMINSETTING_DatabaseFilename) </SCRIPT>
Das geübte Auge erkennt, daß das JScript ist, und zwar serverseitiges. Wer jetzt in Panik ausbricht, dazu gibt es keinen Grund - wir werden Schritt für Schritt alles einbauen, was man braucht - und dann muß man JScript nie wieder angreifen.
Ich habe einige Dinge mit der Datei aspforums.asp angestellt - beinahe alle HowTo's implementiert, das Forum zwecks intimeren Kennenlernens selbst übersetzt, und das Design angepasst, weil das Standarddesign sehr mühsam ist. Alles in allem ein Grundstock, den man dann mit Suchen und Ersetzen an die eigenen Bedürfnisse anpassen kann.
<!-- #INCLUDE file="discussionengine/adoconsts.asp" --> <!-- #INCLUDE file="discussionengine/discussionengine.asp" --> <SCRIPT LANGUAGE="JavaScript" RUNAT="Server"> currentUsername_disc = ""; currentUserFullName_disc = ""; currentUserEmailAddress_disc = ""; // das sollte man gegen "richtige" Loginformulare eintauschen isAdministrator_disc = false; config.emailAdminAddress = ""; config.ADMINSETTING_ForumName = "Diskussionsforum für Haflingerfreunde"; config.ADMINSWITCH_AllowEmailResponses = true; config.ADMINSETTING_EmailAlertSignature = "--\nDiese Nachricht wurde..."; // Jede gepostete Nachricht wird an diese Adresse geschickt config.ADMINSETTING_EmailAdminAddress = "forumadmin@myhaflinger.com"; config.ADMINSETTING_EmailAlertFromName = "Haflingerfreunde Forum"; config.ADMINSETTING_EmailAlertFromAddress = "forum@myhaflinger.com"; config.ADMINSETTING_EmailAlertSignature = "--\nDiese Nachricht ..."; config.ADMINSETTING_EmailAlertSignatureHTML = "<FONT FACE=\"Tahoma,Arial,..."; config.ADMINSETTING_DaysMessagesActive = 90; config.ADMINSETTING_ExpandFirstNThreads = 5; config.ADMINSETTING_DefaultEmbeddedLinkTarget = "_new"; config.ADMINSWITCH_ShowEmailAddresses = true; config.ADMINSWITCH_ViewPostsAscending = false; config.ADMINSETTING_ExpandImagePathname = "/forum/plus.gif"; config.ADMINSETTING_ExpandImageWidth = "9"; config.ADMINSETTING_ExpandImageHeight = "9"; config.ADMINSETTING_CollapseImagePathname = "/forum/minus.gif"; config.ADMINSETTING_CollapseImageWidth = "9"; config.ADMINSETTING_CollapseImageHeight = "9"; config.ADMINSETTING_NoExpandImagePathname = "/forum/blank.gif"; config.ADMINSETTING_NoExpandImageWidth = "9"; config.ADMINSETTING_NoExpandImageHeight = "9"; config.ADMINSETTING_DatabaseDSN = "provider=sqloledb.1;initial catalog=myhaflinger; [continued] data source=strangelove;UID=sa;PWD="; </SCRIPT> <!--#include file="customrenderes.asp"--> <!--#include file="languagepack.asp"--> <!--#include file="customdates.asp"-->
Fangen wir von unten nach oben an - es sind drei Includes dazugekommen (im Download des heutigen Artikels enthalten). Die letzten zwei sind dann interessant, wenn man die Meldungstexte des Forums anpassen möchte. Das erste definiert das Aussehen der meisten Formulare von ASPForums, und ich habe hier hemmungslos aus den HowTos "geborgt" - man erhält viel Beispielcode, wie die einzelnen Formulare umgebaut werden können. So zum Beispiel sieht eine "cool" formatierte Nachricht aus:
Die restlichen "paar" Konfigurationseinstellungen habe ich so gut es geht nach Zusammengehörigkeit gruppiert. Nach dem Connectionstring für SQL Server folgt ein Block mit Definitionen für kleine Symbolbilder (blank, plus, minus) - diese werden in der Baumansicht des Forums verwendet:
Der Block
config.ADMINSETTING_DaysMessagesActive = 90; config.ADMINSETTING_ExpandFirstNThreads = 5; config.ADMINSETTING_DefaultEmbeddedLinkTarget = "_new";
definiert die Anzahl der zu expandierenden Threads, als auch wann eine Nachricht in das Archiv verschoben wird. Und - da Links in Nachrichten erlaubt sind - auch das Linktarget ist definierbar.
Die beiden Zeilen
config.ADMINSETTING_EmailAlertSignature = "--\nDiese Nachricht ..."; config.ADMINSETTING_EmailAlertSignatureHTML = "<FONT FACE=\"Tahoma,Arial,...";
habe ich zwar etwas verkürzt, aber der Sinn ist folgender: immer wenn das Forum eine Nachricht per Email schickt, soll je nach Text oder HTML Emaileinstellung eine Fußzeile mitgeschickt werden.
Ebenso zum Konfigurieren der Nachrichten dienen folgende Zeilen:
config.ADMINSETTING_EmailAdminAddress = "forumadmin@myhaflinger.com"; config.ADMINSETTING_EmailAlertFromName = "Haflingerfreunde Forum"; config.ADMINSETTING_EmailAlertFromAddress = "forum@myhaflinger.com";
Die erste Zeile definiert daß für jede gepostete Nachricht eine Kopie davon per Email an diese Adresse - oder durch Strichpunkte getrennte Adressen - geschickt werden soll, damit der Listmaster automatisch über neue Nachrichten informiert wird. Der Name des Senders als auch die Emailadresse des Senders werden in den nachfolgenden zwei Zeilen definiert.
Bleibt noch
config.ADMINSETTING_ForumName = "Diskussionsforum für Haflingerfreunde"; config.ADMINSWITCH_AllowEmailResponses = true;
Unverkennbar ist Zeile eins - der Name des Forums, der auf jeder Seite aufscheint. Die darauffolgende Zeile definiert, ob man sich Antworten auf das eigene Posting per Email zuschicken lassen kann. Dies zeigt sich dann als Checkbox auf der Seite der Nachrichtenerstellung:
In diesem Screenshot sieht man, warum ich von tollen Editierfunktionen für Nachrichten gesprochen habe!
Last but not least die ersten drei Zeilen:
currentUsername_disc = ""; currentUserFullName_disc = ""; currentUserEmailAddress_disc = "";
Warum setze ich die auf leere Strings? Da ich beim Forum kein Login habe, möchte ich, daß der User alle diese Daten eintippen muß - allerdings habe ich aus Username den Nickname gemacht (ersichtlich im vorangehenden Screenshot).
Das waren die wichtigsten Änderungen in aspforums.asp - Änderungen in den eigentlichen ASP Dateien des Forums sind nicht notwendig. Das trifft auch für das Forum der Haflingerfreunde zu, von dem der heute vorgestellte Sourcecode stammt.
ASPForums ist ein hervorragendes Beispiel, was mit man JScript am Server so alles "anstellen" kann. Ich kann nur jedem empfehlen, sich den Sourcecode mal im Ruhe zu Gemüte zu führen - von diesen Tricks kann man nur lernen!
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010207.zip
Einrichten des Snitz Forums
http:/www.aspheute.com/artikel/20010201.htm
Yet Another Forums Software
http:/www.aspheute.com/artikel/20020502.htm
ASPForums
http://www.aspforums.com/ASPForums/
Changing the backend ASP Forums database to SQL Server
http://www.aspforums.com/ASPForums/howto/sqlserver.asp
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.