Update prices lowered!

It’s not often that I lower prices. But I lowered my prices for updates by 50%. Updates are when you go from one micro version of phpBB to another, like 3.2.2 to 3.2.3.

I had raised these prices because the changed files process I used stopped being reliable. Which meant that I had to upload all the files for a version to ensure success, which was more time consuming, particularly if there were files with custom changes in the styles folder I have to replicate.

With the release of phpBB 3.2.3 though, it looks like these problems are ironed out. This means in most cases the labor is less than an hour. Hence the price is now $40 commercial and $20 noncommercial.

I noticed the updater will also attempt to upgrade extensions, a time saver. It’s not always perfect however. So when you ask me to update your extensions too, if the updater for phpBB does this as well there is no extra work for me to do, hence no additional charge.

Should I install phpBB?

What are you getting into when you install phpBB? phpBB, open-source forum software for the web, is often simple to install. Most web hosts have a scripting center that allows you to install it on a domain in a few clicks. But should you?

It’s not like there aren’t other forum solutions out there, although arguably phpBB is the one that has survived the longest. To name a few, there is commercial vBulletin software, myBB, Xenforo, Phorum and pUNbb. There are also forum plugins. For example, WordPress has BBPress and BuddyPress. Since I specialize in phpBB I can’t speak with much authority about other forum solutions. However, as a software engineer I can highlight what I think some of phpBB’s strengths and weaknesses are, the subject of today’s posts.

What is forum software exactly?

Before you decide on any forum solution, understand what forum software is. Forum software is not blog software. It’s not a place that you use to rant about stuff that interests you and which others can comment. It is software that allows lots of disparate people to discuss certain topic areas elegantly. It imposes discipline on the content it manages by keeping things organized in forums, topics and posts.

Forum software is used by discrete communities that have something in common and want to share that information in an open manner. Usually what they are discussing is pretty specialized. For example, it might be a support forum for a commercial or open-source product (phpBB.com uses phpBB for its support forum), or a fan site, a bunch on people who own a particular type of boat or plane, whatever! Forum software allows people to create and reply to topics. It’s designed to run independently of a framework. For example, the BBPress plugin for WordPress requires it to work as an add on to WordPress, which means that to use BBPress you must also be a WordPress user on the site. Similarly, Facebook groups can act a bit like a forum, but it requires you to join the Facebook enclave. Facebook however does not organize content in its groups into forums and topics. Most forum software is designed to be standalone, at this is certainly the case of phpBB. It’s not designed to work with WordPress or any other content management system. In our social media age, this is sometimes a drawback.

phpBB’s emergence

phpBB has a long and proud legacy. Version 1.0 was released in 2000, at just the moment that the PHP language became dominant on the web, replacing mostly a lot of Perl scripts. Timing was everything. It was written in PHP, used the popular free MySQL database and was free and open-source. “Open source” was kind of a new thing back then, but it was essential to its growth. Not only was it free, anyone could modify it.  So it got downloaded and installed like crazy. It’s still widely used today. Most support sites run on phpBB. This means you have probably used phpBB already, even if you aren’t aware of it. So it will seem comfortable and familiar, even if you don’t understand why.

Version 2 came a year later in 2001 and is still being used today by many sites because it is fast and lightweight. Version 3 was released in 2007, which thoroughly modernized it. Version 3.1 arrived belatedly in 2016. It’s big feature was extensions, similar to WordPress plugins plus responsive styles, so things looked good on mobile devices. Prior to 3.1 if you wanted to extend phpBB’s functionality you installed “mods” that was code changes inside the source code, which made upgrading phpBB difficult. 2016 saw the release of version 3.2, the current version, which looks and behaves a lot like 3.1 but addressed some annoying issues mostly on the backend.

While phpBB was undoubtedly popular, updates were infrequent and its huge legacy base made it hard to push out new versions. Its team of core developers worked inefficiently together, in part because the tools for doing so were relatively primitive at the time. This allowed many other forum solutions to emerge to fill the feature gap while the phpBB group lumbered awkwardly forward into the future.

phpBB’s strengths

I first installed phpBB 2.0 in 2002 and have followed it since then. I have developed modifications and extensions, as well as generating good income from helping users upgrade and migrate their forums. In spite of the phpBB Group’s sometimes lumbering organization, it’s got some major strengths:

  • Institutional legacy. Simply because it’s been around so long, it tends to get widely installed and used. Those who have phpBB forums rarely move to other forum solutions.
  • Familiarity. Most likely you already know how to use phpBB because you have used it on various sites. While the forum/topic/post metaphor is hardly new, phpBB’s implementation of it garnered it a lot of attention and traction, so most forum solutions try to imitate it while addressing its perceived deficiencies.
  • A fanatical devotion to open source. The phpBB Group developers walk the walk on open source. They are really quite devoted to the whole idea of open source software, quite fanatical and arguably more than a little obsessed about it. They don’t give preference to any particular technology (except PHP and web standards like HTML, CSS and Javascript) and try to give you flexibility. For example, most forum solutions are written only for the MySQL database. Despite the fact that hardly anyone who has a phpBB forum uses databases other than MySQL, they support a whole host of other databases including Postgres, SQLite and Oracle.
  • Terrific support. phpBB’s support forums are phenomenal. You will likely find a dozen answers to your question with a simple search but if not a quick post will generate fast response, often from dozens of highly experienced support members, all volunteers. They are so good that in most cases the problems I encounter I don’t have to solve. I can find the solution on their support forums.
  • An anal obsession to standards. This is both a strength and a weakness. WordPress has now something like 40% of the web site market, but WordPress runs fast and loose. It’s not hard at all for people to create buggy plugins and non-optimal themes and WordPress will approve a lot of these. WordPress is a Wild West place where you are never quite sure if what you are adding on is crap or gold. That’s not a problem with phpBB. They go to extraordinary lengths to check their releases for bugs, running them against a host of security tools and making the base code pass thousands of detailed automated tests. I doubt there is an open source project that releases higher quality code. As an extension author, I am impressed and sometimes annoyed by how difficult it is to get my extensions approved. They inspect everything with incredible care and make sure you adhere to their voluminous and often somewhat obscure coding standards. This also makes things slow as there are plenty of extensions and styles in the review queue and reviews can take months. Rest assured though that officially approved extensions and styles are top quality.

phpBB’s weaknesses

  • Lack of agility. The phpBB Group’s tendency toward being anal also means they are not agile. It’s hard to bring out new versions of phpBB since everything must be nitpicked to death. Arguably this is also because there are tons of features and options in phpBB; look through all the Administration Control Panel’s various screens sometimes to get an idea of how many features can be changed, enabled and disabled. Its permissions system alone is awesomely powerful while awesomely obscure. When finally released, new versions tend to be very stable and rock solid but if you are an impatient person, your patience will definitely be tested and then some. On the other hand, their development practices are top notch. They use state-of-the-art testing, development and bug tracking tools. They have daily builds of their software to see what breaks.
  • Legacy architectureAdding new features tends to be excruciatingly difficult not because their code is not modular enough (this problem largely went away with phpBB 3.1) but because the database is so baked in. Many features would mean large changes to the database. Business logic is baked into many different programs, although phpBB 3.1 introduced classes (the whole /phpbb folder) that addressed a fair amount of this problem.
  • No multi-threaded topics. This means you can’t see a set of replies to a particular post within a topic, or get a hierarchical view of replies to a topic.
  • Standalone. It doesn’t integrate with anything, at least not elegantly. It won’t work seamlessly with your content management system, like WordPress. The closest it comes to this is that it supports authentication via LDAP (Lightweight Directory Access Protocol), but even so users must still create accounts on the forum to use it.

There is a lot more to this topic that I may delve into in future posts. But this post at least gives you a heads up. phpBB is great software: stable, reliable, well tested and industrial strength. If you can live with its functionality and limitations and are okay if the features change slowly at best, it’s still a terrific solution. If you need more agility from your forum solution, you might have to look elsewhere. However, any other solution you pick may not hang around. phpBB is eighteen years old and is likely to survive another eighteen years without a sweat.

 

August 2018 work summary

I kept busy with phpBB work in August but fortunately not too busy. It was all just right for a change.

The big project was a Amazon Web Services (AWS) rehosting project that consumed four days after about two months of erratic testing and prototyping. I wrote about the project as it relates to AWS here. However, there were other details of wrapping up this project unrelated to AWS:

  • A heavily modified AllanStyle SUBSILVER style was used, with the colors tweaked to closely match the old style. During the prototyping there were all sorts of things that had to be just right because the community is very fussy and they wanted extremely high fidelity for what they used to have. This style is basically you only choice now if you like the boxy, full width styling of the old phpBB subsilver2 style. Members in a certain group had to have a different color number name and font size, so it took a lot of puzzling there to get something acceptable. Fine tuning the styles included moving the view topic author column from the right to the left, and getting the width of this column just right to match what they had. There were some peculiar requirements such as having the Administration Control Panel open in a separate tab and adding additional links to the navigation bar.
  • Six extensions were installed: Advertisement management, Pages, Media Embed, Smartfeed, Smilies Scroll and Topic Preview. There was quite a bit of work getting the advertisement management extension to serve ads correctly and to the correct groups.
  • I created a forum test environment and kept it around so subsequent changes could be tested there before being deployed to production.
  • Some BBCode was in the database for ranks messing up the display of ranks. These had to be removed from the database.
  • There was a peculiar program that returned one line of Javascript to another site that needed to be modified because the upgrade introduced line feeds into the output.
  • Figured out why hide my online status wasn’t working. It was a permissions issue.
  • There was also BBCode in the user_jabber column that could not be edited and had to be manually removed in the database. It messed up editing profiles. I discovered the Jabber module was not enabled, so I enabled it.
  • Changed the text in the email templates to match content that was in there before.
  • Later in the month there were more requested tweaks. The client wanted more ads to display on the view topic screen, every ten posts. This is not built into the Advertisement management extension. I used the group template variables extension to get the group information I needed and tweaked the view topic template to serve the ads unless users were in a particular group. Now they want another ad on the index between forums that I am working on.

Other work in August:

  • I upgraded a forum from phpBB 3.1.6. to 3.2.2. I reinstalled an updated Latte style. Four extensions had to be upgraded: Joined Date Format, Board Rules, Reimg Image Resizer and Topic Solved. I reapplied the background logo and footer links. There was an issue when posting. Email notifications did not go out because SSL check didn’t work, causing an error. Disabling it allowed posts to be saved but email notifications still did not go out. Client had to get a correct set of SMTP settings from their web host to fix the emailing issue.
  • Stood up a new forum and new domain for an existing client of nine years using a forum solution largely the same as their existing forum, Siteground hosting was selected on my recommendation. Installed phpBB 3.2.2, placed logo after resizing it, installed an orangish style to match the logo colors. Hid forum content from public. Disabled user registration. Installed ACP Add User extension. Installed and tested Tapatalk extension and access. Set up email account and forwarder to test email interface via SMTP. Set up SSL using free Let’s Encrypt certificates. Added Mailing List extension with same changes I made for their other site. Created a robots.txt file to deny search engines. Disabled contact form. Need to manually add users when deployed. Currently this project is not complete and is in user testing. As a result of testing, I applied a new style and made a number of fine styling changes, including some fine color changes. I also applied new specified fonts to forum name and site description. Installed media embed extension to embed a video.
  • Client reported this error: “Error: [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4190: ob_start(): output handler ‘ob_gzhandler’ conflicts with ‘zlib output compression'”. Solved by changing PHP to 7.1, turning off the PHP ziplib extension, but needed to turn on mysqli extension because on this host it was not enabled by default. Later, it was discovered that some searches timed out after 30 seconds. I changed tables from MyISAM to InnoDB storage engines, but this did not solve the problem. I changed the PHP timeout to 60 seconds but the error still happened. I changed search index to MySQL FullIndex and it did not solve the problem. Eventually I determined the PHP mbstring extension needed to be enabled. I filed this as a documentation issue with the phpBB Group as enabling this PHP extension is not a system requirement.
  • Updated a forum from phpBB 3.2.1 to 3.2.2. Was getting messages including “Parameter must be an array or an object that implements Countable.” The update made the error go away.
  • Upgraded Tapatalk mod for a phpBB 3.0 forum to version 5.0.1 and made necessary file changes too. I removed the Tapatalk rebranding module because it was giving errors and is not needed.
  • Styling work to integrate site headers and footers onto phpBB 3.2.2 using prosilver on a test site. 3 templates modified. Stylesheet changes were added to stylesheet.css. This project is not quite complete yet, but nearly so.
  • Upgraded Tapatalk mod for phpBB 3.0 from version 4.9.8 to 5.0.0 for a client. I removed the Tapatalk rebranding module because it was giving errors and is not needed.