All times are UTC - 6 hours   |  Page 1 of 1

Dion Designs

phpBB 3.1 and my hacks/modifications

phpBB 3.1 and my hacks/modifications

Posted: September 18th 2014, 10:50pm
by Dion
phpBB 3.1 presents a dilemma for many phpBB developers such as myself. On one hand, its new templating system lays a good foundation for the future. But on the other hand, the interface for plugins/extensions is abysmal compared to, well, pretty much any other product. Among many other things, it's slow, it's extremely limited, and it uses much more memory/resources than it should.

Since it will be "limited" I mean that basic functions are missing, such as extensions being able to set a priority for an event trigger, being able to remove/disable an event trigger, and being able to remove/disable blocks of code. This last limitation is a killer and will no doubt be a big factor why many 3.0.12 MODs will never be available in 3.1.

The issue is that the underlying code in phpBB 3.1 was not written with extensions in mind; the core scripts (most everything in the root and /includes directories) are still primarily 3.0.12 code. It is going to take an incredible amount of work to rewrite those scripts to give extensions close to the same capabilities that MODs have in 3.0.12.

I will not use the phpBB 3.1 extension API...period. However, I want to continue providing help to users whose goal is to make their phpBB 3.1 site look and work great without hiring someone to do it. (And yes, I am a cynic; I do believe one reason for the phpBB 3.1 extension API was to make it more difficult for board owners to customize their own site. That allows the current and former phpBB staff to continue milking the paid-developer cash cow they currently enjoy.)

So I have made a decision.

As you can see, I have created a new forum here called phpBB 3.1 Hacks. I will be updating my old modifications and hacks, where applicable, to work with phpBB 3.1. Yes, you heard me correctly...I will be showing you how to modifiy phpBB 3.1 core code. And I encourage others to do the same.

The first updated "hack" will be appearing once an announcement is made that 3.1 is on its final release candidate. Immediately after the release of phpBB 3.1, I will be posting a "hack" or two that might cause quite a stir. :twisted:

The decision to modify phpBB 3.1 core code came about due to my BridgeDD WordPress↔phpBB bridge. I investigated the use of a phpBB 3.1 extension, but the 3.1 extension API does not, and will likely never, support what is required in a bridge. There are going to be a lot, and I mean a lot, of unhappy people who "upgrade" to 3.1 and find that their WordPress/Joomla/Drupal/etc bridge no longer works (and I suspect in some cases, will never work) with 3.1.

Through its use of core code modifications, I am happy to announce that BridgeDD PRO 2.0 will fully support phpBB 3.1. BridgeDD PRO 2.0 is in development, but the current beta version is doing an excellent job of integrating WordPress 4.0 with phpBB 3.1-RC4 on a number of test sites. BridgeDD and Bridgedd Premium will not be updated to support phpBB 3.1, and they will forever have a 1.x.x version number. (Starting with version 1.3, BridgeDD will include cross-posting support, and BridgeDD Premium will cease to exist.)

phpBB 3.1 and my hacks/modifications

Posted: September 18th 2014, 10:51pm
by Dion
I can't help but wonder why the action/filter API built into WordPress wasn't used as a starting point for extensions in phpBB 3.1. The WordPress action/filter API works well, the code is small, fast, and stable, and its API is well known. Even more amazing is that the WordPress wp-includes/plugin.php file can be loaded into phpBB 3.0.12, and the WordPress add_action(), add_filter(), do_action(), and apply_filters() functions can be called and used in phpBB. All it would take is to liberally add do_action() and apply_filters() calls throughout the phpBB 3.0.12 core, and developers could create plugins using an interface they already know.

I have decided to fork the phpBB3.0.12 code, add the WordPress plugin functionality in a way that simplifies porting 3.1 extensions, and write an ACP interface for plugin management. (To the person who suggested this, thank you, and thank you for joining the team!) Please contact me if this interests you...if enough people get involved, this can be done quickly.

Interesting times are ahead!