I’ve done a quick pass over the bbPress API to clean up the obvious API oddities. I’ll also soon be looking for redundant actions and filters. This may break some of your plugins, but will hopefully make things easier for everyone in the end.
There will likely be quite a few changes over the next weeks. Look ahead to a better bbPress!
bb_add_user_favorite: used to pass one serialized array. Now passes two parameters.
bb_remove_user_favorite: same.
- Action
resolve_topic moved to after DB update.
- Same for
close_topic, stick_topic, unstick_topic.
- Action
opentopic moved to after DB update and renamed to open_topic.
- Filter
topic_resolution added: filters resolved status. Passes topic_id as an extra parameter.
bb_already_tagged: used to pass one serialized array. Now passes three parameters.
- Same for
bb_tag_added.
bb_tag_created: used to pass one parameter. Naw passes two. Order has changed.
bb_tag_removed: used to pass one serialzed array. Now renamed to bb_pre_tag_removed and passes three parameters.
- Same with
bb_tag_merged. Renamed to bb_pre_merge_tags.
bb_tag_destroyed renamed to bb_pre_destroy_tag.
I just checked in a new database layer that allows bbPress to connect to a completely separate database for its user information, in addition to just having custom table names. This is very useful if you want a bunch of blogs and forums running off the same user system, but don't want to stuff them in the same database, or if your user information is hosted on a different server or account than your forums are.
Thanks in part to the hard work of Juan Correa (PotterSys) and Ryan Boren, bbPress is now almost completely "gettexted" which means that all of the strings in the software can be translated and replaced on the fly. Some other code improvements have also come along the way.
All SVN changes are now being mailed to our mailing list and I've also fixed up the nightly builds so they're generating correctly now.
We're making some big changes to the bbPress codebase over the next few days, as opposed to the more incremental changes over the past year. bbPress has been working so well we haven't really needed to touch much, but it still needs a good coat of paint before we consider taking it out of alpha, so that's what to watch for.
bbPress is starting to use AJAX for updating various content, which allows us to avoid hard page refreshes. The benefits of this are two fold. First, we only have to update part of a given page instead of the whole thing; we save time, database hits and bandwidth. Second, the user experience is improved (or will be when we figure out the best interface for all the new shiny bits).
Everything should degrade nicely if the client does not support AJAX specifically or Javascript in general.
For any who aren’t subscribed to the mailing list but are still poking away at bbPress, you should know a bunch of globals and functions have been renamed over the past few revisions to make bbPress more interoperable with WordPress. For more information, please reference this mailing list post
A quick review of some recent changes.
- Better user administration. Admins can now promote/demote/delete users.
- Better topic and post adminstration. Moderators can now move topics from one forum to another, browse deleted topics and posts, and undelete.
- Views. The fully pluggable views functionality allows users with specified capabilities (see below) to browse customizable content. Native views allow anyone to browse by topics with no replies, unresolved topics, or untagged topics. There is also a view that allows moderators to browse all deleted topics (see above).
- Capabilities. bbPress has shifted from the hierarchical user_type permissions system to a generic role/capability model. The new system is much more flexible and makes it much easier to keep track of who can do what.
There have been several changes in the code over the past few weeks. Rather than explaining them in detail, I’ll just highlight the most interesting ones.
- Profile pages now have a (pluggable) menu through which an increasing amount of administration can be done.
- Like it’s cousin, usermeta, a new table, topicmeta, has joined the bbPress database family. Both meta varieties use the same code, which has seen some substantial efficiency improvements.
- Quick (and arguably dirty) plugination. The API’s a bit different than what’s used over at WordPress, particularly the UI API. It’s not as friendly, but it’s a trooper; it really gets the job done. Expect an simple plugin to be included in the initial release to serve as an example.
- Some bugs related to sharing users and/or usermeta across separate forums/blogs/etc. have been squished in order to make sure Matt tells the truth 😉
PS: A quick reminder that action and filter hooks are always up for grabs. Suggestions welcome!
I just wanted to note that now bbPress can completely and seamlessly integrate and share a user system with any number of bbPress forums, and any number of WordPress or WordPress MU blogs.