Extension:AutoWatch

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
AutoWatch

Release status: stable

Implementation User interface
Description Add a custom defined list of user to watch any new or edited page + send an email on any new talk page
Author(s) Brice Lenfant (Briceltalk)
Latest version 1.0 (2007-11-21)
MediaWiki 1.10+
Database changes No
License GPL v2+
Download Download
Parameters
  • $wgMultiWatchUserIDs
Hooks used
ArticleSaveComplete

Translate the AutoWatch extension if possible

Check usage and version matrix; code metrics

The AutoWatch extension adds a custom list of users to watch any new or edited page plus send an email on any new talk page.

Usage[edit | edit source]

Save the code below to AutoWatch.php in MediaWiki's extensions folder.

Add the following line in the LocalSettings.php file:

$wgMultiWatchUserIDs = array(5, 3, 2, 6, 64, 9); #This is the list of your users' IDs to include in this mailing list
require_once("extensions/AutoWatch.php");

Code[edit | edit source]

This code has been tested on MediaWiki 1.12.

History:

  • 21 Nov 2007 -- Version 1.1 -- First release.
<?php
#########################################################################
# Installation notes, add array $wgMultiWatchUserIDs to LocalSettings.php with all uses ID's to include
# Example
#                     $wgMultiWatchUserIDs = array(5, 3, 2, 6);
# then add the line:  require_once("extensions/AutoWatch.php");
#
########################################################################
// Protect against register_globals
if ( !defined( 'MEDIAWIKI' ) ) {
    echo "Not a valid entry point";
    exit( 1 );
}
 
$wgExtensionCredits['other'][] = array(
	'name' => 'AutoWatch',
	'version' => '1.0',
	'author' => 'Brice Lenfant',
	'description' => 'Adds any new edited/created page to the watch list of defined users',
	'url' => 'https://www.mediawiki.org/wiki/Extension:AutoWatch',
);
 
$wgHooks['ArticleSaveComplete'][] = 'fnAddToWatch';
 
function fnAddToWatch(&$article, &$user, &$text, &$summary, &$minoredit, &$watchthis, &$sectionanchor, &$flags, $revision) {
	global $wgMultiWatchUserIDs;
	foreach ($wgMultiWatchUserIDs as $value){
		#Add to watch
		$user = User::newFromId($value);
		$user->addWatch( $article->mTitle );
		#Send email if it's a new talk 
		if ( $article->mTitle->isTalkPage ()){
			$eTitle = "Talk Page changed or created in Wiki  - ".$article->mTitle->getTalkNsText().':'.$article->mTitle->getDBkey();
			$eBody = $article->mTitle->GetFullURL();
			$user->sendMail($eTitle, $eBody );
		}
	}
	return true;
}