mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/MultimediaViewer
synced 2024-09-23 10:22:14 +00:00
Add user preference for non-beta disabling
Change-Id: I3f581975cfdf33bc15b8a4b23549c6401b4bfb87
(cherry picked from commit b0b1446f5b
)
This commit is contained in:
parent
24ba37d57b
commit
59c1f3f6bd
|
@ -30,6 +30,7 @@ $messages['en'] = array(
|
|||
'multimediaviewer-desc-nil' => 'No description available.',
|
||||
'multimediaviewer-pref' => 'Media Viewer',
|
||||
'multimediaviewer-pref-desc' => 'Improve your multimedia viewing experience with this new tool. It displays images in larger size on pages that have thumbnails. Images are shown in a nicer fullscreen interface overlay, and can also be viewed in full-size.',
|
||||
'multimediaviewer-optin-pref' => 'Enable new media viewing experience',
|
||||
'multimediaviewer-file-page' => 'Go to corresponding file page',
|
||||
'multimediaviewer-repository' => 'Learn more on $1',
|
||||
'multimediaviewer-repository-local' => 'Learn more',
|
||||
|
@ -121,6 +122,7 @@ $messages['qqq'] = array(
|
|||
'multimediaviewer-desc-nil' => 'Text to be used when no description is available.',
|
||||
'multimediaviewer-pref' => 'Preference title',
|
||||
'multimediaviewer-pref-desc' => 'Description of preference',
|
||||
'multimediaviewer-optin-pref' => 'Label for non-beta preference.',
|
||||
'multimediaviewer-file-page' => 'Text for a link to the file page for an image.',
|
||||
'multimediaviewer-repository' => 'Link to the repository where the image is hosted. Parameters:
|
||||
* $1 - the display name of that site
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
call_user_func( function() {
|
||||
global $wgExtensionMessagesFiles, $wgResourceModules, $wgExtensionFunctions, $wgMediaViewerIsInBeta,
|
||||
$wgAutoloadClasses, $wgHooks, $wgExtensionCredits, $wgNetworkPerformanceSamplingFactor,
|
||||
$wgEnableMediaViewerForLoggedInUsersOnly;
|
||||
$wgEnableMediaViewerForLoggedInUsersOnly, $wgDefaultUserOptions;
|
||||
|
||||
/** @var int|bool: If set, records image load network performance once per this many requests. False if unset. **/
|
||||
$wgNetworkPerformanceSamplingFactor = false;
|
||||
|
@ -665,6 +665,9 @@ call_user_func( function() {
|
|||
$wgHooks['GetBetaFeaturePreferences'][] = 'MultimediaViewerHooks::getBetaPreferences';
|
||||
}
|
||||
|
||||
$wgDefaultUserOptions['multimediaviewer-enable'] = true;
|
||||
|
||||
$wgHooks['GetPreferences'][] = 'MultimediaViewerHooks::getPreferences';
|
||||
$wgHooks['BeforePageDisplay'][] = 'MultimediaViewerHooks::getModulesForArticle';
|
||||
$wgHooks['CategoryPageView'][] = 'MultimediaViewerHooks::getModulesForCategory';
|
||||
$wgHooks['ResourceLoaderGetConfigVars'][] = 'MultimediaViewerHooks::resourceLoaderGetConfigVars';
|
||||
|
|
|
@ -38,12 +38,18 @@ class MultimediaViewerHooks {
|
|||
|
||||
if ( $wgMediaViewerIsInBeta && class_exists( 'BetaFeatures' ) ) {
|
||||
return BetaFeatures::isFeatureEnabled( $user, 'multimedia-viewer' );
|
||||
} else if ( $wgEnableMediaViewerForLoggedInUsersOnly ) {
|
||||
return $user->isLoggedIn();
|
||||
} else {
|
||||
// Default to enabling for everyone.
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( $user->getOption( 'multimediaviewer-enable' ) ) {
|
||||
if ( $wgEnableMediaViewerForLoggedInUsersOnly ) {
|
||||
return $user->isLoggedIn();
|
||||
} else {
|
||||
// Default to enabling for everyone.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,6 +118,17 @@ class MultimediaViewerHooks {
|
|||
return true;
|
||||
}
|
||||
|
||||
// Adds a default-enabled preference to gate the feature on non-beta sites
|
||||
public static function getPreferences( $user, &$prefs ) {
|
||||
$prefs['multimediaviewer-enable'] = array(
|
||||
'type' => 'toggle',
|
||||
'label-message' => 'multimediaviewer-optin-pref',
|
||||
'section' => 'rendering/files',
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Export variables used in both PHP and JS to keep DRY
|
||||
* @param array $vars
|
||||
|
|
Loading…
Reference in a new issue