Extension:AutoWatch

From MediaWiki.org

Jump to: navigation, search

           

Manual on MediaWiki Extensions
List of MediaWiki Extensions
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
Last Version  1.0
MediaWiki  1.10
License No license specified
Download Download

check usage (experimental)

[edit] Usage

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");

[edit] Code

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");
#
########################################################################
$wgExtensionCredits['other'][] = array(
	'name' => 'AutoWatch',
	'version' => '1.0',
	'author' => 'Brice Lenfant',
	'description' => 'Add any new edited/created page to the watch list of defined users',
	'url' => 'http://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;
}