jenkins-bot has submitted this change and it was merged.

Change subject: Flag to disable Special:NewMessages
......................................................................


Flag to disable Special:NewMessages

In order to gradually sunset LiquidThreads,
this flag allows turning off the 'New mesages'
link and the associated NewMessages special
page.

The config variable is $wgLiquidThreadsEnableNewMessages.
It defaults to true.

Bug: T107897
Change-Id: Ic8b483e7b90f1cf8b75a00946b1d1d4e93fb88b5
---
M LiquidThreads.php
M classes/Hooks.php
2 files changed, 35 insertions(+), 14 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/LiquidThreads.php b/LiquidThreads.php
index 1061df1..80835e4 100644
--- a/LiquidThreads.php
+++ b/LiquidThreads.php
@@ -182,6 +182,9 @@
 // Info
 $wgHooks['InfoAction'][] = 'LqtHooks::onInfoAction';
 
+// Special pages registration
+$wgHooks['SpecialPage_initList'][] = 'LqtHooks::onSpecialPage_initList';
+
 // Special pages
 $wgSpecialPages['MoveThread'] = 'SpecialMoveThread';
 $wgSpecialPages['NewMessages'] = 'SpecialNewMessages';
@@ -367,3 +370,6 @@
 
 /** Enable/disable the bump checkbox. **/
 $wgLiquidThreadsShowBumpCheckbox = false;
+
+/** Enable/Disable 'New messages' link and special page (Special:NewMessages) 
*/
+$wgLiquidThreadsEnableNewMessages = true;
diff --git a/classes/Hooks.php b/classes/Hooks.php
index eebcf2b..acb68ed 100644
--- a/classes/Hooks.php
+++ b/classes/Hooks.php
@@ -515,23 +515,27 @@
                        return true;
                }
 
-               $newMessagesCount = NewMessages::newMessageCount( $wgUser );
+               global $wgLiquidThreadsEnableNewMessages;
 
-               // Add new messages link.
-               $url = SpecialPage::getTitleFor( 'NewMessages' )->getLocalURL();
-               $msg = $newMessagesCount ? 'lqt-newmessages-n' : 
'lqt_newmessages';
-               $newMessagesLink = array(
-                       'href' => $url,
-                       'text' => wfMessage( $msg )->numParams( 
$newMessagesCount )->text(),
-                       'active' => $newMessagesCount > 0,
-               );
+               if ( $wgLiquidThreadsEnableNewMessages ) {
+                       $newMessagesCount = NewMessages::newMessageCount( 
$wgUser );
 
-               $insertUrls = array( 'newmessages' => $newMessagesLink );
+                       // Add new messages link.
+                       $url = SpecialPage::getTitleFor( 'NewMessages' 
)->getLocalURL();
+                       $msg = $newMessagesCount ? 'lqt-newmessages-n' : 
'lqt_newmessages';
+                       $newMessagesLink = array(
+                               'href' => $url,
+                               'text' => wfMessage( $msg )->numParams( 
$newMessagesCount )->text(),
+                               'active' => $newMessagesCount > 0,
+                       );
 
-               if ( in_array( 'watchlist', array_keys( $personal_urls ) ) ) { 
// User has viewmywatchlist permission
-                       $personal_urls = wfArrayInsertAfter( $personal_urls, 
$insertUrls, 'watchlist' );
-               } else {
-                       $personal_urls = wfArrayInsertAfter( $personal_urls, 
$insertUrls, 'preferences' );
+                       $insertUrls = array( 'newmessages' => $newMessagesLink 
);
+
+                       if ( in_array( 'watchlist', array_keys( $personal_urls 
) ) ) { // User has viewmywatchlist permission
+                               $personal_urls = wfArrayInsertAfter( 
$personal_urls, $insertUrls, 'watchlist' );
+                       } else {
+                               $personal_urls = wfArrayInsertAfter( 
$personal_urls, $insertUrls, 'preferences' );
+                       }
                }
 
                return true;
@@ -962,4 +966,15 @@
 
                return true;
        }
+
+       public static function onSpecialPage_initList( &$aSpecialPages ) {
+               global $wgLiquidThreadsEnableNewMessages;
+
+               if ( !$wgLiquidThreadsEnableNewMessages ) {
+                       if ( isset( $aSpecialPages['NewMessages'] ) ) {
+                               unset( $aSpecialPages['NewMessages'] );
+                       }
+               }
+               return true;
+       }
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic8b483e7b90f1cf8b75a00946b1d1d4e93fb88b5
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/LiquidThreads
Gerrit-Branch: master
Gerrit-Owner: Sbisson <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Mattflaschen <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to