Extension:Semantic NotifyMe

Support
The recommended way is to email the SMW Wiki user group semediawiki-user@lists.sourceforge.net with subject starting with [NotifyMe] so that it'll help us find the email, and for all other people to see the issues and responses as well.

Alternatively, if you know the email addresses of the authors, please feel free to email them directly.

Requirements

 * MediaWiki 1.13.5 to 1.15.1
 * Semantic MediaWiki 1.4.3
 * PHP 5.x or greater installed and working
 * MySQL >= 4.0.14 (version required by MediaWiki)
 * Halo extension 1.4.4 (optional)

Installation
Edit $IP/LocalSettings.php and add:

include_once('extensions/SemanticNotifyMe/includes/SNM_Initialize.php');

Patch
Apply this patch, (for MediaWiki version 1.15.1 and older) $IP/extensions/SemanticMediaWiki/includes/storage/SMW_SQLStore2.php

Find the following lines in function 'refreshData' if ($usejobs) { Job::batchInsert($updatejobs); } else { Add the following lines right before it. $title = SpecialPage::getTitleFor( 'SMWNotifyMe' ); $updatejobs[] = new SMWNMRefreshJob($title); E.g., $title = SpecialPage::getTitleFor( 'SMWNotifyMe' ); $updatejobs[] = new SMWNMRefreshJob($title);

if ($usejobs) { Job::batchInsert($updatejobs); } else {

DB upgrade
Generate data tables for Semantic NotifyMe


 * Run
 * php extensions/SemanticMediaWiki/maintenance/SMW_setup.php
 * Or login site as administrator, go to special page:
 * http://site_host/index.php/Special:SMWAdmin
 * Click 'Initialise or upgrade tables' button.

Special:NotifyMe


Special page 'Notify Me' can be found in 'Semantic MediaWiki' group of 'Special pages' page.


 * 1) NotifyMe extension records the query processors.
 * 2) It runs every query when semantic data has been changed inside wiki page.
 * 3) Generate report.
 * 4) * The report will be sent via mail
 * 5) * The report will also be viewed as a feed

NotifyMe can slow down the server since it takes time to go over all related registered queries, but it will only do so for writes on related properties and values. For wikis that do not have lots of writes, and lots of notification queries, the performance degradation is usually ignorable.

NotifyMe mail
User can receive notification email, it is done by 'Enabling 'Notify Me' by E-mail' checked in NotifyMe special page.

The mail can be sent via either MW job system or OS shell.
 * set '$wgEnotifyMeJob' to true, to enable MW job system
 * set '$wgEnotifyMeJob' to false, to use OS shell, the mail will be sent asynchronous.
 * the default value of '$wgEnotifyMeJob' is set to false

Option: Report all
Reports all the changes of semantic properties and categories on monitored pages.

Otherwise, only properties and categories inside the query will be reported.

E.g.,

If report all is checked, all changed semantic data in the tasks will be reported.
 * ?Project story
 * ?Project task end date

Otherwise, only reports the changes of
 * Category:Project tasks
 * Property:Project task end date
 * Project story

Option: Show all
If show all is checked, an overall query result is included inside the report.

Delegate
Delegate field defines the users to whom the notification report is sent.

Autocomplete is available to help on complete the delegate users.

If you want to add auto complete in delegate field, please define 'delegate user group'

Edit $IP/LocalSettings.php and add:

$smwgNMDelegateUserGroup = "{user_groups separate by comma}";

E.g., $smwgNMDelegateUserGroup = "bureaucrat,darkmatter";

RSS feed
RSS feed lists the latest 20 reports of NotifyMe.


 * Personal feed
 * Feed for page edit reports, each item shows all notifications related to one page
 * Notification feed
 * Feed for page edit reports, each item shows one notification related to one page
 * In 'show all' feeds, just return current query result of the notification.

RSS feed has no privilege management.

Apply SMWHalo QI_AddButtons hook


Notify Me adds an extra button to special page 'Query Interface' (which is inside SMWHalo Extension).

You can also create notifications via Query Interface.
 * Only 'formate=table', 'link=all' is valid.