Mods & extensions

Hi there,

Kristoffer here, or Jansson as I’m also called. If you haven’t heard of me, I’m the guy behind PunRes. I’ve been a user of PunBB since sometime in beta, and a developer since November. What’s always been fascinating to me about PunBB is that the code is so simple and structured that anyone with even the smallest PHP knowledge are able to modify it to their own needs. This is very important to PunBB as it ships with a rather slim set of features.

It is almost impossible to make software that appeals to everybody. The reason for this is that everybody’s needs are different. However, there is a solution, and it’s quite simple: Let the users decide their own set of features! As I write this, there are 269 projects/modifications at PunRes and new ones are created at a regular basis. All the common features are there, private messaging, polls, attachments, gallery, wiki, you name it. There are several reasons modding has become such a widespread thing in the PunBB community. Firstly, because the code is kept simple enough for most people to understand it, we almost get this for free by not implementing huge and complex systems in the main package. Secondly, modding has been around since the release of PunBB 1.0, and even before. Thirdly, the availability. PunRes has always been there to keep all mods in one place for the users to browse and discuss modding.

There is only one downside with mods, and it’s huge. Actually, there’s two, but let’s concentrate on one of them. It relates to the way in which mods are installed. Installing a mod requires the user to modify the source manually. This can be a bit complicated for the inexperienced user, and there are often mistakes. Another problem is when updates to PunBB are released, you either have to install all the mods again manually, or apply the PunBB update manually, either way it can be very annoying. This also indirectly leads to less security because some people don’t bother updating at all. Wouldn’t it be awesome if you could just install a mod by a single click on your mouse?

Enter PunBB 1.3.

With 1.3, there will be Extensions. Extensions are not mods, though sometimes referred to as “the mods of 1.3″. Mods and extensions are completely different things created to solve the same problem; let the user decide. The extension, instead of editing the source directly, hooks into the code at specific locations causing PunBB to behave different. The source of the extension is stored separately in the database and can therefore be put in and be taken out at any given time without anyone touching a single line of PHP code. I will not go into any technical details at the time but focus on the advantage of this new system. Apart from the obvious ease of installation, it also makes updating PunBB as easy as cake.

Mods have never been officially supported, and Extensions in themselves won’t be either. However, now when the developer team consists of more than one guy we will be able to create “official extensions” that are sure to always be compatible with the latest version, plus they will come with the same exceptional quality as the rest of PunBB. It will also allow us to update the extensions without having to release a new version of PunBB each time, making the users that doesn’t use the feature less annoyed. Mods will probably continue to exist as they do today, though they just won’t be as many. PunRes will be focusing on extensions and mods will be shared primarily through the wiki.

What about the Plug-ins?

Yes, the plug-ins will also be replaced by the extension system as it will be possible to acquire the same functionality through extensions.

As I said above, there are two problems with today’s mods, the first one is the user’s problem, and the second one is the developer’s. Feel free to speculate about what it is, it shouldn’t be too hard to guess. There is a solution to the problem in the making, but I won’t reveal that just yet, it has been hinted about on the forums though :-)

Take care,
Kristoffer