Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

ASPForums 2.1 installieren und anpassen

Geschrieben von: Christoph Wille
Kategorie: ASP Grundlagen

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:

  • Diskussionsthreads mit automatischer Archivierung
  • Das UI kann vollständig angepasst werden
  • Die Nachrichten können WYSIWYG editiert werden
  • Datenbankneutral
  • Darstellung und Code sind vollständig voneinander getrennt - wird die dahinterliegende Engine upgedatet, beinflußt das den eigenen UI Code überhaupt nicht.

Die Basisinstallation

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.

Die Konfigurationsdatei aspforums.asp

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.

Schlußbemerkung

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!

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Einrichten des Snitz Forums
Yet Another Forums Software

Links zu anderen Sites

ASPForums
Changing the backend ASP Forums database to SQL Server

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.