Refactor Preferences code to allow better reuse.
authorjdlrobson <jdlrobson@gmail.com>
Mon, 16 Jun 2014 17:26:15 +0000 (10:26 -0700)
committerjdlrobson <jdlrobson@gmail.com>
Wed, 9 Jul 2014 21:26:51 +0000 (14:26 -0700)
Break up getPreferences into smaller subfunctions to
allow for reuse.

Change-Id: Idd33bab61b3ef5a262fee9361105f1c5d8024044

includes/Preferences.php

index f884ec3..fdb1a9d 100644 (file)
@@ -98,6 +98,20 @@ class Preferences {
 
                wfRunHooks( 'GetPreferences', array( $user, &$defaultPreferences ) );
 
 
                wfRunHooks( 'GetPreferences', array( $user, &$defaultPreferences ) );
 
+               self::loadPreferenceValues( $user, $context, $defaultPreferences );
+               self::$defaultPreferences = $defaultPreferences;
+               return $defaultPreferences;
+       }
+
+       /**
+        * Loads existing values for a given array of preferences
+        * @throws MWException
+        * @param User $user
+        * @param IContextSource $context
+        * @param array defaultPreferences to load values for
+        * @return array|null
+        */
+       static function loadPreferenceValues( $user, $context, &$defaultPreferences ) {
                ## Remove preferences that wikis don't want to use
                global $wgHiddenPrefs;
                foreach ( $wgHiddenPrefs as $pref ) {
                ## Remove preferences that wikis don't want to use
                global $wgHiddenPrefs;
                foreach ( $wgHiddenPrefs as $pref ) {
@@ -138,8 +152,6 @@ class Preferences {
                        }
                }
 
                        }
                }
 
-               self::$defaultPreferences = $defaultPreferences;
-
                return $defaultPreferences;
        }
 
                return $defaultPreferences;
        }