Wow! Just a day before I wanted to contribute ''my'' super-phantastic forum-edition, I've seen ''millejos at yahoo.com'''s [ForumPlugin1.0] - Looks good - I would have loved to see this one week earlier.

Nevermind, now I put my forum into the game too; It follows a slightly differend approach, but the reasons I wrote it were similiar: simpler to install and less intrusive to an existing JSPWiki installation. 

As with other Wiki-based forums, there is no email and existing topics may be edited even after responses arrived to it already. This is still an interesting thing...actually I use it in (intranet) projects to organize FAQ's. ''-- Have Fun, [Al]''

The usage description is also available in German, see [AlsForumPlugin Benutzung].\\
Eine deutsche Benutzungsbeschreibung siehe auf [AlsForumPlugin Benutzung].

----
!! Features
* threaded display of topics
* scrolling: forward/backward, set the display size (number of threads)
* sort threads by name or by date
* collapsed-view with one-thread expansion (to get a quick picture of the discussion)
* localized (german and english included)

Technically, I followed the idea of the [WeblogPlugin]. Each forum entry is a regular topic. The only magic lays in the naming of the topic. So any other JSPWiki facility should work, e.g. a database provider if you dont like the pollution of many small topics. And, its only 600 lines of Java code. I only checked it against JSPWiki 2.0.52 .

[Here|AlsForumPluginScreenShots] are some __screenshots__, using a JSPWIki-like CSS style.

!! Installation
Well, Installation is even simpler than that of [ForumPlugin1.0] ;-) :
# copy the attached forum.jar to your WEB-INF/lib [1]
# insert the css-styles into your style sheet(s), as formatting is done almost entirely by CSS [2]

!! Usage
There are two plugins, one to show the actual forum, and one to offer a "search/create thread" control. One creates a new thread by "searching" for the new thread's name. If such a topic is not found, a link to the edit jsp is offered, providing the correct topic name.

! ~AlsForum
{{{
  [{AlsForum maxthreads=3}]
}}}
Displays the Forum threads[3]. Parameters:
|days|only topics from these days are selected (beginning with startdate)
|startdate|start of display
|startthread|the thread to start (while scrolling)
|maxthreads|to show in one screen while scrolling
|threadName|to filter for (a case insensitive indexOf()-Filter)
|sort|either startdate or name (== subject); sorting the threads
|sortdir|sort direction (true/false)
|collapsed|show topics collapsed (true/false)
|debug|if true, show some debug variables

All parameters are taken from the request or the plugin configuration (in the page). Most of them are kept in the session then.

! ~AlsForumEntry
{{{
  [{AlsForumEntry}]
}}}
Type here the name of the new Topic - if nothing is found with that name, you may continue to create the new topic...
 
!! Customization

Changing the CSS will give you a first screw to turn. Use [FireFox|http://firebird-browser.de/] with the CSS-Plugin, its fun to create your own style.

Also, I [attached|als-forum-src.jar] the sources; it contains a {{build.xml}}, so using [ant|http://ant.apache.org], its simple to change the code and add/modify whatever you want. PLS also add the {{junit.jar}} to the lib subdirectory - take it from the JSPWiki distribution (any version should work). I dont mind to hear from your patches...

For localization, I used the standard Java [ResourceBundle|http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html] stuff. You'll find the german properties file (as a template) in the top level of the jar file ({{forum_de.properties}}). Just add your own, you need to pack it into the jar file, at the top level (you'll see if you unpack it first) [4]. BTW, you may also put images here ({{<img src="...}}), if you would like to see icons rather than text.

!! Possible ToDo's
It is simple to modify the Edit and View JSP's to display the current thread or some other information (including a nice link to the forum) if you look at a forum thread topic (can be easily identified by its name). The {{AlsForum}}-Plugin has some public utility methods useful for this.

Also, the time frame selection may show "partial" threads, which may be confusing. Possibly only topics to threads that are completely in the date range should be shown. Or, if the lead topic is in the time frame...?
----
[#1] Just copy [als-forum.jar] to your WEB-INF/lib directory. This is the place were your JSPWiki lives.\\
[#2] It works also without - but it looks pretty boring. The most simple way is to 
* copy the [CSS file|forum.css] to your templates directory (e.g. {{templates}}) 
* add this line to all {{.css}} files: {{@import url("forum.css");}} 
[#3] You need to add ''com.orderix.jspwiki.plugin.forum'' to the plugin search path in the WEB-INF/jspwiki.properties file. Otherwise, you may specify the plugin as 
{{{
   [{com.orderix.jspwiki.plugin.forum.AlsForum maxthreads=3}]}
}}}
[#4] for the non-java hooked: you need to have java installed, then {{jar xvf alsforum.jar}} unpacks, and {{jar uvf alsforum.jar alsforum_NEWLOCALE.properties}} adds it.