Kaldari has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/59086


Change subject: Modifying ArticleEditUpdateNewTalk hook so that it passes the 
recipient
......................................................................

Modifying ArticleEditUpdateNewTalk hook so that it passes the recipient

The recipient is the user who's talk page was edited. Extensions may
want to send or not send the notification based on some aspect of the
user, for example a preference.

Bug: 46550
Change-Id: Ifc8fbaf8fdc96f9c18c2a889d2e854e49b3a7010
---
M docs/hooks.txt
M includes/WikiPage.php
2 files changed, 16 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/86/59086/1

diff --git a/docs/hooks.txt b/docs/hooks.txt
index c266dcc..e896a72 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -482,7 +482,8 @@
 
 'ArticleEditUpdateNewTalk': Before updating user_newtalk when a user talk page
 was changed.
-$wikiPage: WikiPage (object) of the user talk page
+&$wikiPage: WikiPage (object) of the user talk page
+$recipient: User (object) who's talk page was edited
 
 'ArticleEditUpdates': When edit updates (mainly link tracking) are made when an
 article has been changed.
diff --git a/includes/WikiPage.php b/includes/WikiPage.php
index 228f295..cb75cf5 100644
--- a/includes/WikiPage.php
+++ b/includes/WikiPage.php
@@ -2121,17 +2121,20 @@
                        && $shortTitle != $user->getTitleKey()
                        && !( $revision->isMinor() && $user->isAllowed( 
'nominornewtalk' ) )
                ) {
-                       if ( wfRunHooks( 'ArticleEditUpdateNewTalk', array( 
&$this ) ) ) {
-                               $other = User::newFromName( $shortTitle, false 
);
-                               if ( !$other ) {
-                                       wfDebug( __METHOD__ . ": invalid 
username\n" );
-                               } elseif ( User::isIP( $shortTitle ) ) {
-                                       // An anonymous user
-                                       $other->setNewtalk( true, $revision );
-                               } elseif ( $other->isLoggedIn() ) {
-                                       $other->setNewtalk( true, $revision );
-                               } else {
-                                       wfDebug( __METHOD__ . ": don't need to 
notify a nonexistent user\n" );
+                       $recipient = User::newFromName( $shortTitle, false );
+                       if ( !$recipient ) {
+                               wfDebug( __METHOD__ . ": invalid username\n" );
+                       } else {
+                               // Allow extensions to prevent user 
notification when a new message is added to their talk page
+                               if ( wfRunHooks( 'ArticleEditUpdateNewTalk', 
array( &$this, $recipient ) ) ) {
+                                       if ( User::isIP( $shortTitle ) ) {
+                                               // An anonymous user
+                                               $recipient->setNewtalk( true, 
$revision );
+                                       } elseif ( $recipient->isLoggedIn() ) {
+                                               $recipient->setNewtalk( true, 
$revision );
+                                       } else {
+                                               wfDebug( __METHOD__ . ": don't 
need to notify a nonexistent user\n" );
+                                       }
                                }
                        }
                }

-- 
To view, visit https://gerrit.wikimedia.org/r/59086
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifc8fbaf8fdc96f9c18c2a889d2e854e49b3a7010
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Kaldari <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to