mod forum-subscriptions

Jump to: navigation, search

Feature proposal/specification for increased granularity to mod_forum subscription digest settings



At present, forum digest settings are a user profile setting and the same setting applies to every forum in Moodle.

This proposal suggests adding granularity to the digest settings to allow users to have a per-forum digest setting.

This would hope to give users the ability to reduce the amount of e-mail they receive for forums that may be high traffic, whilst still allow them to receive a summary of notifications.

To do so:

  • the existing user profile digest setting will be converted into a user default preference;
  • a per-forum instance setting will be added to allow each user to select their own digest preference; and
  • the forum subscription summary interface will be updated to allow users to select their own digest preferences for each forum.


Over the past year, we've encountered a number of issues relating to the amount of e-mail received as a result of forum subscriptions. Primarily, we feel that these would be solved by increased control over which discussions and posts result in a notification. The issues we've noticed broadly fit into four categories:

  1. too much e-mail from forum threads that users are not interested in (addressed by MDL-39707);
  2. inability for some staff to unsubscribe from forced subscription forums (addressed by MDL-40483);
  3. inability for other staff to subscribe to forced subscription forums (addressed by MDL-40483); and
  4. too much e-mail from forums that users are not interested in.

Several of these issues may be addressed shortly by MDL-39707 and MDL-40483:

  • The issue of forum thread subscription will be resolved by MDL-39707 if it is implemented, however I don't believe that the rest will based on the descriptions available; and
  • MDL-40483 attempts to address the first two issues by introducing a new capability which allows you to define which users can unsubscribe from a forum.

However, there is still a lack of granularity for forum subscriptions on the whole and this is the final area that this proposal seeks to address.

Changes required

User profile settings

Wording will be changed to indicate that the setting selected is the user's default setting.

mod_forum UI changes

The existing per-course forum index (/mod/forum/index.php?id=X) will be updated to display the current subscription settings. This information may also be displayed on a summary page for all forums a user is subscribed to (depending on performance aspects).

Where a user has the appropriate capability to both subscribe and unsubscribe from a forum's email notifications, a dropdown with these options will be displayed. Where they are unable to change their subscription options, text/an icon will be displayed indicating that that they cannot change their subscription and what their current subscription status is.

The current subscription setting will be a dropdown (single_select) with options:

  • Profile Default - always reflects the current profile field setting;
  • Single e-mail - always send an e-mail per forum discussion;
  • Daily Digest Complete - send a daily e-mail each day with the complete contents of each post in this forum;
  • Daily Digest Subjects - send a daily e-mail each day with the subject of each post in this forum;

These names may be shortened to reduce complexity of the user interface.

This will use JavaScript where possible to allow AJAX changes of the settings without requiring a full page reload.


mod_forum back-end changes

To cater for this, the forum_subscriptions table will be modified to incorporate any overrides to the standard settings. The following fields will be added

table field type length default value
forum_subscriptions maildigest int 1 -1

No additional database call is required for this, but the existing call to retrieve a list of all forums will be modified to outer join the forum_subscriptions table against the current user.


  • navigation changes to show and allow cyclic toggling of the setting?
  • improve perf of cron so it does not make an additional call per forum per message per user (on developed PoC patch)
  • determine UI changes required
  • UI mockups