specialpreferences.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 939 行 · 第 1/3 页

PHP
939
字号
		/* see if there are multiple language variants to choose from*/		if(!$wgDisableLangConversion) {			$variants = $wgContLang->getVariants();			$variantArray = array();			foreach($variants as $v) {				$v = str_replace( '_', '-', strtolower($v));				if( array_key_exists( $v, $languages ) ) {					// If it doesn't have a name, we'll pretend it doesn't exist					$variantArray[$v] = $languages[$v];				}			}			$selbox = null;			foreach($variantArray as $code => $name) {				$sel = $code == $this->mUserVariant ? 'selected="selected"' : '';				$selbox .= "<option value=\"$code\" $sel>$code - $name</option>";			}			if(count($variantArray) > 1) {				$wgOut->addHtml(					$this->addRow( wfMsg( 'yourvariant' ), "<select name='wpUserVariant'>$selbox</select>" )				);			}		}		$wgOut->addHTML('</table>');		# Password		if( $wgAuth->allowPasswordChange() ) {			$this->mOldpass = htmlspecialchars( $this->mOldpass );			$this->mNewpass = htmlspecialchars( $this->mNewpass );			$this->mRetypePass = htmlspecialchars( $this->mRetypePass );				$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'changepassword' ) . '</legend><table>');			$wgOut->addHTML(				$this->addRow(					'<label for="wpOldpass">' . wfMsg( 'oldpassword' ) . '</label>',					"<input type='password' name='wpOldpass' id='wpOldpass' value=\"{$this->mOldpass}\" size='20' />"				) .				$this->addRow(					'<label for="wpNewpass">' . wfMsg( 'newpassword' ) . '</label>',					"<input type='password' name='wpNewpass' id='wpNewpass' value=\"{$this->mNewpass}\" size='20' />"				) .				$this->addRow(					'<label for="wpRetypePass">' . wfMsg( 'retypenew' ) . '</label>',					"<input type='password' name='wpRetypePass' id='wpRetypePass' value=\"{$this->mRetypePass}\" size='20' />"				) .				"</table>\n" .				$this->getToggle( "rememberpassword" ) . "</fieldset>\n\n" );		}		# <FIXME>		# Enotif		if ($wgEnableEmail) {			$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'email' ) . '</legend>' );			$wgOut->addHTML(					$emailauthenticated.					$enotifrevealaddr.					$enotifwatchlistpages.					$enotifusertalkpages.					$enotifminoredits );			if ($wgEnableUserEmail) {			$emf = wfMsg( 'allowemail' );				$disabled = $disableEmailPrefs ? ' disabled="disabled"' : '';				$wgOut->addHTML(				"<div><input type='checkbox' $emfc $disabled value='1' name='wpEmailFlag' id='wpEmailFlag' /> <label for='wpEmailFlag'>$emf</label></div>" );			}			$wgOut->addHTML( '</fieldset>' );		}		# </FIXME>		# Show little "help" tips for the real name and email address options		if( $wgAllowRealName || $wgEnableEmail ) {			if( $wgAllowRealName )				$tips[] = wfMsg( 'prefs-help-realname' );			if( $wgEnableEmail )				$tips[] = wfMsg( 'prefs-help-email' );			$wgOut->addHtml( '<div class="prefsectiontip">' . implode( '<br />', $tips ) . '</div>' );		}				$wgOut->addHTML( '</fieldset>' );		# Quickbar		#		if ($this->mSkin == 'cologneblue' || $this->mSkin == 'standard') {			$wgOut->addHtml( "<fieldset>\n<legend>" . wfMsg( 'qbsettings' ) . "</legend>\n" );			for ( $i = 0; $i < count( $qbs ); ++$i ) {				if ( $i == $this->mQuickbar ) { $checked = ' checked="checked"'; }				else { $checked = ""; }				$wgOut->addHTML( "<div><label><input type='radio' name='wpQuickbar' value=\"$i\"$checked />{$qbs[$i]}</label></div>\n" );			}			$wgOut->addHtml( "</fieldset>\n\n" );		} else {			# Need to output a hidden option even if the relevant skin is not in use,			# otherwise the preference will get reset to 0 on submit			$wgOut->addHtml( wfHidden( 'wpQuickbar', $this->mQuickbar ) );		}		# Skin		#		$wgOut->addHTML( "<fieldset>\n<legend>\n" . wfMsg('skin') . "</legend>\n" );		$mptitle = Title::newMainPage();		$previewtext = wfMsg('skinpreview');		# Only show members of Skin::getSkinNames() rather than		# $skinNames (skins is all skin names from Language.php)		$validSkinNames = Skin::getSkinNames();		foreach ($validSkinNames as $skinkey => $skinname ) {			if ( in_array( $skinkey, $wgSkipSkins ) ) {				continue;			}			$checked = $skinkey == $this->mSkin ? ' checked="checked"' : '';			$sn = isset( $skinNames[$skinkey] ) ? $skinNames[$skinkey] : $skinname;			$mplink = htmlspecialchars($mptitle->getLocalURL("useskin=$skinkey"));			$previewlink = "<a target='_blank' href=\"$mplink\">$previewtext</a>";			if( $skinkey == $wgDefaultSkin )				$sn .= ' (' . wfMsg( 'default' ) . ')';			$wgOut->addHTML( "<input type='radio' name='wpSkin' id=\"wpSkin$skinkey\" value=\"$skinkey\"$checked /> <label for=\"wpSkin$skinkey\">{$sn}</label> $previewlink<br />\n" );		}		$wgOut->addHTML( "</fieldset>\n\n" );		# Math		#		global $wgUseTeX;		if( $wgUseTeX ) {			$wgOut->addHTML( "<fieldset>\n<legend>" . wfMsg('math') . '</legend>' );			foreach ( $mathopts as $k => $v ) {				$checked = $k == $this->mMath ? ' checked="checked"' : '';				$wgOut->addHTML( "<div><label><input type='radio' name='wpMath' value=\"$k\"$checked /> ".wfMsg($v)."</label></div>\n" );			}			$wgOut->addHTML( "</fieldset>\n\n" );		}		# Files		#		$wgOut->addHTML("<fieldset>			<legend>" . wfMsg( 'files' ) . "</legend>			<div><label for='wpImageSize'>" . wfMsg('imagemaxsize') . "</label> <select id='wpImageSize' name='wpImageSize'>");			$imageLimitOptions = null;			foreach ( $wgImageLimits as $index => $limits ) {				$selected = ($index == $this->mImageSize) ? 'selected="selected"' : '';				$imageLimitOptions .= "<option value=\"{$index}\" {$selected}>{$limits[0]}脳{$limits[1]}". wfMsgHtml('unit-pixel') ."</option>\n";			}			$imageThumbOptions = null;			$wgOut->addHTML( "{$imageLimitOptions}</select></div>				<div><label for='wpThumbSize'>" . wfMsg('thumbsize') . "</label> <select name='wpThumbSize' id='wpThumbSize'>");			foreach ( $wgThumbLimits as $index => $size ) {				$selected = ($index == $this->mThumbSize) ? 'selected="selected"' : '';				$imageThumbOptions .= "<option value=\"{$index}\" {$selected}>{$size}". wfMsgHtml('unit-pixel') ."</option>\n";			}			$wgOut->addHTML( "{$imageThumbOptions}</select></div></fieldset>\n\n");		# Date format		#		# Date/Time		#		$wgOut->addHTML( "<fieldset>\n<legend>" . wfMsg( 'datetime' ) . "</legend>\n" );		if ($dateopts) {			$wgOut->addHTML( "<fieldset>\n<legend>" . wfMsg( 'dateformat' ) . "</legend>\n" );			$idCnt = 0;			$epoch = '20010408091234';			foreach($dateopts as $key => $option) {				if( $key == MW_DATE_DEFAULT ) {					$formatted = wfMsgHtml( 'datedefault' );				} else {					$formatted = htmlspecialchars( $wgLang->timeanddate( $epoch, false, $key ) );				}				($key == $this->mDate) ? $checked = ' checked="checked"' : $checked = '';				$wgOut->addHTML( "<div><input type='radio' name=\"wpDate\" id=\"wpDate$idCnt\" ".					"value=\"$key\"$checked /> <label for=\"wpDate$idCnt\">$formatted</label></div>\n" );				$idCnt++;			}			$wgOut->addHTML( "</fieldset>\n" );		}		$nowlocal = $wgLang->time( $now = wfTimestampNow(), true );		$nowserver = $wgLang->time( $now, false );		$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'timezonelegend' ). '</legend><table>' .		 	$this->addRow( wfMsg( 'servertime' ), $nowserver ) .			$this->addRow( wfMsg( 'localtime' ), $nowlocal ) .			$this->addRow(				'<label for="wpHourDiff">' . wfMsg( 'timezoneoffset' ) . '</label>',				"<input type='text' name='wpHourDiff' id='wpHourDiff' value=\"" . htmlspecialchars( $this->mHourDiff ) . "\" size='6' />"			) . "<tr><td colspan='2'>				<input type='button' value=\"" . wfMsg( 'guesstimezone' ) ."\"				onclick='javascript:guessTimezone()' id='guesstimezonebutton' style='display:none;' />				</td></tr></table></fieldset>// Modified for mediawiki for XOOPS - by D.J.			<div class='prefsectiontip'>" .  wfMsg( 'timezonetext' ) . "</div>		</fieldset>\n\n" );		# Editing		#		global $wgLivePreview, $wgUseRCPatrol;		$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'textboxsize' ) . '</legend>			<div>' .				wfInputLabel( wfMsg( 'rows' ), 'wpRows', 'wpRows', 3, $this->mRows ) .				' ' .				wfInputLabel( wfMsg( 'columns' ), 'wpCols', 'wpCols', 3, $this->mCols ) .			"</div>" .			$this->getToggles( array(				'editsection',				'editsectiononrightclick',				'editondblclick',				'editwidth',				'showtoolbar',				'previewonfirst',				'previewontop',				'watchcreations',				'watchdefault',				'minordefault',				'externaleditor',				'externaldiff',				$wgLivePreview ? 'uselivepreview' : false,				$wgUser->isAllowed( 'patrol' ) && $wgUseRCPatrol ? 'autopatrol' : false,				'forceeditsummary',			) ) . '</fieldset>'		);		$this->mUsedToggles['autopatrol'] = true; # Don't show this up for users who can't; the handler below is dumb and doesn't know it		$wgOut->addHTML( '<fieldset><legend>' . htmlspecialchars(wfMsg('prefs-rc')) . '</legend>' .					wfInputLabel( wfMsg( 'recentchangescount' ),						'wpRecent', 'wpRecent', 3, $this->mRecent ) .			$this->getToggles( array(				'hideminor',				$wgRCShowWatchingUsers ? 'shownumberswatching' : false,				'usenewrc' )			) . '</fieldset>'		);		# Watchlist		$wgOut->addHTML( '<fieldset><legend>' . wfMsgHtml( 'prefs-watchlist' ) . '</legend>' );		$wgOut->addHTML( wfInputLabel( wfMsg( 'prefs-watchlist-days' ),			'wpWatchlistDays', 'wpWatchlistDays', 3, $this->mWatchlistDays ) );		$wgOut->addHTML( '<br /><br />' ); # Spacing		$wgOut->addHTML( $this->getToggles( array( 'watchlisthideown', 'watchlisthidebots', 'extendwatchlist' ) ) );		$wgOut->addHTML( wfInputLabel( wfMsg( 'prefs-watchlist-edits' ),			'wpWatchlistEdits', 'wpWatchlistEdits', 3, $this->mWatchlistEdits ) );		$wgOut->addHTML( '</fieldset>' );		# Search		$wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'searchresultshead' ) . '</legend><table>' .			$this->addRow(				wfLabel( wfMsg( 'resultsperpage' ), 'wpSearch' ),				wfInput( 'wpSearch', 4, $this->mSearch, array( 'id' => 'wpSearch' ) )			) .			$this->addRow(				wfLabel( wfMsg( 'contextlines' ), 'wpSearchLines' ),				wfInput( 'wpSearchLines', 4, $this->mSearchLines, array( 'id' => 'wpSearchLines' ) )			) .			$this->addRow(				wfLabel( wfMsg( 'contextchars' ), 'wpSearchChars' ),				wfInput( 'wpSearchChars', 4, $this->mSearchChars, array( 'id' => 'wpSearchChars' ) )			) .		"</table><fieldset><legend>" . wfMsg( 'defaultns' ) . "</legend>$ps</fieldset></fieldset>" );		# Misc		#		$wgOut->addHTML('<fieldset><legend>' . wfMsg('prefs-misc') . '</legend>');		$wgOut->addHTML( wfInputLabel( wfMsg( 'stubthreshold' ),			'wpStubs', 'wpStubs', 6, $this->mStubs ) );		$msgUnderline = htmlspecialchars( wfMsg ( 'tog-underline' ) );		$msgUnderlinenever = htmlspecialchars( wfMsg ( 'underline-never' ) );		$msgUnderlinealways = htmlspecialchars( wfMsg ( 'underline-always' ) );		$msgUnderlinedefault = htmlspecialchars( wfMsg ( 'underline-default' ) );		$uopt = $wgUser->getOption("underline");		$s0 = $uopt == 0 ? ' selected="selected"' : '';		$s1 = $uopt == 1 ? ' selected="selected"' : '';		$s2 = $uopt == 2 ? ' selected="selected"' : '';		$wgOut->addHTML("<div class='toggle'><label for='wpOpunderline'>$msgUnderline</label><select name='wpOpunderline' id='wpOpunderline'><option value=\"0\"$s0>$msgUnderlinenever</option><option value=\"1\"$s1>$msgUnderlinealways</option><option value=\"2\"$s2>$msgUnderlinedefault</option></select></div>");		foreach ( $togs as $tname ) {			if( !array_key_exists( $tname, $this->mUsedToggles ) ) {				$wgOut->addHTML( $this->getToggle( $tname ) );			}		}		$wgOut->addHTML( '</fieldset>' );		$token = $wgUser->editToken();		$wgOut->addHTML( "	<div id='prefsubmit'>	<div>		<input type='submit' name='wpSaveprefs' class='btnSavePrefs' value=\"" . wfMsgHtml( 'saveprefs' ) . "\" accesskey=\"".		wfMsgHtml('accesskey-save')."\" title=\"".wfMsgHtml('tooltip-save')."\" />		<input type='submit' name='wpReset' value=\"" . wfMsgHtml( 'resetprefs' ) . "\" />	</div>	</div>	<input type='hidden' name='wpEditToken' value='{$token}' />	</div></form>\n" );		$wgOut->addWikiText( '<div class="prefcache">' . wfMsg('clearyourcache') . '</div>' );	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?