From c91ebd9d900235fdc1ba65e5915c899d1c85e37a Mon Sep 17 00:00:00 2001 From: River Tarnell Date: Sun, 24 Jul 2005 07:09:53 +0000 Subject: [PATCH] allowing previewing of skins in preferences --- RELEASE-NOTES | 1 + includes/SpecialPreferences.php | 86 +++++++++++++++++---------------- languages/Language.php | 2 + 3 files changed, 48 insertions(+), 41 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 4c490316c0..d6318ea222 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -601,6 +601,7 @@ of MediaWiki:Newpagetext) to &action=edit, if page is new. * New skin: Simple * "uselang" and "useskin" URL parameters can now be used in the URL when viewing a page, to change the language and skin of a page respectively. +* Skins can now be previewed in preferences === Caveats === diff --git a/includes/SpecialPreferences.php b/includes/SpecialPreferences.php index 60444f3e71..6e99b3f03f 100644 --- a/includes/SpecialPreferences.php +++ b/includes/SpecialPreferences.php @@ -36,9 +36,9 @@ class PreferencesForm { * Constructor * Load some values */ - function PreferencesForm( &$request ) { + function PreferencesForm( &$request ) { global $wgLang, $wgContLang, $wgUser, $wgAllowRealName; - + $this->mQuickbar = $request->getVal( 'wpQuickbar' ); $this->mOldpass = $request->getVal( 'wpOldpass' ); $this->mNewpass = $request->getVal( 'wpNewpass' ); @@ -79,9 +79,9 @@ class PreferencesForm { $this->mToggles[$tname] = $request->getCheck( "wpOp$tname" ) ? 1 : 0; } } - + $this->mUsedToggles = array(); - + # Search namespace options # Note: namespaces don't necessarily have consecutive keys $this->mSearchNs = array(); @@ -102,7 +102,7 @@ class PreferencesForm { function execute() { global $wgUser, $wgOut; - + if ( $wgUser->isAnon() ) { $wgOut->errorpage( 'prefsnologin', 'prefsnologintext' ); return; @@ -197,7 +197,7 @@ class PreferencesForm { if ( '' != $this->mNewpass ) { if ( $this->mNewpass != $this->mRetypePass ) { - $this->mainPrefsForm( wfMsg( 'badretype' ) ); + $this->mainPrefsForm( wfMsg( 'badretype' ) ); return; } @@ -243,7 +243,7 @@ class PreferencesForm { foreach( $this->mSearchNs as $i => $value ) { $wgUser->setOption( "searchNs{$i}", $value ); } - + if( $wgEnableEmail && $wgEnableUserEmail ) { $wgUser->setOption( 'disablemail', $this->mEmailFlag ); } @@ -258,7 +258,7 @@ class PreferencesForm { } $wgUser->setCookies(); $wgUser->saveSettings(); - + $error = wfMsg( 'savedprefs' ); if( $wgEnableEmail ) { $newadr = $this->mUserEmail; @@ -349,7 +349,7 @@ class PreferencesForm { */ function namespacesCheckboxes() { global $wgContLang, $wgUser; - + # Determine namespace checkboxes $namespaces = $wgContLang->getNamespaces(); $r1 = null; @@ -359,9 +359,9 @@ class PreferencesForm { continue; $checked = $this->mSearchNs[$i] ? "checked='checked'" : ''; $name = str_replace( '_', ' ', $namespaces[$i] ); - + if ( empty($name) ) - $name = wfMsg( 'blanknamespace' ); + $name = wfMsg( 'blanknamespace' ); $r1 .= "\n"; } @@ -371,16 +371,16 @@ class PreferencesForm { function getToggle( $tname, $trailer = false) { global $wgUser, $wgLang; - + $this->mUsedToggles[$tname] = true; $ttext = $wgLang->getUserToggle( $tname ); - + $checked = $wgUser->getOption( $tname ) == 1 ? ' checked="checked"' : ''; $trailer = $trailer ? $trailer : ''; return "
" . " $trailer
"; } - + function getToggles( $items ) { $out = ""; foreach( $items as $item ) { @@ -434,7 +434,7 @@ class PreferencesForm { $titleObj = Title::makeTitle( NS_SPECIAL, 'Preferences' ); $action = $titleObj->escapeLocalURL(); - + # Pre-expire some toggles so they won't show if disabled $this->mUsedToggles[ 'shownumberswatching' ] = true; $this->mUsedToggles[ 'showupdated' ] = true; @@ -480,7 +480,7 @@ class PreferencesForm { # $wgOut->addHTML( "
" ); - + # User data # @@ -502,12 +502,12 @@ class PreferencesForm { ) ); } - + $wgOut->addHTML( $this->addRow( wfMsg( 'yournick' ), "mNick}\" size='25' />" - ) . + ) . # FIXME: The part should be where the   is, getToggle() needs # to be changed to out return its output in two parts. -ævar $this->addRow( @@ -538,20 +538,20 @@ class PreferencesForm { /* see if there are multiple language variants to choose from*/ if(!$wgDisableLangConversion) { $variants = $wgContLang->getVariants(); - + foreach($variants as $v) { $v = str_replace( '_', '-', strtolower($v)); if($name = $languages[$v]) { $variantArray[$v] = $name; } } - + $selbox = null; foreach($variantArray as $code => $name) { $sel = $code == $this->mUserVariant ? 'selected="selected"' : ''; $selbox .= ""; } - + if(count($variantArray) > 1) { $wgOut->addHtml( $this->addRow( wfMsg( 'yourvariant' ), "" ) @@ -572,7 +572,7 @@ class PreferencesForm { $this->addRow( wfMsg( 'retypenew' ), "mRetypePass}\" size='20' />" ) . "\n" . $this->getToggle( "rememberpassword" ) . "\n\n" ); - + # # Enotif if ($wgEnableEmail) { @@ -588,7 +588,7 @@ class PreferencesForm { $wgOut->addHTML( "
" ); } - + $wgOut->addHTML( '' ); } #
@@ -601,7 +601,7 @@ class PreferencesForm { } $wgOut->addHTML( '' ); - + # Quickbar # if ($this->mSkin == 'cologneblue' || $this->mSkin == 'standard') { @@ -613,7 +613,7 @@ class PreferencesForm { } $wgOut->addHtml( "\n\n" ); } else { - # Need to output a hidden option even if the relevant skin is not in use, + # 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( "" ); } @@ -621,18 +621,22 @@ class PreferencesForm { # Skin # $wgOut->addHTML( "
\n\n" . wfMsg('skin') . "\n" ); + $mptitle = Title::newMainPage(); + $previewtext = wfMsg('skinpreview'); # Only show members of $wgValidSkinNames rather than # $skinNames (skins is all skin names from Language.php) foreach ($wgValidSkinNames 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 = "$previewtext"; if( $skinkey == $wgDefaultSkin ) $sn .= ' (' . wfMsg( 'default' ) . ')'; - $wgOut->addHTML( " {$sn}
\n" ); + $wgOut->addHTML( " {$sn} $previewlink
\n" ); } $wgOut->addHTML( "
\n\n" ); @@ -653,13 +657,13 @@ class PreferencesForm { $wgOut->addHTML("
" . wfMsg( 'files' ) . "
" ); - + # Misc # $wgOut->addHTML('
' . wfMsg('prefs-misc') . ''); @@ -759,7 +763,7 @@ class PreferencesForm { $s1 = $uopt == 1 ? " selected=\"selected\"" : ""; $s2 = $uopt == 2 ? " selected=\"selected\"" : ""; $wgOut->addHTML(" -
- + \n" ); } diff --git a/languages/Language.php b/languages/Language.php index 5e2014b88f..b2ea683d53 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -309,6 +309,8 @@ parent class in order maintain consistency across languages. 'underline-never' => 'Never', 'underline-default' => 'Browser default', +'skinpreview' => '(Preview)', + # dates 'sunday' => 'Sunday', 'monday' => 'Monday', -- 2.20.1