I’ve been slowed a bit by vacation but I am still progressing on the Smartfeed extension. The new extension architecture adds all sorts of twists, complications and tradeoffs for us extension developers that are not well documented or easily understood. In my case I had to try stuff to see if it worked and based on what I learned I have had to tweak things, sometimes resulting in major architectural changes. But it is coming along. I am more than halfway through the part that actually generates the feed, the last part of the actual development part. There is also an extensive code clean up and repackaging part and then releasing it for Development, Alpha and Beta testing. phpBB 3.0 code does not easily port to 3.1, although some of it does. There is a lot of trial and error, but hashing through it for Smartfeed will make doing Digests substantially easier.
Some development notes:
- The extension will no longer support the PHP Secure Communications Library. This provided mcrypt-like support if the mcrypt module was not integrated into PHP. I tried to integrate it, but it was too much of a hassle and made the code bloaty. I also know from experience that the phpBB extension team will critically examine everything including 3rd party libraries and likely demand changes. The smaller I can keep the code the better because it will get approved faster. So you must have PHP’s mcrypt module installed if you want the ability to take advantage of features like the ability to see posts since your last login or the ability to get posts in protected forums. This won’t be a problem for most phpBB forums because it is typically compiled into PHP. If you don’t have it, users will just see a message saying these features are not supported.
- Part of developing the extension will be to do things in a more modern way. One thing will be to put the code in a GitHub repository. I haven’t figured out that part yet, but I expect to do it as part of the release. This will make it easier for others to suggest changes.
- I am learning that code that used to be in separate files can be collapsed into one file. This is not true of styles and language files, but it is true of most include files and constants. They can go into the main class instead. There used to be two separate programs: smartfeed.php and smartfeed_url.php. In the future they will all be handled in one executable.
- I am moving to use phpBB’s templating system to generate RSS and ATOM markup for the feed. In the past I used the FeedCreator class. It turns out it’s not that difficult to do once you know the templating system.
Anyhow, it is coming along. Thanks for your patience.