Revision: 43697
Author: brion
Date: 2008-11-19 01:36:43 +0000 (Wed, 19 Nov 2008)
Log Message:
-----------
Tweak around how the collapse/expansion is done, set up distinct styles which
can be used to make user and anon alternates for the collapsed version more
cleanly.
.siteNoticeBig -- big version (as before)
.siteNoticeSmall -- small version (as before)
.siteNoticeSmallUser -- small version showing for logged-in users only
.siteNoticeSmallAnon -- small version showing for anons only
Modified Paths:
--------------
trunk/extensions/CentralNotice/SpecialNoticeText.php
Modified: trunk/extensions/CentralNotice/SpecialNoticeText.php
===================================================================
--- trunk/extensions/CentralNotice/SpecialNoticeText.php 2008-11-19
00:19:25 UTC (rev 43696)
+++ trunk/extensions/CentralNotice/SpecialNoticeText.php 2008-11-19
01:36:43 UTC (rev 43697)
@@ -37,7 +37,12 @@
"," .
Xml::encodeJsVar( $weights ) .
");\n" .
- "if (wgUserName == null && wgNotice != '')
wgNotice='<div class=\"anonnotice\">'+wgNotice+'</div>';\n";
+ "if (wgNotice != '')\n" .
+ "wgNotice='<div id=\"centralNotice\" class=\"' + " .
+ "(wgNoticeToggleState ? 'expanded' : 'collapsed') + " .
+ "' ' + " .
+ "(wgUserName ? 'usernotice' : 'anonnotice' ) + " .
+ "'\">' + wgNotice+'</div>';\n";
}
function getHtmlNotice( $noticeName ) {
@@ -50,40 +55,35 @@
function getToggleScripts() {
$showStyle = <<<END
-<style type="text/css">.siteNoticeSmall{display:none;}</style>
+<style type="text/css">
+#centralNotice .siteNoticeSmall{display:none;}
+#centralNotice .siteNoticeSmallAnon{display:none;}
+#centralNotice .siteNoticeSmallUser{display:none;}
+#centralNotice.collapsed .siteNoticeBig{display:none;}
+#centralNotice.collapsed .siteNoticeSmall{display:block;}
+#centralNotice.collapsed .siteNoticeSmallUser{display:block;}
+#centralNotice.collapsed .siteNoticeSmallAnon{display:block;}
+#centralNotice.anonnotice .siteNoticeSmallUser{display:none !important;}
+#centralNotice.usernotice .siteNoticeSmallAnon{display:none !important;}
+</style>
END;
- $hideStyle = <<<END
-<style type="text/css">.siteNoticeBig{display:none;}</style>
-END;
- $hideToggleStyle = <<<END
-<style type="text/css">.siteNoticeToggle{display:none;}</style>
-END;
$encShowStyle = Xml::encodeJsVar( $showStyle );
- $encHideStyle = Xml::encodeJsVar( $hideStyle );
- $encHideToggleStyle = Xml::encodeJsVar( $hideToggleStyle );
$script = "
var wgNoticeToggleState = (document.cookie.indexOf('hidesnmessage=1')==-1);
-document.writeln(
- wgNoticeToggleState
- ? $encShowStyle
- : $encHideStyle);
-document.writeln($encHideToggleStyle);\n\n";
+document.writeln($encShowStyle);\n\n";
return $script;
}
function getScriptFunctions() {
$script = "
function toggleNotice() {
- var big = getElementsByClassName(document,'div','siteNoticeBig');
- var small = getElementsByClassName(document,'div','siteNoticeSmall');
+ var notice = document.getElementById('centralNotice');
if (!wgNoticeToggleState) {
- toggleNoticeStyle(big,'block');
- toggleNoticeStyle(small,'none');
+ notice.className = notice.className.replace('collapsed',
'expanded');
toggleNoticeCookie('0');
} else {
- toggleNoticeStyle(big,'none');
- toggleNoticeStyle(small,'block');
+ notice.className = notice.className.replace('expanded',
'collapsed');
toggleNoticeCookie('1');
}
wgNoticeToggleState = !wgNoticeToggleState;
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs