PHPackages                             mwstake/periodic-related-changes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. mwstake/periodic-related-changes

ActiveMediawiki-extension[Mail &amp; Notifications](/categories/mail)

mwstake/periodic-related-changes
================================

MediaWiki extension to set up periodic notifications of related changes

1302PHP

Since Dec 19Pushed 3y ago1 watchersCompare

[ Source](https://github.com/hexmode/mediawiki-PeriodicRelatedChanges)[ Packagist](https://packagist.org/packages/mwstake/periodic-related-changes)[ RSS](/packages/mwstake-periodic-related-changes/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Periodic Related Changes
========================

[](#periodic-related-changes)

Periodic Related Changes (PRC) is a MediaWiki extension to specify that a user should get the related changes for a page during a specified period of time (usually a week).

Read the [user manual](doc/User_manual.org) to understand how to use this tool better.

Installation
------------

[](#installation)

Installing the PRC is straightforward.

### Make sure Echo is installed

[](#make-sure-echo-is-installed)

This extension relies on the [Echo extension](https://www.mediawiki.org/wiki/Extension:Echo) to send messages. Echo cannot (currently) be installed with composer, so you’ll need to [install Echo](https://www.mediawiki.org/wiki/Extension:Echo#Installing) separately before continuing.

### Fetch the extension with composer

[](#fetch-the-extension-with-composer)

If you’re familiar with composer, then, to install PRC you just need to add a dependency on [mwstake/periodic-related-changes](https://packagist.org/packages/mwstake/periodic-related-changes).

If you don’t already have composer, you’ll need to [download it](https://getcomposer.org/download/).

From the command line, run the following:

```
	php composer.phar require mwstake/periodic-related-changes dev-master
```

### Update LocalSettings.php

[](#update-localsettingsphp)

Add the following line to your LocalSettings.php:

```
	wfLoadExtension( 'PeriodicRelatedChanges' );
```

### Run update.php

[](#run-updatephp)

On the command line:

```
	php maintenance/update.php --quick
```

### Verify installation

[](#verify-installation)

You should see “PeriodicRelatedChanges” listed on your wiki’s Special:Version page.

### Setting up batched email notifications

[](#setting-up-batched-email-notifications)

Finally, if you want notifications sent in a batch on a daily or weekly basis, then it is absolutely necessary that you ensure that the auxillary script, `processEchoEmailBatch.php` is run.

You need to set up a recurring job that will run the following command at least once a day:

```
	php extensions/Echo/maintenance/processEchoEmailBatch.php
```

On a Unix-derived system like Linux or OS X, this can be done with a [cron job](https://www.thesitewizard.com/general/set-cron-job.shtml). On Windows, you’ll probably want to use [scheduled task cmdlets in PowerShell](https://technet.microsoft.com/en-us/library/jj649816(v=wps.630).aspx) or [SCHTASKS.](https://ss64.com/nt/schtasks.html)

### Forcing notices to a specific schedule.

[](#forcing-notices-to-a-specific-schedule)

Because of limitations of how Echo handles notifications, fine grained scheduling is not available. Administrators can, however, force all batched Echo notifications to go out at a specified time.

#### On Unix

[](#on-unix)

For instance, if you want all PRC notifications to go out at 5pm on a Friday afternoon in a Unix cron job, the following cron entry would work:

```
0 17 * * 5 	php extensions/Echo/maintenance/processEchoEmailBatch.php -i
```

#### On Windows

[](#on-windows)

Similarly, using SCHTASKS to perform this in Windows would look something like the following:

```
SCHTASKS /Create /SC weekly /D FRI /TN PRCNotifications /ST 17:00 /TR c:\do_prc.bat
```

You would have to execute the following command in `do_prc.bat`, or course:

```
php extensions/Echo/maintenance/processEchoEmailBatch.php -i
```

### Cautions

[](#cautions)

Note that setting up weekly notifications in this way will affect *all* batched Echo notifications, not just those for PRC. This means that if a user has specified they want to be notified via email on a daily basis of comments on their page, but you only run `processEchoEmailBatch.php` once a week, they’ll only get the notices once a week.

Configuration
-------------

[](#configuration)

There are a few items you might want to configure for Echo and PRC. Each of the lines of code below can be put in your LocalSettings.php file.

**PRC can send HTML email using Echo, but you need to enable it.** ([doc](https://www.mediawiki.org/wiki/Manual:$wgAllowHTMLEmail))

```
$wgAllowHTMLEmail = true;
```

**If you want to batch up emails (that’s the “Periodic” part, after all), you need to enable batch notifications in Echo.** ([doc](https://www.mediawiki.org/wiki/Extension:Echo#Configuration))

```
$wgEchoEnableEmailBatch = true;
```

**You can send set the default email format for your users to HTML if you’d like.** ([doc](https://www.mediawiki.org/wiki/Extension:Echo#Configuration))

```
$wgDefaultUserOptions['echo-email-format'] = 'html';
```

**Optionally, don’t allow your users to change to the text-only email format.**

```
$wgHiddenPrefs[] = 'echo-email-format';
```

**Enable emailed PRC notifications for all users by default.**

```
$wgDefaultUserOptions['echo-subscriptions-email-periodic-related-changes'] = true;
```

**Don’t allow your users to turn off the notifications.**

```
$wgHiddenPrefs[] = 'echo-subscriptions-email-periodic-related-changes';
```

**Set your user’s to receive emails on a weekly basis by default.**

```
$wgDefaultUserOptions['echo-email-frequency'] = 7;
```

*The constant =EchoEmailFrequency::WEEKLY\_DIGEST= is set to this number (7), but the constant can’t be used in the LocalSettings.php file in some versions of MediaWiki.*

**Optionally, don’t allow your users to change to daily to emails.**

```
$wgHiddenPrefs[] = 'echo-email-frequency';
```

**Disable (by default) un-batched, on-wiki Echo notifications for PRC.**

```
$wgDefaultUserOptions['echo-subscriptions-web-periodic-related-changes'] = false;
```

User Permissions
----------------

[](#user-permissions)

PRC exposes two new permissions that can be assigned to groups:

- `periodic-related-changes` - View and change the PRC notices for logged in user.
- `periodic-related-changes-any-user` - View and change the PRC notices for any user.

By default, the `periodic-related-changes` right is assigned to the `user` group so that any logged in user can view and modify their own PRC notices; the `periodic-related-changes-any-user` right is assigned to the `sysop` (often displayed as “administrator” on the wiki) group.

If you want to take the rights away from these groups you would do something like the following in your `LocalSettings.php`:

```
// Take away the default rights
$wgGroupPermissions['user']['periodic-related-changes'] = false;
$wgGroupPermissions['sysop']['periodic-related-changes-any-user'] = false;

// Give them to other groups
$wgGroupPermissions['watchers']['periodic-related-changes'] = true;
$wgGroupPermissions['watch-admin']['periodic-related-changes-any-user'] = true;
```

Support
-------

[](#support)

If you run into problems, please post a question on MediaWiki’s [Support Desk](https://www.mediawiki.org/wiki/Project:Support_desk) and tag me ([@MarkAHershberger](https://en.wikipedia.org/wiki/User:MarkAHershberger)).

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 99.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/091004c4b32e573a26383800e11030fc01201119f53a8fa6886aa34e80edb42d?d=identicon)[hexmode](/maintainers/hexmode)

---

Top Contributors

[![hexmode](https://avatars.githubusercontent.com/u/43581?v=4)](https://github.com/hexmode "hexmode (131 commits)")[![legoktm](https://avatars.githubusercontent.com/u/81392?v=4)](https://github.com/legoktm "legoktm (1 commits)")

### Embed Badge

![Health badge](/badges/mwstake-periodic-related-changes/health.svg)

```
[![Health](https://phpackages.com/badges/mwstake-periodic-related-changes/health.svg)](https://phpackages.com/packages/mwstake-periodic-related-changes)
```

###  Alternatives

[tijsverkoyen/css-to-inline-styles

CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.

5.8k505.3M227](/packages/tijsverkoyen-css-to-inline-styles)[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
