From: Chad Horohoe Date: Tue, 19 May 2009 17:07:46 +0000 (+0000) Subject: (bug 18761) Add setting to hide a list of preferences. X-Git-Tag: 1.31.0-rc.0~41737 X-Git-Url: http://git.cyclocoop.org/%40spipnet%40?a=commitdiff_plain;h=c458e633dec0e1081f9c738fb87f7501126ddcb1;p=lhc%2Fweb%2Fwiklou.git (bug 18761) Add setting to hide a list of preferences. --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index e297b36178..7806ddb155 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -24,6 +24,10 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * $wgSessionHandler can be used to configure session.save_handler * $wgLocalFileRepo/$wgForeignFileRepos now have a 'fileMode' parameter to be used when uploading/moving files +* (bug 18761) $wgHiddenPrefs is a new array for specifying preferences not + to be shown to users +* $wgAllowRealName was deprecated in favor of $wgHiddenPrefs[] = 'realname', + but the former is still retained for backwards-compatibility === New features in 1.16 === diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index f1b5f68acf..b80604fcc6 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -2496,9 +2496,15 @@ $wgDefaultUserOptions = array( 'disablemail' => 0, ); -/** Whether or not to allow and use real name fields. Defaults to true. */ +/** + * Whether or not to allow and use real name fields. + * @deprecated in 1.16, use $wgHiddenPrefs[] = 'realname' below + */ $wgAllowRealName = true; +/** An array of preferences to not show for the user */ +$wgHiddenPrefs = array(); + /***************************************************************************** * Extensions */ diff --git a/includes/Preferences.php b/includes/Preferences.php index 1c35910a0c..145a1bd273 100644 --- a/includes/Preferences.php +++ b/includes/Preferences.php @@ -29,6 +29,14 @@ class Preferences { wfRunHooks( 'GetPreferences', array( $user, &$defaultPreferences ) ); + ## Remove preferences that wikis don't want to use + global $wgHiddenPrefs; + foreach ( $wgHiddenPrefs as $pref ) { + if ( isset( $defaultPreferences[$pref] ) ) { + unset( $defaultPreferences[ $pref ] ); + } + } + ## Prod in defaults from the user global $wgDefaultUserOptions; foreach( $defaultPreferences as $name => &$info ) { @@ -138,19 +146,16 @@ class Preferences { } // Actually changeable stuff - global $wgAllowRealName, $wgAuth; - if ($wgAllowRealName) { - $defaultPreferences['realname'] = - array( - 'type' => $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info', - 'default' => $user->getRealName(), - 'section' => 'personal/info', - 'label-message' => 'yourrealname', - 'help-message' => 'prefs-help-realname', - ); - } - - + global $wgAuth; + $defaultPreferences['realname'] = + array( + 'type' => $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info', + 'default' => $user->getRealName(), + 'section' => 'personal/info', + 'label-message' => 'yourrealname', + 'help-message' => 'prefs-help-realname', + ); + $defaultPreferences['gender'] = array( 'type' => 'select', diff --git a/includes/Setup.php b/includes/Setup.php index f7119bb2ab..8df3f98300 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -201,6 +201,12 @@ $wgContLanguageCode = $wgLanguageCode; # If file cache or squid cache is on, just disable this (DWIMD). if( $wgUseFileCache || $wgUseSquid ) $wgShowIPinHeader = false; +# $wgAllowRealName was removed in 1.16 in favor of $wgHiddenPrefs, +# handle b/c here +if( !$wgAllowRealName ) { + $wgHiddenPrefs[] = 'realname'; +} + wfProfileOut( $fname.'-misc1' ); wfProfileIn( $fname.'-memcached' );