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.

April 2020 work summary

The number of clients I served in April dropped compared to earlier month. Last year April and May were slow too. However, I had one well paying commercial job that more than paid the bills, and should continue to do so for many months to come. It’s nice to have steady work in tough economic times. It will take a few more months to see if the economic crisis is affecting the overall customer requests I get.

This month I also discovered some new information on doing crons properly in phpBB not covered in the Wiki, but I can’t seem to change the information in the Wiki because logging in no longer works. This can affect my digests extension which can use a cron to send out digests. I’ve also started work on a spam remover extension, that will remove spam posts and private messages using the Akismet web service. Hopefully I’ll have something to show this month.

Work on my book continues at a slower pace. I’ve done two more read throughs of it, finding errors and corrections and am now on what I hope is the final read through. I’ve changed the book size to 7.5 inch by 9.25 inches, the standard size used for Dummies books. As there are lots of screenshots, it was important that they be legible. We’ll see how it goes. Hopefully I can release it this month. I still need a cover illustration.

  • I upgraded a board from phpBB 3.0.14 to 3.3.0. As part of this, I also upgraded PHP to 7.2.29. The board has 408,000 posts. Added extensions: Google Analytics, Precise Similar Topics and Topic Preview. There were issues installing extensions. For two extensions, I had to create a module category suggested by the error message first. These were installed as mods on phpBB 3.0, so that was likely the cause. The Google Analytics extension wouldn’t install using my Vivaldi browser, but would using Firefox. Go figure. I disabled the contact page, set up reCAPTCHA V2 Invisible spambot countermeasure, and created a home link. I had to make myself a founder using the database. Installed the Anime style and its extension. I investigated upgrading MariaDB to a newer version, but it requires command line instructions. A few days later I fixed an issue that brought down board by removing trailing comma from allowed_schemes_links configuration variable using MySQL and manually purging the cache. I turned this is a phpBB problem report, documented here, which looks like it will get fixed in phpBB 3.3.1.
  • Earlier, I attempted an upgrade to phpBB 3.3.0 that I had to roll back because the host (Network Solutions) didn’t have a PHP version you could select greater than 7.0! Unbelievable! Upgraded and reenabled the ShareOn extension and installed Thanks for the Posts extension.
  • I added new audio control to a board that features a streaming music player, since the old service seemed to go defunct. Some testing with the provided audio players, which were too big on the board’s header, resulted in a simple link to the music service instead, that opened in a new window.
  • Placed a new ad at top of page using Advertisement management extension. This included uploading a new ad image. I disabled the old ad.
  • I attempted to add Facebook tracking code to a custom style. I copied overall_header.html template from the AllanStyle-SUBSILVER template folder and made changes in the custom style. I tried purging the cache multiple times but the code never appeared. I even rebooted the web server. Eventually, I figured out the underlying reason was that the block of code I added was placed inside a S_ALLOW_CDN statement, before the <!– ENDIF –> statement, and since the template switch wasn’t getting executed the Facebook tracking code wasn’t getting added.
  • For my commercial client so generous to pay me my commercial rate, I spent much of the month working on this project. In March, I made an unsuccessful attempt to upgrade a test version of the database. The client made a new version of the old phpBB 3.0.11 database that was better sanitized, tried again and eventually succeeded. To convert the database, I need a PHP 5 environment, so it was hard to do on their server so I had to do it on my machine in a virtual machine, and that added time and hassle. I then began to try to retrofit the styling to make it look as close as possible to the existing styling. This meant hiding certain features and disabling others. The old styles used the Bootstrap framework and SCSS. The idea is get away from Bootstrap since styles are now responsive in phpBB, but it’s easier said than done, but otherwise keep the SCSS. Went through two iterations for client feedback, and there will likely be a couple more. In some cases I am using extensions to replace functionality, like the Board Announcements extension to see general text on the index. This is pretty challenging work and should keep me well employed probably through the end of the year. Likely in May I will be doing mostly styling work. I am using a custom style, inheriting from prosilver, to minimize the impact of future updates to phpBB. When the styling is done, there will be extensions to write to incorporate lots of additional functionality.

March 2020 work summary

This month was pretty busy with work, but also distractions. One primary distraction was trying to figure out why some people were not getting digests from my digests extension. A user was kind enough to give me access to a test board where I could troubleshoot the process. Over many days I discovered the issue was due to changing PHP “continue” statements to “continue 2” statements in the last release. I removed this code because it doesn’t seem to be necessary. Its purpose was to prevent duplicate digest from going out, which users had reported. But with a phpBB or system cron, it shouldn’t matter. The cron logic itself should not allow this to occur for these types of crons. Removing it seemed to fix the problem. I hope to get out a new release of digests in the next few days.

I’ve also been working on a book with the title Mastering phpBB Administration. It finished the editing process late this month. Now it needs cover art, possibly some reformatting for the printed page, then publication and marketing. I expect it will be mostly downloaded as an eBook. I’m hoping I can do this in April. I’ve invested several thousand dollars so far and I’d like to start seeing a return on investment. It’s my first attempt to write a book, and I can appreciate all the work it takes to do it right now.

  • Upgraded board from phpBB 3.2.6 to 3.3.0. There was a Javascript issue with an integrated streaming radio player, accessed through a control I placed near the header of the board. The client needs to bring a support issue with streaming vendor. It’s likely that the Javascript has to change. I had to copy the Javascript for the player back into the templates overall_header.html and overall_footer.html. I replaced the reCAPTCHA Checkmark keys with a set of reCAPTCHA Invisible keys, since phpBB 3.3 only supports the Invisible keys. I had to upgrade Tapatalk extension to latest Beta version because of an error after the phpBB upgrade that disabled all extensions unless I upgraded the extension. The web host control panel information provided did not work but I was able to login and upgrade using FTP. I was asked to recreate search index but 700mb of database space was in use and Siteground’s quota is 1GB. I suggested seeing if he could buy more space. Later in the month, I moved his domain and board from Siteground to GoDaddy where there is no 1GB database size limitation to the database. The board has close to 800,000 posts. The archive of files was 2.8GB. I then recreated the search index for the board. All went smoothly, which was a bit of a surprise given its size. I didn’t have permissions to move domain, so left that for the client to do. The audio player is still an issue. It appears the streaming service went out of business.
  • I upgraded a board from phpBB 3.1.9 to 3.3.0. Since I last worked on it in 2016, it was moved to a subdomain. I had to upgrade the version of PHP since at least version 7.1.3 was needed and version 5.6 was present. I updated the German traditional and German casual language packs. To address an umlaut issue, I changed the collation for phpbb_posts.post_text column to utf8_bin and created sample topic to verify it fixed the issue in new posts. I then fixed issues with umlauts in many tables using the MySQL replace function.
  • I placed an ad to appear at the top of pages using the already installed advertisement management extension. It took some trial and error to get the CSS right so that it centered properly. Later, I fixed an issue with various WordPress blogs on the site. The /wp-content/uploads folder permissions were 755, changed to 777. There is still an issue related to updating these blogs that I am still working on. Certain permissions are missing.
  • I upgraded two boards for the same client to phpBB 3.3.0 from 3.2.1. On first board, I updated the prosilver_se style and two German language packs, then made a custom style to ease future maintenance by encapsulating the unique changes in the custom style. I also disabled the contact form and installed a set of Invisible reCAPTCHA keys. On the second board, I updated the Latte style, reapplied minor changes to .sccs files in one template then recompiled the style. I also updated my digests extension from 3.2.6-RC13 to 3.3.0.
  • I upgraded a board from phpBB 3.0.14 to 3.3.0. To do it, I had to remove a number of dead extensions and modules from the database. I moved over digests subscribers from the digests mod. I tested a new cron job used to kick off digests, but the manual mailer did not seem to work properly. I installed the ACP Add User extension. I disabled the contact page. I created a reCaptcha V2 Invisible spambot countermeasure. There were AJAX issues installing extensions related to a CORS error. After doing it enough time, the extensions seemed to install correctly. Later, the client had a script that used data in the user_interests column which was not copied over. I populated it from my backup, but the script should reference the phpbb_profile_fields_data table instead, where the data now resides. Client was concerned about &amp; that appeared as text in digests. I removed a line of code from my digests extension that added this entity as it no longer triggers a validation error.
  • I upgraded a board from phpBB 3.2.8 to 3.3.0. I had to disable modSecurity in the .htaccess file to get into board after upgrade. Updated the advertisement management, Cleantalk, Board 3 portal and Tapatalk extensions. Tapatalk would not work on 3.3 without upgrading to Beta version 2.1.7. Changed the board’s .htaccess to redirect to portal by default. I reapplied the logo. i changed the spambot countermeasure to reCaptcha V2 Invisible.
  • Client had issues with a custom style created by another developer when his board was upgraded to phpBB 3.3.0. The simple solution is to copy prosilver’s templates to the custom style and purge the cache. Instead, I made a proper custom style that inherited from prosilver. Only the CSS changes needed to be applied to prosilver are now in the custom style, making it easier to upgrade the board in the future.
  • I upgraded a board from phpBB 3.2.7 to 3.3.0. Client had issues doing it himself using the automatic upgrade method, which should not be used for phpBB upgrades, but only updates.I had to change PHP to version 7.1. A redirection issue on main .htaccess file for site meant I had to rename it temporarily to do the install. Changed reCAPTCHA spambot countermeasure to use the invisible CAPTCHA. Had to update Cleantalk extension to 5.7.2 to get it to install.
  • I do ad hoc work for an existing client as user issues come up. In March:
    • I changed an email for a user to her gmail address. Later, I heard there was another problem with her access, but when contacted she said she was getting email notifications.
    • I informed another user of her username and provided lost password instructions.
    • I forced reactivation for another user who could not login. It didn’t seem to work, so worked over the phone to get him online.
    • Changed email address for another user.
    • Provided instructions for a user to get a new password.
    • Advised the board’s administrators on a DNS issue sent by their hosting provider.
    • Provided lost password assistance to another user.
    • Changed the email address for a user and provided resetting login procedures.
    • A user wasn’t getting email notifications. Asked her to look in her spam folder and see if they are there. Eventually figured out her email address was incorrect for receiving notifications and changed it.
    • I created a new password for a user so he could login.
  • This month in a long term project I am doing for a client, I was trying to do a test upgrade of their phpBB 3.0.5 database to phpBB 3.3. My first job is to update the style to match their current style. Both attempts failed:
    • In the first attempt, I realized that I needed PHP 5.6 to install the support toolkit to remove bad data from the database. I tried to install it myself on their machine but not being a system administrator, it didn’t seem to work.
    • I next downloaded their database and tried to convert it on my laptop on which I had installed PHP 5.6. The database eventually imported (four hours later) but the laptop is underpowered. phpBB’s support toolkit flaked out when I attempted to use it. An attempt to run the upgrade program didn’t work very well. The client made lots of changes to the database that had to be cleaned up, but it would still not upgrade properly. PHP 5.6 was not the best choice. I really needed PHP 5.2, since trying to upgrade I had to work around issues making phpBB 3.0 work with PHP 5.6. It’s getting harder to set up test environments that use older versions of PHP.
    • I then imported the database into a virtual machine on my Mac, and a reference version of phpBB 3.0.5 as well so I could use its database to compare with the client’s. I realized I needed to understand all the changes made to the database, because I may need to leave data in the database because it might be needed when moved to phpBB 3.3. I have a call with the client today to look over these changes and factor them into my next test upgrade attempt.

February 2020 work summary

This was a fairly ordinary month, but I have started two long-term projects, details of which are below. Both should keep the business comfortably afloat for much of the year.

Work on my book Mastering phpBB Administration continues. It is still with an editor but should complete editing within a few weeks. It still needs cover art, reformatting, and setting up a publish on demand mechanism. I’ll probably offer it as both an eBook and a printed book. Existing clients will be entitled to a discount. Figuring out the pricing will be challenging. At over 300 pages, it’s a lot of information. Publish on demand allows both color and black and white copies to be requested, but color copies are much more expensive to produce, so I may offer both at different price points. Price will probably not be less than $19.95 a copy. Stay tuned for more details.

  • Began an exploration on whether a Delphi forum could be converted to phpBB. The client provided a set of .yaml files with the board’s posts, which also includes some images that were in the posts. My basic approach is to see if I can get the data into a format that can be converted into the old phpBB 2 database format successfully. Is so, then it could be converted to phpBB 3.3, the ultimate goal. The first step was to try to find a good YAML parser. I tried a number of approaches but eventually I used Symfony’s yaml parser in my script and that seemed to work reliably. The .yaml files were not perfect YAML, so I had to do a bit of editing to get files to parse correctly. I parsed the first 500 posts and placed the result in a HTML table with a script, then did the same thing with a .yaml file with the user information. These were sent to the client. The client will discuss with his group whether he wants to fund further research, but it looks likely because it looks like there is enough data in these files to populate a phpBB 2 database. He will get back to me in a couple of weeks.
  • A client was running out of quota and asked me to figure out how to solve the issue. 4.9GB out of 5GB was in use. Problem was WordPress backups in a backup folder. Suggested removing old backups. Once identified, client took care of issue.
  • After large upgrade to phpBB by a client, the modules for my digests extension got lost. On Skype, I walked him through the process of creating both the ACP and UCP digest modules manually.
  • Upgraded and rehosted board from phpBB 3.0.5 to phpBB 3.3.0. The new hosting is on Siteground. The old hosting was on a Windows server. Fortunately, MySQL was used on the Windows hosting, so there was no database to be converted. There were some technical issues on both hosts with downloading databases and making archives. Siteground’s new site tools turned out to be confusing as cPanel was not an option. I could not grant permissions to the database user I created to database I created. It took two tech support calls but eventually it all worked. I created a custom style to show logo, otherwise default prosilver style was used. I disabled the contact page and created reCaptcha V2 Invisible spambot countermeasure.
  • I provide ongoing support for a client’s business board. I investigated an emailing issue where emails were getting flagged as likely spam when sent to wvu.edu. The client’s domain is not on an email blacklist. This was something on wvu.edu’s end and the easiest way to deal with the problem was to have change the board user’s email address. I provided instructions on how to change email address used by the board. At the end of the month I updated two packages in Plesk and updated Plesk to version 18.0.24. Also, changed one user’s email address. She was not getting email notifications because the address had changed and she didn’t know how to change it in phpBB.
  • I restored a lost board. Originally it looked like a backup of phpBB 3.0.11 was available, but it wouldn’t upgrade since some tables were in a phpBB 2 format and some not. The client found an older phpBB 2 database backup and I was able to convert that offline to phpBB 3.3. In the first conversion, the attachments were missing so I had to do it over again. I also changed the board to use to https. A few minor errors were encountered. I had to add an auto increment to the phpbb_logs table’s primary key. I set up reCAPTCHA and disabled contact page.
  • Updated forum from phpBB 3.2.2 to 3.3.0. I had to comment out Options -MultiViews in .htaccess file to avoid HTTP error. Also had to remove install_config.php file in the store folder to get the upgrade to start. Otherwise there were no issues. User had warnings that were due to PHP 7.3 being enabled on his host, which is not supported by phpBB 3.2.
  • Began work for a new long-term client who has a large job to upgrade his phpBB 3.0.11 board to phpBB 3.3. This will take many months as there are many customizations embedded in the source code itself that need to be turned into extensions. This month I mostly looked through their changes to phpBB 3.0.11 and advised on the best approach. The first step will be to try to change the style to work with phpBB 3.3. The style uses SCCS and needs to link in a lot of CSS and HTML used for the master website. I may develop some of the extensions myself of work with other extension authors to have some develop them. Some look very complex, such as a proprietary OAuth integration. But it’s commercial work and pays very well, so it should be both challenging and financially rewarding. More on this in coming months.

January 2020 work summary

I did plenty of work in January, just not so much for clients. That business was slow, but picked up toward the end of the month, so much so that at the moment it looks like my plate in February should be full.

Why was I busy? I was writing and editing a book on phpBB administration. The introduction of phpBB 3.3 Proteus on January 6th added work, as I needed to update the book to talk about phpBB 3.3. As I noted, its feature set makes it more of a micro release than a minor release, so that part was good. But by changing the phpBB logo and a few other things, I had to recapture fifty or more screenshots, which was tedious and time consuming. Then of course the text had to be revised in places which also meant reading it through twice more. Right now it stands at 305 pages on 8.5 x 11 inch paper.

I reached a milestone of sorts when I turned it over for editing on Thursday. I should mention that I am using Maria Williams, so if you need an editor, hit her up! It will take her a couple of weeks for her to do her magic, then I have to figure out how to publish and market the book. I need cover art. Publishing will likely be on demand, and I expect most people will want electronic copies. I also need to figure out how to price it. It’s a sizable capital investment of time and money, so it needs to be profitable. I expect to offer some sort of discount for the first ninety days and for my existing clients. The last book published on the topic was written in 2006, so it described phpBB 2, so the market is out there. Also, that was a user guide, not an administrator’s guide.


  • Added two users and forced a reactivation of two other users for a commercial client, who outsources this work to me.
  • Updated a board from phpBB 3.2.7 to 3.2.9. Also, I created a new forum with a forum logo on the board. I resized and placed a forum image logo with the forum, and put it in the requested place on the index. I gave the forum permissions similar to another forum. I investigated issues in the error log. Most of these errors seems to be due to debug being turned on.
  • More analysis for a client I did work for in December. I generated a list of users and email addresses on his archived forum that had contributed at least 1 post but whose usernames were not on the current forum. He will use the list to invite them to come to the new board. I installed a release candidate extension to creating lots of user accounts in bulk, but it didn’t work as advertised. I did some styling changes. I upped base font 1 pixel to 12pixels. Client wanted to know if my digests extension can show text only. Yes, and I sent him a sample. He wants digests generated by my extension to look similar to someone else’s digest. I deleted a user defined moderator group. I provided guidance on using the ACP Add User extension so lots of old users could be added. He would like to delegate the work to someone else, so discussed how this could be done with ACP permissions so their access was tightly limited in the ACP.
  • Client’s board wouldn’t come up on Bluehost hosting. After some analysis, I determined he had a phpBB 2.0.19 board and that only PHP 7 was available. He did have attachments. I converted the board to phpBB 3.3.0. Issues logging on were solved by removing the domain’s cookies, clearing browser cache and resetting the password, which was set back. I moved the old board into forum_old folder. I created the search index, disabled contact page, added Invisible reCAPTCHA. The resulting board is very basic. It may need some customization, styles and extensions installed. Later there was additional work. The client needed some gallery software. The phpBB Gallery extension is not being maintained and is not reliable, so looked for a solution outside of phpBB. I tried one solution, then tried another. Piwigo seemed to work after I installed a Community plugin/extension. This allowed users to upload their own pictures.
  • I updated a board from phpBB 3.2.0 to 3.2.9 on generic prosilver style. I updated my digests extension to version 3.2.17 and the Cleantalk extension to version 5.7.2.
  • I upgrade board from phpBB 3.2.7 to 3.3.0. I updated the prosilver SE style to 3.2.9 and put the old logo back. I changed the spambot countermeasure to reCaptcha V2 invisible, since spam registrations were a complaint.
  • Client wanted active topics in red on the navigation bar. First tried installing the Advanced Active Topics extension (release candidate) but couldn’t get it to show. I then installed the Recent Topics extension as a trial, but client didn’t like it, so I created a special link on the navigation bar, highlighted in red, moving it from the Quick Links menu.
  • I upgraded a board from phpBB 3.2.8 to 3.3.0. I replaced the logo.I checked all the extensions and they seemed to work on phpBB 3.3 with no issues, but there was no test case for change post time extension to verify it worked properly.
  • More work for a client on spam. Used Prune Users feature to remove users and their posts who registered after Feb 10, 2018 when spam seemed to start in earnest. Reenabled board and suggested ways to mitigate the problem in the future with moderation, digests, etc. This is discussed in more detail in this blog post.
  • This work is still ongoing. On Hostgator hosting, I created space for five domains and set up DNS for these domains. I set up five boards on five subdomains of these domains. All have a basic configuration, registration disabled, reCaptcha enabled, prosilver_se style applied, contact form disabled, and forwarder set up to redirect to client’s email address. Set up https redirection by installed WordPress SSL plugin on the main blog. Next, I cloned four WordPress instances based on work on one domain, whose theme and plugins client wanted to replicate. I did this by copying the files and database, changing the wp-config.php file to point to the new database, and tweaking the site information in the wp_options table. This saved a lot of time and work for the client.


December 2019 work summary

New year, but this also gives me an opportunity to review work I did for client in January and look at how I did overall in 2019.

Revenue-wise, it looks like 2019 was about as profitable as 2018. With a few quiet months, it didn’t look like it would be that way. How well I did depends on how you count the income. If you count it based on the date when people paid me, revenue was up 12% over 2018. If it’s based on when I did the work and how much of it was collected, then it’s down 1%. There are several hundred dollars owed me at the moment and one client that won’t seem to pay me the $45 owed. I guess I’ll have to write that off. Thankfully, it’s the first time in years that I’ve been stiffed. Sometimes I have to nudge clients gently, but they usually pay me. Most pay within hours of completing the work.

In any event, since I count taxable income based on the date of receipt, I guess it was a better year than 2018. In 2020, I expect to publish a book for forum administrators. Hopefully there will be an additional revenue stream from that, but it will come with expenses, principally paying an editor to clean up my grammar and typos. That’s going well and I’m about ready to turn it over for editing. I’m using LibreOffice and noticed a big quirk saving it as a .docx then moving it back, which messed up page styles. So I have to redo all that in a clean version of the book, which is a lot of reformatting.

Work-wise, December felt pretty average:

  • For an existing client with a huge forum, I installed an extension that opens external links in new tabs. Later in the month, I did additional work. I fixed more incorrect links embedded in the post text and removing Javascript code to open links on the domain in new windows, all inside the database. I changed the Buy, Swap and Sell forum to require all new topics be moderated. I then updated board from phpBB 3.2.7 to 3.2.8, later adding back in http to https redirection code to .htaccess file that was accidentally overwritten. I found some WordPress blog links placed on the navigation bar directed to instances of WordPress that didn’t work when the hosting type was changed from Windows to Linux. So I created some database users that were missing and reattached them to their WordPress blogs. I fixed a number of outgoing emailing issues working with the client’s web host’s technical support.
  • I updated a board from phpBB 3.2.5 to phpBB 3.2.8. I also updated the IDFresh Launch style from version 2.0.1 to 2.0.7 and updated the Google Analytics extension from version 1.0.3 to 1.0.4. But the extension would not install and directed me to login. So I installed it manually via the database and uploading files, although migration is missing. I tweaked stylesheet.css to make the logo 77 pixels wide. Client asked about some special reports, doesn’t look like phpBB contains the data needed to give it to him. Eventually I convinced him that he could use Google Analytics to get the report he wanted.
  • Conversion and rehosting. Converted phpBB 2.0.21 forum to phpBB 3.2.8 by downloading files, converting on my machine, and uploading to new host. Client moved board to a new domain name too. 136,000 posts. I changed the internal links in posts to point to the new domain using the database. I added the External Links in New Windows extension so they would have nofollow attributes. Made the AllanStyle SUBSILVER style the parent style and created a custom style, overriding logo change and moved the poster profile to the left side of the view topic page. Removed 1111 inactive users, likely all spammers, with no posts. Added AWS S3 extensions to allow attachments to be stored on AWS. Installed Google Analytics extension. Recreated search index using the MySQL fullindex, since it was faster. I created a reCaptcha V2 checkbox spambot countermeasure. I changed time for being online to 4 hours. I enabled quick reply in all forums. Need certificate to do https. www prefix not available. Set up redirect rule for old domain to redirect traffic to new domain.
  • Later did more work for the last client. Forced www to use non-www URL. Forced http traffic to use https. There was more work fixing links in the posts for some edge case URLs. Made user registrations go through an email verification process. Removed image links in signature lines for 12 users. Created a robust robots.txt file. Disabled contact form to reduce spam. Enabled active topics feature for all forums. Removed the website custom profile field. Set email settings to use SMTP which required a lot of testing. Changed some administrator permissions to remove founder status and reduce the administrator’s roles for these users. Increased moderator permissions to give moderators full moderator role privileges. Then there were more styling changes. Removed who’s online from the index. Moved Quicklinks and FAQ to a different place on the navigation bar. Removed the style’s credit line. Changed default font size from 10px to 11px so style does not lay out with such a dense look. Changed the forumlist_body.html template to remove moderators for forums on index. Fixed breadcrumb issue with the style. Replaced the logo with one a bit larger. Later, there was more work. I installed the sitemap.xml extension. I changed digests so users would get weekly digests instead of monthly. Changed forum permissions for a whole lot of groups making a number of assumptions.
  • Helped a client think through the issue of bringing in the content in a closing Yahoo group into phpBB. After much discussion, client decided not to import them into a forum/post/topic structure, but to make them available outside of phpBB and link to them with a sticky topic. So my role was to figure out what the client really wanted and provide advice.
  • GoDaddy brought down a forum’s connection for database, which we eventually learned was due to exceeding 1GB of database quota. To solve that problem, I used phpMyAdmin to truncate the search tables, which brought it under 1GB, then turned off the board’s search interface. I then had to attach the database user to the database. GoDaddy had disconnected it. I deleted spam chat tweets in mChat. I removed a few hundred inactive users with no posts. There is a problem with spam posts, probably because his Cleantalk subscription failed silently and it did not get renewed. Those need to be removed, so I waited on him to pay Cleantalk to renew subscription. Updated the board from phpBB 3.2.2 to 3.2.8 and created a custom style based on prosilver that I enabled. Four extensions could be upgraded. Later, there was one more hour troubleshooting. I renewed the Cleantalk subscription for the client and added it to his bill. I backed up his posts table then used Cleantalk to remove spam. But there was still plenty of old spam left over. The issue seems to be that this Cleantalk feature does not check the post content itself for spam, but the IP of the poster when the post was made against its database and flags those. So if the IP address is no longer flagged as a spam IP address in their database, it gives it a pass. I did an analysis of posts per day and sent to client to help determine when spam started in earnest. Board looks largely infested with spam. If it could be rolled back to a time before spam, the content may be relevant again. I changed reCaptcha keys. Board is currently disabled. No automated way to clean up spam appears to exist. However, I did some investigation and it looks like an Akismet API could be used if I wrote a program to send the API the post text, IP of poster and post type. Waiting to see if the client will pay for this.
  • Assisted in rehosting a board and a site. Provided advice on new hosts. The files on old host were a mess, a lot of it (like the Joomla front end) weren’t to be used on the new hosting. The client had already transferred the domain so things weren’t hooked up. Moved forum files and database to new host. Also moved files only in public_html folder because a lot were references to these files in the forum. I reconfigured an ad on front page to fix its links. I made everything use https.I redirected the domain to forum folder. I set up reCaptcha V2 spambot countermeasure, and disabled contact form. I updated the American English language pack but there are missing strings. Then there was a lot of hassle getting the email settings working right. I had to set up an account for SMTP and puzzle through the settings. My digests extension was returning errors, so I upgraded it from version 3.2.3 to 3.2.16.
  • There were error messages on forum index. The issue was that PHP 7.3 was being used. In cPanel, changed PHP to 7.2 for the domain. They came back, so I reset PHP version back to 7.2. Later error occurred while PHP 7.2 was installed. Commented out an echo statement in /includes/functions.php made the error go away. The overlying issue may be he needs to upgrade phpBB. Moving PHP back to 5.6 seemed to make all these issues go away.
  • Updated nine packages in Plesk.

November 2019 work summary

This was a pretty busy month overall. I did not have time to work on my extensions, although two extensions went through a formal review (Digests and Selective mass emails) but were, alas, rejected for more code changes. I am working on the book on phpBB administration and nearly done with a first draft. I hope to get it professionally edited but it needs a lot of work.

  • Updated board from phpBB 3.2.5 to phpBB 3.2.8. I also updated the Cleantalk extension from version 4.6.9 to 4.7.1. I reapplied the logo. The forum uses the default prosilver style.
  • A client getting hammered by bots in China and probably Hong Kong too. He was experiencing lots of HTTP 508 (loop detected) errors. I installed by Filter by Country extension (beta) 1.0.8 to see if that helps, blocking IPs from both China and Hong Kong. Analyzed Awstats statistics for October that indicated a lot of Hong Kong access. Client also blocked the Hong Kong range of IPs in cPanel. I changed the spambot countermeasure to reCaptcha. I disabled the contact form. More work may be needed later depending on how well this works.
  • Troubleshooting. A client had an issue with “Secure connection failed” error messages. I advised to change server settings, change protocol to https and port to 443. Later, I gave advice to use the domain name instead of an IP in the server settings. This was peculiar in part because the client wouldn’t give me access to his forum, so I couldn’t directly see the problem. Also, for payment he mailed me cash!
  • Client was having an open_basedir error with his Joomla content management system. Although not my area of expertise, I worked on it. The /logs and /tmp paths in Joomla’s configuration.php were incorrect and had to be pointed inside the Joomla folder. I figured out the absolute path and made these changes. The issue, or at least the reported error, seems to have gone away.
  • I updated a board from phpBB 3.2.7 to phpBB 3.2.8. I updated the board’s prosilver_se style to latest version, as well as Danish and German casual honorifics language packs.
  • The previous board owner has been non-responsive. He may be dead, and board issues were piling up. Traded some emails with an alternate administrator with no founder privileges on what I could do for her. I moved some users between groups. I also made her a founder. I answered questions on how to change group color, and ranks vs. groups.
  • Client failed trying to upgrade a board from phpBB 3.0.8 to phpBB 3.2.7. All files in the board’s root folder were missing including config.php, but the folders were there except for files, images and store folders, which I uploaded. I uploaded missing files too and created a config.php file, after finding the database and creating a database user. I then could update the board. Attached images in posts may be missing, along with avatars, ranks, etc. I changed folder permissions as necessary. Later, ran the update to phpBB 3.2.8. There were no issues after I corrected the username to use. I disabled the contact form. I did not change their spambot countermeasure.
  • I updated a board from phpBB 3.0.14 to phpBB 3.2.8. There were no mods on the old board, but AutoMOD was installed that I cleaned up manually. About 180,000 posts. No issues during upgrade but entering the ACP caused a VigLink error that I fixed by removing a row from the phpbb_config table. I installed the proprietary Milk style, which also meant installing its extension first. I gave the style a default color so I could see it, otherwise it was washed out. I disabled the contact form and added reCaptcha V2 checkbox spambot countermeasure. I changed the board’s config.php file to use mysqli. I recommended upgrading PHP to 7.2.
  • I converted a forum from phpBB 2.0.22 to 3.2.8. About 120,000 posts. I kept the default prosilver style for now. I installed the German Casual Honorifics language pack. I installed the GDPR Extension (Release candidate) and Advertisement Management extension. I disabled contact form and recreated the search index. I set up reCaptcha V2 spambot countermeasure. Client watched the whole process online with Skype. I suspect he will do the fine tuning.