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
$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 &&
}
}
+ function validateGender( $val ) {
+ $valid = array( 'male', 'female', 'unknown' );
+ if ( in_array($val, $valid) ) {
+ return $val;
+ } else {
+ return User::getDefaultOption( 'gender' );
+ }
+ }
+
/**
* @access private
*/
$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 ) {
$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 ) {
$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 )
);
'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' ),
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.',