bttlxeForum - Advanced ASP Forum Software






4.95/5 (71 votes)
Feb 14, 2002
13 min read

1276165

6354
bttlxeForum is a freely available feature rich database-driven Internet forum solution written entirely in Active Server Pages.
Contents
Introduction
bttlxeForum 2.0 is free software for providing extensive online forums to web users. The software can be easily configured to suit uses ranging from product support web sites to bustling web communities, and has been designed in such a way to allow its functionality to be used even with heavy customisation.
The latest version of bttlxeForum can be seen in action at http://forums.bttlxe.com/.
Overview
This article attempts to show not only how to get bttlxeForum running for you but also to explain how the software works and can be developed for. It is hoped that readers will feel confident enough after reading to dig into the source code and start working with the software rather than simply using it.
The software is written using Active Server Pages and JScript and so targets
the Microsoft Windows server platform. It may be possible to use it successfully
on another platform with the aid of an ASP emulator but such usage is not
supported. bttlxeForum makes extensive use of CSS1 and modular page components
to make it simple and logical for an experienced web developer to fully
customise the appearance of the forums.
Considerations
No assumptions of familiarity with bttlxeForum are made, but the reader should be confident with the way Internet software and web sites work, and general web development terms and techniques. An understanding of online forum software would be advantageous but is not critical.
It is not recommended that you upgrade previous versions of bttlxeForum to
2.0. Future upgrades will be handled by the software.
Features
bttlxeForum 2.0 has many unique features and lots of enhancements over previous versions:
General
- Software-based installer that can download the latest version and configures the scripts for uploading to your web server.
- Support for installation in multiple languages
- Templates/Themes can be applied with one click to totally define the visual appearance of the forums. Custom templates are easy to create to slot the forums into your existing web site design.
- Confirmed to work flawlessly in the latest versions of Internet Explorer, Mozilla, the Mozilla Firebird project and Opera (dynamic views behave as normal views in all but Internet Explorer 4.0 or later)
- Can currently use SQL Server 2000 or Microsoft Access to store its data
- Unlimited number of members, forums, groups and messages
- Full classic ASP/Jscript source code provided
Forums
- Active User list listing who's currently in the forums
- User definable forum views, ranging from the more traditional threaded views to the tree based views as used here on CodeProject
- Polls can be inserted with new threads
- Can be made private (only visible/accessible to members of a certain group)
- Collapsible forum categories
- Authors can choose to be notified by e-mail when they receive replies
- Forum Code (similar to safety-restricted HTML mark-up) can be used to enhance messages
- Toolbars for emoticons and common Forum Codes are shown when posting a message using a supported Internet browser
- Can be searched for keywords by forums, by user or by category
- Allows moderation rights to authorised members
- Protection against message flooding
- Entire threads or individual messages can be deleted or locked by moderators
- Bad word censor
Groups
- Group moderators can add and remove members from a group
- Can be given permissions ranging from forum moderation to restricted forum access (which can be used to hide forums from non-members)
- Can be either public or private (private group members are not viewable)
- Private Messages can easily be sent to all group members
Users
- Can be of either Member, Moderator or Administrator user account types (which are granted forum-wide permissions respectively)
- Private Messages can be sent between users
- Can include Instant Messaging details in their public profiles
- Can include a photo, biography and web site link in their public profiles
- Can define a display name to be their public name instead of their account name
- Can define a custom signature to be used in their messages
- Can choose not to have their e-mail address shared with other members (the default)
- Must activate their accounts before they can use them to validate e-mail
addresses
Administration
- If it exists it can be configured
- Users can be viewed, updated and deleted
- Forums can be created, updated and deleted; categories can be defined
- Groups can be created, updated and deleted; group moderators can be assigned
- Members can be added to groups and groups can be granted permissions in forums
- Forum-wide settings such as the installation name, settings, mail server, default forum view, etc, can be set
- Old member accounts can be purged from the database, either if they have not been used in the last year or if they were created but not activated within the last week
- Automatic forum updating - one click will check if an update is available
and let you download it immediately
Misc. changes over previous versions
- Modified all date stamps to use a generic date/time format that will work in all locales
- Validation protection against common SQL Injection attacks
Requirements
- Microsoft Windows 2000/ Windows XP Professional/Windows Server 2003 (Windows XP Home is not supported).
- Microsoft IIS v5.0 or newer
- Microsoft SQL Server v2000 (or MSDE 2000) database or Microsoft Access 95 or later database (additional database types are planned and can be supported)
- Approximately 3mb hard drive space for web files (source code and image
files)
Installation
The release of bttlxeForum 2.0 is provided with this article in a convenient zip archive. Once downloaded extract the contents of the zip archive to a temporary directory. The software now needs to be installed to set it up correctly for your target environment by running the bttlxeForum.exe setup program. Follow the remainder of the installation steps as guided by the setup program.
(For the following sections "offline" means installed on your local development machine or internal network and "online" means installation on a live web server.)
Offline
During the installation you will have specified your local development machine or server name and the location the scripts would be installed to on that machine. You should locate your now-configured installation of bttlxeForum and copy it in the correct location on the target machine.
If you have not previously done so, for example if the forums are not being added to an existing web site, create a web site or virtual directory with Internet Information Services on the target machine that exposes the installation.
Access the target directory through a web browser and run the onetimesetup.asp script to complete the installation. The script is automatically deleted after execution if your access permissions allow it, but if not you must delete it manually.
If you completed the process correctly the software should be able to detect
it is being accessed offline and ensure that all relevant links and database
connections are correct for the installation.
Online
Again during the installation you will have specified your live web server name and the location the scripts would be installed to on that machine. You should locate your now-configured installation of bttlxeForum and copy or upload it in the correct location on the target machine.
(Note if uploading via FTP: ensure that any image files and/or database files are uploaded as binary files. If your installation choices require it there may be a ReadMe.txt file accompanying your installation that will explain any directories that need special access permissions or locations.)
Access the target directory through a web browser and run the onetimesetup.asp script to complete the installation. The script is automatically deleted after execution if your access permissions allow it, but if not you must delete it manually.
If you completed the process correctly the software should be able to detect
it is being accessed online and ensure that all relevant links and database
connections are correct for the installation.
Advanced Note
If you wish to use the same database for both offline and online
installations, or wish to make changes to your configuration before you run the
onetimesetup.asp script, you can edit the database connection string and
associated details in the createdatabase.asp file in the target
directory. Note that changes to the connection string will need to be copied to
the appropriately named files in the /include/config directory.
Usage
This section will provide basic walkthroughs of a typical end user and administrator.
End User Walkthrough
The main page of the forum software shows a list of the available forums that are visible to the current user (logged in anonymously or with a member account) organised according to their category. The user chooses a forum to view it's messages.
When viewing a forum the messages, format and actions that are shown to the user will be determined by their current "view" settings that can be seen and changed at any time from the top of the message list. The user can search that forum for keywords by entering search terms into the search box, or can search the forums with more advanced criteria using the separate "Search" page.
If allowed new messages and replies can be created, and formatting options shown to the user to aid them in formatting their message.
Users can send private messages to other members that will be sent to their virtual mailbox within the software.
A users public profile contains the personal information that they explicitly choose to expose to other users, such as their name and e-mail address.
Administrator Walkthrough
The Forum Administration pages are made available when logging on using an Administrator account and provide easy access to all the important areas of the software:
bttlxeForum configuration
View and modify the global bttlxeForum settings such as the site name, e-mail server, default user settings and whether the site is live or disabled for maintenance.
Template Configuration
Change the template/theme being used. Installed templates will be shown as a list that you can choose from.
Members
View either summary or detailed views of your registered forum members
including links to update their information.
Forums
Add, remove or modify forums and their categories, and manage group access
and permissions to specific forums.
Groups
Add, remove or modify groups and manage group members.
Clean Member Accounts
This lets you remove users who never activated their accounts or those who have not used their accounts in the last year from the database.
Help and Tips
View helpful information and tips for administering the bttlxeForum software. Currently this page links to this article and the online support forums.
Update Scripts
bttlxeForum 2.0 includes a new method for updating the software by
automatically upgrading the software and your databases when a new version is
published. These pages will tell you more and guide you through any update if
available.
Development
This section outlines the structure of the forum software and where various actions are performed.
Organisation
The scripts are split into six sections according to their task that are reflected in the directory structure:
- Admin - All administration tasks are in this section; from managing forums to setting up group permissions and checking for updates to the software.
- Forum - The front-end viewing and forms for adding messages to forums. The code to perform tasks such as getting and displaying messages are in the Utils section.
- Include - Files included in the other sections, such as the database configuration and path information.
- MyAccount - All scripts relating to the user accounts and user tasks are in this section, such as profiles, private messages and account maintenance.
- Templates - Contains subdirectories for each installed theme the software can use. The Templates directory contains further instructions for working with themes and templates.
- Utils - This section, split into further sub directories, contains
most of the actual code for the software.
Where To Look
Using the organisation information above it should be easy to find the section in which specific functionality is implemented or should be added. The scripts in each section are named so as to be self-descriptive to their purpose, for example a script that inserts new forum messages would be called new.asp and be located in the Forums section.
Consider the following examples:
- If you want to add a new field that users can include in their public profiles you would look for the profile scripts in the MyAccount section.
- If you want to modify the Frequently Asked Questions for the forum you would look for the FAQ script in the Forum section.
- If you want to install a new template, or modify an existing one, you would look in the Templates section.
- If you want to define a new "view" for displaying messages in a forum you
would look in the "views" directory in the Utils section.
Known Issues
- The advanced search results are sorted by thread and forum first and then by date.
- Some installations will require tweaking to work, typically if you use a
non-standard web server configuration or a remote database.
License
bttlxeForum 2.0 is licensed software. You must agree to the full license when you install the software but for quick reference the summarised version is shown here:
You are permitted to use or hold the software free of charge for any purpose, including learning and modification, but not to pass it on at cost to another party or claim ownership.
If you make changes to the software and wish to release them in source code
form to another party then you must obtain permission to do. There are some
other conditions to and restrictions on using the software that are outlined in
the opening sections of the full license.
Credits
I would like to thank:
- The bttlxeForum beta testers, for helping to find, squash and prevent bugs from creeping into this release as well as numerous feature suggestions, and for the patience in seeing the beta test through.
- Jason Jystad, for the script behind much of the dynamic entry controls for inputting messages.
- Chris Maunder and Uwe Keim for some of the underlying code and idea.
- James Shaw, for one of the best ASP resources I've found on the net, www.coveryourasp.com, and for the code behind some of the features of the software.
- Everybody who has been waiting over a year for this release!
Finally I would like to thank the owners of CodeProject.com for continuing to provide such a wonderful resource for developers at no cost to its members.
History
12 June 2004 - Third release of this article to accompany version 2.0 of the software being released. A complete rewrite - too many changes to list!
18 September 2002 - Second release. Numerous enhancements to the scripts have been made, including:
- Bug fixes - all of the reported bugs to-date have been resolved in this release, bar those mentioned above. I think...
- Administration scripts - you can now administrate the member system and the forums through the web.
- User interface enhancements - the user interface has been rewritten to be more intuitive.
- Anonymous users - you can choose to allow anonymous posts in any forum.
- Forum access rights - you can limit the creation of new threads or replies in any forum.
- Thread control - you (the administrator) can delete threads or a specific post entirely - or lock them to prevent further replies.
- New message tracking - messages posted since your last visit will be marked as new.
- Security enhancements - you can no longer enter HTML, script, SQL, etc into various fields for possible client side or SQL injection attacks.
- Keyword Searching - you can filter any of the forums by specifying a keyword (can include wildcards) and only the matching messages will be shown (and keywords highlighted!)
14 February 2002 - Initial release.