» tagged pages
» logout
BBPress
Return to BBPress

BBPress Development Blog

(or Cancel)

(Editing anonymously: to be credited for your changes, login or register a new account)

other page actions:

Tags Applied to this Topic

No one has tagged this page.

BBPress Wiki Pages

Thursday, October 09, 2008

bbPress 1.0-alpha-2 released

The next installation in the bbPress 1.0 alpha series has been released. bbPress 1.0 alpha 2 introduces new features and fixes most of the issues raised by testers from the previous release.

A lot of the features were covered in a previous post. You can view the changes in bbPress between 1.0-alpha-1 and 1.0-alpha-2, as well as the changes that have been made to BackPress between revision 109 and 161.

The XML-RPC functionality now built into bbPress 1.0 alpha has made possible a new plugin for WordPress called “bbPress Live“. Currently this plugin can grab a list of forums and latest topics for display on a WordPress blog. Two configurable widgets are provided to pop the information into sidebars. Future versions of the plugin will allow WordPress posts to be copied to a bbPress forum, much like the bbSync plugin does for earlier versions of bbPress. The difference is that bbPress Live does not require the bbPress and WordPress sites to be on the same server, as all interaction is via XML-RPC calls rather than direct database queries.

Wednesday, September 17, 2008

bbPress 1.0 alpha series update

It’s about time everyone was let in on the progress we have made towards version 1.0 of bbPress.

I expect the next alpha release to be made sometime in the next two weeks. This release will include our first implementation of Pingbacks both to and from your bbPress installation. The first draft implementation of this is now in trunk.

Also to be included in the next release is an implementation of the pseudo cron feature from WordPress. This will allow plugin developers to schedule jobs in the future or on a regular basis. It is 100% compatible with the WordPress implementation, so the existing documentation is all you need to get started with using it.

To enable cron I’ve included the very new WP_Http class in BackPress. This new class is a robust HTTP fetcher which is meant to replace the Snoopy class in WordPress. This will allow all sorts of RESTFUL services to be utilised within bbPress plugins, like fetching data from other pages, embedding search APIs and even pulling data from WordPress via RSS or XML-RPC.

On the drawing board is the beginnings of an XML-RPC publishing interface. This will make it easier to use bbPress as a data store for more exotic clients like custom flash applications and XML-RPC desktop clients. It also opens the door to creating an iPhone app for bbPress much like the existing WordPress iPhone app.

An alpha version of bbPress’ new export/import format and tools has also landed in trunk thanks to our Google Summer of Code student Dan Larkin. You can read a little more about that at the BBXF website.

There will also be several fixes for bugs found by our courageous alpha testers.

Saturday, August 09, 2008

bbPress 1.0 alpha series

Over the coming weeks we will be releasing a series of 1.0 alpha versions for download.

The more adventurous among you may want to help out with testing these alpha versions. Probably the best thing to do is create a duplicate version of your installation (including a duplicate database) and then test there.

We would appreciate help with people looking for issues with upgrading, the user interface and any bugs in the new admin interface.

You can download the alpha releases via the download page.

You can use trac to report bugs as you would with the normal release. Please remember to add the version number to any new tickets.

Thursday, July 17, 2008

bbPress at WordCamp UK

I (Sam Bauers) will be speaking about bbPress at WordCamp UK in Birmingham this weekend.

I’ll be going through how to integrate bbPress (0.9.0.2) with WordPress (2.5.1) as well as talking a little about where bbPress is heading at the moment.

There is lots of other great stuff going on, full details are available via their blog.

Or just buy tickets here.

I hope to see some bbPress users there!

Thursday, May 29, 2008

Security Release: bbPress 0.9.0.2

bbPress 0.9.0.2 is available for immediate download. This release includes some small changes and fixes a few bugs, but is first and foremost a security release. The vulnerability is not yet publicly known, but will be soon.

Many thanks go out to Steven J. Murdoch for identifying the issue (CVE-2008-1930) and working with us and WordPress to resolve it.

Note: Those of you with integrated WordPress/bbPress installs should upgrade WordPress first and then will probably have to update the “WordPress database secret” setting in your Settings -> WordPress Integration: Cookies admin panel after upgrading bbPress.

Wednesday, April 02, 2008

bbPress 0.9 notes for plugin developers

Plugs!

There are a few changes in 0.9 which plugin developers need to be aware of. So here are some notes to help you get your plugins running under the new release.

Detecting version 0.9

First of all if you want to detect whether someone is running version 0.9 or higher you can use this code:

if (version_compare(bb_get_option('version'), '0.9-z', '>=')) {
	// Tell us what your name is!
	echo('This is bbPress version 0.9 or higher.');
}

Note: The “-z” on the end will make sure you catch all pre-release versions of bbPress 0.9 as well, like “0.9-dev”.

Removing deprecated function calls

There are a number of no-longer-used functions from previous versions that we provide backwards compatibility for in bb-includes/deprecated.php. So you may not have noticed that your plugin is still using some of them. In version 0.9 we have made detecting your use of these a little easier by providing a way to report their use via PHP errors when they get called.

Just open up the file bb-includes/deprecated.php and change the “BB_LOG_DEPRECATED” constant at the top of the file from the boolean false to true.

Now if one of the many deprecated functions gets called it will be written to the same place that your PHP errors are written (either an error log or to the screen). The errors will tell you which deprecated function was called and what to replace it with.

Removing deprecated constants

A whole bunch of PHP constants have been deprecated in this release in an attempt to standardise our naming of constants. For now we are providing backwards compatibility for the older constants, but you should check your own usage of these and change them to use the correct ones.

Unfortunately there is no way to log these to errors, so this is a manual find and replace task. Two arrays of constants and their replacements can be found in bb-settings.php starting at line 304.

New “bb-plugins” directory for core plugins only

There is a new directory called bb-plugins in the root of the bbPress codebase. This directory is reserved for plugins that are distributed with the core bbPress files. Third-party plugins should still be stored in a separate my-plugins directory. Do not instruct users to install files in the bb-plugins directory, they are functionally no different from each other, except that the bb-plugins directory has more potential to be destroyed during user upgrades. You have been warned!!!

Storage of active plugins and active theme in options

Formerly we stored active plugins in a serialized array where each plugin was identified using it’s relative path from the my-plugins directory, e.g. “plugin.php” or “folder/plugin.php”. With the advent of core plugins there exists a need to differentiate between “core” and “user” plugins.

We are doing so by prefixing either “core#” or “user#” to the plugin, so the previous examples in the my-plugins folder would become “user#plugin.php” and “user#folder/plugin.php” in the same serialized array.

Similarly we are changing the way the active theme is stored. Instead of saving the absolute path to the active them, instead we are simply storing it’s name, i.e. the name of the directory it is contained prefixed with either “core#” or “user#” depending on it’s location.

Plugin activation and deactivation hooks

The correct way to register a function to run on plugin activation is like this:

function foo() {
	echo 'bar!';
}
bb_register_plugin_activation_hook(__FILE__, 'foo');

Provided that the file you are registering in is the base plugin file. Do not hardcode the plugin file name as users may move them into directories inside the plugins directory.

Registering a function to run on plugin deactivation is similar except you need to call bb_register_plugin_deactivation_hook()

Built-in avatar support

With the inclusion of built-in avatar support you may think that all the time you spent on that custom avatar plugin is wasted. But actually, it is quite the opposite. By incorporating avatar calls into the default templates and providing a fully pluggable and filterable get_avatars() function, integrating avatars is actually easier than ever.

New plugin browser

One thing that might have slipped by without enough attention is the new plugin browser which was recently implemented. Go have a play and check out all of the newness.

Thanks…

And finally, a big thanks to all our plugin developers for contributing so much to the bbPress community. If you have any ideas about how we can help you build better plugins, then let us know.

Wednesday, April 02, 2008

bbPress 0.9 released

The bbPress team is happy to release bbPress 0.9 for download. This release is important for anyone who integrates bbPress with WordPress and wishes to update to WordPress 2.5.

Primarily this is a compatibility release so that we can continue to provide the same integration levels with WordPress as in the past, however quite a few other improvements have made their way into this version.

Improvements and changes include:

  • New installer: 
    • Creates your bb-config.php file for you when possible.
    • Allows for setting up integration with WordPress at install time.
    • Supports languages other than English when language translations are available.
    • Looks pretty.
  • Additional RSS feeds for views.
  • A “new topics” RSS feed, available on the front-page and on each forum. This feed only returns the first post from each new topic as it is created, instead of all posts.
  • More configurable <title> tag available to themes.
  • More secure authentication cookies which are compatible with WordPress 2.5
  • Passwords now stored using “phpass” hashing library instead of md5. If you still want to store your passwords as md5 for any reason, there is a plugin here which will do that for you.
  • A second core theme called “Kakumei Blue”. This theme demonstrates just how little you need to do to start creating a new theme.
  • “General” and “WordPress Integration” options configurable via admin interface.
  • Built-in support for Gravatars, implemented in a way that makes 3rd-party avatar plugins much easier to author.
  • New “Date and time format” and “Date format” options.
  • Akismet and Bozo functionalities have been moved to plugins. Akismet key now enterable via an admin interface.
  • Removed “replies” querystring argument (?replies=#) from topic links. If you still want that functionality, there is a plugin here which should emulate it.
  • Fixes to use of PHP “glob()” function to avoid errors on hosts that don’t support it.
  • Moderators can now manage tags by default.
  • Fixes to slug incrementing.
  • The old “admin_email” setting is now called “from_email”. This is now the email address that emails from your installation appear to come from.
  • “No replies” view is now technically “no replies and greater than 2 hours old”.
  • Improvements to the export script towards the integration of an upcoming import script.
  • RSS feeds now sent as UTF-8
  • Full support for slug-based feeds on forum and topic feeds.
  • Keymasters can no longer be demoted by non-keymasters.
  • Many other smaller bug and typo fixes.

Installation

We have provided updated and more detailed installation and integration instructions in the documentation.

Upgrading

Upgrade instructions are available in the documentation here.

Dedication

bbPress 0.9 is named “Brubeck” after American Jazz pianist Dave Brubeck. In his early career he often performed with saxophonist Paul Desmond, after whom bbPress 0.8 was named. Brubeck has composed a number of jazz standards many of which employ complex rhythms and unusual time signatures.

Thursday, January 31, 2008

The future for bbPress

Great Scott!

Most of those who follow the tech-blog-o-sphere* will be aware of the recent financial news regarding Automattic, the company that more or less stewards bbPress’ production.

For the rest of you here are some links that cover the story.

Some people may be wondering what this news means for bbPress. Well, for a start this funding has already impacted on the project as it made my full-time employment with Automattic possible three months ago when the arrangement was in it’s early stages. But more importantly it now allows Automattic to have the financial security to back bbPress into the foreseeable future.

We have some awesome things in the pipe including improvements to the bbPress core, the bbpress.org website and, in the not too distant future, the launch of a hosted community service by Automattic based on bbPress.

In the meantime, we will be ramping up the pace of development and attempting to bring out some of the new features that have been on the “to-do” list for far too long. Features which we hope will help to differentiate bbPress from the crowd and make it a truly useful tool for building online communities.

* NB: Not an actual word

Tuesday, January 08, 2008

bbPress 0.8.3.1 released

Due to popular demand we have bundled a bug-fix release for bbPress. 0.8.3.1 (still called “Desmond” I believe) and it is now available for download.

This version is not the latest development release so as to remain as compatible as possible with the current version of WordPress.

The primary reason for the release is to fix some bugs in the MySQLi implementation. We anticipate that MySQLi support will be dropped in the future and to this end we have made MySQL the default extension instead of MySQLi.

A few other fixes and enhancements have also snuck in:

  • Deep forum breadcrumbs with thanks to baptiste
  • More consistent topic labeling methods - users of the support forum plugin will probably need to upgrade to version 2.3.3
  • Some fixes to stop orphaned sub-forums from disappearing from all view
  • There is now one of those fancy checkboxes to mark a user as a bozo

A couple of those changes will affect existing themes. If you have questions about adapting your theme to be compatible with the new topic labeling and forum breadcrumb features, then ask over on this forum topic.

Thursday, November 15, 2007

bbPress “Roundtable” at WordCamp Melbourne

I’ll be at WordCamp Melbourne this weekend to reprasent bbPress. It’s a good opportunity for both seasoned bbPress users and newbs to find out more about our favourite forum software. As the crowd will be mainly WordPressers, I’ll be focusing the discussion on integration with WordPress and a few of the more WordPress-centric plugins.

Automattic developer Alex Shiels will be there as well as other local blogging luminaries. Check out the full program here (pdf), and RSVP on Upcoming soon, it’s almost full.

Monday, October 01, 2007

BB_Query Class and custom bbPress views

With the introduction of the new BB_Query_Class in bbPress 0.8.3, the old method of adding custom “views” to bbPress has been removed. You should no longer directly manipulate the $bb_views array, nor does the bb_views hook work.

To add a view, you should instead use a new function: bb_register_view(). Also available is bb_deregister_view() for removing the default views or views added by other plugins.


function my_plugin_views() {
/*
  bb_register_view(
            $view_slug,
            $view_title,
            $bb_query_argument_array
  );
*/
bb_register_view( 'more-than-5', 'Topics with more than five posts', array( 'post_count' => '>5' ) );
bb_register_view( 'old-timers', 'Topics started before 2005', array( 'started' => '<2005' ) );
// Remove default 'Topics with no tags' view bb_deregister_view( 'untagged' ); }
add_action( 'bb_init', 'my_plugin_views' );

If you really need more complicated queries, you have the following filters at your disposal, just by registering your view in the above fashion (assuming the $view_slug is “my-view”).

  • bb_view_my-view_distinct
  • bb_view_my-view_fields
  • bb_view_my-view_join
  • bb_view_my-view_where
  • bb_view_my-view_group_by
  • bb_view_my-view_having
  • bb_view_my-view_order_by
  • bb_view_my-view_limit

If that sounds complicated, it probably is ) Most plugin developers will never have to do much besides filter a join or where here and there.

Monday, October 01, 2007

bbPress 0.8.3

A new version is finally here, and ready for download! The biggest news is better search and compatibility with WordPress 2.3, but it also fixes a lot of bugs.

Other bug fixes include:

  • Broken forum hierarchies
  • Tag inconsistencies
  • and a bunch of fixes making it easier to write cool plugins.

In addition to the above bugs, you can also check out the exact code changes.

Tuesday, September 25, 2007

WordPress 2.3 is out

WordPress 2.3 is now available.

I mention that because the current version of bbPress (version 0.8.2) is not compatible with WordPress 2.3 if you are loading both scripts at the same time. If you’re not loading both scripts at the same time, everything is fine.

A new version of bbPress will be coming out in a day or two as soon as we get done testing it, and that version will fully compatible with the latest version of WordPress once again.

Friday, June 29, 2007

Searching and the BB_Query class

bbPress has twenty or so functions that select groups of topics or posts from the database. Some of them do very specific things, and some of them do something only slightly different from another such function.

Maintaining this large group of functions and keeping them all consistent was beginning to become a nuisance. Additionally, it was annoying to have either to write a whole new function or to hack filters into and onto an existing function every time a new database query was needed.

To help alleviate both of these problems, the next version of bbPress will come with a BB_Query class, which all of the above referenced functions will use.

For developers and plugin authors, this means it’ll will now be really easy to query the database for posts and topics based on whatever arbitrary criteria is needed. For users, the following couple paragraphs will be boring, but see the news below )

Example

As an example, the following code will select all the topics written by mdawaffe in June of 2007 and having the “bbPress” tag and will sort those topics by their start time.


$topic_query = new BB_Query( 'topic',
	array(
		'topic_author' => 'mdawaffe',
		'started' => '2007-06',
		'tag' => 'bbpress',
		'order_by' => 'topic_start_time'
	)
);
$topic_query->results; // Here's the array of topics the query returned.

Both the incoming parameters and the SQL query that the class generates are highly filterable (in a way that’s backward compatible with the current version of bbPress), so further customization should be easy. Also, the BB_Query class can automatically handle pagination, caching and more, so you can relax and get on with more interesting things.

New feature: better search

In the end, though, we write code for users, not for developers; we want the user experience to be as pleasant as possible. With all these new bells and whistles, users get some pretty cool new features.

The default theme will now let you constrain your search to an individual forum (and adding that ability into other themes will be super easy). Adding extra constraints (like searching by tag or author) will be easy too.

In the admin section, you can search both topics and posts by a number of criteria.

bbPress Topic Search

bbPress Post Search

Next stop… Pingbacks. (sshhh! It’s a secret!)

Thursday, June 21, 2007

bbPress 0.8.2 and FOUND_ROWS()

bbPress 0.8.2 introduced a new way of counting how many pages worth of information there were to display (how many pages worth of content, for example, there are to display in a user’s profile): MySQL’s FOUND_ROWS() function. It works very well for most bbPress sites.

It cripples large sites.

After upgrading the WordPress.org Support Forums to bbPress 0.8.2, the server very quickly melted into a belligerent heap of protesting electrons. Most of this was bbPress’ fault (though MySQL shares some of the blame).

FOUND_ROWS() seemed to be a “magic bullet” everywhere it was tested (including the bbPress.org forums). While that impression should have made me very wary, instead it led me to use SQL_CALC_FOUND_ROWS (the SELECT query companion to the FOUND_ROWS() function) in places that really didn’t need it.

Mea culpa.

Because of that misuse and because of MySQL’s poor SQL_CALC_FOUND_ROWS optimization, sites with hundreds of thousands of topics (such as the WordPress.org support forums) will actually be slower (much slower) using bbPress 0.8.2 than they were using bbPress 0.8.1. This despite the other database and query optimizations that went into bbPress 0.8.2.

A fix for this bug and fixes for those others we collect in the coming weeks will be packaged into a new release.

Until that time, if you have a large site (where large probably means “tens of thousands of topics or users”) that has noticeably slowed since upgrading to bbPress 0.8.2, there is a solution. Use the current code available from the bbPress svn repository’s 0.8 branch (available via svn or zip file).

Our Trac system lets you see the changes in that branch since the release of bbPress 0.8.2. In particular, this performance issue was fixed in changeset 867.

On most sites though, the slowdown will probably not be noticeable. Unless your site is getting bogged down by bbPress’ use of the database, there’s no need to change anything.

Tuesday, June 19, 2007

bbPress 0.8.2.1: Security Release

As awkward as it is to issue a new release less than 24 hours after the previous one, here it is: bbPress 0.8.2.1.

We recommend all users download and upgrade now.

This release fixes a security bug found by Ory Segal, written up by Dragos Lungu and pointed out to me (today) by Epsilon.

Too bad I hadn’t heard about it yesterday )

The following files have changed.

We recommend going through the full upgrade every time, but if you are upgrading from bbPress 0.8.2 only, you can download those files (or the corresponding diff if you know how to use it).

Anyone upgrading from earlier versions must go through the standard upgrade proceedure.

Monday, June 18, 2007

0.8.2: Hot off the bbPress

A new release! bbPress 0.8.2 has a quite a few changes and features. While you’re downloading, check out the cool new stuff.

Hierarchical Forums

Forums can now be grouped hierarchically (that is, forums can have “children”). To organize your forums, go to Content -> Forums in your bbPress’ admin panels, click “Edit Forum Order” and drag the rows around: up, down, left and right.

Make sure to “Save Forum Order” when you’re done.

“Slug” based permalinks

No longer are you constrained to topics and forums with permalinks that look like http://example.com/topic/14/. By turning on slug based permalinks, your URLs will be generated from the forum’s or topic’s title like http://example.com/topic/see-you-in-hawaii/.

Also, all of bbPress’ different permalink structures (/topic.php?id=14, /topic/14/, /topic/see-you-in-hawaii/) are interchangeable; you can switch to whichever structure you like and all your old links will still work (but see the upgrade instructions in this post).

Plugin Management

Plugins can now be activated and deactivated with the click of the mouse in bbPress 0.8.2. Just go to Site Management -> Plugins in your bbPress’ admin panels. To be activated, however, every plugin must have a “plugin header” that includes at least the plugin’s name. Here’s an example.


/*
Plugin Name: Name of your plugin required
Plugin URI: Plugin’s website
Description: Short description of your plugin
Author: Your name
Author URI: Your website
Version: Current version number of your plugin
*/

As a bonus, “hidden” feature, plugins whose file name begins with an underscore (_) do not need to be activated; they will be loaded automatically and do not require a plugin header.

A few small things

Here a sampling of some of the other minor changes in bbPress 0.8.2.

  • More tag cloud formatting options
  • Improved consistency in tagging
  • bbPress’ default Kakumei theme combines the list of “Your Tags” and “Others’ Tags”.
  • No more annoying feed: before all of your RSS feed links. The feed: psuedo-standard was a clever idea, but never really caught on.
  • Moderators and Admins are considered “trusted” and will never have their posts marked as spam.
  • Admins can change other user’s passwords.
  • More filters and actions for plugin authors
  • Faster database queries

Upgrade instructions

The only tricky thing with this release is plugins. After upgrading, you’ll have to go to your bbPress’ Site Managment -> Plugins admin panel and activate the plugins you want activated. As mentioned above, all plugins must have a plugin header before they even show up in the plugin list. If you have a plugin that’s not showing up, either give it a plugin header or rename it so that it’s filename begins with an underscore.

Also, if you’re turning on slug based permalinks, you may need to regenerate your .htaccess file’s rewrite rules.

More info

For the nitty gritty, check out these lists of bugs fixed and code changed [2].

Tuesday, June 12, 2007

Meetup Aftermath

The meetup yesterday was really enjoyable, lot’s of good ideas about how bbPress is going to evolve in the future. Doug Stewart has a pretty thorough write-up of the night, including the movie interlude afterward. Hopefully like R. Kelly, bbPress development will no longer be trapped in the closet.

Friday, June 08, 2007

bbPress Meetup

As Matt points out, he and I will be at San Francisco’s Chaat Cafe for the first (EV4R!) bbPress meetup on the evening of Monday, June 11th.

I’m excited to meet Sam Bauers and Doug Stewart (who are the catalysts for the meetup) in person and all of the rest of you who can make it.

w00t!

Perhaps more excitingly, this blog (and bbPress itself) will see much more frequent updates in the near future. Good times ahead.

Tuesday, February 27, 2007

Comment on bbPress 0.8 “Desmond” Released! by Marian

You have a bug in the download zip version of the site the path gets out wrong, you have to go to bb-includes/functions.php and in the code of the function bb_convert_path_base change the the following line : $r = $to_base . substr($path, strlen($from_base)) . $last_char;

with

$r = $to_base.”/” . substr($path, strlen($from_base)) . $last_char;

and it works

Regards,Marian

Page 1 | Next >>
Username:
Password:
(or Cancel)