Revision: 46246
Author:   nikerabbit
Date:     2009-01-26 09:41:52 +0000 (Mon, 26 Jan 2009)

Log Message:
-----------
* (bug 13040) Gender switch in user preferences

Modified Paths:
--------------
    trunk/phase3/RELEASE-NOTES
    trunk/phase3/includes/specials/SpecialPreferences.php
    trunk/phase3/languages/messages/MessagesEn.php

Modified: trunk/phase3/RELEASE-NOTES
===================================================================
--- trunk/phase3/RELEASE-NOTES  2009-01-26 07:06:17 UTC (rev 46245)
+++ trunk/phase3/RELEASE-NOTES  2009-01-26 09:41:52 UTC (rev 46246)
@@ -62,6 +62,7 @@
 * More helpful error message on raw page access if PHP_SELF isn't set
 * (bug 17145) Specific categories can be excluded from Special:UnusedCategories
   with __IGNOREUNUSED__
+* (bug 13040) Gender switch in user preferences
 
 === Bug fixes in 1.15 ===
 * (bug 16968) Special:Upload no longer throws useless warnings.

Modified: trunk/phase3/includes/specials/SpecialPreferences.php
===================================================================
--- trunk/phase3/includes/specials/SpecialPreferences.php       2009-01-26 
07:06:17 UTC (rev 46245)
+++ trunk/phase3/includes/specials/SpecialPreferences.php       2009-01-26 
09:41:52 UTC (rev 46246)
@@ -26,7 +26,7 @@
        var $mUserLanguage, $mUserVariant;
        var $mSearch, $mRecent, $mRecentDays, $mTimeZone, $mHourDiff, 
$mSearchLines, $mSearchChars, $mAction;
        var $mReset, $mPosted, $mToggles, $mSearchNs, $mRealName, $mImageSize;
-       var $mUnderline, $mWatchlistEdits;
+       var $mUnderline, $mWatchlistEdits, $mGender;
 
        /**
         * Constructor
@@ -66,6 +66,7 @@
                $this->mWatchlistDays = $request->getVal( 'wpWatchlistDays' );
                $this->mWatchlistEdits = $request->getVal( 'wpWatchlistEdits' );
                $this->mDisableMWSuggest = $request->getCheck( 
'wpDisableMWSuggest' );
+               $this->mGender = $request->getVal( 'wpGender' );
 
                $this->mSaveprefs = $request->getCheck( 'wpSaveprefs' ) &&
                        $this->mPosted &&
@@ -207,6 +208,15 @@
                }
        }
 
+       function validateGender( $val ) {
+               $valid = array( 'male', 'female', 'unknown' );
+               if ( in_array($val, $valid) ) {
+                       return $val;
+               } else {
+                       return User::getDefaultOption( 'gender' );
+               }
+       }
+
        /**
         * @access private
         */
@@ -272,6 +282,7 @@
                $wgUser->setOption( 'underline', 
$this->validateInt($this->mUnderline, 0, 2) );
                $wgUser->setOption( 'watchlistdays', $this->validateFloat( 
$this->mWatchlistDays, 0, 7 ) );
                $wgUser->setOption( 'disablesuggest', $this->mDisableMWSuggest 
);
+               $wgUser->setOption( 'gender', $this->validateGender( 
$this->mGender ) );
 
                # Set search namespace options
                foreach( $this->mSearchNs as $i => $value ) {
@@ -423,6 +434,7 @@
                $this->mUnderline = $wgUser->getOption( 'underline' );
                $this->mWatchlistDays = $wgUser->getOption( 'watchlistdays' );
                $this->mDisableMWSuggest = $wgUser->getBoolOption( 
'disablesuggest' );
+               $this->mGender = $wgUser->getOption( 'gender' );
 
                $togs = User::getToggles();
                foreach ( $togs as $tname ) {
@@ -735,8 +747,20 @@
                        $this->tableRow( ' ', $this->getToggle( 'fancysig' 
) )
                );
 
-               list( $lsLabel, $lsSelect) = Xml::languageSelector( 
$this->mUserLanguage );
+               $gender = new XMLSelect( 'wpGender', 'wpGender', $this->mGender 
);
+               $gender->addOption( wfMsg( 'gender-unknown' ), 'unknown' );
+               $gender->addOption( wfMsg( 'gender-male' ), 'male' );
+               $gender->addOption( wfMsg( 'gender-female' ), 'female' );
+
                $wgOut->addHTML(
+                       $this->tableRow(
+                               Xml::label( wfMsg( 'yourgender' ), 'wpGender' ),
+                               $gender->getHTML()
+                       )
+               );
+
+               list( $lsLabel, $lsSelect) = Xml::languageSelector( 
$this->mUserLanguage, false );
+               $wgOut->addHTML(
                        $this->tableRow( $lsLabel, $lsSelect )
                );
 

Modified: trunk/phase3/languages/messages/MessagesEn.php
===================================================================
--- trunk/phase3/languages/messages/MessagesEn.php      2009-01-26 07:06:17 UTC 
(rev 46245)
+++ trunk/phase3/languages/messages/MessagesEn.php      2009-01-26 09:41:52 UTC 
(rev 46246)
@@ -286,6 +286,7 @@
        'servername'             => array( 0,    'SERVERNAME'             ),
        'scriptpath'             => array( 0,    'SCRIPTPATH'             ),
        'grammar'                => array( 0,    'GRAMMAR:'               ),
+       'gender'                 => array( 0,    'GENDER:'                ),
        'notitleconvert'         => array( 0,    '__NOTITLECONVERT__', 
'__NOTC__'),
        'nocontentconvert'       => array( 0,    '__NOCONTENTCONVERT__', 
'__NOCC__'),
        'currentweek'            => array( 1,    'CURRENTWEEK'            ),
@@ -908,6 +909,10 @@
 Check HTML tags.',
 'badsiglength'               => 'The signature is too long.
 It must be under $1 {{PLURAL:$1|character|characters}}.',
+'yourgender'                 => 'Gender:',
+'gender-unknown'             => 'Unspecified',
+'gender-male'                => 'Male',
+'gender-female'              => 'Female',
 'email'                      => 'E-mail',
 'prefs-help-realname'        => 'Real name is optional.
 If you choose to provide it, this will be used for giving you attribution for 
your work.',



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

Reply via email to