phpBB 3.3.1 release summary

phpBB 3.3.1 was released on August 7, the first update to version 3.3 since 3.3.0 was released in January. You can download it from the downloads page.

If you are still using phpBB 3.2, there’s an update (3.2.10) for it as well, mainly to address a security vulnerability. For more see this page.

Since a security issue was fixed, an update is recommended.

You can read the release highlights here.

There are three new features, something you don’t often see in an update:

  • reCAPTCHA Version 3 is supported as a spambot countermeasure. You need to select it as the new spambot countermeasure and get a new set of keys from the reCAPTCHA site to use it.
  • Profile field types can be enabled and disabled
  • Only one email notification goes out when a topic has had new replies and you are subscribed to a topic. To implement this meant one new table had to be added to the database: phpbb_notification_emails.

One minor feature of the update was due to me: I filed a ticket asking for the inclusion of the DuckDuckGo search bot in the list of known bots. Woo hoo!

Some other things fixed:

  • Full search text searching is faster if you use the PostreSQL database management system
  • Support for FontAwesome Version 5 has been withdrawn
  • You can use multiple emojis in text fields
  • The private messaging bug was fixed. Without the patch, you were unable to delete or mark private messages read in the User Control Panel folder view.
  • Reset password issue fixed. It could have resulted in PHP fatal errors being thrown.
  • A bug was fixed that caused a failure when Emoji was used in private message subject line.

More minor issues fixed:

  • A bunch of missing configuration variables were added if they did not exist.
  • Conversions from phpBB 2 sometimes resulted in an invalid hash.
  • Bug fixed that would not allow a group avatar to be deleted in the User Control Panel.
  • Overflow error when attachments exceeded 2.1GB on SQLServer has been fixed. I found this as a bug years ago.
  • Google+ has been removed as a profile field, which makes sense as Google no longer has a Google+ service.

phpBB 3.3 is supposed to have a new feature to make updates easier. So far I don’t see how it is any easier and the process looks unchanged. As I do more updates for clients, I will see if I can figure out what is new and if so post some revised guidance.

July 2020 work summary

Felt a little slow around here in July. Could have used more work but I could have also used a couple contracts I’m on to move more quickly. I spend a lot of time waiting for clients to make decisions.

But my selective mass emails extension got approved this month, and the filter by country extension was resubmitted for another review. My Digests extension also got some rework to address issues in an April review but it’s not an official release yet as I’m waiting on language file changes. Strange that most of these issues really don’t change any of the behavior or add any features. It’s all to address perceived inadequacies in the code by the phpBB extension review team — really nitpicky stuff. No one will ever accuse the phpBB extension review team of not being thorough.

As for paid work last month:

  • I did more work for a client whose work I thought was done in June. Mostly it involved a lot of analysis and back and forth conversations. Emailing issues were reported so I provided guidance on where the real issue may lie (web host emailing quotas or filtering probable spam from going out.) I fixed two issues where the from email addresses was incorrect in some proprietary scripts written years ago by someone else. I went back and forth with the client about transitioning the domain’s static to WordPress using a custom plugin, or fixing the dated software instead, which is not responsive. More conversations are needed on what if anything they want to do next to modernize their website and their business process. The board was updated and moved to a new domain last month.
  • Upgraded a board from phpBB 3.2.8 to phpBB 3.3.0. I updated the style and updated the Google Analytics extension too. The correct logo image was uploaded. I made a minor tweak to stylesheet to render it correctly. I change spambot countermeasure from reCaptcha checkbox to reCaptcha invisible. Provided a sample SQL query to get a list of recent topics ordered by most recent post time.
  • This turned into a big job. I upgraded a board from phpBB 3.2.7 to phpBB 3.3.0. I installed a newer version of the Cleantalk, BBCore and Fancy Lazy Topics extensions. The latter two were used with the proprietary (paid) Flatboots style. There were lots of issue with HTTP 401 errors logging in after the upgrade. I eventually discovered I needed to add a form key to a Flatboots template that was missing. They had status images for forums (like the no new posts icon) in a weird place: /phpbb/avatars. I had to recover these files and move them to their proper places in the /images folder and correct the links in the database. There ensued lots of additional work, such as an HTTP 401 error going into ACP, which appeared to be due to being logged in to the same admin account from various browsers. Eventually we ditched the Flatboots style and BBCore extension, went with the Breezy style. I placed the existing logo inside it to customer’s satisfaction. This made the breadcrumb menu work correctly. I created a custom style inheriting from Breezy style for portability. But the 401 issue never quite went away and still seems to pop up from time to time. A workaround is to delete the board cookies. I’ve never seen this happen on any other site, so I figure the issue must be hosting related and not phpBB. My guess is that phpBB sessions aren’t getting deleted when they should, perhaps due to security software messing with permission in the /cache folder. It was all pretty frustrating, for both me and the client!
  • Some years back for a client I created some simple PHP software that listed a set of events kept in a database on a web page. The events folder containing software I wrote to record solar events somehow got deleted. The client was able to find an old copy of the files. I uploaded it and it began working again. The database fortunately was still up to date.
  • A client’s security certificate expired. I installed the Let’s Encrypt Plesk extension and installed a Let’s Encrypt certificate for the domain. In the past they paid for a certificate. With Let’s Encrypt, the certificate should renew automatically ever 30 days indefinitely. I provided analysis on SSL certificates options. They may not be comfortable with a free certificate and want a branded certificate instead. Later, I upgraded their board from phpBB 3.2.8 to 3.3.0, which included updating five styles (with changes needed to each) and 5 extensions. There were a few issues after deployment. A mailing list extension I used and modified had a newer version. I installed that but it caused issue, so I reverted to the old version of the extension with my changes.
  • Painful upgrade from phpBB 3.0.12 (showing as 3.2.0-dev) to 3.3.0. Running the database cleaner did not fix all issues in the database. Even moving the database to my machine and cleaning it there had issues. Eventually with enough tricks and fixing database issues that were encountered while running the database upgrade script, I was able to complete upgrade, which included populating the modules table from a reference, adding some missing configuration table values and adding some missing columns to the phpbb_profile_fields table. I disabled the contact form. I created a reCaptcha V2 invisible spambot countermeasure. Installed these extensions: Topic Index, Reimg Image Resizer (beta), Thanks for the posts, Recent topics, mChat and Search on Index. Search on Index was used because otherwise it would sit on top of a wide forum logo, which I had to center. Added a donate button but placed it on the navigation bar. I had to resize and crop it to make it look acceptable. Created a custom style and made changes there. There followed additional work and lots of questions. Answered questions about why there were three periods (…) in long links. Client wanted these removed but there’s no practical way to do this as it’s built into phpBB. With a bit of help on I put the recent topics above the mChat window on the index — I had to change the extension’s code to attach some code tied to an event to a different event. There was lots of concern about the placement and order of topics in the Recent Topics extension. After much back and forth I realized what he really want to do was bump topics so they would go to the top of recent topics shown. Apparently he had injected some code in his phpBB 3.0 board to do this. There is no extension to do this in phpBB 3.3 so he’ll probably have to live with it or pay someone to create an extension to do this.
  • Got some royalties paid for my book at last, but it was a pittance. I will need to sell thousands of copies to make a profit. Why not buy a copy now?
  • Upgraded a client to phpBB 3.3 who I had helped two years ago. A number of issues were reported. The basic problem turned out to be that the database had been upgraded, but someone put old phpBB 3.2 software back on the system. Uploaded the correct files. Updated their Absolution style but created a “custom” custom style with its changes to Absolution. Upgraded Digests, and User Details extensions. I had to edit services.xml file for Advanced Polls extension to get it to work on phpBB 3.3. Set spambot countermeasure to reCAPTCHA V2 invisible. There were quota issues uploading with FTP, so I had to use File Manager instead. I installed the Google Analytics extension rather than add code to overall_footer.html. Just today I checked a reported issue with digests not going out. There is some evidence that digests were mailed twice for some hours, I think because the board was down for a couple hours while I upgraded it. I’m hoping by resetting the digest mailer the problem will go away.
  • Finished a months long styling portion of project for a major customer. We’re now moving on to the other issues, principally how to replicate functionality they have on phpBB 3.0 using extensions. Met with the client and did a lot of analysis, but client was distracted with other issues so didn’t do too much work on this during July. This month I’ll be doing some experimenting with extensions to see if I can replicate the functionality they injected directly into the old phpBB 3.0 base code. They want to do initial moderation using Akismet. There is an Akismet extension for phpBB so I analyzed how that will work for them. Akismet will flag the spam, their moderators will review it and based on whether it is spam or not the Akismet database will get updated. This will save them a lot of work that was previously done through a lot of proprietary code.

SEO and phpBB

Board administrators typically want their board’s content to rank highly in search engines. It can help attract traffic and new members. That said, for the most part your users determine your board’s content, based on what they post. So it would seem kind of pointless to make your board search engine optimization (SEO) friendly. So is SEO a lost cause and waste of time on phpBB boards?

Not really. But remember that bulletin boards are structurally different than most web content, in that the contents changes frequently as users make posts. And you can’t do much to control what users post.

Moderators can remove offensive or off-topic posts. Moderators can also change topic titles, which might help in a topic’s ranking in a search engine. Most won’t because there are too many topics to deal with, the topic poster may feel offended and there is no guarantee that a moderator’s title topic will be more SEO-friendly than the poster’s topic title.

Also, phpBB does most of the deciding for you. The <title> tag for a page is usually a mash up of the board’s name and the topic name. This is not easily changed as it’s built into phpBB’s templating system.

Most phpBB boards fill niche areas. It’s hard to find a phpBB board that discusses general politics, for example, as it is done in so many other mediums. A board that discusses classic Mickey Mouse cartoons is more likely to be a board because it’s more granular. But because it’s more granular, it’s likely to get fewer views. Consequently, I see many more boards with 10,000 posts than 1,000,000 posts. In a way, this is good. This is where phpBB excels.

If you buy my book I go into a lot more detail on SEO and phpBB, so you might want to buy it. But here are a few points you may find useful:

  • Your board’s title and description are the most important factor you can control to influence search engines. The board’s title appears on almost all pages. So if SEO is important, you might want to work with a SEO expert to find an optimal title for your board. This often involves trying various board title’s over time to see which one has the most impact. You can set the title in the ACP: ACP > General > Board settings. The board title is more important than the board description, which can be left blank if it adds no value.
  • Analyze who is using your site and what they are reading. You can’t measure what you don’t track. So if you are not tracking your board’s traffic, you should, and you should be regularly reviewing the analytics for your board. There is a Google Analytics extension for phpBB that is easily installed. You first need to create a site in Google Analytics. Enter the tracking key on the board settings page after the extension is installed. Other analytics sites will require entering HTML or Javascript code into the overall_header.html and/or overall_footer.html templates for your style. Purge the cache after making these changes for them to take effect.
  • Actively moderate your board. Remove clearly irrelevant or off-topic posts if you have the energy. Search engines are trying to connect searchers with answers to specific questions, so the more concise a topic is in answering a question, the higher the page is likely to rank. Ideally you will empower your moderators to do this for you. Give forum users clear guidance on the forum’s moderation criteria in a sticky post. And make sure users know how to flag off-topic or spam posts for moderator review. The icon is easy to miss on the view topic page.
  • Using the SEO Sitemap extension doesn’t hurt. While it won’t make your board rank higher, it does provide a definitive list of your topics and posts for search engines, hopefully ensuring all your content gets indexed.
  • Encourage relevant pictures. Pictures make a topic and a post more engaging, providing the pictures are relevant. so all things being equal should make the topic rank higher than similar page. Encourage your posters to add a relevant attachment comment to each picture. This markup will be studied by search engines and helps identify the picture.

I also found this article online today that you may find useful.

June 2020 work summary

June was somewhat leisurely. During the downtime I created a new version of my Filter by Country extension, needed because it got its first review by the phpBB extensions review team and of course flunked. It took four days of part-time work to create a new version that addresses their issues and to fix some bugs I found, plus to add a new test mode feature.

I also released a new edition of my book, mostly to fix grammatical errors.

Most of my work was for a particular client I’ve been working with for some months now. They have a heavily modded phpBB 3.0 board that needs to move to phpBB 3.3. For a few months I have been working through styling issues, and did more of that this month, as it got a review by their designer. But the pace of the work was pretty slow. I suspect in July the styling phase will end with the changes I made accepted, and I’ll move onto a new phase of integrating their various custom changes into phpBB 3.3, hopefully using extensions. Ideally, no changes to the base code will be needed.

Otherwise, I did this work for clients in June:

  • Upgraded a board from phpBB 3.2.5 to 3.3.0. Updated we_universal style, my digests extension and the advertisement management extension to latest versions as part of the upgrade. There was an issue with /cache/production permissions reverting to 755. Seems stable for now.
  • Upgraded a board from phpBB 3.2.5 to 3.3.0. PHP changed from 5.6 to 7.3. This temporarily exposed an iconv issue (extension not loaded) which meant I commented out the code in the library. When the module was added, I uncommented the commented out code. I changed the reCaptcha keys to invisible. I reapplied an active topics link to a special place on the navigation bar and reapplied logo. I warned the client that moving to PHP 7 might cause issues with other parts of the website, but they told me to go ahead. Unfortunately, it did cause issues. They had many specially written PHP scripts that used old mysql drivers in the code and performed a lot of workflow logic. They decided to move these scripts to another domain on their hosting where PHP 5.6 was still available. But this had lots of unintended consequences because it was not fully understood the work that would be involved. The databases and scripts had to be moved but wouldn’t work as is. I had to change the database settings, and found a lot of HTML was in the database itself, which required changing the database. The old database became inconsistent with the new database on the new hosting. So I had to analyze and fix those issues too. I think there may be one or two lingering issues, but these issues seem to be mostly behind them.
  • Upgrade and rehosting. Moved a board from a folder in one domain to another domain entirely. I also upgraded the board from phpBB 3.2.3 to 3.3.0. I created an index.html file to do redirect from the old domain. A regular redirect would not work. I disabled the contact form and re-created reCaptcha keys for V2 invisible, as V2 checkbox is not supported on phpBB 3.3. I also had to add the American English language pack and update the Cleantalk extension for these to work on phpBB 3.3. Had an additional issue with the client still getting spam emails through contact page. Enabled Cleantalk to check it but was probably from the old domain, where it was still enabled. Client disabled it there too and the problem went away.
  • Upgraded a board from 3.1.3 to 3.3.0. There was a Plesk PHP issue in that PHP 7.0 was the latest version installed, and I needed at least 7.1.3. Client eventually installed PHP 7.3 so I was able to do the upgrade to phpBB 3.3. It uses the Subway style. Couldn’t get the extension for the Subway style to work but the style came up. In the interim, I made prosilver the default so the board could be usable. During the upgrade, I experienced frequent timeouts, whch meant I had to finish it using SSH and phpBB’s CLI (command line) interface. I disabled the contact form and changed spambot countermeasure to reCaptcha V2 Invisible. I added a patch for private message bug in phpBB 3.3.0. Later, I installed the Milk V2 style and extension. I had to remove the extension for the old style in the database, and disable Javascript to install it, otherwise there was an Ajax error. Later, had to copy ajax.js to the Milk_v2/template folder to resolve a HTTP 500 error. It turned out there were lots of other files needed, so copied all missing templates from the prosilver/template folder and also H2O folder from which it inherited. Basically, the Milk style was not engineered very well.
  • Some years back I helped a client move his static HTML pages into WordPress. A page in WordPress stopped working because PHP 7.2 was now the default PHP required by the web host. The members page returned a 404. Determined the reason for the latter was because page was in draft in WordPress. Published it. Discussed if the maintenance page should be reengineered as it was a custom PHP script that got content from a database table. He agreed to try Tablepress WordPress plugin to show this data so I managed to move the data in the table into a Tablepress table by exporting it to a CSV file and importing that into Tablepress. I changed Tablepress’s styling to fit the content on the page. For a while the table sorting and filtering feature doesn’t work. I discovered there was invalid HTML embedded in the table’s content. Fixing this solved the table’s sorting and filtering issue.
  • Client lost his old board site when his hosting lapsed. He wanted to recover the forum and get back as much content as possible on a new domain from some old backups he had. In this backup, I was able to find a phpBB 2.0.22 database from 2009. Apparently this was better than nothing, so I converted that to phpBB 3.3. To import the data, I had to remove rows from search tables using an editor due to bad data in them. This was no matter since it’s easy to recreate the search index. I provided the phpBB 3.3 files and database extract using Google Drive. He is trying to load them into his local XAMPP instance. Also spent 45 minutes in Zoom discussion about hosting and his various issues. Suggested some hosts to look into including Dreamhost. There is likely to be more work on this in July.

May 2020 work summary

May was a reasonably active month full of work, but most of it was for one client, a continuation of the work for this client for several months now. They are not in a particular hurry on their project and neither am I, but they do want it done right, so they’ll take the time to make sure it is done right. We are iterating on the styling in phpBB 3.3 for their current phpBB 3.0 forum with the goal of making it look as close to what they have now as possible. By mid month I felt like the styling was close to being done so stopped work, waiting for a review by the company’s designer. That took nearly two weeks so things were slower toward the last half of the month. I finally got the review last Friday and started doing some more work on it this weekend. Basically we’ll keep iterating through the styling until they are happy, then work on the next phase of the project, which will hopefully involve creating extensions to replicate what they are doing now through their custom modifications. The goal is to see if everything can be done through an extension. That’s similar to my approach with the styling: putting all changes into a custom style that inherits from prosilver, so most changes over time to prosilver will get applied automatically.

I’ve also been working slowly on a spam remover extension using Akismet. There is already an extension that will check new posts for spam and prohibit those, but nothing to clean up old spam. This is a continual issue for some of my clients but there is no way to find these and pull them out reliably. I’m hoping my extension will do this using the Akismet service. As I iterate through it though I keep changing features and trying different technical approaches. Since testing every post on a large board will be very time consuming and probably cause ugly PHP timeouts, I’m trying to figure out a way to do this more asynchronously. I’ll probably use an interface similar to creating a new search index with a screen that refreshes periodically to show progress. This is hard to do in phpBB.

Other work in May:

  • I performed a painful upgrade from phpBB 3.0.8 to 3.3.0. The board used the standard prosilver style, so I just had to add a logo. Sounds easy, right? But there were all sorts of issues with timeouts and things not working optimally. When the basic upgrade was done, I installed my digests extension and tested it. Installed also installed the Board 3 portal extension, which needed a patch to make it work on phpBB 3.3. I also set up reCAPTCHA V2 invisible spambot countermeasure and disabled contact form.
  • I converted an old phpBB 2.0.19 board to phpBB 3.3.0. There were not many posts on this board. The client chose the CleanSilver to replace the old subsilver style. I replaced the phpBB logo with old logo, and made small changes to CSS to show site title and description and to properly size the logo. I disabled the contact form, recreated the search index, and replaced the GD CAPTCHA with reCAPTCHA V2 invisible. I had to create my own account to login. cPanel access wouldn’t work for a while, and I got two different login screens.
  • Upgraded a board from phpBB 3.2.5 to 3.3.0. Eleven extensions were upgraded. Updated the Platinum style to a 3.3 compliant version. A number of extensions had to have their services.yml files edited to work on 3.3.
  • I dad a one hour requirements discussion on Skype with a client. If it goes forward, I will help move a board from a Delphi forum to phpBB through a lot of complex scripts. They can export to YAML to that has to be moved into a database and munged to be usable to phpBB. The basic idea is to import it to phpBB 2, which is relatively simple and if successful upgrade to phpBB 3.3 from there.
  • I upgraded a board from phpBB 3.2.8 to 3.3.0. I applied a private message bug patch. I reapplied their logo, which does not include old Site Lock code in the footer. I upgraded their Cleantalk extension to version 5.7.2.
  • Rehosted phpBB 3.1.6 forum from Bluehost. Lots of issues with Bluehost. Why? Because the Bluehost hosting environment is so tightly optimized that things you would expect, like to make a reliable archive in the file manager or to be able to archive the database easily in phpMyAdmin would time out instead. When I was able to piece together their database from various fragments, I moved it to a virtual machine on my computer to run database cleaner, then moved it to the Mac to upgrade it, then imported the database on Bluehost, with issues of timeout on phpMyAdmin loading the database too! It was all a big pain because Bluehost is a poor host in general, despite their slick advertising. This is probably because it is owned by Endurance International Group, which buys up hosts and squeezes every nickel out of them and their customers. I had to work through their legendary poor technical support to get FTP to work which involve chatting virtually with some guy in India. PHP 5.6 used, changed the config.php file to mysqli. Created an add on domain to do the work. Search index recreated as it was too big to move due to Bluehost’s phpMyAdmin timeout issues, so I had to recreate it manually.
  • Upgraded board from phpBB 3.2.2 to 3.3.0. Updated the Allan-Style SUBSILVER to the latest version and applied a patch to the style that was recommended to use it on phpBB 3.3. I also updated the board rules extension. All looks good.
  • Upgraded a board from phpBB 3.2.9 to 3.3.0. Updated my digests extension to 3.3.1. Upgraded PHP to 7.2 from 5.6. No issues. Client had concerns about emails not being received. There were some items in cPanel’s email deliverability report. Client may not have his phpBB notifications set correctly. Client did not have founder privileges to I granted them.
  • Troubleshooting. The client could not move or edit posts. The issue was that there is no user moderator role defined for him, which became a NEVER blocking permission. Made his role full moderator for all his forums and it seems to fix the problem.