Digests 3.0.7 (RC6) available for testing

You can get the archive of this new version on my digests page or download it from GitHub. Installation instructions are on the digests topic on phpbb.com.

It’s hard to describe the changes from 3.0.6-RC5 except there were many. In terms of new functionality, there is only one and somewhat obscure new feature. The ACP General setting page includes a new control: Maximum hours for mailer to process. It turns out that if things get fouled up so that the mailer stops that when it next runs the queue will be so large that the program will crash. Setting this control minimizes the likelihood of this happening on shared hosting.

There is one known bug in this release but it’s pretty obscure. It happens if you install the digests extension on phpBB 3.1.10 and the migrator finds in your database subscribers from an installation of the phpBB digests mod from phpBB 3.0. The migrator should handle this so you don’t lose any subscribers when you upgrade. The error does not occur if you use phpBB 3.1.9. For this reason this version of the extension supports phpBB 3.1.9 and higher. It’s likely that this problem is a result of changes to phpBB’s migrator introduced in phpBB 3.1.10. Hopefully when 3.1.11 is released this issue will go away.

I have gotten a lot of help with this release. VSE, an extension developer, substantially rewrote the migration programs so they would pass a review from the extensions review team.

In terms of backend stuff, some of the work includes moving most of the Javascript to use jQuery, which was quite a learning experience because the forms are very complex, particularly in Edit Subscribers. The digests cache area has been moved again. Files will appear in cache/phpbbservices/digests when you select this option with the manual mailer.

There has also been a lot of work to improve my coding techniques, principally to get away from use of global variables in the ACP and UCP modules and to use phpBB’s containers instead.

The one critical bug noted in this post has been fixed.

Overall, a lot of the code has been changed from the last version, but for the better. If you notice issues, post them to the digests topic on phpbb.com.


Digest extension bug that may cause duplicate digests

There is a bug in the digest extension’s mailer that could cause some subscribers to receive duplicate digests. It can happen if a user selects a digest containing bookmarked topics only, then removed all his bookmarked topics in phpBB. This triggers an exception. An appropriate error is written to the admin log to document this unusual behavior. However the exception is coded in such a way as to stop digests from processing. No subsequent hours are processed.

Since the hour is not marked as completed the next attempt to run the mailer will trigger the error again. Duplicates can occur if the user is not the first one scheduled to receive digests for that hour. So if this user is the 10th user to get a digest for that hour, users 1 through 9 will get duplicates.

In addition this bug will keep any subsequent hours from being processed, creating a queue.

There is a workaround. Assuming Digests 3.0.6 is installed (the bug exists in earlier versions) the bug can be fixed by editing /ext/phpbbservices/digests/cron/task/digests.php. Around line 1420 look for this line of code:

$this->digest_exception = true;

and simply comment it out:

 //$this->digest_exception = true;

This bug will be fixed in the next release.

Setting up your forum, part three (setting up groups)

(This post was updated September 21, 2019 to correct information on global moderators.)

After setting up a basic forum and installing a style and logo, the next thing to think about is what groups your forum needs. If your forum is designed to be open to everyone, this may not be much of a concern.

phpBB has an awesome group and permissions system. While it is awesomely powerful, it is also more than a bit obscure. In general permissions are oriented around groups. Permissions can also be oriented around individual users. It’s always better to use groups for managing all users, as it makes managing forums simpler in the long run.

Standard groups

phpBB comes with standard groups that meet the needs of many administrators. You can find these predefined groups in the Administration Control Panel. ACP > Users and groups > Manage groups. The standard groups include:

  • Administrators
  • Bots (i.e. robots, usually search engine agents)
  • Global Moderators
  • Guests
  • Newly registered users
  • Registered users
  • Registered COPPA users

There are permissions that can be fine-tuned for each of these groups, but the default permissions are a good place to start. In addition you can assign group forum permissions. For example, you could not show any forums to guests (the public) if you want your forum to be “members only”.


You would think that individuals in the administrators group can do anything, but that’s not true. Only founders have complete control of the board, which means people you trust with the founder role have to be explicitly given this status. ACP > Users and groups > Manage users. Select the user and look for an option to make the user a founder.

There’s another quirk about administrators: they don’t necessarily have forum permissions. This can happen if later you set up new forums without copying permissions from another forum. However, since they are administrators they usually have the ability to give themselves these forum permissions, but the procedures for doing so are a bit obscure.


phpBB is configured to recognize 57 common robots and crawlers used by search engines to index content in your forums. You can use the bots group to selectively turn off and on which forums bots can see and index. However, there are many more bots out there than these 57. They can be added selectively if you want: ACP > System > General Tasks > Spiders/Robots. As a practical matter if you don’t want any of your forum content to be indexed, it’s much simpler to create a robots.txt file and place it in your forum’s root directory with deny all permissions. There is no guarantee that a bot will follow the policy in a robots.txt file, so the ultra paranoid administrator should set forum permissions for both the bots and guests group to see no more than the name of the forum: ACP > Users and groups > Group forum permissions.

Global moderators

Global moderators have full moderator permissions to moderate any forum you have given them access to. Starting out the administrator will usually moderate all posts. At some point as board traffic builds it becomes useful to delegate moderation to trusted users. You can add a global moderator using the members link on the Manage Groups page. ACP > Users and groups > Manage groups.

Forum-specific moderators

You can also create moderators whose privileges extend to moderating only specific forums. This is done by either creating a specific group or individually. Here you can give a moderator permissions to moderate a subset of your forums.

For a specific moderation group, the best-practices is to:

  1. Create the group and copy global moderator permissions. ACP > Users and groups > Manage groups. Next, place any members you want to be a forum-specific moderator into the group by clicking on the members link.

  2. Assign the new group to one or more forums. ACP > Permissions > Forum based permissions > Forum moderators. Select the forums wanted for these forum-specific moderators and press Submit. The under Add Groups select the group that you created and press Add Permissions. For the role, select the type of moderator role, such as Full Moderator and press Apply All Permissions. Note that you can assign different moderator roles for different forums for the same moderator. For example, the moderator can be a full moderator for one forum and a queue moderator for another forum.

Forum moderation can also be assigned individually. As a best practice it’s best to avoid assigning permissions outside of a group.


A guest is any human who has not yet registered with the forum. Consider carefully which forums you want guests to read and set permissions accordingly: ACP > Users and groups > Group forum permissions. If you turn off all forum permissions for guests, they will see a “This board has no forums” message, which is not correct. Rather, it has no publicly readable forums.

Guests can be given permission to post without registering. If you enable this it is recommended you use a strong CAPTCHA for use during posting. Otherwise you are likely to attract a lot of spam. Guests will create a posting username when they post to identify themselves. You should enable this for each forum you want guests to post in by setting the appropriate permission for the guests group. ACP > Users and groups > Group forum permissions.

Newly registered users

By default a newly registered user is on probation and their first three posts attempts will be placed into a moderation queue for approval. You can disable this by selecting ACP > General > Board configuration > User registration settings and then changing “New member post limit” to zero.

When a user registers they are automatically placed in the newly registered users group and, curiously, the registered users group. The default permissions for newly registered users are set so they trump other permissions for the user. When they meet the criteria for being a registered user (such as making three valid posts) they are removed from this group and their registered users group permissions are used.

Registered users

This group contains your standard members and should be everyone who is registered. Typically you don’t need to maintain this group as users are placed into it automatically.

Registered COPPA Users

This is a rarely used group that can be enabled if your forum is United States based and needs to allow minors to post. You must set up a process to get parental permission. You might want to set permissions for COPPA users to child-appropriate forums that are carefully moderated. You can enable COPPA as follows: ACP > General > Board configuration > User registration settings. Look for the block at the bottom of the page.


A fuller discussion of phpBB’s permission system is a topic for another post. But be aware that forum permissions can be assigned to groups or individual users. phpBB uses the notion of a role to assign common permissions to a group. Use of a role allows you to change the permissions of a role and to have it automatically trickle down to all groups using these roles. ACP > Permissions > Permission roles. Roles are also used for forum, administrator, user and moderator permissions.

Creating groups

In general see if you can use the built-in groups in phpBB for your needs. Create new groups only when needed. A reason to create a new group might be to allow access to a forum or category only to members of a group with a special purpose. For example, a forum for a school might have a “teachers” group that has permissions to see and post to forums for teachers only. Those not in the teachers group would not be allowed to read the forum. ACP > Users and groups > Manage groups.

Since groups have little meaning outside of forums, after creating a group you should assign forum permissions to the group. ACP > Users and groups > Group forum permissions.


October 2016 work summary

October was a very slow month as far as requests for service, my slowest month this year. When not servicing customers I was working on version 3.0.7 of the digests extension. In addition I am doing some teaching for the Tech Foundry in Springfield, Massachusetts (three classes) and hosted a local WordPress meetup. Among my paid work in October:

  • I continued work for a client started in September. Provided advice on handling resource issues and general WordPress advice on potentially placing a photo of the day on a sidebar.
  • I upgraded a forum from phpBB 3.0.11 to 3.1.9 using the subsilver-based but responsive AllenStyle-subsilver style, so it would look familiar after the upgrade. I made tweaks to make it imitate the green in background containers used in the client’s larger website. Tweaked the link color to make it a dark green and changed Global Moderator color to black (had to make it the default group for these moderators).
  • I upgraded a prosilver-based forum from phpBB 3.0.11 to 3.1.9. There were lots of mods installed but all were removed with the upgrade. I installed the beta advertising management extension and the Advanced BBCode 3 extension after the upgrade. I manually removed lots of dead modules for 3.0 modifications.
  • I upgraded a forum from phpBB 2.0.23 to 3.0.14. I tried to upgrade directly to phpBB 3.1 because the host switched on PHP 5.4 which would support phpBB 3.1. After trying though I discovered that the host did not actually support PHP 5.4, which meant the host was unusually sloppy and poorly managed. They had to roll PHP back to 5.3.29, which meant phpBB 3.1 could not be installed, which led to the decision to use 3.0.14 instead. I redid the conversion and it worked. I installed new logo. Old forum is disabled and in an old_forum folder. Later I installed the location on registration mod. The upgrade soon drew spam registrations because of the default CAPTCHA. I then set up the Q&A countermeasure and deleted the hundred or so spam registrations.
  • A client upgrade attempted about a year ago did not complete successfully. Client wanted to complete the upgrade so the forum could be used again. I analyzed his site. His upgrade attempt did not affect the database. By comparing his database with a reference, I determined phpBB 3.0.12 was really installed and manually changed the version back to 3.0.12 in the database. I then attempted to do the upgrade again. However, the installed Black Pearl style would not port to 3.1. Client approved using the Black style instead, which works on 3.1 and looks similar. I then upgraded the forum successfully, but I had to refresh each page to continue the migration as the button at the bottom of the page was unresponsive. Upon completion there was an incorrect version reported, said 3.1.9, not 3.1.10. I verified 3.1.10 was actually installed by looking at the contents of the migrations table. When I purged cache the correct version was reported. I then installed two extensions: to move the search bar to the navigation bar and to compile .sccs files (needed for the Black style). I made lots of tweaks to the Black style to emulate the old look and feel with the new Black style.
  • I upgraded a forum from 3.1.9 to 3.1.10.
  • I investigated a concern from a client on why search engines weren’t seeing his content. The bots role did not enable searching but that may not matter as the read permission attached to the bots role should be what matters. Client changed the permissions on some forums that needed bot access.
  • I replaced an ad managed by the Advertising Management mod.