Andrew-WMDE has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/361691 )

Change subject: Add BetaFeature Switch
......................................................................

Add BetaFeature Switch

Bug: T167257
Change-Id: Ia2be404f2605066d63b65d72920ddd1093fe44b5
---
M Hooks.php
M extension.json
M i18n/en.json
M i18n/qqq.json
4 files changed, 41 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/FileExporter 
refs/changes/91/361691/1

diff --git a/Hooks.php b/Hooks.php
index ad3f03c..72e4158 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -5,6 +5,9 @@
 use Message;
 use SkinTemplate;
 use WikiFilePage;
+use MediaWiki\MediaWikiServices;
+use User;
+use BetaFeatures;
 
 /**
  * @author Addshore
@@ -12,6 +15,21 @@
 class FileExporterHooks {
 
        public static function onSkinTemplateNavigation( SkinTemplate 
&$sktemplate, array &$links ) {
+               $config = MediaWikiServices::getInstance()->getMainConfig();
+               global $wgUser;
+
+               /**
+               * If this extension is configured to be a beta feature, and the 
BetaFeatures extension
+               * is loaded then require the current user to have the feature 
enabled.
+               */
+               if (
+                       $config->get( 'FileExporterBetaFeature' ) &&
+                       class_exists( BetaFeatures::class ) &&
+                       !BetaFeatures::isFeatureEnabled( $wgUser, 
'fileexporter' )
+               ) {
+                       return;
+               }
+
                global $wgFileExporterTarget;
 
                $title = $sktemplate->getTitle();
@@ -44,4 +62,16 @@
                ];
        }
 
+       public static function getBetaFeaturePreferences( User $user, array 
&$prefs ) {
+               $config = MediaWikiServices::getInstance()->getMainConfig();
+
+               if ( $config->get( 'FileExporterBetaFeature' ) ) {
+                       $prefs[ 'fileexporter' ] = [
+                               'label-message' => 
'fileexporter-beta-feature-message',
+                               'desc-message' => 
'fileexporter-beta-feature-description',
+                               'info-link' => 
'https://www.mediawiki.org/wiki/Extension:FileExporter',
+                               'discussion-link' => 
'https://www.mediawiki.org/wiki/Extension_talk:FileExporter',
+                       ];
+               }
+       }
 }
diff --git a/extension.json b/extension.json
index 58f1b4a..32189cd 100644
--- a/extension.json
+++ b/extension.json
@@ -16,12 +16,17 @@
                ]
        },
        "config": {
+               "@FileExporterBetaFeature": "Make FileExporter a BetaFeature. 
This requires the FileExporter extension and requires it to be enabled as a 
BetaFeature by each user.",
+               "FileExporterBetaFeature": false,
                "@FileExporterTarget": "The Special:ImportFile page on the 
target wiki, as provided by the FileImporter extension.",
                "FileExporterTarget": 
"https://commons.wikimedia.org/wiki/Special:ImportFile";
        },
        "Hooks": {
                "SkinTemplateNavigation": [
                        
"FileExporter\\FileExporterHooks::onSkinTemplateNavigation"
+               ],
+               "GetBetaFeaturePreferences": [
+                       
"FileExporter\\FileExporterHooks::getBetaFeaturePreferences"
                ]
        },
        "AutoloadClasses": {
diff --git a/i18n/en.json b/i18n/en.json
index 2a3dd8b..48cba7d 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -6,5 +6,7 @@
        },
        "fileexporter": "FileExporter",
        "fileexporter-desc": "Easy exporting of files to another wiki",
-       "fileexporter-text": "Export file"
+       "fileexporter-text": "Export file",
+       "fileexporter-beta-feature-message": "FileExporter",
+       "fileexporter-beta-feature-description": "Allows for easy exporting of 
files to another wiki."
 }
\ No newline at end of file
diff --git a/i18n/qqq.json b/i18n/qqq.json
index d114481..d326a52 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -6,5 +6,7 @@
        },
        "fileexporter": "FileExporter",
        "fileexporter-desc": 
"{{desc|name=FileExporter|url=https://www.mediawiki.org/wiki/Extension:FileExporter}}";,
-       "fileexporter-text": "Text to be displayed on a button on a File page 
which will take the user to the import page on the configured wiki."
+       "fileexporter-text": "Text to be displayed on a button on a File page 
which will take the user to the import page on the configured wiki.",
+       "fileexporter-beta-feature-message": "Label for the FileExporter Beta 
Feature.",
+       "fileexporter-beta-feature-description": "Description for the 
FileExporter Beta Feature, describing the feature that will be enabled."
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2be404f2605066d63b65d72920ddd1093fe44b5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/FileExporter
Gerrit-Branch: master
Gerrit-Owner: Andrew-WMDE <andrew.kos...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to