Finally, Phorum 5.2 has made it to stable!
When we officially started on 5.2 in March of 2006, we had several goals. I think we achieved most of those. We also accomplished some unplanned things. Our hackathon (me and maurice slept about 8 hours in 4 days I think) at MySQL Conference 2007 helped a lot. Remember, you can help us get there again by donating to our fund.
The big difference you will see is the template. For years we tried to keep the default Phorum template simple. We did not want to influence users and wanted them to make Phorum all their own. Well, we decided to spice it up a little for 5.2. Brian created the Emerald template. It was a completely new code base that is XHTML 1.0 Transitional compliant. It uses some different ideas than older templates. We kept some things that Phorum has always had and we used some common concepts from other forums software that users have come to expect.
Doing a template from scratch enabled us to find and fix the template inconsistencies. On one page, a var would be called MESSAGE and on another page, it would be TOPIC. This confused people for sure. Also, common data that a module writer or template creator may want were not available. That would cause them to have to revert to raw PHP. In fact, the default 5.1 template had such raw PHP in the template because of that. We have fixed most of these issues. I am sure the users will tell us where we still need to clean some things up.
New API layers and more hooks
Embedding and interoperability has become more and more important in recent years. More and more we see people wanting to make Phorum play nice with their custom web site or other applications. Our own Maurice Makaay had such a need in fact. So, he started on making all of Phorum accessible via documented API calls. The first things on the list were to make the user data more accessible. This allows developers to connect Phorum to their external user data with much more ease than ever before.
Maurice also create a file storage API. With Phorum 3, we always stored files (attachments) on disk. This caused lots of problems for users that could not control their server environment. So, with 5.0 we decided to use the database to store files. This solved 99% of all the attachment questions we had. However, power users still wanted the ability to store files where it would best serve their systems. So, in 5.2, we have a file storage API that will allow a module to be written that can store files anywhere you can imagine. And, of course, there is already a disk based file storage module available in the forums.
The last big API win for module writers is the custom profile field API. It allows modules to create custom profile fields on the fly without user interaction. In the past, the module developers would have to instruct the users to create the fields via the admin. This removes that need and lets module developers take care of that for the user.
There are few other minor APIs available. And, more will be added in upcoming versions of Phorum. For more API information, you can see our API documentation at http://www.phorum.org/docs/html/api.
And to make module developers even more excited, there have been more than 20 new hooks added to Phorum 5.2. This means module developers can make Phorum all their own in new and creative ways. Hooks are now documented in the Developer Manual at http://www.phorum.org/docs/html/.
Better MySQL support
In the past, if a user wanted to use the PHP mysqli extension, they had to select it manually in the config. Also, as developers, we had to maintain two code bases. With 5.2 we have abstracted the SQL and actual actual PHP function calls so that mysqli can be used when it is detected. We hope this will also make it easier on the PostgreSQL (and any other layers) maintainers to migrate to the 5.2 databases.
Also, with 5.2 we have added the concept of load balancing to our MySQL layer. So, high volume sites like MySQL.com can use several load balanced slaves for reading and a master for writing.
Improved bundled modules
We added more modules to the distribution with 5.2. Most all of them are modules that the core team created. We took a while and really looked at what needed to be added in the distribution. Among the newcomers are:
- Announcements - more on this in the next section
- Event Logging - This module implements an event logging system, which can be used for logging various events. Other modules can use this module for logging purposes too.
- SMTP Mail - This module allows Phorum to send the mail messages through an external SMTP server without using PHP's internal mail-function. This is handy on some servers where the host makes things difficult to send mail.
- Spam Hurdles - This module sets up some hurdles for forum spammers. It implements both interactive (CAPTCHA) and non-interactive anti-spam methods to keep away spam bots. On the settings page, you can control exactly what hurdles to enable.
- Username Restrictions - This module implements configurable features for enforcing user name restrictions. The module will check the user name at registration time and show an error to the user if the new username does not meet the restrictions.
- Tidy Module - This module removes unneeded white space from Phorum's output, saving bandwidth.
- BBCode - BBCode can be disabled on a per message basis and there are some new settings.
- Smileys - Smileys can be disabled on a per message basis and there are some new settings.
- Editor Tools - This was a rewrite of the editor tools (the toolbar above the new message area). It was available as a separate module for 5.1 for a long time.
New announcement system
In the past, announcements were just normal messages that had special properties. From a development standpoint, it was difficult to maintain performance while having these announcements show in the standard message list. From a visual aspect, we thought the announcements were hidden. User's did not seem to notice them. We also had several feature requests related to announcements that would be difficult to realize with announcements they way they were.
So, enter the new announcements module. Instead of having announcements be special messages in the database, they are just normal messages that belong to a specific forum. To make one, just go to that forum and create a new topic. The announcement module will make this message show up in the areas you want (like the forum list, the message list and so on). You can also define how long a message should appear in the announcement area and the maximum number of messages to show.
New Search, inside and out
The search for 5.1 was pretty good. But, it lacked some features. With 5.2, you can search messages by keywords and author at the same time. You can also specify what forums you want to search in. And, to make the results a little more dense, you can have the search page only show you the topics that matched your search instead of every message.
On the backend, the search was rewritten (at MySQL Conf last year) for better performance. It also supports external search methods even better than ever. Developers can write modules to do the searching if they want instead of using the built in Phorum search engine.
And even more!
In addition to all this, there are things like more caching options, the new hybrid read view, the new feed options (the feed code was rewritten from scratch) and better error messages so that users are less confused.
We hope you all enjoy Phorum 5.2. It is the next step for this project that is over 10 years old now. And please, keep making Phorum all your own. Category: New Release Written by brianlmoon at 4:01pm on January 2, 2008