This is a general-purpose list of possible enhancements to Drupal's forum system that could bring it more in line with functionality provided by traditional forum systems such as phpBB. I've already given some of my rationale for this in my other thread, so I'll refer you to that rather than repeating myself here. (Nutshell: I don't expect this code to just magically appear in the next release or three, nor do I expect Drupal to become the all-powerful forum system to end all others or anything. Wouldn't mind if that happened, though ;)
Though this list is long, it is by no means complete or entirely accurate. For example, I haven't touched too much on certain things like the admin interface, as ongoing work is being done on that part of Drupal. Where possible, I've added links relavent to each item on this list, be they feature requests, bug reports, patches or whatever. I've almost certainly left plenty of things out of this list. I'd like to actually get this list posted sometime. :)
Obviously, some of these are going to be enhancements to things other than the forum module itself. Some might be applied to the Drupal core, or the comments system, or an existing module, or as a new module alltogether. I've tried to arrange these features in a loose priority order. I'd be happy to expand on anything I haven't explained clearly.
Anyway, on with the list...
Comments
Higher Priority:
Higher Priority:
Probably the biggest drag I've seen is the various limitations on content in the forums. I can put an attachment on the first post of a thread, but not replies. I can't post a poll in the forums. If I use the BBCode formating module, I only get the formatting bar for replies if I have the reply screen on the same page as the thread (quick reply). Bleah. It seems that there's been quite a few efforts to remedy this, but so far it doesn't look like any of them have been commited. I've kinda wondered why forum replies are their own seperate db table, even from the first post in the thread. I more or less understand the historical reason (forum being extension of comments system), I just wonder if it's best to STAY that way. Maybe have it as more of a string of seperate nodes, like the front page? Obviously would baloon the size of the main nodes table, not sure how that would affect overall performance...
http://drupal.org/node/28255
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/akvaforum/ (apparently a whole different forum module?)
http://drupal.org/node/20295 (modification of existing forum, a bit more recent than akvaforum)
http://drupal.org/node/23620 (status: fixed)
Ongoing work relating to
Ability to split and merge threads. If a discussion wanders offtopic, split it off. If two threads are redundant, merge them. Also, let a user delete their own posts. (the problems are the same)
http://drupal.org/node/11877
http://drupal.org/node/10700
Per-forum permissions & hidden forums
How much use is taxonomy access for this? http://drupal.org/project/taxonomy_access
chx apparently has something for hidden forums http://drupal.org/node/25537
Either way, a simple way to set up forum permissions (ie without a ton of extra modules) would be most welcome
Attachments can only be added to initial post, not to replies?
http://drupal.org/node/28255
http://drupal.org/node/14708
A 'Topic Review' on the Post Reply screen. Basicly a stripped-down version of a thread's last few replies that's visible below the post entry area, in either an overflow: scroll div or an iframe.
Or better yet, I think we could 1-up this idea as well as the 'Quick Reply' box idea. This would be an excellent use for AJAX functionality. Basicly, when a user clicks reply, an anchor takes them up to the top of the current page, while AJAX is used to load the full topic reply screen so that it appears.
http://drupal.org/node/98
auto quote insertion http://drupal.org/node/12739
Signature handling is icky (make sig editor mimic posting screen?)
http://drupal.org/node/16726
http://drupal.org/node/10938
http://drupal.org/node/18729
>Ability to split and merge
>Ability to split and merge threads. If a discussion wanders offtopic,
>split it off. If two threads are redundant, merge them.
Module required. Promoting a comment to a node sounds like a 10-line module to me. Merging is a whole other can of worms and would need someone (you?) to write a spec.
>Also, let a user delete their own posts. (the problems are the same)
No, not really. "Edit own forum posts" is a permission which you can set in access control. But removing a post will also remove comments which are children of it. Having seen that abused horribly on one site I leave it disabled.
>Attachments can only be added to initial post, not to replies?
Extending comment.module to permit attachments from upload.module is something which could be achieved with a module.
> Per-forum permissions & hidden forums
> How much use is taxonomy access for this?
Taxonomy_access will do the trick, but has a UI which is best described as *evil*. Organic groups is probably better suited.
>auto quote insertion
Quote.module does exactly this.
Module required. Promoting a
Why should this be a module? I consider it basic functionality that should be in the main forum module. (Which I don't necessarily feel is the case for everything here, btw)
Agreed that it would be much harder to implement, although I'd say it's also a much lower priority than splitting. (I put it up here rather than in a lower priority group just because it logically goes with split.) As for a spec, you mean just a basic 'case -> what it should do' list? That I might be able to do, but like I said I'm not much help on the actual code.
Yeah, and it appears that quite a bit of work is being done on comments and forms in general for 4.7. I based most of this report on what's available for 4.6 because CVS was a bit too much of a moving target for me, especially for testing modules.
Whoops, I knew that. Musta missed deleting that line when I was editing this. :P
Little Things That Would
Little Things That Would Make A Big Difference:
Use the word 'lock' where it currently says 'user comments -> read only'. 'Locked' is standard terminology for forums, and at first I didn't think Drupal could lock a thread. I'm not the only one.
http://drupal.org/node/5867
http://drupal.org/node/16571
Improve pagination and links to particular comments. There's several areas that I'd like to see addressed:
If a thread is multiple pages, show "Page 1, 2, 3..." on the thread index page
http://drupal.org/node/24884
Currently links to a particular comment don't work if a comment isn't on the first page of the thread.
http://drupal.org/node/6162 <- There's a TON of threads/issues on this one, most marked as duplicates of this
Let the user configure threads per page (there's one for posts per page, but not threads on index)
Pyromanfo put together several patches dealing with these issues, but they didn't use pager.inc. See http://drupal.org/node/29112
Currently, when you move a thread to another forum and leave a 'shadow' topic, that shadow topic points make shadow topic go to the moved thread, not the board it was moved to
Would Really Like To
Would Really Like To Have:
Put icons on the forum index for new/no new posts. It's there for the thread list, why not for the board list?
(kinda related to http://drupal.org/node/24885, doable with templates?)
Disable username changing (and other profile fields, for that matter)
http://drupal.org/node/6991
Ability to set a group moderator (who can add remove people from their group without being able to control other groups)
Configurable max time to allow a user to edit their own post
Show edited post info (time, by, etc) together with the post
Editing grace period before the 'lasted edited' message appears
"Dotted" topic icons (essentially a visual marking of threads the user has posted to at least once)
Individual user permissions
Single link showing posts/threads since last visit (does have 'recent' posts)
Custom titles/ranks/captions (Like if a post was made by an admin, have it say 'Admin' under their name.
Tie a person's rank/group to their post count
http://drupal.org/node/12738
A summary of the user's current permissions.
Mass moderation tools - move/lock/delete multiple threads at once. This could probably be implemented as an enhancement for /admin/node. Make sure it's easy to this access from the forum itself.
Link to thread's last reply
Show actual date of creation/last reply instead of 'X days/weeks/months ago'
Link from index that says '# new posts' doesn't seem to work right (no anchor)
Allow mods/admins to post to locked topics
Flood control for major actions (search, posting, etc)
Duplicate post detection
Attachments require registration/login to download (disable hotlinking & such)
Display number of thread views
More to tick off
> Show edited post info (time, by, etc) together with the post
> Custom titles/ranks/captions (Like if a post was made by an
> admin, have it say 'Admin' under their name.
Both of these can be achieved with themes
> Tie a person's rank/group to their post count
User points module does exactly this
> A summary of the user's current permissions.
Vague. Where do you want this? It already appears to admins when you click on a username and choose 'edit'
> Mass moderation tools - move/lock/delete multiple threads at
> once.
The 'delete' part of that is already available in admin/node if you apply a filter to your view
> Show actual date of creation/last reply instead of 'X
> days/weeks/months ago'
Another theme task, this.
> Flood control for major actions (search, posting, etc)
Throttle.module
> Attachments require registration/login to download (disable
> hotlinking & such)
Already available. Untick 'view uploaded files' for anonymous users in admin/access control
> Display number of thread views
Already available by enabling the tracker and then altering its settings in admin/settings/tracker
Erp.
If you look near the bottom of the page on phpBB or vB, there's a little box that tells the user what their permissions for the current thread/forum/whatever are. Like 'You *may* reply to the current thread' and 'You "may not" create a new thread in this forum'. Possibly doable with themes?
Doesn't throttle.module only kick in when the server is under heavy load? I'm thinking something more preemptive than that, something that analyzes what the current user is doing rather than the condition of the whole server. More like the spam and bad behavior modules than throttle. Like prevent a single user from sending a ton of complex search queries in a short amount of time, rather than turning off search alltogether after he's already sent the queries and jacked up the server load. Or in a friendlier case, something that tells a user who clicked their submit button twice when replying that they cannot make a new post so soon after their previous post, to help prevent accidental double posting.
Que? I've got tracker enabled here, and don't get any settings page for it?
Whups, another 'forgot to delete it'. :P
Would Be Kinda Nice:
Would Be Kinda Nice:
Board stats (most online, date founded, etc. stats module extension? also HoF http://drupal.org/node/19571
Personal stats (like posts per day)
Quick admin contact
Mark all as read button
http://drupal.org/node/24883
Topic icons
Have sticky but not anouncement, no global anouncement, can they be seperated from other threads?
Report post to mod/admin
Forum-specific moderators
Show moderators on index/viewforum/etc
Permissions inheritance
Set options/permissions for multiple forums/mods at once
Attachment indication on thread list
Private threads (alternative to/extension of private messages, with invites for multiple people)
(organic groups? http://drupal.org/project/og)
User-visible/invisible groups
Give reason for thread delete/user ban/etc
Ability to turn off post count incrementing for certain boards (posting here doesn't increase post count)
Post & lock topic at the same time
Multiple choice polls
Limit login attempts for an IP (like after 5 failed attempts they have to wait X minutes to try again)
Administrative actions require the user's password (and do not rely solely on cookies.)
Automaticly break long words/URLs/etc so that they don't horizontally scroll the page
Maintenance mode (only admins can login/use the site), preferably with ability to enter a reason for maint that users can see
Ability to indicate new posts to child boards but nothing new in parent.
show link to something (like the forum, or PM's, or search, or whatever) but require login/registration before use
Disable member registration completely (allowing only moderators to register people).
Require email authentication by sending an authentication link.
Require a moderator to approve registration.
PM/e-mail people by group
Smiley sets, possibly letting users choose which one they want to use (or none)
Ability to allow members to use moderation on just topics they posted
'Trash can' for deleted topics & posts
Ability to hide the signatures/avatars of others
Ability to ignore another user's posts
Ability to search within the current thread
Lower Priority:
Lower Priority:
Set maximum characters in post
Set maximum smilies in post
Set maximum nested quotes in post
Pruning old posts
Prune users (inactive accounts)
Limit post length: http://drupal.org/node/28163
Require posts to be approved before appearing
See users browsing this board/thread
Adjustable cookie expiration
Both cookie and session based authentication (works without cookies. maybe also for use on public terminal.)
One more...
> Require posts to be approved before appearing
Can be done by editing the default workflow for forum posts (search the site for instructions)
I'm mostly just wading through these, in case you've noticed, in order to prune the list down
Things I've Seen Done With
Things I've Seen Done With Drupal, But Don't Know How
Options for how to display subforums (nested like they are now, as single lines under main board on forum index, as seperate page, as list on main board's index)
http://civicspacelabs.org/home/community
change the color of a user's name or put an image under their name based on rank/group
http://www.zattevrienden.be/forum
Stuff That Appears To Be Addressed By 4.7:
Better search interface (yay!)
The standard place for 'Now Online' info is in a box below the main forum index, rather than as a box on the side. Should be doable with flexiblock.
Similarly, it would be nice to be able to show Private Message info anywhere.
Misc:
BBcode, colors, smilies. I'm not quite satisfied with any of the current options for this. I might try doing a bit of work on it myself.
Misc Relevant
Misc Relevant Links:
http://drupal.org/project/flatforum
http://drupal.org/node/25537 - Asking for needed features & howto guide for advanced forums in drupal. Might take this one on later.
http://drupal.org/node/17428
http://drupal.org/node/11877
http://drupal.org/node/6126
http://drupal.org/node/5802
http://drupal.org/node/27922
http://drupal.org/project/members
(Phew, finally done. Like I said, it's far from perfect, it could have been edited better, but I just want to get this thing posted & up for discussion...)
Adding some
Just want to add some ramblings - maybe Dublin Drupaller picks up on something of this too ...
(from http://drupal.org/node/32360#comment-57020 )
Also, a bit from http://drupal.org/node/32360#comment-56993 :
There are also other tidbits I have mentioned around the forum, but it's just not very practical to look it all up, since searching project issues in an intelligble way is not there yet ...
Finally, I have threads and forums as proper nodes too (with their own node-ids, node-type etc). That may seem strange, but it's for optimizing (pre-rendering etc.) and other features. Think object-orientation about nodes, like some approaches in Drupal deal with them - and it gets easier.
I think it's a very powerful approach and painless addition to Drupal .. but then there are other areas where Drupal core needs fixing. The system is pretty must blog-comment centered still in my view, and hardcode'ish in tracker.module etc.
It is however, quite possible to get some of the most powerful forum functionality available out of such an approach. Imagine - you have all the power of a node anywhere in your forum ...
;-)
Some work I've done on the
Some work I've done on the forums can (and will) be found here:
http://drupal.org/node/39330
this is a double post - but
this is a double post - but I'm just letting you know that much of your (massively comprehensive list) is dealt with in uieforum - a module that i'm working on at the moment
http://drupal.org/node/38829
http://drupal.org/node/38830
This should help out all vbb (and the like) users - it's almost ready for it's second beta test, I'll keep you all informed if you're interested in it