+ // Build a list of users to notfiy
+ $watchers = array();
+ if ($wgEnotifWatchlist || $wgShowUpdatedMarker) {
+ $dbw = wfGetDB( DB_MASTER );
+ $res = $dbw->select( array( 'watchlist' ),
+ array( 'wl_user' ),
+ array(
+ 'wl_title' => $title->getDBkey(),
+ 'wl_namespace' => $title->getNamespace(),
+ 'wl_user != ' . intval( $editor->getID() ),
+ 'wl_notificationtimestamp IS NULL',
+ ), __METHOD__
+ );
+ while ($row = $dbw->fetchObject( $res ) ) {
+ $watchers[] = intval( $row->wl_user );
+ }
+ if ($watchers) {
+ // Update wl_notificationtimestamp for all watching users except
+ // the editor
+ $dbw->begin();
+ $dbw->update( 'watchlist',
+ array( /* SET */
+ 'wl_notificationtimestamp' => $dbw->timestamp( $timestamp )
+ ), array( /* WHERE */
+ 'wl_title' => $title->getDBkey(),
+ 'wl_namespace' => $title->getNamespace(),
+ 'wl_user' => $watchers
+ ), __METHOD__
+ );
+ $dbw->commit();
+ }
+ }
+