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

Revision: 84597
Author:   junaidpv
Date:     2011-03-23 15:14:44 +0000 (Wed, 23 Mar 2011)
Log Message:
-----------
Narayam: Add a checkbox under 'Advanced options' section of 'Editing' tab 
toallow user to disable Narayam IME.

Modified Paths:
--------------
    trunk/extensions/Narayam/Narayam.hooks.php
    trunk/extensions/Narayam/Narayam.i18n.php
    trunk/extensions/Narayam/Narayam.php

Modified: trunk/extensions/Narayam/Narayam.hooks.php
===================================================================
--- trunk/extensions/Narayam/Narayam.hooks.php  2011-03-23 14:52:10 UTC (rev 
84596)
+++ trunk/extensions/Narayam/Narayam.hooks.php  2011-03-23 15:14:44 UTC (rev 
84597)
@@ -1,32 +1,50 @@
 <?php
+
 /**
  * Hooks for Narayam extension
  * @file
  * @ingroup Extensions
  */
 class NarayamHooks {
-       public static function addModules( $out, $skin ) {
-               $schemes = array_values( self::getSchemes () );
-               if ( count( $schemes ) ) {
-                       $out->addModules( $schemes );
-                       $out->addModules( 'ext.narayam' );
+
+       protected static $disabled = false;
+
+       public static function addModules($out, $skin) {
+               global $wgUser;
+               if ($wgUser->getOption('narayamDisable')) {
+                       // User disabled Narayam
+                       return true;
                }
+               $schemes = array_values(self::getSchemes ());
+               if (count($schemes)) {
+                       $out->addModules($schemes);
+                       $out->addModules('ext.narayam');
+               }
                return true;
        }
-       
-       public static function addConfig( &$vars ) {
-               global $wgNarayamEnabledByDefault, $wgNarayamShortcutKey;
+
+       public static function addConfig(&$vars) {
+               global $wgNarayamEnabledByDefault, $wgNarayamShortcutKey, 
$wgUser;
+               if ($wgUser->getOption('narayamDisable')) {
+                       // User disabled Narayam
+                       return true;
+               }
                $vars['wgNarayamEnabledByDefault'] = $wgNarayamEnabledByDefault;
                $vars['wgNarayamShortcutKey'] = $wgNarayamShortcutKey;
-               
+
                return true;
        }
-       
-       public static function addVariables( &$vars ) {
+
+       public static function addVariables(&$vars) {
+               global $wgUser;
+               if ($wgUser->getOption('narayamDisable')) {
+                       // User disabled Narayam
+                       return true;
+               }
                $vars['wgNarayamAvailableSchemes'] = self::getSchemes(); // 
Note: scheme names must be keys, not values
                return true;
        }
-       
+
        /**
         * Get the available schemes for the user and content language
         * @return array( scheme name => module name )
@@ -34,10 +52,21 @@
        protected static function getSchemes() {
                global $wgLanguageCode, $wgLang, $wgNarayamSchemes;
                $userlangCode = $wgLang->getCode();
-               $contlangSchemes = isset( $wgNarayamSchemes[$wgLanguageCode] ) ?
-                       $wgNarayamSchemes[$wgLanguageCode] : array();
-               $userlangSchemes = isset( $wgNarayamSchemes[$userlangCode] ) ?
-                       $wgNarayamSchemes[$userlangCode] : array();
+               $contlangSchemes = isset($wgNarayamSchemes[$wgLanguageCode]) ?
+                               $wgNarayamSchemes[$wgLanguageCode] : array();
+               $userlangSchemes = isset($wgNarayamSchemes[$userlangCode]) ?
+                               $wgNarayamSchemes[$userlangCode] : array();
                return $userlangSchemes + $contlangSchemes;
        }
+
+       public static function addPreference($user, &$preferences) {
+               // A checkbox in preferences to diable Narayam
+               $preferences['narayamDisable'] = array(
+                       'type' => 'toggle',
+                       'label-message' => 'narayam-disable-preference', // a 
system message
+                       'section' => 'editing/advancedediting', // under 
'Advanced options' section of 'Editing' tab
+               );
+               return true;
+       }
+
 }

Modified: trunk/extensions/Narayam/Narayam.i18n.php
===================================================================
--- trunk/extensions/Narayam/Narayam.i18n.php   2011-03-23 14:52:10 UTC (rev 
84596)
+++ trunk/extensions/Narayam/Narayam.i18n.php   2011-03-23 15:14:44 UTC (rev 
84597)
@@ -18,6 +18,7 @@
        'narayam-toggle-ime' => 'To toggle IM ($1)', // FIXME: better message
        'narayam-help-page' => 'Help:Typing',
        'narayam-checkbox-tooltip' => 'To toggle input method on and off', // 
FIXME: better message
+       'narayam-disable-preference' => 'Disable Narayam IME',
        'narayam-hi-inscript' => 'Hindi InScript',
        'narayam-kn' => 'Kannada Transliteration',
        'narayam-kn-inscript' => 'Kannada InScript',

Modified: trunk/extensions/Narayam/Narayam.php
===================================================================
--- trunk/extensions/Narayam/Narayam.php        2011-03-23 14:52:10 UTC (rev 
84596)
+++ trunk/extensions/Narayam/Narayam.php        2011-03-23 15:14:44 UTC (rev 
84597)
@@ -98,6 +98,7 @@
 $wgHooks['BeforePageDisplay'][] = 'NarayamHooks::addModules';
 $wgHooks['ResourceLoaderGetConfigVars'][] = 'NarayamHooks::addConfig';
 $wgHooks['MakeGlobalVariablesScript'][] = 'NarayamHooks::addVariables';
+$wgHooks['GetPreferences'][] = 'NarayamHooks::addPreference';
 
 // Autoloader
 $wgAutoloadClasses['NarayamHooks'] = dirname( __FILE__ ) . 
'/Narayam.hooks.php';


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

Reply via email to