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
Last version 1.0
MediaWiki 1.10
License No license specified
Download Download
Hooks used
ArticleSaveComplete
Check usage and version matrix

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

Usage [edit]

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]

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;
}