From: bsitu Date: Mon, 10 Jun 2013 22:11:39 +0000 (-0700) Subject: Add new hook AbortTalkPageEmailNotification X-Git-Tag: 1.31.0-rc.0~19453 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=f330f727df68d50fd7458e582a01b8989d5ca650;p=lhc%2Fweb%2Fwiklou.git Add new hook AbortTalkPageEmailNotification This hook will allow extension to disable the regular talk page email notification, Echo is doing this with a hackish solution of setting global variable wgEnotifUserTalk to false on the fly, this approach is problematic and will be replaced with this hook Change-Id: Ie043d9a1a771d64e4b05b7ddeca75c7542a6c575 --- diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index 653421557f..0b1d88a89a 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -109,6 +109,8 @@ production. for extensions such as OAuth: ** editmyusercss controls whether a user may edit their own CSS subpages. ** editmyuserjs controls whether a user may edit their own JS subpages. +* Add new hook AbortTalkPageEmailNotification, this will be used to determine + whether to send the regular talk page email notification === Bug fixes in 1.22 === * Disable Special:PasswordReset when $wgEnableEmail is false. Previously one diff --git a/docs/hooks.txt b/docs/hooks.txt index 66b5068244..ff0a864c82 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -270,6 +270,10 @@ $reason: the reason for the move (added in 1.13) $user: the User object about to be created (read-only, incomplete) &$msg: out parameter: HTML to display on abort +'AbortTalkPageEmailNotification': Return false to cancel talk page email notification +$targetUser: the user whom to send talk page email notification +$title: the page title + 'AbortChangePassword': Return false to cancel password change. $user: the User object to which the password change is occuring $mOldpass: the old password provided by the user diff --git a/includes/UserMailer.php b/includes/UserMailer.php index e48070aa04..2a549ac49c 100644 --- a/includes/UserMailer.php +++ b/includes/UserMailer.php @@ -668,11 +668,13 @@ class EmailNotification { } elseif ( $targetUser->getOption( 'enotifusertalkpages' ) && ( !$minorEdit || $targetUser->getOption( 'enotifminoredits' ) ) ) { - if ( $targetUser->isEmailConfirmed() ) { + if ( !$targetUser->isEmailConfirmed() ) { + wfDebug( __METHOD__ . ": talk page owner doesn't have validated email\n" ); + } elseif ( !wfRunHooks( 'AbortTalkPageEmailNotification', array( $targetUser, $title ) ) ) { + wfDebug( __METHOD__ . ": talk page update notification is aborted for this user\n" ); + } else { wfDebug( __METHOD__ . ": sending talk page update notification\n" ); return true; - } else { - wfDebug( __METHOD__ . ": talk page owner doesn't have validated email\n" ); } } else { wfDebug( __METHOD__ . ": talk page owner doesn't want notifications\n" );