GD bbPress Toolbox Pro 4.8 is here, bringing massive improvements to the plugin core: code organization, performance updates, many new and updated features and several bugs fixed.
This version brings another set of new features and improvements, with development based on the features requests and suggestions from plugin users. Version 4.8 finishes plugin reorganization before the work on the major 5.0 starts next month.
New topics and replies tracking
This module has been improved with massive performance gains due to the new caching layer (read more about it below), and it also has one new feature, added because of the popular demand: badge for ‘new reply’ is added when the topic has new replies since the last visit. Previously, these topics were marked, but there was no badge.
Plugin reorganization
This version of the plugin makes significant changes to the code and files organization. All the plugin templates, CSS and JS files loaded on the front end are now reorganized inside the templates folder with the structure similar to our other plugins and bbPress default templates structure.
All plugin modules are also restructured and split into smaller classes to make code handling easier and the features better organized. This will help with all the future changes by making plugin easier to expand, fix or improve.
Performance improvements
GD bbPress Toolbox Pro 4.8 adds central cache class using internal object cache (based on default WordPress object cache class) for storing various data in an attempt to improve performance by running fewer SQL queries. Currently, User Stats, Thanks, Attachments, Tracking and Report features are using the cache, with some other functions using it too.
For a topic thread with 25 replies on a single page or forum page with 25 topics, with all these features active plugin would execute up to 200 SQL queries. Now, it will execute up to 20 SQL queries (depending on the plugin settings). That is up to 90% fewer SQL queries and about 50% gain in the time for the SQL execution. That is a huge performance improvement, especially for the large and busy forums. Depending on the type of page, the number of topics or replies displayed, our tests have seen from 30 to 210 fewer queries per page and up to 80% less time for SQL execution.
To make this happen, the plugin now uses new SQL queries to get data in bulk for the replies or topics displayed on the page, before they are displayed. Results from these queries are processed and cached, and later plugin uses the cached data to get attachments, calculate thanks or replies and more. A similar method will be used in the future for other areas, but for now, the main focus of this changes was to improve the areas that are heavy on SQL queries.
This version improves on the several SQL queries that had been on the slow side, and even if they were not used very often, I felt that it is important to make improvements with anything dealing with the database, even for the small gains.
More new features and updates
The plugin has new filters and actions in various modules (signatures, private topics and replies…). Attachments module has new option to display attachments preview to non-logged-in users (thumbnails and name of attachments, with no direct link to download). Styling in various areas is tweaked and improved. Reply edit notifications has new option to enable notifying the topic author. Forums meta box is improved, and now also allows you to change lock forum messages.
Registration is improved for some of the views by using improved new functions instead of bbPress default functions for subscribers and favourites. There are more small updates, and a number of bugs fixed.
If you notice any issues with the plugin, please open a new topic in the support forum. For a full changelog, check the plugin changelog page.
Upcoming Version 5.0
In about one month, version 5.0 will start the development process. Plans for this major update are still not finalized, but there are some very interesting things coming. If you have any suggestions, please, let me know. I can’t promise that everything will get implemented, but I will try to fit as many features as I can. The plan is to release version 5.0 in the mid-October.
Minor update, version 4.8.1 is released with few bugs fixed and some minor updates.
Minor update, version 4.8.2 is released with fix to the Report submit problem.