http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100116

Revision: 100116
Author:   santhosh
Date:     2011-10-18 15:22:13 +0000 (Tue, 18 Oct 2011)
Log Message:
-----------
have a configuraiton parameter $wgEnableWebFontsDefault , when set false, dont 
show the extension for anonymous users.
For logged in users, use the user's preference page settings.

Modified Paths:
--------------
    trunk/extensions/WebFonts/WebFonts.hooks.php
    trunk/extensions/WebFonts/WebFonts.php
    trunk/extensions/WebFonts/js/webfonts.js

Modified: trunk/extensions/WebFonts/WebFonts.hooks.php
===================================================================
--- trunk/extensions/WebFonts/WebFonts.hooks.php        2011-10-18 15:13:37 UTC 
(rev 100115)
+++ trunk/extensions/WebFonts/WebFonts.hooks.php        2011-10-18 15:22:13 UTC 
(rev 100116)
@@ -17,7 +17,37 @@
 
                return true; // Hooks must return value
        }
+       
+       public static function addConfig( &$vars ) {
+               global $wgUser;
 
+               if ( $wgUser->getOption( 'webfontsDisable' ) ) {
+                       wfDebugLog( 'webfonts', 'User disabled WebFonts: '  , 
true  );
+                       // User disabled WebFonts
+                       return true;
+               }
+
+               
+               return true;
+       }
+
+       public static function addVariables( &$vars ) {
+               global $wgWebFontsEnabledByDefault, $wgUser;
+
+               if ( $wgUser->getOption( 'webfontsDisable' ) ) {
+                       // User disabled WebFonts
+                       return true;
+               }
+
+               if ( $wgUser->isAnon() ) {
+                       // If user enabled webfonts from preference page, 
+                       // wgWebFontsEnabledByDefault is overridden by that.
+                       $vars['wgWebFontsEnabledByDefault'] = 
$wgWebFontsEnabledByDefault;
+               }
+
+               return true;
+       }
+       
        public static function addPreference( $user, &$preferences ) {
                // A checkbox in preferences to disable WebFonts
                $preferences['webfontsDisable'] = array(

Modified: trunk/extensions/WebFonts/WebFonts.php
===================================================================
--- trunk/extensions/WebFonts/WebFonts.php      2011-10-18 15:13:37 UTC (rev 
100115)
+++ trunk/extensions/WebFonts/WebFonts.php      2011-10-18 15:22:13 UTC (rev 
100116)
@@ -35,6 +35,8 @@
 
 $wgHooks['BeforePageDisplay'][] = 'WebFontsHooks::addModules';
 $wgHooks['GetPreferences'][] = 'WebFontsHooks::addPreference';
+$wgHooks['ResourceLoaderGetConfigVars'][] = 'WebFontsHooks::addConfig';
+$wgHooks['MakeGlobalVariablesScript'][] = 'WebFontsHooks::addVariables';
 
 $wgWebFontsEnabled = true;
 

Modified: trunk/extensions/WebFonts/js/webfonts.js
===================================================================
--- trunk/extensions/WebFonts/js/webfonts.js    2011-10-18 15:13:37 UTC (rev 
100115)
+++ trunk/extensions/WebFonts/js/webfonts.js    2011-10-18 15:22:13 UTC (rev 
100116)
@@ -158,6 +158,11 @@
                        var config = [];
                        var languages = $.webfonts.config.languages;
                        var requested = [wgUserLanguage, wgContentLanguage];
+                       if ( mw.config.get( 'wgWebFontsEnabledByDefault' ) == 
false) {
+                               // Webfonts are not enabled by default. Not 
setting up.
+                               // This is applicable only for anonymous users.
+                               return false;
+                       }
                        for (var i = 0; i < requested.length; i++) {
                                if (requested[i] in languages) {
                                        var fonts = languages[requested[i]];


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

Reply via email to