Use LinkTarget in EmailNotification::updateWatchlistTimestamp
authoraddshore <addshorewiki@gmail.com>
Wed, 3 Feb 2016 15:38:17 +0000 (16:38 +0100)
committeraddshore <addshorewiki@gmail.com>
Wed, 3 Feb 2016 15:59:45 +0000 (16:59 +0100)
Change-Id: I3a59839b3ec4db42966afa1db5ad0252fafa8cb9

includes/mail/EmailNotification.php

index 8bac6b8..9bda12c 100644 (file)
@@ -74,11 +74,15 @@ class EmailNotification {
        /**
         * @param User $editor The editor that triggered the update.  Their notification
         *  timestamp will not be updated(they have already seen it)
-        * @param Title $title The title to update timestamps for
+        * @param LinkTarget $linkTarget The link target of the title to update timestamps for
         * @param string $timestamp Set the update timestamp to this value
         * @return int[] Array of user IDs
         */
-       public static function updateWatchlistTimestamp( User $editor, Title $title, $timestamp ) {
+       public static function updateWatchlistTimestamp(
+               User $editor,
+               LinkTarget $linkTarget,
+               $timestamp
+       ) {
                global $wgEnotifWatchlist, $wgShowUpdatedMarker;
 
                if ( !$wgEnotifWatchlist && !$wgShowUpdatedMarker ) {
@@ -90,8 +94,8 @@ class EmailNotification {
                        array( 'wl_user' ),
                        array(
                                'wl_user != ' . intval( $editor->getID() ),
-                               'wl_namespace' => $title->getNamespace(),
-                               'wl_title' => $title->getDBkey(),
+                               'wl_namespace' => $linkTarget->getNamespace(),
+                               'wl_title' => $linkTarget->getDBkey(),
                                'wl_notificationtimestamp IS NULL',
                        ), __METHOD__
                );
@@ -105,14 +109,14 @@ class EmailNotification {
                        // Update wl_notificationtimestamp for all watching users except the editor
                        $fname = __METHOD__;
                        $dbw->onTransactionIdle(
-                               function () use ( $dbw, $timestamp, $watchers, $title, $fname ) {
+                               function () use ( $dbw, $timestamp, $watchers, $linkTarget, $fname ) {
                                        $dbw->update( 'watchlist',
                                                array( /* SET */
                                                        'wl_notificationtimestamp' => $dbw->timestamp( $timestamp )
                                                ), array( /* WHERE */
                                                        'wl_user' => $watchers,
-                                                       'wl_namespace' => $title->getNamespace(),
-                                                       'wl_title' => $title->getDBkey(),
+                                                       'wl_namespace' => $linkTarget->getNamespace(),
+                                                       'wl_title' => $linkTarget->getDBkey(),
                                                ), $fname
                                        );
                                }