From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- skins/ArchLinux.deps.php | 9 + skins/ArchLinux.php | 283 ++++ skins/Chick.deps.php | 10 + skins/Chick.php | 30 + skins/CologneBlue.php | 315 +++++ skins/MonoBook.deps.php | 9 + skins/MonoBook.php | 275 ++++ skins/MySkin.deps.php | 10 + skins/MySkin.php | 30 + skins/Nostalgia.php | 93 ++ skins/Simple.deps.php | 10 + skins/Simple.php | 70 + skins/Skin.sample | 19 + skins/SkinPHPTal.sample | 28 + skins/Standard.php | 294 +++++ skins/archlinux/IE50Fixes.css | 67 + skins/archlinux/IE55Fixes.css | 85 ++ skins/archlinux/IE60Fixes.css | 84 ++ skins/archlinux/IE70Fixes.css | 75 ++ skins/archlinux/IEMacFixes.css | 44 + skins/archlinux/KHTMLFixes.css | 3 + skins/archlinux/Opera6Fixes.css | 14 + skins/archlinux/Opera7Fixes.css | 11 + skins/archlinux/archlinux.css | 45 + skins/archlinux/bullet.gif | Bin 0 -> 50 bytes skins/archlinux/discussionitem_icon.gif | Bin 0 -> 949 bytes skins/archlinux/external.png | Bin 0 -> 165 bytes skins/archlinux/file_icon.gif | Bin 0 -> 921 bytes skins/archlinux/headbg.jpg | Bin 0 -> 7881 bytes skins/archlinux/link_icon.gif | Bin 0 -> 942 bytes skins/archlinux/lock_icon.gif | Bin 0 -> 918 bytes skins/archlinux/logo.png | Bin 0 -> 15730 bytes skins/archlinux/magnify-clip.png | Bin 0 -> 237 bytes skins/archlinux/mail_icon.gif | Bin 0 -> 918 bytes skins/archlinux/main.css | 1450 +++++++++++++++++++++ skins/archlinux/news_icon.png | Bin 0 -> 297 bytes skins/archlinux/required.gif | Bin 0 -> 47 bytes skins/archlinux/rtl.css | 212 +++ skins/archlinux/tab.png | Bin 0 -> 107 bytes skins/archlinux/title.png | Bin 0 -> 7124 bytes skins/archlinux/title_back.png | Bin 0 -> 168 bytes skins/archlinux/user.gif | Bin 0 -> 932 bytes skins/archlinux/wiki-indexed.png | Bin 0 -> 8205 bytes skins/archlinux/wiki.png | Bin 0 -> 23064 bytes skins/chick/IE50Fixes.css | 67 + skins/chick/IE55Fixes.css | 81 ++ skins/chick/IE60Fixes.css | 79 ++ skins/chick/main.css | 481 +++++++ skins/common/IEFixes.js | 127 ++ skins/common/ajax.js | 177 +++ skins/common/cologneblue.css | 96 ++ skins/common/common.css | 386 ++++++ skins/common/commonPrint.css | 288 ++++ skins/common/common_rtl.css | 15 + skins/common/feed.css | 95 ++ skins/common/images/Arr_.png | Bin 0 -> 918 bytes skins/common/images/Arr_d.png | Bin 0 -> 215 bytes skins/common/images/Arr_l.png | Bin 0 -> 263 bytes skins/common/images/Arr_r.png | Bin 0 -> 210 bytes skins/common/images/Arr_r.xcf | Bin 0 -> 1437 bytes skins/common/images/Zoom_sans.gif | Bin 0 -> 901 bytes skins/common/images/bullet.gif | Bin 0 -> 50 bytes skins/common/images/button_bold.png | Bin 0 -> 978 bytes skins/common/images/button_extlink.png | Bin 0 -> 1093 bytes skins/common/images/button_headline.png | Bin 0 -> 497 bytes skins/common/images/button_hr.png | Bin 0 -> 372 bytes skins/common/images/button_image.png | Bin 0 -> 1110 bytes skins/common/images/button_italic.png | Bin 0 -> 975 bytes skins/common/images/button_link.png | Bin 0 -> 434 bytes skins/common/images/button_math.png | Bin 0 -> 730 bytes skins/common/images/button_media.png | Bin 0 -> 1155 bytes skins/common/images/button_nowiki.png | Bin 0 -> 375 bytes skins/common/images/button_sig.png | Bin 0 -> 1217 bytes skins/common/images/button_template.png | Bin 0 -> 362 bytes skins/common/images/fileicon.xcf | Bin 0 -> 26160 bytes skins/common/images/gnu-fdl.png | Bin 0 -> 1748 bytes skins/common/images/gnu-fdl.xcf | Bin 0 -> 5578 bytes skins/common/images/icons/COPYING | 43 + skins/common/images/icons/fileicon-c.png | Bin 0 -> 2995 bytes skins/common/images/icons/fileicon-cpp.png | Bin 0 -> 2250 bytes skins/common/images/icons/fileicon-deb.png | Bin 0 -> 5528 bytes skins/common/images/icons/fileicon-djvu.png | Bin 0 -> 11137 bytes skins/common/images/icons/fileicon-djvu.xcf | Bin 0 -> 83394 bytes skins/common/images/icons/fileicon-dvi.png | Bin 0 -> 13042 bytes skins/common/images/icons/fileicon-exe.png | Bin 0 -> 5864 bytes skins/common/images/icons/fileicon-h.png | Bin 0 -> 1195 bytes skins/common/images/icons/fileicon-html.png | Bin 0 -> 7601 bytes skins/common/images/icons/fileicon-iso.png | Bin 0 -> 6673 bytes skins/common/images/icons/fileicon-java.png | Bin 0 -> 6825 bytes skins/common/images/icons/fileicon-mid.png | Bin 0 -> 7191 bytes skins/common/images/icons/fileicon-mov.png | Bin 0 -> 7946 bytes skins/common/images/icons/fileicon-o.png | Bin 0 -> 2893 bytes skins/common/images/icons/fileicon-ogg.png | Bin 0 -> 6143 bytes skins/common/images/icons/fileicon-ogg.xcf | Bin 0 -> 40236 bytes skins/common/images/icons/fileicon-pdf.png | Bin 0 -> 5138 bytes skins/common/images/icons/fileicon-ps.png | Bin 0 -> 3293 bytes skins/common/images/icons/fileicon-rm.png | Bin 0 -> 4977 bytes skins/common/images/icons/fileicon-rpm.png | Bin 0 -> 4753 bytes skins/common/images/icons/fileicon-svg.png | Bin 0 -> 5193 bytes skins/common/images/icons/fileicon-tar.png | Bin 0 -> 6544 bytes skins/common/images/icons/fileicon-tex.png | Bin 0 -> 4203 bytes skins/common/images/icons/fileicon-ttf.png | Bin 0 -> 3625 bytes skins/common/images/icons/fileicon-txt.png | Bin 0 -> 6801 bytes skins/common/images/icons/fileicon.png | Bin 0 -> 1121 bytes skins/common/images/link_icon.gif | Bin 0 -> 942 bytes skins/common/images/magnify-clip.png | Bin 0 -> 267 bytes skins/common/images/mediawiki-small.xcf | Bin 0 -> 36011 bytes skins/common/images/mediawiki.png | Bin 0 -> 23064 bytes skins/common/images/poweredby_mediawiki_88x31.png | Bin 0 -> 1933 bytes skins/common/images/redirectltr.png | Bin 0 -> 1024 bytes skins/common/images/redirectrtl.png | Bin 0 -> 1017 bytes skins/common/images/wiki.png | Bin 0 -> 24954 bytes skins/common/metadata.js | 49 + skins/common/nostalgia.css | 18 + skins/common/preview.js | 53 + skins/common/protect.js | 126 ++ skins/common/quickbar-right.css | 1 + skins/common/quickbar.css | 1 + skins/common/sticky.js | 124 ++ skins/common/upload.js | 23 + skins/common/wikibits.js | 748 +++++++++++ skins/common/wikiprintable.css | 46 + skins/common/wikistandard.css | 44 + skins/disabled/HTMLDump.php | 228 ++++ skins/disabled/MonoBook.tpl | 200 +++ skins/disabled/MonoBookCBT.php | 1390 ++++++++++++++++++++ skins/htmldump/lookup.js | 91 ++ skins/htmldump/main.css | 9 + skins/htmldump/md5.js | 256 ++++ skins/htmldump/utf8.js | 72 + skins/monobook/IE50Fixes.css | 67 + skins/monobook/IE55Fixes.css | 85 ++ skins/monobook/IE60Fixes.css | 84 ++ skins/monobook/IE70Fixes.css | 75 ++ skins/monobook/IEMacFixes.css | 44 + skins/monobook/KHTMLFixes.css | 3 + skins/monobook/Opera6Fixes.css | 14 + skins/monobook/Opera7Fixes.css | 11 + skins/monobook/bullet.gif | Bin 0 -> 50 bytes skins/monobook/discussionitem_icon.gif | Bin 0 -> 949 bytes skins/monobook/external.png | Bin 0 -> 165 bytes skins/monobook/file_icon.gif | Bin 0 -> 921 bytes skins/monobook/headbg.jpg | Bin 0 -> 7881 bytes skins/monobook/link_icon.gif | Bin 0 -> 942 bytes skins/monobook/lock_icon.gif | Bin 0 -> 918 bytes skins/monobook/magnify-clip.png | Bin 0 -> 237 bytes skins/monobook/mail_icon.gif | Bin 0 -> 918 bytes skins/monobook/main.css | 1448 ++++++++++++++++++++ skins/monobook/news_icon.png | Bin 0 -> 297 bytes skins/monobook/required.gif | Bin 0 -> 47 bytes skins/monobook/rtl.css | 212 +++ skins/monobook/user.gif | Bin 0 -> 932 bytes skins/monobook/wiki-indexed.png | Bin 0 -> 8205 bytes skins/monobook/wiki.png | Bin 0 -> 23064 bytes skins/myskin/main.css | 1 + skins/simple/discussionitem_icon.gif | Bin 0 -> 949 bytes skins/simple/external.png | Bin 0 -> 165 bytes skins/simple/file_icon.gif | Bin 0 -> 921 bytes skins/simple/link_icon.gif | Bin 0 -> 942 bytes skins/simple/lock_icon.gif | Bin 0 -> 918 bytes skins/simple/mail_icon.gif | Bin 0 -> 918 bytes skins/simple/main.css | 404 ++++++ 162 files changed, 11437 insertions(+) create mode 100644 skins/ArchLinux.deps.php create mode 100644 skins/ArchLinux.php create mode 100644 skins/Chick.deps.php create mode 100644 skins/Chick.php create mode 100644 skins/CologneBlue.php create mode 100644 skins/MonoBook.deps.php create mode 100644 skins/MonoBook.php create mode 100644 skins/MySkin.deps.php create mode 100644 skins/MySkin.php create mode 100644 skins/Nostalgia.php create mode 100644 skins/Simple.deps.php create mode 100644 skins/Simple.php create mode 100644 skins/Skin.sample create mode 100644 skins/SkinPHPTal.sample create mode 100644 skins/Standard.php create mode 100644 skins/archlinux/IE50Fixes.css create mode 100644 skins/archlinux/IE55Fixes.css create mode 100644 skins/archlinux/IE60Fixes.css create mode 100644 skins/archlinux/IE70Fixes.css create mode 100644 skins/archlinux/IEMacFixes.css create mode 100644 skins/archlinux/KHTMLFixes.css create mode 100644 skins/archlinux/Opera6Fixes.css create mode 100644 skins/archlinux/Opera7Fixes.css create mode 100644 skins/archlinux/archlinux.css create mode 100644 skins/archlinux/bullet.gif create mode 100644 skins/archlinux/discussionitem_icon.gif create mode 100644 skins/archlinux/external.png create mode 100644 skins/archlinux/file_icon.gif create mode 100644 skins/archlinux/headbg.jpg create mode 100644 skins/archlinux/link_icon.gif create mode 100644 skins/archlinux/lock_icon.gif create mode 100644 skins/archlinux/logo.png create mode 100644 skins/archlinux/magnify-clip.png create mode 100644 skins/archlinux/mail_icon.gif create mode 100644 skins/archlinux/main.css create mode 100644 skins/archlinux/news_icon.png create mode 100644 skins/archlinux/required.gif create mode 100644 skins/archlinux/rtl.css create mode 100644 skins/archlinux/tab.png create mode 100644 skins/archlinux/title.png create mode 100644 skins/archlinux/title_back.png create mode 100644 skins/archlinux/user.gif create mode 100644 skins/archlinux/wiki-indexed.png create mode 100644 skins/archlinux/wiki.png create mode 100644 skins/chick/IE50Fixes.css create mode 100644 skins/chick/IE55Fixes.css create mode 100644 skins/chick/IE60Fixes.css create mode 100644 skins/chick/main.css create mode 100644 skins/common/IEFixes.js create mode 100644 skins/common/ajax.js create mode 100644 skins/common/cologneblue.css create mode 100644 skins/common/common.css create mode 100644 skins/common/commonPrint.css create mode 100644 skins/common/common_rtl.css create mode 100644 skins/common/feed.css create mode 100644 skins/common/images/Arr_.png create mode 100644 skins/common/images/Arr_d.png create mode 100644 skins/common/images/Arr_l.png create mode 100644 skins/common/images/Arr_r.png create mode 100644 skins/common/images/Arr_r.xcf create mode 100644 skins/common/images/Zoom_sans.gif create mode 100644 skins/common/images/bullet.gif create mode 100644 skins/common/images/button_bold.png create mode 100644 skins/common/images/button_extlink.png create mode 100644 skins/common/images/button_headline.png create mode 100644 skins/common/images/button_hr.png create mode 100644 skins/common/images/button_image.png create mode 100644 skins/common/images/button_italic.png create mode 100644 skins/common/images/button_link.png create mode 100644 skins/common/images/button_math.png create mode 100644 skins/common/images/button_media.png create mode 100644 skins/common/images/button_nowiki.png create mode 100644 skins/common/images/button_sig.png create mode 100644 skins/common/images/button_template.png create mode 100644 skins/common/images/fileicon.xcf create mode 100644 skins/common/images/gnu-fdl.png create mode 100644 skins/common/images/gnu-fdl.xcf create mode 100644 skins/common/images/icons/COPYING create mode 100644 skins/common/images/icons/fileicon-c.png create mode 100644 skins/common/images/icons/fileicon-cpp.png create mode 100644 skins/common/images/icons/fileicon-deb.png create mode 100644 skins/common/images/icons/fileicon-djvu.png create mode 100644 skins/common/images/icons/fileicon-djvu.xcf create mode 100644 skins/common/images/icons/fileicon-dvi.png create mode 100644 skins/common/images/icons/fileicon-exe.png create mode 100644 skins/common/images/icons/fileicon-h.png create mode 100644 skins/common/images/icons/fileicon-html.png create mode 100644 skins/common/images/icons/fileicon-iso.png create mode 100644 skins/common/images/icons/fileicon-java.png create mode 100644 skins/common/images/icons/fileicon-mid.png create mode 100644 skins/common/images/icons/fileicon-mov.png create mode 100644 skins/common/images/icons/fileicon-o.png create mode 100644 skins/common/images/icons/fileicon-ogg.png create mode 100644 skins/common/images/icons/fileicon-ogg.xcf create mode 100644 skins/common/images/icons/fileicon-pdf.png create mode 100644 skins/common/images/icons/fileicon-ps.png create mode 100644 skins/common/images/icons/fileicon-rm.png create mode 100644 skins/common/images/icons/fileicon-rpm.png create mode 100644 skins/common/images/icons/fileicon-svg.png create mode 100644 skins/common/images/icons/fileicon-tar.png create mode 100644 skins/common/images/icons/fileicon-tex.png create mode 100644 skins/common/images/icons/fileicon-ttf.png create mode 100644 skins/common/images/icons/fileicon-txt.png create mode 100644 skins/common/images/icons/fileicon.png create mode 100644 skins/common/images/link_icon.gif create mode 100644 skins/common/images/magnify-clip.png create mode 100644 skins/common/images/mediawiki-small.xcf create mode 100644 skins/common/images/mediawiki.png create mode 100644 skins/common/images/poweredby_mediawiki_88x31.png create mode 100644 skins/common/images/redirectltr.png create mode 100644 skins/common/images/redirectrtl.png create mode 100644 skins/common/images/wiki.png create mode 100644 skins/common/metadata.js create mode 100644 skins/common/nostalgia.css create mode 100644 skins/common/preview.js create mode 100644 skins/common/protect.js create mode 100644 skins/common/quickbar-right.css create mode 100644 skins/common/quickbar.css create mode 100644 skins/common/sticky.js create mode 100644 skins/common/upload.js create mode 100644 skins/common/wikibits.js create mode 100644 skins/common/wikiprintable.css create mode 100644 skins/common/wikistandard.css create mode 100644 skins/disabled/HTMLDump.php create mode 100644 skins/disabled/MonoBook.tpl create mode 100644 skins/disabled/MonoBookCBT.php create mode 100644 skins/htmldump/lookup.js create mode 100644 skins/htmldump/main.css create mode 100644 skins/htmldump/md5.js create mode 100644 skins/htmldump/utf8.js create mode 100644 skins/monobook/IE50Fixes.css create mode 100644 skins/monobook/IE55Fixes.css create mode 100644 skins/monobook/IE60Fixes.css create mode 100644 skins/monobook/IE70Fixes.css create mode 100644 skins/monobook/IEMacFixes.css create mode 100644 skins/monobook/KHTMLFixes.css create mode 100644 skins/monobook/Opera6Fixes.css create mode 100644 skins/monobook/Opera7Fixes.css create mode 100644 skins/monobook/bullet.gif create mode 100644 skins/monobook/discussionitem_icon.gif create mode 100644 skins/monobook/external.png create mode 100644 skins/monobook/file_icon.gif create mode 100644 skins/monobook/headbg.jpg create mode 100644 skins/monobook/link_icon.gif create mode 100644 skins/monobook/lock_icon.gif create mode 100644 skins/monobook/magnify-clip.png create mode 100644 skins/monobook/mail_icon.gif create mode 100644 skins/monobook/main.css create mode 100644 skins/monobook/news_icon.png create mode 100644 skins/monobook/required.gif create mode 100644 skins/monobook/rtl.css create mode 100644 skins/monobook/user.gif create mode 100644 skins/monobook/wiki-indexed.png create mode 100644 skins/monobook/wiki.png create mode 100644 skins/myskin/main.css create mode 100644 skins/simple/discussionitem_icon.gif create mode 100644 skins/simple/external.png create mode 100644 skins/simple/file_icon.gif create mode 100644 skins/simple/link_icon.gif create mode 100644 skins/simple/lock_icon.gif create mode 100644 skins/simple/mail_icon.gif create mode 100644 skins/simple/main.css (limited to 'skins') diff --git a/skins/ArchLinux.deps.php b/skins/ArchLinux.deps.php new file mode 100644 index 00000000..8a78ae6b --- /dev/null +++ b/skins/ArchLinux.deps.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/skins/ArchLinux.php b/skins/ArchLinux.php new file mode 100644 index 00000000..df9f66a8 --- /dev/null +++ b/skins/ArchLinux.php @@ -0,0 +1,283 @@ +skinname = 'archlinux'; + $this->stylename = 'archlinux'; + $this->template = 'ArchLinuxTemplate'; + } +} + +/** + * @todo document + * @package MediaWiki + * @subpackage Skins + */ +class ArchLinuxTemplate extends QuickTemplate { + /** + * Template filter callback for ArchLinux skin. + * Takes an associative array of data set from a SkinTemplate-based + * class, and a wrapper for MediaWiki's localization database, and + * outputs a formatted page. + * + * @access private + */ + function execute() { + // Suppress warnings to prevent notices about missing indexes in $this->data + wfSuppressWarnings(); + +?> + + + + html('headlinks') ?> + archlinux.de :: <?php $this->text('pagetitle') ?> + + data['printable']) ) { ?>media="print" href="text('stylepath') ?>/common/commonPrint.css" /> + + + + + + + + +data['jsvarurl' ]) { ?> + + +data['pagecss' ]) { ?> + +data['usercss' ]) { ?> + +data['userjs' ]) { ?> + +data['userjsprev']) { ?> + +data['trackbackhtml']) print $this->data['trackbackhtml']; ?> + + html('headscripts') ?> + + +data['body_ondblclick']) { ?>ondblclick="text('body_ondblclick') ?>" +data['body_onload' ]) { ?>onload="text('body_onload') ?>" + class="text('nsclass') ?> text('dir') ?>"> + + +
+
+ + Arch linux +
+ +
+
 
+ + +
+
+
+ + data['sitenotice']) { ?>
html('sitenotice') ?>
+

data['displaytitle']!=""?$this->text('title'):$this->html('title') ?>

+
+

msg('tagline') ?>

+
html('subtitle') ?>
+ data['undelete']) { ?>
html('undelete') ?>
+ data['newtalk'] ) { ?>
html('newtalk') ?>
+ data['showjumplinks']) { ?> + + html('bodytext') ?> + data['catlinks']) { ?> + +
+
+
+
+
+
+
msg('views') ?>
+
    +data['content_actions'] as $key => $tab) { ?> +
  • class="">
  • + +
+
+
+
msg('personaltools') ?>
+
+
    +data['personal_urls'] as $key => $item) { ?> +
  • class="active"> class="">
  • + +
+
+
+ + + data['sidebar'] as $bar => $cont) { ?> +
+
+
+
    + $val) { ?> +
  • class="active" >
  • + +
+
+
+ + +
+
msg('toolbox') ?>
+
+ +
+
+data['language_urls'] ) { ?> +
+
msg('otherlanguages') ?>
+
+
    +data['language_urls'] as $langlink) { ?> +
  • + +
+
+
+ +
+
+ + +
+html('reporttime') ?> + + + diff --git a/skins/Chick.deps.php b/skins/Chick.deps.php new file mode 100644 index 00000000..273ac18b --- /dev/null +++ b/skins/Chick.deps.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/skins/Chick.php b/skins/Chick.php new file mode 100644 index 00000000..d5a4a080 --- /dev/null +++ b/skins/Chick.php @@ -0,0 +1,30 @@ +skinname = 'chick'; + $this->stylename = 'chick'; + $this->template = 'MonoBookTemplate'; + } +} + +?> diff --git a/skins/CologneBlue.php b/skins/CologneBlue.php new file mode 100644 index 00000000..b5f7c917 --- /dev/null +++ b/skins/CologneBlue.php @@ -0,0 +1,315 @@ +qbSetting(); + $mainPageObj = Title::newMainPage(); + + $s .= "\n
\n
" . + ""; + + $s .= "
"; + $s .= "escapeLocalURL() . "\">"; + $s .= "" . wfMsg( "sitetitle" ) . ""; + + $s .= ""; + $s .= $this->sysLinks(); + $s .= "
"; + + $s .= ""; + $s .= htmlspecialchars( wfMsg( "sitesubtitle" ) ) . ""; + $s .= "" ; + + $s .= "" ; + $s .= str_replace ( "
" , "" , $this->otherLanguages() ); + $cat = $this->getCategoryLinks(); + if( $cat ) $s .= "
$cat\n"; + $s .= "
" . $this->pageTitleLinks(); + $s .= "
"; + + $s .= "
\n"; + + $s .= "\n
\n
"; + + $notice = wfGetSiteNotice(); + if( $notice ) { + $s .= "\n
$notice
\n"; + } + $s .= $this->pageTitle(); + $s .= $this->pageSubtitle() . "\n"; + return $s; + } + + function doAfterContent() + { + global $wgOut; + + $s = "\n

\n"; + + $s .= "\n\n
\n"; + + if ( 0 != $qb ) { $s .= $this->quickBar(); } + return $s; + } + + function doGetUserStyles() { + global $wgOut; + $s = parent::doGetUserStyles(); + $qb = $this->qbSetting(); + + if ( 2 == $qb ) { # Right + $s .= "#quickbar { position: absolute; right: 4px; }\n" . + "#article { margin-left: 4px; margin-right: 148px; }\n"; + } else if ( 1 == $qb ) { + $s .= "#quickbar { position: absolute; left: 4px; }\n" . + "#article { margin-left: 148px; margin-right: 4px; }\n"; + } else if ( 3 == $qb ) { # Floating left + $s .= "#quickbar { position:absolute; left:4px } \n" . + "#topbar { margin-left: 148px }\n" . + "#article { margin-left:148px; margin-right: 4px; } \n" . + "body>#quickbar { position:fixed; left:4px; top:4px; overflow:auto ;bottom:4px;} \n"; # Hides from IE + } else if ( 4 == $qb ) { # Floating right + $s .= "#quickbar { position: fixed; right: 4px; } \n" . + "#topbar { margin-right: 148px }\n" . + "#article { margin-right: 148px; margin-left: 4px; } \n" . + "body>#quickbar { position: fixed; right: 4px; top: 4px; overflow: auto ;bottom:4px;} \n"; # Hides from IE + } + return $s; + } + + function sysLinks() { + global $wgUser, $wgContLang, $wgTitle; + $li = $wgContLang->specialPage("Userlogin"); + $lo = $wgContLang->specialPage("Userlogout"); + + $rt = $wgTitle->getPrefixedURL(); + if ( 0 == strcasecmp( urlencode( $lo ), $rt ) ) { + $q = ""; + } else { + $q = "returnto={$rt}"; + } + + $s = "" . + $this->makeKnownLink( wfMsgForContent( "mainpage" ), wfMsg( "mainpage" ) ) + . " | " . + $this->makeKnownLink( wfMsgForContent( "aboutpage" ), wfMsg( "about" ) ) + . " | " . + $this->makeKnownLink( wfMsgForContent( "helppage" ), wfMsg( "help" ) ) + . " | " . + $this->makeKnownLink( wfMsgForContent( "faqpage" ), wfMsg("faq") ) + . " | " . + $this->specialLink( "specialpages" ) . " | "; + + if ( $wgUser->isLoggedIn() ) { + $s .= $this->makeKnownLink( $lo, wfMsg( "logout" ), $q ); + } else { + $s .= $this->makeKnownLink( $li, wfMsg( "login" ), $q ); + } + + /* show links to different language variants */ + global $wgDisableLangConversion; + $variants = $wgContLang->getVariants(); + if( !$wgDisableLangConversion && sizeof( $variants ) > 1 ) { + $actstr = ''; + foreach( $variants as $code ) { + $varname = $wgContLang->getVariantname( $code ); + if( $varname == 'disable' ) + continue; + $s .= ' | ' . $varname . ''; + } + } + + return $s; + } + + /** + * Compute the sidebar + * @access private + */ + function quickBar() + { + global $wgOut, $wgTitle, $wgUser, $wgLang, $wgContLang, $wgEnableUploads; + + $tns=$wgTitle->getNamespace(); + + $s = "\n
"; + + $sep = "
"; + $s .= $this->menuHead( "qbfind" ); + $s .= $this->searchForm(); + + $s .= $this->menuHead( "qbbrowse" ); + + # Use the first heading from the Monobook sidebar as the "browse" section + $bar = $this->buildSidebar(); + $browseLinks = reset( $bar ); + + foreach ( $browseLinks as $link ) { + if ( $link['text'] != '-' ) { + $s .= "" . + htmlspecialchars( $link['text'] ) . '' . $sep; + } + } + + if ( $wgOut->isArticle() ) { + $s .= $this->menuHead( "qbedit" ); + $s .= "" . $this->editThisPage() . ""; + + $s .= $sep . $this->makeKnownLink( wfMsgForContent( "edithelppage" ), wfMsg( "edithelp" ) ); + + if( $wgUser->isLoggedIn() ) { + $s .= $sep . $this->moveThisPage(); + } + if ( $wgUser->isAllowed('delete') ) { + $dtp = $this->deleteThisPage(); + if ( "" != $dtp ) { + $s .= $sep . $dtp; + } + } + if ( $wgUser->isAllowed('protect') ) { + $ptp = $this->protectThisPage(); + if ( "" != $ptp ) { + $s .= $sep . $ptp; + } + } + $s .= $sep; + + $s .= $this->menuHead( "qbpageoptions" ); + $s .= $this->talkLink() + . $sep . $this->commentLink() + . $sep . $this->printableLink(); + if ( $wgUser->isLoggedIn() ) { + $s .= $sep . $this->watchThisPage(); + } + + $s .= $sep; + + $s .= $this->menuHead("qbpageinfo") + . $this->historyLink() + . $sep . $this->whatLinksHere() + . $sep . $this->watchPageLinksLink(); + + if( $tns == NS_USER || $tns == NS_USER_TALK ) { + $id=User::idFromName($wgTitle->getText()); + if ($id != 0) { + $s .= $sep . $this->userContribsLink(); + if( $this->showEmailUser( $id ) ) { + $s .= $sep . $this->emailUserLink(); + } + } + } + $s .= $sep; + } + + $s .= $this->menuHead( "qbmyoptions" ); + if ( $wgUser->isLoggedIn() ) { + $name = $wgUser->getName(); + $tl = $this->makeKnownLinkObj( $wgUser->getTalkPage(), + wfMsg( 'mytalk' ) ); + if ( $wgUser->getNewtalk() ) { + $tl .= " *"; + } + + $s .= $this->makeKnownLinkObj( $wgUser->getUserPage(), + wfMsg( "mypage" ) ) + . $sep . $tl + . $sep . $this->specialLink( "watchlist" ) + . $sep . $this->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, "Contributions" ), + wfMsg( "mycontris" ), "target=" . wfUrlencode($wgUser->getName() ) ) + . $sep . $this->specialLink( "preferences" ) + . $sep . $this->specialLink( "userlogout" ); + } else { + $s .= $this->specialLink( "userlogin" ); + } + + $s .= $this->menuHead( "qbspecialpages" ) + . $this->specialLink( "newpages" ) + . $sep . $this->specialLink( "imagelist" ) + . $sep . $this->specialLink( "statistics" ) + . $sep . $this->bugReportsLink(); + if ( $wgUser->isLoggedIn() && $wgEnableUploads ) { + $s .= $sep . $this->specialLink( "upload" ); + } + global $wgSiteSupportPage; + if( $wgSiteSupportPage) { + $s .= $sep."" + .wfMsg( "sitesupport" ).""; + } + + $s .= $sep . $this->makeKnownLinkObj( + Title::makeTitle( NS_SPECIAL, 'Specialpages' ), + wfMsg( 'moredotdotdot' ) ); + + $s .= $sep . "\n
\n"; + return $s; + } + + function menuHead( $key ) + { + $s = "\n
" . wfMsg( $key ) . "
"; + return $s; + } + + function searchForm( $label = "" ) + { + global $wgRequest; + + $search = $wgRequest->getText( 'search' ); + $action = $this->escapeSearchLink(); + $s = "
"; + if ( "" != $label ) { $s .= "{$label}: "; } + + $s .= "" + . "
"; + + return $s; + } +} + +?> diff --git a/skins/MonoBook.deps.php b/skins/MonoBook.deps.php new file mode 100644 index 00000000..8a78ae6b --- /dev/null +++ b/skins/MonoBook.deps.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/skins/MonoBook.php b/skins/MonoBook.php new file mode 100644 index 00000000..c80700d0 --- /dev/null +++ b/skins/MonoBook.php @@ -0,0 +1,275 @@ +skinname = 'monobook'; + $this->stylename = 'monobook'; + $this->template = 'MonoBookTemplate'; + } +} + +/** + * @todo document + * @package MediaWiki + * @subpackage Skins + */ +class MonoBookTemplate extends QuickTemplate { + /** + * Template filter callback for MonoBook skin. + * Takes an associative array of data set from a SkinTemplate-based + * class, and a wrapper for MediaWiki's localization database, and + * outputs a formatted page. + * + * @access private + */ + function execute() { + // Suppress warnings to prevent notices about missing indexes in $this->data + wfSuppressWarnings(); + +?> + + + + html('headlinks') ?> + <?php $this->text('pagetitle') ?> + + data['printable']) ) { ?>media="print" href="text('stylepath') ?>/common/commonPrint.css" /> + + + + + + + +data['jsvarurl' ]) { ?> + + +data['pagecss' ]) { ?> + +data['usercss' ]) { ?> + +data['userjs' ]) { ?> + +data['userjsprev']) { ?> + +data['trackbackhtml']) print $this->data['trackbackhtml']; ?> + + html('headscripts') ?> + +data['body_ondblclick']) { ?>ondblclick="text('body_ondblclick') ?>" +data['body_onload' ]) { ?>onload="text('body_onload') ?>" + class="text('nsclass') ?> text('dir') ?>"> +
+
+
+ + data['sitenotice']) { ?>
html('sitenotice') ?>
+

data['displaytitle']!=""?$this->text('title'):$this->html('title') ?>

+
+

msg('tagline') ?>

+
html('subtitle') ?>
+ data['undelete']) { ?>
html('undelete') ?>
+ data['newtalk'] ) { ?>
html('newtalk') ?>
+ data['showjumplinks']) { ?> + + html('bodytext') ?> + data['catlinks']) { ?> + +
+
+
+
+
+
+
msg('views') ?>
+
    +data['content_actions'] as $key => $tab) { ?> +
  • class="">
  • + +
+
+
+
msg('personaltools') ?>
+
+
    +data['personal_urls'] as $key => $item) { ?> +
  • class="active"> class="">
  • + +
+
+
+ + + data['sidebar'] as $bar => $cont) { ?> +
+
+
+
    + $val) { ?> +
  • class="active" >
  • + +
+
+
+ + +
+
msg('toolbox') ?>
+
+ +
+
+data['language_urls'] ) { ?> +
+
msg('otherlanguages') ?>
+
+
    +data['language_urls'] as $langlink) { ?> +
  • + +
+
+
+ +
+
+ + +
+html('reporttime') ?> + + + diff --git a/skins/MySkin.deps.php b/skins/MySkin.deps.php new file mode 100644 index 00000000..ea0455f2 --- /dev/null +++ b/skins/MySkin.deps.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/skins/MySkin.php b/skins/MySkin.php new file mode 100644 index 00000000..cb24fdc4 --- /dev/null +++ b/skins/MySkin.php @@ -0,0 +1,30 @@ +skinname = 'myskin'; + $this->stylename = 'myskin'; + $this->template = 'MonoBookTemplate'; + } +} + +?> diff --git a/skins/Nostalgia.php b/skins/Nostalgia.php new file mode 100644 index 00000000..1b54aab9 --- /dev/null +++ b/skins/Nostalgia.php @@ -0,0 +1,93 @@ +\n
"; + $s .= $this->logoText( "right" ); + + $s .= $this->pageTitle(); + $s .= $this->pageSubtitle() . "\n"; + + $s .= $this->topLinks() . "\n
"; + + $notice = wfGetSiteNotice(); + if( $notice ) { + $s .= "\n
$notice
\n"; + } + $s .= $this->pageTitleLinks(); + + $ol = $this->otherLanguages(); + if($ol) $s .= "
" . $ol; + + $cat = $this->getCategoryLinks(); + if($cat) $s .= "
" . $cat; + + $s .= "

\n
\n"; + $s .= "\n
"; + + return $s; + } + + function topLinks() { + global $wgOut, $wgUser; + $sep = " |\n"; + + $s = $this->mainPageLink() . $sep + . $this->specialLink( "recentchanges" ); + + if ( $wgOut->isArticle() ) { + $s .= $sep . $this->editThisPage() + . $sep . $this->historyLink(); + } + if ( $wgUser->isAnon() ) { + $s .= $sep . $this->specialLink( "userlogin" ); + } else { + $s .= $sep . $this->specialLink( "userlogout" ); + } + $s .= $sep . $this->specialPagesList(); + + return $s; + } + + function doAfterContent() { + $s = "\n

\n"; + + $s .= "\n\n\n"; + + return $s; + } +} + +?> diff --git a/skins/Simple.deps.php b/skins/Simple.deps.php new file mode 100644 index 00000000..ffc51557 --- /dev/null +++ b/skins/Simple.deps.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/skins/Simple.php b/skins/Simple.php new file mode 100644 index 00000000..d1ebd7d9 --- /dev/null +++ b/skins/Simple.php @@ -0,0 +1,70 @@ +skinname = 'simple'; + $this->stylename = 'simple'; + $this->template = 'MonoBookTemplate'; + } + + function reallyDoGetUserStyles() { + global $wgUser; + $s = ''; + if (($undopt = $wgUser->getOption("underline")) != 2) { + $underline = $undopt ? 'underline' : 'none'; + $s .= "a { text-decoration: $underline; }\n"; + } + if ($wgUser->getOption('highlightbroken')) { + $s .= "a.new, #quickbar a.new { text-decoration: line-through; }\n"; + } else { + $s .= <<getOption('justify')) { + $s .= "#article, #bodyContent { text-align: justify; }\n"; + } + if (!$wgUser->getOption('showtoc')) { + $s .= "#toc { display: none; }\n"; + } + if (!$wgUser->getOption('editsection')) { + $s .= ".editsection { display: none; }\n"; + } + return $s; + } +} + +?> diff --git a/skins/Skin.sample b/skins/Skin.sample new file mode 100644 index 00000000..c011c143 --- /dev/null +++ b/skins/Skin.sample @@ -0,0 +1,19 @@ + diff --git a/skins/SkinPHPTal.sample b/skins/SkinPHPTal.sample new file mode 100644 index 00000000..683c2080 --- /dev/null +++ b/skins/SkinPHPTal.sample @@ -0,0 +1,28 @@ +skinname = 'name of your skin all lower case'; + $this->template = 'phptal template used do not put the .pt'; + } + + # Override method below + # + + } + +} +?> diff --git a/skins/Standard.php b/skins/Standard.php new file mode 100644 index 00000000..8140b7d6 --- /dev/null +++ b/skins/Standard.php @@ -0,0 +1,294 @@ +qbSetting() ) { # Floating left + $s .= "\n"; + } + return $s; + } + + /** + * + */ + function getUserStyles() { + global $wgStylePath; + $s = ''; + if ( 3 == $this->qbSetting() ) { # Floating left + $s .= "\n"; + } else if ( 4 == $this->qbSetting() ) { # Floating right + $s .= "\n"; + } + $s .= parent::getUserStyles(); + return $s; + } + + /** + * + */ + function doGetUserStyles() { + global $wgStylePath; + + $s = parent::doGetUserStyles(); + $qb = $this->qbSetting(); + + if ( 2 == $qb ) { # Right + $s .= "#quickbar { position: absolute; top: 4px; right: 4px; " . + "border-left: 2px solid #000000; }\n" . + "#article { margin-left: 4px; margin-right: 152px; }\n"; + } else if ( 1 == $qb || 3 == $qb ) { + $s .= "#quickbar { position: absolute; top: 4px; left: 4px; " . + "border-right: 1px solid gray; }\n" . + "#article { margin-left: 152px; margin-right: 4px; }\n"; + } else if ( 4 == $qb) { + $s .= "#quickbar { border-right: 1px solid gray; }\n" . + "#article { margin-right: 152px; margin-left: 4px; }\n"; + } + return $s; + } + + /** + * + */ + function getBodyOptions() { + $a = parent::getBodyOptions(); + + if ( 3 == $this->qbSetting() ) { # Floating left + $qb = "setup(\"quickbar\")"; + if($a["onload"]) { + $a["onload"] .= ";$qb"; + } else { + $a["onload"] = $qb; + } + } + return $a; + } + + function doAfterContent() { + global $wgContLang; + $fname = 'SkinStandard::doAfterContent'; + wfProfileIn( $fname ); + wfProfileIn( $fname.'-1' ); + + $s = "\n
\n"; + $s .= "\n\n\n"; + + wfProfileOut( $fname.'-3' ); + wfProfileIn( $fname.'-4' ); + if ( 0 != $qb ) { $s .= $this->quickBar(); } + wfProfileOut( $fname.'-4' ); + wfProfileOut( $fname ); + return $s; + } + + function quickBar() { + global $wgOut, $wgTitle, $wgUser, $wgRequest, $wgContLang; + global $wgEnableUploads, $wgRemoteUploads; + + $fname = 'Skin::quickBar'; + wfProfileIn( $fname ); + + $action = $wgRequest->getText( 'action' ); + $wpPreview = $wgRequest->getBool( 'wpPreview' ); + $tns=$wgTitle->getNamespace(); + + $s = "\n
"; + $s .= "\n" . $this->logoText() . "\n
"; + + $sep = "\n
"; + + # Use the first heading from the Monobook sidebar as the "browse" section + $bar = $this->buildSidebar(); + $browseLinks = reset( $bar ); + + foreach ( $browseLinks as $link ) { + if ( $link['text'] != '-' ) { + $s .= "" . + htmlspecialchars( $link['text'] ) . '' . $sep; + } + } + + if( $wgUser->isLoggedIn() ) { + $s.= $this->specialLink( 'watchlist' ) ; + $s .= $sep . $this->makeKnownLink( $wgContLang->specialPage( 'Contributions' ), + wfMsg( 'mycontris' ), 'target=' . wfUrlencode($wgUser->getName() ) ); + } + // only show watchlist link if logged in + $s .= "\n
"; + $articleExists = $wgTitle->getArticleId(); + if ( $wgOut->isArticle() || $action =='edit' || $action =='history' || $wpPreview) { + if($wgOut->isArticle()) { + $s .= '' . $this->editThisPage() . ''; + } else { # backlink to the article in edit or history mode + if($articleExists){ # no backlink if no article + switch($tns) { + case 0: + $text = wfMsg('articlepage'); + break; + case 1: + $text = wfMsg('viewtalkpage'); + break; + case 2: + $text = wfMsg('userpage'); + break; + case 3: + $text = wfMsg('viewtalkpage'); + break; + case 4: + $text = wfMsg('projectpage'); + break; + case 5: + $text = wfMsg('viewtalkpage'); + break; + case 6: + $text = wfMsg('imagepage'); + break; + case 7: + $text = wfMsg('viewtalkpage'); + break; + default: + $text= wfMsg('articlepage'); + } + + $link = $wgTitle->getText(); + if ($nstext = $wgContLang->getNsText($tns) ) { # add namespace if necessary + $link = $nstext . ':' . $link ; + } + + $s .= $this->makeLink( $link, $text ); + } elseif( $wgTitle->getNamespace() != NS_SPECIAL ) { + # we just throw in a "New page" text to tell the user that he's in edit mode, + # and to avoid messing with the separator that is prepended to the next item + $s .= '' . wfMsg('newpage') . ''; + } + + } + + # "Post a comment" link + if( ( $wgTitle->isTalkPage() || $wgOut->showNewSectionLink() ) && $action != 'edit' && !$wpPreview ) + $s .= '
' . $this->makeKnownLinkObj( $wgTitle, wfMsg( 'postcomment' ), 'action=edit§ion=new' ); + + #if( $tns%2 && $action!='edit' && !$wpPreview) { + #$s.= '
'.$this->makeKnownLink($wgTitle->getPrefixedText(),wfMsg('postcomment'),'action=edit§ion=new'); + #} + + /* + watching could cause problems in edit mode: + if user edits article, then loads "watch this article" in background and then saves + article with "Watch this article" checkbox disabled, the article is transparently + unwatched. Therefore we do not show the "Watch this page" link in edit mode + */ + if ( $wgUser->isLoggedIn() && $articleExists) { + if($action!='edit' && $action != 'submit' ) + { + $s .= $sep . $this->watchThisPage(); + } + if ( $wgTitle->userCanEdit() ) + $s .= $sep . $this->moveThisPage(); + } + if ( $wgUser->isAllowed('delete') and $articleExists ) { + $s .= $sep . $this->deleteThisPage() . + $sep . $this->protectThisPage(); + } + $s .= $sep . $this->talkLink(); + if ($articleExists && $action !='history') { + $s .= $sep . $this->historyLink(); + } + $s.=$sep . $this->whatLinksHere(); + + if($wgOut->isArticleRelated()) { + $s .= $sep . $this->watchPageLinksLink(); + } + + if ( NS_USER == $wgTitle->getNamespace() + || $wgTitle->getNamespace() == NS_USER_TALK ) { + + $id=User::idFromName($wgTitle->getText()); + $ip=User::isIP($wgTitle->getText()); + + if($id||$ip) { + $s .= $sep . $this->userContribsLink(); + } + if( $this->showEmailUser( $id ) ) { + $s .= $sep . $this->emailUserLink(); + } + } + $s .= "\n

"; + } + + if ( $wgUser->isLoggedIn() && ( $wgEnableUploads || $wgRemoteUploads ) ) { + $s .= $this->specialLink( 'upload' ) . $sep; + } + $s .= $this->specialLink( 'specialpages' ) + . $sep . $this->bugReportsLink(); + + global $wgSiteSupportPage; + if( $wgSiteSupportPage ) { + $s .= "\n
' . wfMsg( 'sitesupport' ) . ''; + } + + $s .= "\n
\n"; + wfProfileOut( $fname ); + return $s; + } + + +} + +?> diff --git a/skins/archlinux/IE50Fixes.css b/skins/archlinux/IE50Fixes.css new file mode 100644 index 00000000..027e32ed --- /dev/null +++ b/skins/archlinux/IE50Fixes.css @@ -0,0 +1,67 @@ +/* +** IE5.0 Fix Stylesheet +*/ + +#column-content { + margin: 0 !important; + float: none; +} +#column-content #content { + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + overflow: visible; + top: 0; + left: 0; + z-index: 3; +} +#footer { + margin: 0 0 0 13.6em; +} + +/* IE 5 & 5.5 interpret keyword sizes one off */ +body { font-size: xx-small; } +/* +** the edit tabs +*/ +#p-cactions li { + float: left; + padding-top: 0; + padding-bottom: 0 !important; + height: 0.9em; +} +#p-cactions li a { + display: block; + padding-bottom: 0.045em; +} +#p-cactions li.selected a { + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +/* 5.0 doesn't like the background icon for external links and user */ +.link-external, +.external { + background: none; + padding: 0; +} +#p-personal ul { float: right } +#p-personal li { float: left } +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login, +li#pt-logout { + background: none; + padding-left: none; +} +.visualClear { + width: 100%; + height: 0px; + padding:0; + margin: 0; +} +.firstHeading { margin-bottom: .3em; } +/*div{ border:1px solid Red !important;}*/ diff --git a/skins/archlinux/IE55Fixes.css b/skins/archlinux/IE55Fixes.css new file mode 100644 index 00000000..637daae1 --- /dev/null +++ b/skins/archlinux/IE55Fixes.css @@ -0,0 +1,85 @@ +/* IE5.5/win- only fixes */ + +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + position: relative; + z-index: 5; + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; + width: 100%; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/*#bodyContent div, +#bodyContent pre { overflow: auto; }*/ + +#p-personal { padding-bottom: .1em; } + +body { font-size: xx-small; } + +#p-cactions { + width: 76% !important; + z-index: 3 !important; + float: none; +} +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +.portlet { + overflow: hidden; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +.visualClear { + width: 90%; + height: 1px; + padding: 0; + margin: 0; +} + +#editform { + width: 100%; +} diff --git a/skins/archlinux/IE60Fixes.css b/skins/archlinux/IE60Fixes.css new file mode 100644 index 00000000..6b646c70 --- /dev/null +++ b/skins/archlinux/IE60Fixes.css @@ -0,0 +1,84 @@ +/* 6.0 - only fixes */ +/* content area */ +/* workaround for various ie float bugs */ +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/* the tabs */ + +#p-cactions { + z-index: 3; +} + +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +#portal-personaltools { + padding-bottom: 0.1em; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} + +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +div.visualClear { + width:100%; + line-height: 0; +} +textarea { + width: 96%; +} + +div.editsection, +#catlinks, +div.tright, +div.tleft { + position: relative; +} +/*{ border:1px solid Red !important;}*/ + diff --git a/skins/archlinux/IE70Fixes.css b/skins/archlinux/IE70Fixes.css new file mode 100644 index 00000000..2a2c9c77 --- /dev/null +++ b/skins/archlinux/IE70Fixes.css @@ -0,0 +1,75 @@ +/* 7.0 - only fixes */ +/* content area */ +/* workaround for various ie float bugs */ + +/* This bit is needed to make links clickable... WTF */ +#column-content #content { + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} + +.rtl #column-one { + /* For some reason it tries to inherit the padding-top into every div, + * and I can't figure out how to get it back off. + */ + padding-top: 0; +} +.rtl #column-one #p-navigation { + margin-top: 160px; +} + +/* the tabs */ + +#p-cactions { + z-index: 3; +} + + +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} + +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +#portal-personaltools { + padding-bottom: 0.1em; +} +textarea { + width: 96%; +} + +/* +div.editsection, +#catlinks, +div.tright, +div.tleft { + position: relative; +} +*/ + + +#footer li { + /* Work around bug with inline
  • tags with right margins and nowrap */ + margin-right: 0; +} diff --git a/skins/archlinux/IEMacFixes.css b/skins/archlinux/IEMacFixes.css new file mode 100644 index 00000000..f1b05719 --- /dev/null +++ b/skins/archlinux/IEMacFixes.css @@ -0,0 +1,44 @@ +/* IE/Mac only fix stylesheet, imported from main.css */ +#portal-column-content { + margin: 0 0 4.8em 0; + float: none; +} +#portal-column-content #content { + z-index: 0; +} +#portal-column-one { + position: absolute; + top: 0; + left: 0; + z-index: 3; +} +#portal-footer { + margin-left: 12em; +} +/* +#portlet-contentViews { + top: 0.6em !important; + left: 14.5em !important; +} +*/ +#portlet-contentViews li, +#portlet-contentViews .selected { + border: none !important; +} +#portlet-contentViews li a { + border: 1px solid #aaaaaa; + border-bottom: none; +} +#portlet-contentViews li.selected a { + border: 1px solid #fabd23; + border-bottom: none; +} +/* no background images */ +li#personaltools-userpage, +li#personaltools-login/* */ { + background: none; + padding-left: none; +} +#mactest { + color: green; +} diff --git a/skins/archlinux/KHTMLFixes.css b/skins/archlinux/KHTMLFixes.css new file mode 100644 index 00000000..97fba0c4 --- /dev/null +++ b/skins/archlinux/KHTMLFixes.css @@ -0,0 +1,3 @@ +/* KHTML fix stylesheet */ +/* work around the horizontal scrollbars */ +#column-content { margin-left: 0; } diff --git a/skins/archlinux/Opera6Fixes.css b/skins/archlinux/Opera6Fixes.css new file mode 100644 index 00000000..88704739 --- /dev/null +++ b/skins/archlinux/Opera6Fixes.css @@ -0,0 +1,14 @@ +/* opera 6 fixes */ +#column-one { + position: relative; + max-width: 11.7em; +} +#p-personal { + width: 45em; + margin-left: 8.6em; + right: 0; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} diff --git a/skins/archlinux/Opera7Fixes.css b/skins/archlinux/Opera7Fixes.css new file mode 100644 index 00000000..446ea44c --- /dev/null +++ b/skins/archlinux/Opera7Fixes.css @@ -0,0 +1,11 @@ +/* small tweaks for opera seven */ +#p-cactions { + margin-top: .1em; +} +#p-cactions li a { + top: 2px; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} diff --git a/skins/archlinux/archlinux.css b/skins/archlinux/archlinux.css new file mode 100644 index 00000000..eede2680 --- /dev/null +++ b/skins/archlinux/archlinux.css @@ -0,0 +1,45 @@ +#head_container {margin: 0; padding: 0; height: 140px;} + +#main_nav ul { + list-style: none; + margin: 0; + padding: 20px; + padding-right: 10px; + padding-top: 48px; +} + +#main_nav ul li { + display: block; + float: right; + width: 67px; + height: 20px; + margin: 0; + padding-top: 2px; + margin-left: 3px; + background: url("tab.png") repeat-x bottom left #fbf8f1; + text-align: center; + font-size: 13px; +} + +#main_nav ul li[class~=selected] { + background: #fbf8f1; +} + +#main_nav ul li a { +color: #35526f; + font-weight: bold; + text-decoration: none; +} + + + +#title {margin: 0; padding: 0; + height: 140px; + float: left; +} + +#logo {margin: 0; padding: 0; + float: left; + width: 140px; + height: 140px; +} \ No newline at end of file diff --git a/skins/archlinux/bullet.gif b/skins/archlinux/bullet.gif new file mode 100644 index 00000000..b43de48a Binary files /dev/null and b/skins/archlinux/bullet.gif differ diff --git a/skins/archlinux/discussionitem_icon.gif b/skins/archlinux/discussionitem_icon.gif new file mode 100644 index 00000000..baec471a Binary files /dev/null and b/skins/archlinux/discussionitem_icon.gif differ diff --git a/skins/archlinux/external.png b/skins/archlinux/external.png new file mode 100644 index 00000000..419c06fb Binary files /dev/null and b/skins/archlinux/external.png differ diff --git a/skins/archlinux/file_icon.gif b/skins/archlinux/file_icon.gif new file mode 100644 index 00000000..847f6485 Binary files /dev/null and b/skins/archlinux/file_icon.gif differ diff --git a/skins/archlinux/headbg.jpg b/skins/archlinux/headbg.jpg new file mode 100644 index 00000000..5491c6e4 Binary files /dev/null and b/skins/archlinux/headbg.jpg differ diff --git a/skins/archlinux/link_icon.gif b/skins/archlinux/link_icon.gif new file mode 100644 index 00000000..815ccb1b Binary files /dev/null and b/skins/archlinux/link_icon.gif differ diff --git a/skins/archlinux/lock_icon.gif b/skins/archlinux/lock_icon.gif new file mode 100644 index 00000000..8a87e283 Binary files /dev/null and b/skins/archlinux/lock_icon.gif differ diff --git a/skins/archlinux/logo.png b/skins/archlinux/logo.png new file mode 100644 index 00000000..b2b6d863 Binary files /dev/null and b/skins/archlinux/logo.png differ diff --git a/skins/archlinux/magnify-clip.png b/skins/archlinux/magnify-clip.png new file mode 100644 index 00000000..992aa2e3 Binary files /dev/null and b/skins/archlinux/magnify-clip.png differ diff --git a/skins/archlinux/mail_icon.gif b/skins/archlinux/mail_icon.gif new file mode 100644 index 00000000..50a87a9a Binary files /dev/null and b/skins/archlinux/mail_icon.gif differ diff --git a/skins/archlinux/main.css b/skins/archlinux/main.css new file mode 100644 index 00000000..fa382299 --- /dev/null +++ b/skins/archlinux/main.css @@ -0,0 +1,1450 @@ +/* +** MediaWiki 'monobook' style sheet for CSS2-capable browsers. +** Copyright Gabriel Wicke - http://wikidev.net/ +** License: GPL (http://www.gnu.org/copyleft/gpl.html) +** +** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John +** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, +** Michael Zeltner and Geir Bækholt) +** All you guys rock :) +*/ + +#column-content { + width: 100%; + float: right; + margin: 0 0 .6em -12.2em; + padding: 0; +} +#content { + margin: 0.3em 0 0 12.2em; + padding: 0 1em 1.5em 1em; + background: white; + color: black; + border: 1px solid #8faecd; + border-right: none; + line-height: 1.5em; + position: relative; + z-index: 2; +} +#column-one { + padding-top: 0; +} +/* the left column width is specified in class .portlet */ + +/* Font size: +** We take advantage of keyword scaling- browsers won't go below 9px +** More at http://www.w3.org/2003/07/30-font-size +** http://style.cleverchimp.com/font_size_intervals/altintervals.html +*/ + +body { + background: url("title_back.png") repeat-x top left #fbf8f1; + padding: 0px 30px; + margin: 0; + color: #46494d; + font-family: sans-serif; + font-size:10px; +} + +/* scale back up to a sane default */ +#globalWrapper { + font-size: 127%; + width: 100%; + margin: 0; + padding: 0; +} +.visualClear { + clear: both; +} + +/* general styles */ + +table { + background: white; + font-size: 100%; + color: black; +} +a { + text-decoration: none; + color: #35526f; + background: none; +} +a:visited { +/* color: #5a3696; */ +} +a:active { +/* color: #faa700; */ +} +a:hover { + text-decoration: underline; +} +a.stub { + color: #772233; +} +a.new, #p-personal a.new { + color: #ba0000; +} +a.new:visited, #p-personal a.new:visited { +/* color: #a55858; */ +} + +img { + border: none; + vertical-align: middle; +} +p { + margin: .4em 0 .5em 0; + line-height: 1.5em; +} +p img { + margin: 0; +} + +hr { + height: 1px; + color: #8faecd; + background-color: #8faecd; + border: 0; + margin: .2em 0 .2em 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #35526f; + background: none; + font-weight: normal; + margin: 0; + padding-top: .5em; + padding-bottom: .17em; + border-bottom: 1px dotted #8faecd; +} +h1 { font-size: 188%; } +h2 { font-size: 150%; } +h3, h4, h5, h6 { + border-bottom: none; + font-weight: bold; +} +h3 { font-size: 132%; } +h4 { font-size: 116%; } +h5 { font-size: 100%; } +h6 { font-size: 80%; } + +ul { + line-height: 1.5em; + list-style-type: square; + margin: .3em 0 0 1.5em; + padding: 0; +/* color:#8faecd; */ +/* list-style-image: url(bullet.gif); */ +} +ol { + line-height: 1.5em; + margin: .3em 0 0 3.2em; + padding: 0; + list-style-image: none; +} +li { + margin-bottom: .1em; +} +dt { + font-weight: bold; + margin-bottom: .1em; +} +dl { + margin-top: .2em; + margin-bottom: .5em; +} +dd { + line-height: 1.5em; + margin-left: 2em; + margin-bottom: .1em; +} + +fieldset { + border: 1px solid #8faecd; + margin: 1em 0 1em 0; + padding: 0 1em 1em; + line-height: 1.5em; +} +legend { + background: white; + padding: .5em; + font-size: 95%; +} +form { + border: none; + margin: 0; +} + +textarea { + width: 100%; + padding: .1em; +} + +input.historysubmit { + padding: 0 .3em .3em .3em !important; + font-size: 94%; + cursor: pointer; + height: 1.7em !important; + margin-left: 1.6em; +} +select { + vertical-align: top; +} +abbr, acronym, .explain { + border-bottom: 1px dotted black; + color: black; + background: none; + cursor: help; +} +q { + font-family: Times, "Times New Roman", serif; + font-style: italic; +} +/* disabled for now +blockquote { + font-family: Times, "Times New Roman", serif; + font-style: italic; +}*/ +code { + background-color: #f9f9f9; +} +pre { + padding: 1em; + border: 1px dashed #8faecd; + color: black; + background-color: #f9f9f9; + line-height: 1.1em; +} + +/* +** the main content area +*/ + +#siteSub { + display: none; +} + +#jump-to-nav { + display: none; +} + +#contentSub, #contentSub2 { + font-size: 84%; + line-height: 1.2em; + margin: 0 0 1.4em 1em; + color: #7d7d7d; + width: auto; +} +span.subpages { + display: block; +} + +/* Some space under the headers in the content area */ +#bodyContent h1, #bodyContent h2 { + margin-bottom: .6em; +} +#bodyContent h3, #bodyContent h4, #bodyContent h5 { + margin-bottom: .3em; +} +.firstHeading { + margin-bottom: .1em; +} + +/* user notification thing */ +.usermessage { + background-color: #ffce7b; + border: 1px solid #8faecd; + color: black; + font-weight: bold; + margin: 2em 0 1em; + padding: .5em 1em; + vertical-align: middle; +} +#siteNotice { + text-align: center; + font-size: 95%; + padding: 0 .9em; +} +#siteNotice p { + margin: 0; + padding: 0; +} +.error { + color: red; + font-size: larger; +} +.errorbox, .successbox { + font-size: larger; + border: 2px solid; + padding: .5em 1em; + float: left; + margin-bottom: 2em; + color: #000; +} +.errorbox { + border-color: red; + background-color: #fff2f2; +} +.successbox { + border-color: green; + background-color: #dfd; +} +.errorbox h2, .successbox h2 { + font-size: 1em; + font-weight: bold; + display: inline; + margin: 0 .5em 0 0; + border: none; +} + +#catlinks { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + margin-top: 1em; + clear: both; +} +/* currently unused, intended to be used by a metadata box +in the bottom-right corner of the content area */ +.documentDescription { + /* The summary text describing the document */ + font-weight: bold; + display: block; + margin: 1em 0; + line-height: 1.5em; +} +.documentByLine { + text-align: right; + font-size: 90%; + clear: both; + font-weight: normal; + color: #76797c; +} + +/* emulate center */ +.center { + width: 100%; + text-align: center; +} +*.center * { + margin-left: auto; + margin-right: auto; +} +/* small for tables and similar */ +.small, .small * { + font-size: 94%; +} +table.small { + font-size: 100%; +} + +/* +** content styles +*/ + +#toc, +.toc, +.mw-warning { + border: 1px solid #8faecd; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} +#toc h2, +.toc h2 { + display: inline; + border: none; + padding: 0; + font-size: 100%; + font-weight: bold; +} +#toc #toctitle, +.toc #toctitle, +#toc .toctitle, +.toc .toctitle { + text-align: center; +} +#toc ul, +.toc ul { + list-style-type: none; + list-style-image: none; + margin-left: 0; + padding-left: 0; + text-align: left; +} +#toc ul ul, +.toc ul ul { + margin: 0 0 0 2em; +} +#toc .toctoggle, +.toc .toctoggle { + font-size: 94%; +} + +.mw-warning { + margin-left: 50px; + margin-right: 50px; + text-align: center; +} + +/* images */ +div.floatright, table.floatright { + clear: right; + float: right; + position: relative; + margin: 0 0 .5em .5em; + border: 0; +/* + border: .5em solid white; + border-width: .5em 0 .8em 1.4em; +*/ +} +div.floatright p { font-style: italic; } +div.floatleft, table.floatleft { + float: left; + position: relative; + margin: 0 .5em .5em 0; + border: 0; +/* + margin: .3em .5em .5em 0; + border: .5em solid white; + border-width: .5em 1.4em .8em 0; +*/ +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: .5em; + border-style: solid; + border-color: white; + width: auto; +} +div.thumb div { + border: 1px solid #ccc; + padding: 3px !important; + background-color: #f9f9f9; + font-size: 94%; + text-align: center; + overflow: hidden; +} +div.thumb div a img { + border: 1px solid #ccc; +} +div.thumb div div.thumbcaption { + border: none; + text-align: left; + line-height: 1.4em; + padding: .3em 0 .1em 0; +} +div.magnify { + float: right; + border: none !important; + background: none !important; +} +div.magnify a, div.magnify img { + display: block; + border: none !important; + background: none !important; +} +div.tright { + clear: right; + float: right; + border-width: .5em 0 .8em 1.4em; +} +div.tleft { + float: left; + margin-right: .5em; + border-width: .5em 1.4em .8em 0; +} + +.hiddenStructure { + display: none; + speak: none; +} +img.tex { + vertical-align: middle; +} +span.texhtml { + font-family: serif; +} + +/* +** classes for special content elements like town boxes +** intended to be referenced directly from the wiki src +*/ + +/* +** User styles +*/ +/* table standards */ +table.rimage { + float: right; + position: relative; + margin-left: 1em; + margin-bottom: 1em; + text-align: center; +} +.toccolours { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} +div.townBox { + position: relative; + float: right; + background: white; + margin-left: 1em; + border: 1px solid gray; + padding: .3em; + width: 200px; + overflow: hidden; + clear: right; +} +div.townBox dl { + padding: 0; + margin: 0 0 .3em; + font-size: 96%; +} +div.townBox dl dt { + background: none; + margin: .4em 0 0; +} +div.townBox dl dd { + margin: .1em 0 0 1.1em; + background-color: #f3f3f3; +} + +/* +** edit views etc +*/ +.special li { + line-height: 1.4em; + margin: 0; + padding: 0; +} + +/* Page history styling */ +/* the auto-generated edit comments */ +.autocomment { + color: gray; +} +#pagehistory span.user { + margin-left: 1.4em; + margin-right: .4em; +} +#pagehistory span.minor { + font-weight: bold; +} +#pagehistory li { + border: 1px solid white; +} +#pagehistory li.selected { + background-color: #f9f9f9; + border: 1px dashed #aaa; +} + +/* +** Diff rendering +*/ +table.diff, td.diff-otitle, td.diff-ntitle { + background-color: white; +} +td.diff-addedline { + background: #cfc; + font-size: smaller; +} +td.diff-deletedline { + background: #ffa; + font-size: smaller; +} +td.diff-context { + background: #eee; + font-size: smaller; +} +span.diffchange { + color: red; + font-weight: bold; +} + +/* +** keep the whitespace in front of the ^=, hides rule from konqueror +** this is css3, the validator doesn't like it when validating as css2 +*/ +#bodyContent a.external, +#bodyContent a[href ^="gopher://"] { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +#bodyContent a[href ^="https://"], +.link-https { + background: url(lock_icon.gif) center right no-repeat; + padding-right: 16px; +} +#bodyContent a[href ^="mailto:"], +.link-mailto { + background: url(mail_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="news://"] { + background: url(news_icon.png) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="ftp://"], +.link-ftp { + background: url(file_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="irc://"], +.link-irc { + background: url(discussionitem_icon.gif) center right no-repeat; + padding-right: 18px; +} +/* disable interwiki styling */ +#bodyContent a.extiw, +#bodyContent a.extiw:active { + color: #36b; + background: none; + padding: 0; +} +#bodyContent a.external { + color: #36b; +} +/* this can be used in the content area to switch off +special external link styling */ +#bodyContent .plainlinks a { + background: none !important; + padding: 0 !important; +} +/* +** Structural Elements +*/ + +/* +** general portlet styles (elements in the quickbar) +*/ +.portlet { + border: none; + margin: 0 0 .5em; + padding: 0; + float: none; + width: 11.6em; + overflow: hidden; +} +.portlet h4 { + font-size: 95%; + font-weight: normal; + white-space: nowrap; +} +.portlet h5 { + background: transparent; + padding: 0 1em 0 .5em; + display: inline; + height: 1em; + text-transform: lowercase; + font-size: 91%; + font-weight: normal; + white-space: nowrap; +} +.portlet h6 { + background: #ffae2e; + border: 1px solid #8faecd; + border-style: solid solid none solid; + padding: 0 1em 0 1em; + text-transform: lowercase; + display: block; + font-size: 1em; + height: 1.2em; + font-weight: normal; + white-space: nowrap; +} +.pBody { + font-size: 95%; + background-color: #e1e3e6; + color: #46494d; + border-collapse: collapse; + border: 1px solid #8faecd; + padding: 0 .8em .3em .5em; +} +.portlet h1, +.portlet h2, +.portlet h3, +.portlet h4 { + margin: 0; + padding: 0; +} +.portlet ul { + line-height: 1.5em; + list-style-type: square; +/* list-style-image: url(bullet.gif); */ + font-size: 95%; +} +.portlet li { + padding: 0; + margin: 0; +} + +/* +** Logo properties +*/ + +#p-logo { + z-index: 3; + position: absolute; /*needed to use z-index */ + top: 0; + left: 0; + height: 155px; + width: 12em; + overflow: visible; +} +#p-logo h5 { + display: none; +} +#p-logo a, +#p-logo a:hover { + display: block; + height: 155px; + width: 12.2em; + background-repeat: no-repeat; + background-position: 35% 50% !important; + text-decoration: none; +} + +/* +** the navigation portlet +*/ + +#p-navigation { + position: relative; + z-index: 3; +} + +#p-navigation .pBody { + padding-right: 0; +} + +#p-navigation a { + display: block; +} + +#p-navigation li.active a, #p-navigation li.active a:hover { + text-decoration: none; + display: inline; + font-weight: bold; +} + + +/* +** Search portlet +*/ +#p-search { + position: relative; + z-index: 3; +} +input.searchButton { + margin-top: 1px; + font-size: 95%; +} +#searchGoButton { + padding-left: .5em; + padding-right: .5em; + font-weight: bold; +} +#searchInput { + width: 10.9em; + margin: 0; + font-size: 95%; +} +#p-search .pBody { + padding: .5em .4em .4em .4em; + text-align: center; +} + +/* +** the personal toolbar +*/ + +#p-personal { + width: 100%; + white-space: nowrap; + padding: 0; + margin: 0; + position: absolute; + left: 0; + top: 80px; + z-index: 0; + border: none; + background: none; + overflow: visible; + line-height: 1.2em; +} + +#p-personal h5 { + display: none; +} +#p-personal .portlet, +#p-personal .pBody { + padding: 0; + margin: 0; + border: none; + z-index: 0; + overflow: visible; + background: none; +} +/* this is the ul contained in the portlet */ +#p-personal ul { + border: none; + line-height: 1.4em; + color: #2f6fab; + padding: 0 2em 0 3em; + margin: 0; + text-align: right; + text-transform: lowercase; + list-style: none; + z-index: 0; + background: none; + cursor: default; +} +#p-personal li { + z-index: 0; + border: none; + padding: 0; + display: inline; + color: #2f6fab; + margin-left: 1em; + line-height: 1.2em; + background: none; +} +#p-personal li.active { + font-weight: bold; +} +#p-personal li a { + text-decoration: none; + color: #005896; + padding-bottom: .2em; + background: none; +} +#p-personal li a:hover { + background-color: white; + padding-bottom: .2em; + text-decoration: none; +} +#p-personal li.active a:hover { + background-color: transparent; +} +/* the icon in front of the user name, single quotes +in bg url to hide it from iemac */ +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login { + background: url(user.gif) top left no-repeat; + padding-left: 20px; + text-transform: none; +} + +/* +** the page-related actions- page/talk, edit etc +*/ +#p-cactions { + position: absolute; + top: 137px; + left: 14.5em; + margin: 0; + white-space: nowrap; + width: 76%; + line-height: 1px; + overflow: visible; + background: none; + border-collapse: collapse; + padding-left: 1em; + list-style: none; + font-size: 95%; +} +#p-cactions .hiddenStructure { + display: none; +} +#p-cactions ul { + list-style: none; +} +#p-cactions li { + display: inline; + border: 1px solid #aaa; + border-bottom: none; + padding: 0 0 .1em 0; + margin: 0 .3em 0 0; + overflow: visible; + background: white; +} +#p-cactions li.selected { + border-color: #fabd23; + padding: 0 0 .2em 0; + font-weight: bold; +} +#p-cactions li a { + background-color: #fbfbfb; + color: #002bb8; + border: none; + padding: 0 .8em .3em; + text-decoration: none; + text-transform: lowercase; + position: relative; + z-index: 0; + margin: 0; +} +#p-cactions li.selected a { + z-index: 3; + background-color: #fff; + padding: 0 1em .2em!important; +} +#p-cactions .new a { + color: #ba0000; +} +#p-cactions li a:hover { + z-index: 3; + text-decoration: none; + background-color: #fff; +} +#p-cactions h5 { + display: none; +} +#p-cactions li.istalk { + margin-right: 0; +} +#p-cactions li.istalk a { + padding-right: .5em; +} +#p-cactions #ca-addsection a { + padding-left: .4em; + padding-right: .4em; +} +/* offsets to distinguish the tab groups */ +li#ca-talk { + margin-right: 1.6em; +} +li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { + margin-left: 1.6em; +} + +/* +** the remaining portlets +*/ +#p-tbx, +#p-lang { + position: relative; + z-index: 3; +} + +/* TODO: #t-iscite is only used by the Cite extension, come up with some + * system which allows extensions to add to this file on the fly + */ +#t-ispermalink, #t-iscite { + color: #999; +} +/* +** footer +*/ +#footer { + background-color: #f6efe0; + border-top: 1px solid #eee4cb; + border-bottom: 1px solid #eee4cb; + margin: .6em 0 1em 0; + padding: .4em 0 1.2em 0; + text-align: center; + font-size: 90%; +} +#footer li { + display: inline; + margin: 0 1.3em; +} +/* hide from incapable browsers */ +head:first-child+body #footer li { white-space: nowrap; } +#f-poweredbyico, #f-copyrightico { + margin: 0 8px; + position: relative; + top: -2px; /* Bump it up just a tad */ +} +#f-poweredbyico { + float: right; + height: 1%; +} +#f-copyrightico { + float: left; + height: 1%; +} + +/* js pref toc */ +#preftoc { + margin: 0; + padding: 0; + width: 100%; + clear: both; +} +#preftoc li { + margin: 1px -2px 1px 2px; + float: left; + padding: 2px 0 3px 0; + background-color: #f0f0f0; + color: #000; + border: 1px solid #fff; + border-right-color: #716f64; + border-bottom: 0; + position: relative; + white-space: nowrap; + list-style-type: none; + list-style-image: none; + z-index: 3; +} +#preftoc li.selected { + font-weight: bold; + background-color: #f9f9f9; + border: 1px solid #aaa; + border-bottom: none; + cursor: default; + top: 1px; + padding-top: 2px; + margin-right: -3px; +} +#preftoc > li.selected { + top: 2px; +} +#preftoc a, +#preftoc a:active { + display: block; + color: #000; + padding: 0 .7em; + position: relative; + text-decoration: none; +} +#preftoc li.selected a { + cursor: default; + text-decoration: none; +} +#prefcontrol { + padding-top: 2em; + clear: both; +} +#preferences { + margin: 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em; + background-color: #F9F9F9; +} +.prefsection { + border: none; + padding: 0; + margin: 0; +} +.prefsection fieldset { + border: 1px solid #aaa; + float: left; + margin-right: 2em; +} +.prefsection legend { + font-weight: bold; +} +.prefsection table, .prefsection legend { + background-color: #F9F9F9; +} +.mainLegend { + display: none; +} +div.prefsectiontip { + font-size: 95%; + margin-top: 0; + background-color: #FFC1C1; + padding: .2em .7em; + clear: both; +} +.btnSavePrefs { + font-weight: bold; + padding-left: .3em; + padding-right: .3em; +} + +.preferences-login { + clear: both; + margin-bottom: 1.5em; +} + +.prefcache { + font-size: 90%; + margin-top: 2em; +} + +div#userloginForm form, +div#userlogin form#userlogin2 { + margin: 0 3em 1em 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em 2em; + background-color: #f9f9f9; + float: left; +} + +div#userloginForm table, +div#userlogin form#userlogin2 table { + background-color: #f9f9f9; +} + +div#userloginForm h2, +div#userlogin form#userlogin2 h2 { + padding-top: 0; +} + +div#userlogin .captcha { + border: 1px solid #bbb; + padding: 1.5em 2em; + width: 400px; + background-color: white; +} + + +#userloginprompt, #languagelinks { + font-size: 85%; +} + +#login-sectiontip { + font-size: 85%; + line-height: 1.2; + padding-top: 2em; +} + +#userlogin .loginText, #userlogin .loginPassword { + width: 12em; +} + +#userloginlink a, #wpLoginattempt, #wpCreateaccount { + font-weight: bold; +} + +/* +** IE/Mac fixes, hope to find a validating way to move this +** to a separate stylesheet. This would work but doesn't validate: +** @import("IEMacFixes.css"); +*/ +/* tabs: border on the a, not the div */ +* > html #p-cactions li { border: none; } +* > html #p-cactions li a { + border: 1px solid #aaa; + border-bottom: none; +} +* > html #p-cactions li.selected a { border-color: #fabd23; } +/* footer icons need a fixed width */ +* > html #f-poweredbyico, +* > html #f-copyrightico { width: 88px; } +* > html #bodyContent, +* > html #bodyContent pre { + overflow-x: auto; + width: 100%; + padding-bottom: 25px; +} + +/* more IE fixes */ +/* float/negative margin brokenness */ +* html #footer {margin-top: 0;} +* html #column-content { + display: inline; + margin-bottom: 0; +} +* html div.editsection { font-size: smaller; } +#pagehistory li.selected { position: relative; } + +/* Mac IE 5.0 fix; floated content turns invisible */ +* > html #column-content { + float: none; +} +* > html #column-one { + position: absolute; + left: 0; + top: 0; +} +* > html #footer { + margin-left: 13.2em; +} +.redirectText { + font-size: 150%; + margin: 5px; +} + +.printfooter { + display: none; +} + +.not-patrolled { + background-color: #ffa; +} +div.patrollink { + font-size: 75%; + text-align: right; +} +span.newpage, span.minor, span.searchmatch, span.bot { + font-weight: bold; +} +span.unpatrolled { + font-weight: bold; + color: red; +} + +span.searchmatch { + color: red; +} +.sharedUploadNotice { + font-style: italic; +} + +span.updatedmarker { + color: black; + background-color: #0f0; +} +span.newpageletter { + font-weight: bold; + color: black; + background-color: yellow; +} +span.minoreditletter { + color: black; + background-color: #c5ffe6; +} + +table.gallery { + border: 1px solid #ccc; + margin: 2px; + padding: 2px; + background-color: white; +} + +table.gallery tr { + vertical-align: top; +} + +table.gallery td { + vertical-align: top; + background-color: #f9f9f9; + border: solid 2px white; +} + +table.gallery td.galleryheader { + text-align: center; + font-weight: bold; +} + +div.gallerybox { + margin: 2px; + width: 150px; +} + +div.gallerybox div.thumb { + text-align: center; + border: 1px solid #ccc; + margin: 2px; +} + +div.gallerytext { + font-size: 94%; + padding: 2px 4px; +} + +span.comment { + font-style: italic; +} + +span.changedby { + font-size: 95%; +} + +.previewnote { + text-indent: 3em; + color: #c00; + border-bottom: 1px solid #aaa; + padding-bottom: 1em; + margin-bottom: 1em; +} + +.previewnote p { + margin: 0; + padding: 0; +} + +.editExternally { + border: 1px solid gray; + background-color: #ffffff; + padding: 3px; + margin-top: 0.5em; + float: left; + font-size: small; + text-align: center; +} +.editExternallyHelp { + font-style: italic; + color: gray; +} + +li span.deleted, span.history-deleted { + text-decoration: line-through; + color: #888; + font-style: italic; +} + +.toggle { + margin-left: 2em; + text-indent: -2em; +} + +/* Classes for EXIF data display */ +table.mw_metadata { + font-size: 0.8em; + margin-left: 0.5em; + margin-bottom: 0.5em; + width: 300px; +} + +table.mw_metadata caption { + font-weight: bold; +} + +table.mw_metadata th { + font-weight: normal; +} + +table.mw_metadata td { + padding: 0.1em; +} + +table.mw_metadata { + border: none; + border-collapse: collapse; +} + +table.mw_metadata td, table.mw_metadata th { + text-align: center; + border: 1px solid #aaaaaa; + padding-left: 0.1em; + padding-right: 0.1em; +} + +table.mw_metadata th { + background-color: #f9f9f9; +} + +table.mw_metadata td { + background-color: #fcfcfc; +} + +table.collapsed tr.collapsable { + display: none; +} + + +/* filetoc */ +ul#filetoc { + text-align: center; + border: 1px solid #aaaaaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; + margin-bottom: 0.5em; + margin-left: 0; + margin-right: 0; +} + +#filetoc li { + display: inline; + list-style-type: none; + padding-right: 2em; +} + +/* @bug 1714 */ +input#wpSave, input#wpDiff { + margin-right: 0.33em; +} + +#editform .editOptions { + display: inline; +} + +#wpSave { + font-weight: bold; +} + +/* Classes for article validation */ + +table.revisionform_default { + border: 1px solid #000000; +} + +table.revisionform_focus { + border: 1px solid #000000; + background-color:#00BBFF; +} + +tr.revision_tr_default { + background-color:#EEEEEE; +} + +tr.revision_tr_first { + background-color:#DDDDDD; +} + +p.revision_saved { + color: green; + font-weight:bold; +} + +#mw_trackbacks { + border: solid 1px #bbbbff; + background-color: #eeeeff; + padding: 0.2em; +} + + +/* Allmessages table */ + +#allmessagestable th { + background-color: #b2b2ff; +} + +#allmessagestable tr.orig { + background-color: #ffe2e2; +} + +#allmessagestable tr.new { + background-color: #e2ffe2; +} + +#allmessagestable tr.def { + background-color: #f0f0ff; +} + + +/* noarticletext */ +div.noarticletext { + border: 1px solid #ccc; + background: #fff; + padding: .2em 1em; + color: #000; +} + +div#searchTargetContainer { + left: 10px; + top: 10px; + width: 90%; + background: white; +} + +div#searchTarget { + padding: 3px; + margin: 5px; + background: #F0F0F0; + border: solid 1px blue; +} + +div#searchTarget ul li { + list-style: none; +} + +div#searchTarget ul li:before { + color: orange; + content: "\00BB \0020"; +} + diff --git a/skins/archlinux/news_icon.png b/skins/archlinux/news_icon.png new file mode 100644 index 00000000..dd1541d1 Binary files /dev/null and b/skins/archlinux/news_icon.png differ diff --git a/skins/archlinux/required.gif b/skins/archlinux/required.gif new file mode 100644 index 00000000..bd719769 Binary files /dev/null and b/skins/archlinux/required.gif differ diff --git a/skins/archlinux/rtl.css b/skins/archlinux/rtl.css new file mode 100644 index 00000000..91e2fb37 --- /dev/null +++ b/skins/archlinux/rtl.css @@ -0,0 +1,212 @@ +/* +Right-to-left fixes for MonoBook. +Places sidebar on right, tweaks various alignment issues. + +Works mostly ok nicely on Safari 1.2.1; fine in Mozilla. + +Safari bugs (1.2.1): +* Tabs are still appearing in left-to-right order. (Try after localizing) + +Opera bugs (7.23 linux): +* Some bits of ltr text (sidebar box titles) have forward and backward versions overlapping each other + +IE/mac bugs: +* The thing barfs on Hebrew and Arabic anyway, so no point testing. + +Missing features due to lack of support: +* external link icons + +To test: +* Opera6 +* IE 5.0 +* etc + +*/ +body { + direction: rtl; +/* unicode-bidi: bidi-override;*/ + unicode-bidi: embed; +} +#column-content { + margin: 0 -12.2em 0 0; + float: left; +} +#column-content #content{ + margin-left: 0; + margin-right: 12.2em; + border-right: 1px solid #aaaaaa; + border-left: none; +} +html>body .portlet { + float: right; + clear: right; +} +/* recover IEMac (might be fine with the float, but usually it's close to IE */ +*>body .portlet { + float: none; + clear: none; +} +.pBody { + padding-right: 0.8em; + padding-left: 0.5em; +} + +/* Fix alignment */ +.documentByLine, +.portletDetails, +.portletMore, +#p-personal { + text-align: left; +} + +div div.thumbcaption { + text-align: right; +} + +div.magnify, +#div.townBox, +#p-logo { + left: auto; + right: 0; +} +#p-personal { + left: auto; + right: 0; +} + +#p-cactions { + left: auto; + right: 11.5em; + padding-left: 0; + padding-right: 1em; +} +#p-cactions li { + margin-left: 0.3em; + margin-right: 0; + float: right; +} +* html #p-cactions li a { + display: block; + padding-bottom: 0; +} +* html #p-cactions li a:hover { + padding-bottom: 0.2em; +} +/* offsets to distinguish the tab groups */ +li#ca-talk { + margin-right: auto; + margin-left: 1.6em; +} +li#ca-watch,li#ca-unwatch { + margin-right: 1.6em !important; +} + +/* Fix margins for non-css2 browsers */ +/* top right bottom left */ + +ul { + margin-left: 0; + margin-right: 1.5em; +} +ol { + margin-left: 0; + margin-right: 2.4em; +} +dd { + margin-left: 0; + margin-right: 1.6em; +} +#contentSub { + margin-right: 1em; + margin-left: 0; +} +.tocindent { + margin-left: 0; + margin-right: 2em; +} +div.tright, div.floatright, table.floatright { + clear: none; +} +div.tleft, div.floatleft, table.floatleft { + clear: left; +} +div.townBox { + margin-left: 0; + margin-right: 1em; +} +div.townBox dl dd { + margin-left: 0; + margin-right: 1.1em; +} +#p-personal li { + margin-left: 0; + margin-right: 1em; +} + +li#ca-talk, +li#ca-watch { + margin-right: auto; + margin-left: 1.6em; +} + +#p-personal li { + float: left; +} +/* Fix link icons */ +.external { + padding: 0 !important; + background: none !important; +} +#footer { + clear: both; +} +* html #footer { + margin-left: 0; + margin-right: 13.6em; + border-left: 0; + border-right: 1px solid #fabd23; +} +* html #column-content { + float: none; + margin-left: 0; + margin-right: 0; +} +* html #column-content #content { + margin-left: 0; + margin-top: 3em; +} +* html #column-one { right: 0; } + +/* js pref toc */ + +#preftoc { + margin-right: 1em; +} + +.errorbox, .successbox, #preftoc li, .prefsection fieldset { + float: right; +} + +.prefsection { + padding-right: 2em; +} + +/* workaround for moz bug, displayed bullets on left side */ + +#toc ul { + text-align: right; +} + +#toc ul ul { + margin: 0 2em 0 0; +} + +input#wpSave, input#wpDiff { + margin-right: 0; + margin-left: .33em; +} + +#userlogin { + float: right; + margin: 0 0 1em 3em; +} diff --git a/skins/archlinux/tab.png b/skins/archlinux/tab.png new file mode 100644 index 00000000..56d2e617 Binary files /dev/null and b/skins/archlinux/tab.png differ diff --git a/skins/archlinux/title.png b/skins/archlinux/title.png new file mode 100644 index 00000000..2adaee1b Binary files /dev/null and b/skins/archlinux/title.png differ diff --git a/skins/archlinux/title_back.png b/skins/archlinux/title_back.png new file mode 100644 index 00000000..95c98d7a Binary files /dev/null and b/skins/archlinux/title_back.png differ diff --git a/skins/archlinux/user.gif b/skins/archlinux/user.gif new file mode 100644 index 00000000..bc934396 Binary files /dev/null and b/skins/archlinux/user.gif differ diff --git a/skins/archlinux/wiki-indexed.png b/skins/archlinux/wiki-indexed.png new file mode 100644 index 00000000..189a2ae3 Binary files /dev/null and b/skins/archlinux/wiki-indexed.png differ diff --git a/skins/archlinux/wiki.png b/skins/archlinux/wiki.png new file mode 100644 index 00000000..69fce988 Binary files /dev/null and b/skins/archlinux/wiki.png differ diff --git a/skins/chick/IE50Fixes.css b/skins/chick/IE50Fixes.css new file mode 100644 index 00000000..dd9eda3e --- /dev/null +++ b/skins/chick/IE50Fixes.css @@ -0,0 +1,67 @@ +/* +** IE5.0 Fix Stylesheet +*/ + +#column-content { + margin: 0 !important; + float: none; +} +#column-content #content { + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + overflow: visible; + top: 0; + left: 0; + z-index: 3; +} +#footer { + margin: 0 0 0 13.6em; +} + +/* IE 5 & 5.5 interpret keyword sizes one off */ +body { font-size: xx-small; } +/* +** the edit tabs +*/ +#p-cactions li { + float: left; + padding-top: 0; + padding-bottom: 0 !important; + height: 0.9em; +} +#p-cactions li a { + display: block; + padding-bottom: 0.045em; +} +#p-cactions li.selected a { + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +/* 5.0 doesn't like the background icon for external links and user */ +.link-external, +.external { + background: none; + padding: 0; +} +#p-personal ul { float: right } +#p-personal li { float: left } +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login, +li#pt-logout { + background: none; + padding-left: none; +} +.visualClear { + width:100%; + height: 0px; + padding:0; + margin:0; +} +.firstHeading { margin-bottom: 0.3em; } +/*div{ border:1px solid Red !important;}*/ diff --git a/skins/chick/IE55Fixes.css b/skins/chick/IE55Fixes.css new file mode 100644 index 00000000..2f785612 --- /dev/null +++ b/skins/chick/IE55Fixes.css @@ -0,0 +1,81 @@ +/* IE5.5/win- only fixes */ + +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + position: relative; + z-index: 5; + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; + width: 100%; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/*#bodyContent div, +#bodyContent pre { overflow: auto; }*/ + +#p-personal { padding-bottom: 0.1em; } + +body { font-size: xx-small; } + +#p-cactions { + width: 76% !important; + z-index: 3 !important; + float: none; +} +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +.portlet { + overflow:hidden; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +.visualClear { + width:90%; + height: 1px; + padding:0; + margin:0; +} + +#editform { + width: 100%; +} diff --git a/skins/chick/IE60Fixes.css b/skins/chick/IE60Fixes.css new file mode 100644 index 00000000..feec15f1 --- /dev/null +++ b/skins/chick/IE60Fixes.css @@ -0,0 +1,79 @@ +/* 6.0 - only fixes */ +/* content area */ +/* workaround for various ie float bugs */ +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/* the tabs */ + +#p-cactions { + z-index: 3; +} + +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#portal-personaltools { + padding-bottom: 0.1em; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} + +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +div.visualClear { + width:100%; + line-height: 0; +} +textarea { + width: 96%; +} + +div.editsection, +#catlinks, +div.tright, +div.tleft { + position: relative; +} +/*{ border:1px solid Red !important;}*/ diff --git a/skins/chick/main.css b/skins/chick/main.css new file mode 100644 index 00000000..5d3d15bd --- /dev/null +++ b/skins/chick/main.css @@ -0,0 +1,481 @@ +/* +** MediaWiki 'chick' style sheet for PDAs or other small-screen devices. +** Copyright Timwi +** License: GPL (http://www.gnu.org/copyleft/gpl.html) +** +** Loosely based on Monobook by Gabriel Wicke +*/ + +body { + font-family: sans-serif; + color: Black; + margin: 0; + padding: 0.3em; +} + +a { color: #002bb8; } +a:visited { color: #5a3696; } +a:active { color: #ffa500; } +a.stub { color: #772233; } +a.new, +#p-personal a.new { color:#ba0000; } +a.new:visited, +#p-personal a.new:visited { color:#a55858; } + +img { + border: none; + vertical-align: middle; +} +p { + margin: 0.4em 0em 0.5em 0em; + line-height: 1.5em; +} + +p img { margin: 0; } + +hr { + height: 1px; + color: #aaaaaa; + background-color: #aaaaaa; + border: 0; + margin: 0.2em 0 0.2em 0; +} + +h1, h2, h3, h4, h5, h6 { + color: Black; + background: none; + font-weight: normal; + margin: 0; + padding-top: 0.5em; + padding-bottom: 0.17em; + border-bottom: 1px solid #aaaaaa; +} +h1 { font-size: 188%; } +h2 { font-size: 150%; } +h3, h4, h5, h6 { + border-bottom: none; + font-weight: bold; +} +h3 { font-size: 132%; } +h4 { font-size: 116%; } +h5 { font-size: 100%; } +h6 { font-size: 80%; } + +ul { + line-height: 1.5em; + margin: 0.3em 0 0 1.5em; + padding:0; +} +ol { + line-height: 1.5em; + margin: 0.3em 0 0 3.2em; + padding:0; + list-style-image: none; +} +li { margin-bottom: 0.1em; } +dt { + font-weight: bold; + margin-bottom: 0.1em; +} +dl{ + margin-top: 0.2em; + margin-bottom: 0.5em; +} +dd { + line-height: 1.5em; + margin-left: 2em; + margin-bottom: 0.1em; +} + +fieldset { + border: 1px solid #2f6fab; + margin: 1em 0em 1em 0em; + padding: 0em 1em 1em 1em; + line-height: 1.5em; +} +legend { + background: White; + padding: 0.5em; + font-size: 95%; +} +form { + border: none; + margin: 0; +} + +textarea { + border: 1px solid #2f6fab; + color: Black; + background-color: white; + width: 100%; + padding: 0.1em; + overflow: auto; +} +/* hide this from ie/mac and konq2.2 */ +@media All { + head:first-child+body input { + visibility: visible; + border: 1px solid #2f6fab; + color: Black; + background-color: white; + vertical-align: middle; + padding: 0.2em; + } +} +input.historysubmit { + padding: 0 0.3em 0.3em 0.3em !important; + font-size: 94%; + cursor: pointer; + height: 1.7em !important; + margin-left: 1.6em; +} +input[type="radio"], +input[type="checkbox"] { border:none; } +select { + border: 1px solid #2f6fab; + color: Black; + vertical-align: top; +} +abbr, acronym, .explain { + border-bottom: 1px dotted Black; + color: Black; + background: none; + cursor: help; +} +q { + font-family: Times, "Times New Roman", serif; + font-style: italic; +} +code { background-color: #f9f9f9; } +pre { + padding: 1em; + border: 1px dashed #2f6fab; + color: Black; + background-color: #f9f9f9; + line-height: 1.1em; +} + +/* +** the main content area +*/ + +span.subpages { display: block; } + +/* Some space under the headers in the content area */ +#bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; } +#bodyContent h3, +#bodyContent h4, +#bodyContent h5 { + margin-bottom: 0.3em; +} +.firstHeading { margin-bottom:0.1em; } + +/* user notification thing */ +.usermessage { + background-color: #ffce7b; + border: 1px solid #ffa500; + color: Black; + font-weight: bold; + margin: 0.1em 0 0 0; + padding: 2px 5px; + vertical-align: middle; +} +#siteNotice { + text-align: center; + font-size: 95%; + padding: 0 0.9em 0 0.9em; +} +#siteNotice p { margin: 0; padding: 0; } +.error { + color: red; + font-size: larger; +} +#catlinks { + border:1px solid #aaaaaa; + background-color:#f9f9f9; + padding: 2px 5px; + margin: 0.1em 0 0 0; + clear: both; +} +p.catlinks { margin: 0; padding: 0; } + + +/* currently unused, intended to be used by a metadata box +in the bottom-right corner of the content area */ +.documentDescription { + /* The summary text describing the document */ + font-weight: bold; + display: block; + margin: 1em 0em; + line-height: 1.5em; +} +.documentByLine { + text-align: right; + font-size: 90%; + clear: both; + font-weight: normal; + color: #76797c; +} + +/* emulate center */ +.center { + width: 100%; + text-align: center; +} +*.center * { + margin-left: auto; + margin-right: auto; +} +/* small for tables and similar */ +.small, .small * { font-size: 94%; } +table.small { font-size: 100% } + +/* +** content styles +*/ + +#toc { + /*border:1px solid #2f6fab;*/ + border:1px solid #aaaaaa; + background-color:#f9f9f9; + padding:5px; + font-size: 95%; +} +#toc ul { margin-left: 2em; } +#toc .toctoggle { font-size: 94%; } +#toc .editsection { + margin-top: 0.7em; + font-size: 94%; +} + +/* images */ +div.floatright, table.floatright { + clear: right; + float: right; + margin: 0; + position: relative; + border: 0.5em solid White; + border-width: 0.5em 0 0.8em 1.4em; +} +div.floatright p { font-style: italic; } +div.floatleft, table.floatleft { + float: left; + margin: 0.3em 0.5em 0.5em 0; + position: relative; + border: 0.5em solid White; + border-width: 0.5em 1.4em 0.8em 0; +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: 0.5em; + border-style: solid; border-color: White; + width: auto; +} +div.thumb div { + border:1px solid #cccccc; + padding: 3px !important; + background-color:#f9f9f9; + font-size: 94%; + text-align: center; + overflow: hidden; +} +div.thumb div a img { + border:1px solid #cccccc; +} +div.thumb div div.thumbcaption { + border: none; + text-align: left; + line-height: 1.4em; + padding: 0.3em 0 0.1em 0; +} +div.magnify { + float: right; + border: none !important; + background: none !important; +} +div.magnify a, div.magnify img { + display: block; + border: none !important; + background: none !important; +} +div.tright { + clear: right; + float: right; + border-width: 0.5em 0 0.8em 1.4em; +} +div.tleft { + float: left; + margin-right:0.5em; + border-width: 0.5em 1.4em 0.8em 0; +} + +.hiddenStructure { + display: none; +} +img.tex { vertical-align: middle; } +span.texhtml { font-family: serif; } + +/* +** classes for special content elements like town boxes +** intended to be referenced directly from the wiki src +*/ + +/* +** User styles +*/ +/* table standards */ +table.rimage { + float:right; + position:relative; + margin-left:1em; + margin-bottom:1em; + text-align:center; +} +.toccolours { + border:1px solid #aaaaaa; + background-color:#f9f9f9; + padding:5px; + font-size: 95%; +} +div.townBox { + position:relative; + float:right; + background:White; + margin-left:1em; + border: 1px solid gray; + padding:0.3em; + width: 200px; + overflow: hidden; + clear: right; +} +div.townBox dl { + padding: 0; + margin: 0 0 0.3em 0; + font-size: 96%; +} +div.townBox dl dt { + background: none; + margin: 0.4em 0 0 0; +} +div.townBox dl dd { + margin: 0.1em 0 0 1.1em; + background-color: #f3f3f3; +} + +/* +** edit views etc +*/ +.special li { + line-height: 1.4em; + margin: 0; + padding: 0; +} + +/* Page history styling */ +/* the auto-generated edit comments */ +.autocomment { color: gray; } +#pagehistory span.user { + margin-left: 1.4em; + margin-right: 0.4em; +} +#pagehistory span.minor { font-weight: bold; } +#pagehistory li { border: 1px solid White; } +#pagehistory li.selected { + background-color:#f9f9f9; + border:1px dashed #aaaaaa; +} +/* +** Diff rendering +*/ +table.diff { background:white; } +td.diff-otitle { background:#ffffff; } +td.diff-ntitle { background:#ffffff; } +td.diff-addedline { + background:#ccffcc; + font-size: smaller; +} +td.diff-deletedline { + background:#ffffaa; + font-size: smaller; +} +td.diff-context { + background:#eeeeee; + font-size: smaller; +} +span.diffchange { color: red; } + +a.external { color: #3366bb; } + +div#footer { text-align: center; } + +ul#f-list li { list-style: none; text-align: center; } + +div.portlet { margin: 0.5em 0; } + +.redirectText { + font-size:150%; + margin:5px; +} + +ul.special li.not-patrolled, ol.special li.not-patrolled { + background-color: #ffa; +} +div.patrollink { + font-size: 75%; + text-align: right; +} +span.newpage, span.minor { + font-weight: bold; +} + +span.updatedmarker { + color:black; + background-color:#00FF00; +} +span.newpageletter { + font-weight:bold; + color:black; + background-color:yellow; +} +span.minoreditletter { + color:black; + background-color:#C5FFE6; +} + +table.gallery { + border: 1px solid #cccccc; + margin: 2px; + padding: 2px; + background-color:#ffffff; +} + +table.gallery tr { + vertical-align:top; +} + +table.gallery td { + vertical-align:top; + background-color:#f9f9f9; + border: solid 2px white; +} + +div.gallerybox { + margin: 2px; + width: 150px; +} + +div.gallerybox div.thumb { + text-align: center; + border: 1px solid #cccccc; + margin: 2px; +} + +div.gallerytext { + font-size: 94%; + padding: 2px 4px; +} + +#jump-to-nav { + display: none; +} \ No newline at end of file diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js new file mode 100644 index 00000000..9c25adf0 --- /dev/null +++ b/skins/common/IEFixes.js @@ -0,0 +1,127 @@ +// IE fixes javascript + +var isMSIE55 = (window.showModalDialog && window.clipboardData && window.createPopup); +var doneIETransform; +var doneIEAlphaFix; + +if (document.attachEvent) + document.attachEvent('onreadystatechange', hookit); + +function hookit() { + if (!doneIETransform && document.getElementById && document.getElementById('bodyContent')) { + doneIETransform = true; + relativeforfloats(); + fixalpha(); + } +} + +// png alpha transparency fixes +function fixalpha() { + // bg + if (isMSIE55 && !doneIEAlphaFix) + { + var plogo = document.getElementById('p-logo'); + if (!plogo) return; + + var logoa = plogo.getElementsByTagName('a')[0]; + if (!logoa) return; + + var bg = logoa.currentStyle.backgroundImage; + var imageUrl = bg.substring(5, bg.length-2); + + doneIEAlphaFix = true; + + if (imageUrl.substr(imageUrl.length-4).toLowerCase() == '.png') { + var logospan = logoa.appendChild(document.createElement('span')); + + logoa.style.backgroundImage = 'none'; + logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')'; + logospan.style.height = '100%'; + logospan.style.position = 'absolute'; + logospan.style.width = logoa.currentStyle.width; + logospan.style.cursor = 'hand'; + // Center image with hack for IE5.5 + if (document.documentElement.dir == "rtl") + { + logospan.style.right = '50%'; + logospan.style.setExpression('marginRight', '"-" + (this.offsetWidth / 2) + "px"'); + } + else + { + logospan.style.left = '50%'; + logospan.style.setExpression('marginLeft', '"-" + (this.offsetWidth / 2) + "px"'); + } + logospan.style.top = '50%'; + logospan.style.setExpression('marginTop', '"-" + (this.offsetHeight / 2) + "px"'); + + var linkFix = logoa.appendChild(logoa.cloneNode()); + linkFix.style.position = 'absolute'; + linkFix.style.height = '100%'; + linkFix.style.width = '100%'; + } + } +} + +// fix ie6 disappering float bug +function relativeforfloats() { + var bc = document.getElementById('bodyContent'); + if (bc) { + var tables = bc.getElementsByTagName('table'); + var divs = bc.getElementsByTagName('div'); + } + setrelative(tables); + setrelative(divs); +} +function setrelative (nodes) { + var i = 0; + while (i < nodes.length) { + if(((nodes[i].style.float && nodes[i].style.float != ('none') || + (nodes[i].align && nodes[i].align != ('none'))) && + (!nodes[i].style.position || nodes[i].style.position != 'relative'))) + { + nodes[i].style.position = 'relative'; + } + i++; + } +} + + +// Expand links for printing + +String.prototype.hasClass = function(classWanted) +{ + var classArr = this.split(/\s/); + for (var i=0; i text isn't shown +* Opera 7.5 uses the style sheet instead of its native RSS mode. +* IE/Mac 5.2: none of the :before content works; doesn't get the charset right and displays garbage for non-ASCII. +* IE/Win 6.0: No background color, borders, font size, font weight, or :before content. + +*/ + +/* RSS: */ rss, channel, title, link, description, language, generator, lastBuildDate, item, pubDate, author, comments, creator, +/* Atom: */ feed, id, modified, tagline, entry, issued, created, updated, summary, comment { + display: block; +} + +rss, feed { + background: white; + color: black; + margin: 1em; + font-family: "Verdana", "Tahoma", "Arial", "Helvetica", sans-serif; + line-height: 1.5em; + font-size: 76%; +} + +rss:before { + content: "This RSS feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser."; +} + +feed:before { + content: "This Atom feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser."; +} +rss:before, feed:before { + color: red; + text-align: center; + line-height: 2em; +} + +channel>title, +item>title, +feed>title, +entry>title { + font-weight: bold; + border-bottom: solid 1px #aaa; + margin-left: -0.5em; +} +channel>title, feed>title { + font-size: larger; +} +item>title, entry>title { + font-size: large; +} +item, entry { + margin-top: 1em; + margin-left: 2em; +} + +item>description, entry>summary { + white-space: pre; + overflow: auto; + background: #f8f8ff; +} + +pubDate:before { content: "Date: " } +link:before { content: "Link: " } +author:before, creator:before { content: "Author: " } +description:before { content: "Description: " } +id:before { content: "Id: " } + +generator:before { content: "Generator: " } +language:before { content: "Language: " } +lastBuildDate:before { content: "Updated: " } +comments:before { content: "Comments page: " } + +tagline:before { content: "Tagline: " } +issued:before { content: "Issued: " } +created:before { content: "Created: " } +modified:before { content: "Modified: " } +updated:before { content: "Updated: " } +summary:before { content: "Summary: " } +comment:before { content: "Comment: " } + +pubDate:before, link:before, author:before, description:before, +language:before, generator:before, lastBuildDate:before, comments:before, +tagline:before, issued:before, created:before, modified:before, +summary:before, comment:before, creator:before, id:before, updated:before { + color: #224; + font-weight: bold; +} + +feed link:after { + content: attr(href); +} diff --git a/skins/common/images/Arr_.png b/skins/common/images/Arr_.png new file mode 100644 index 00000000..83fafc74 Binary files /dev/null and b/skins/common/images/Arr_.png differ diff --git a/skins/common/images/Arr_d.png b/skins/common/images/Arr_d.png new file mode 100644 index 00000000..421dd101 Binary files /dev/null and b/skins/common/images/Arr_d.png differ diff --git a/skins/common/images/Arr_l.png b/skins/common/images/Arr_l.png new file mode 100644 index 00000000..9db66232 Binary files /dev/null and b/skins/common/images/Arr_l.png differ diff --git a/skins/common/images/Arr_r.png b/skins/common/images/Arr_r.png new file mode 100644 index 00000000..d1b161b0 Binary files /dev/null and b/skins/common/images/Arr_r.png differ diff --git a/skins/common/images/Arr_r.xcf b/skins/common/images/Arr_r.xcf new file mode 100644 index 00000000..83b7b2a8 Binary files /dev/null and b/skins/common/images/Arr_r.xcf differ diff --git a/skins/common/images/Zoom_sans.gif b/skins/common/images/Zoom_sans.gif new file mode 100644 index 00000000..6ba0adca Binary files /dev/null and b/skins/common/images/Zoom_sans.gif differ diff --git a/skins/common/images/bullet.gif b/skins/common/images/bullet.gif new file mode 100644 index 00000000..b43de48a Binary files /dev/null and b/skins/common/images/bullet.gif differ diff --git a/skins/common/images/button_bold.png b/skins/common/images/button_bold.png new file mode 100644 index 00000000..5e52deed Binary files /dev/null and b/skins/common/images/button_bold.png differ diff --git a/skins/common/images/button_extlink.png b/skins/common/images/button_extlink.png new file mode 100644 index 00000000..12ec5f2e Binary files /dev/null and b/skins/common/images/button_extlink.png differ diff --git a/skins/common/images/button_headline.png b/skins/common/images/button_headline.png new file mode 100644 index 00000000..aa0ca540 Binary files /dev/null and b/skins/common/images/button_headline.png differ diff --git a/skins/common/images/button_hr.png b/skins/common/images/button_hr.png new file mode 100644 index 00000000..19cfc480 Binary files /dev/null and b/skins/common/images/button_hr.png differ diff --git a/skins/common/images/button_image.png b/skins/common/images/button_image.png new file mode 100644 index 00000000..6c3c3308 Binary files /dev/null and b/skins/common/images/button_image.png differ diff --git a/skins/common/images/button_italic.png b/skins/common/images/button_italic.png new file mode 100644 index 00000000..96b1fb9f Binary files /dev/null and b/skins/common/images/button_italic.png differ diff --git a/skins/common/images/button_link.png b/skins/common/images/button_link.png new file mode 100644 index 00000000..e9507b97 Binary files /dev/null and b/skins/common/images/button_link.png differ diff --git a/skins/common/images/button_math.png b/skins/common/images/button_math.png new file mode 100644 index 00000000..e91fb613 Binary files /dev/null and b/skins/common/images/button_math.png differ diff --git a/skins/common/images/button_media.png b/skins/common/images/button_media.png new file mode 100644 index 00000000..02070790 Binary files /dev/null and b/skins/common/images/button_media.png differ diff --git a/skins/common/images/button_nowiki.png b/skins/common/images/button_nowiki.png new file mode 100644 index 00000000..7b2d5392 Binary files /dev/null and b/skins/common/images/button_nowiki.png differ diff --git a/skins/common/images/button_sig.png b/skins/common/images/button_sig.png new file mode 100644 index 00000000..ef3a46d2 Binary files /dev/null and b/skins/common/images/button_sig.png differ diff --git a/skins/common/images/button_template.png b/skins/common/images/button_template.png new file mode 100644 index 00000000..8e9cc267 Binary files /dev/null and b/skins/common/images/button_template.png differ diff --git a/skins/common/images/fileicon.xcf b/skins/common/images/fileicon.xcf new file mode 100644 index 00000000..85a0a610 Binary files /dev/null and b/skins/common/images/fileicon.xcf differ diff --git a/skins/common/images/gnu-fdl.png b/skins/common/images/gnu-fdl.png new file mode 100644 index 00000000..1371aba8 Binary files /dev/null and b/skins/common/images/gnu-fdl.png differ diff --git a/skins/common/images/gnu-fdl.xcf b/skins/common/images/gnu-fdl.xcf new file mode 100644 index 00000000..364440dd Binary files /dev/null and b/skins/common/images/gnu-fdl.xcf differ diff --git a/skins/common/images/icons/COPYING b/skins/common/images/icons/COPYING new file mode 100644 index 00000000..136530a9 --- /dev/null +++ b/skins/common/images/icons/COPYING @@ -0,0 +1,43 @@ +The icons used here are derived from the crystalsvg icons in the the +pics/crystalsvg/ directory of kdelibs-3.4.0 they were modified on 2005-05-15 +by Ævar Arnfjörð Bjarmason for use in MediaWiki. + +What follows is the contents of the LICENSE.crystalsvg file found in the pics/ +subdirectory of kdelibs-3.4.0: + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +This copyright and license notice covers all CrystalSVG images. +Note the license notice contains an add-on. +******************************************************************************** +KDE Crystal theme icons. +Copyright (C) 2002 and following years KDE Artists +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation, +version 2.1 of the License. +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + **** NOTE THIS ADD-ON **** +The GNU Lesser General Public License or LGPL is written for software libraries +in the first place. We expressly want the LGPL to be valid for this artwork +library too. +KDE Crystal theme icons is a special kind of software library, it is an +artwork library, it's elements can be used in a Graphical User Interface, or +GUI. +Source code, for this library means: + - for vectors svg; + - for pixels, if applicable, the multi-layered formats xcf or psd, or +otherwise png. +The LGPL in some sections obliges you to make the files carry +notices. With images this is in some cases impossible or hardly useful. +With this library a notice is placed at a prominent place in the directory +containing the elements. You may follow this practice. +The exception in section 6 of the GNU Lesser General Public License covers +the use of elements of this art library in a GUI. +kde-artists [at] kde.org +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/skins/common/images/icons/fileicon-c.png b/skins/common/images/icons/fileicon-c.png new file mode 100644 index 00000000..6da6916e Binary files /dev/null and b/skins/common/images/icons/fileicon-c.png differ diff --git a/skins/common/images/icons/fileicon-cpp.png b/skins/common/images/icons/fileicon-cpp.png new file mode 100644 index 00000000..ba54e77f Binary files /dev/null and b/skins/common/images/icons/fileicon-cpp.png differ diff --git a/skins/common/images/icons/fileicon-deb.png b/skins/common/images/icons/fileicon-deb.png new file mode 100644 index 00000000..ac1e2cf9 Binary files /dev/null and b/skins/common/images/icons/fileicon-deb.png differ diff --git a/skins/common/images/icons/fileicon-djvu.png b/skins/common/images/icons/fileicon-djvu.png new file mode 100644 index 00000000..2e1e2c9b Binary files /dev/null and b/skins/common/images/icons/fileicon-djvu.png differ diff --git a/skins/common/images/icons/fileicon-djvu.xcf b/skins/common/images/icons/fileicon-djvu.xcf new file mode 100644 index 00000000..8043dcdb Binary files /dev/null and b/skins/common/images/icons/fileicon-djvu.xcf differ diff --git a/skins/common/images/icons/fileicon-dvi.png b/skins/common/images/icons/fileicon-dvi.png new file mode 100644 index 00000000..6c7aa1a1 Binary files /dev/null and b/skins/common/images/icons/fileicon-dvi.png differ diff --git a/skins/common/images/icons/fileicon-exe.png b/skins/common/images/icons/fileicon-exe.png new file mode 100644 index 00000000..6ccf1821 Binary files /dev/null and b/skins/common/images/icons/fileicon-exe.png differ diff --git a/skins/common/images/icons/fileicon-h.png b/skins/common/images/icons/fileicon-h.png new file mode 100644 index 00000000..d091afff Binary files /dev/null and b/skins/common/images/icons/fileicon-h.png differ diff --git a/skins/common/images/icons/fileicon-html.png b/skins/common/images/icons/fileicon-html.png new file mode 100644 index 00000000..7c479525 Binary files /dev/null and b/skins/common/images/icons/fileicon-html.png differ diff --git a/skins/common/images/icons/fileicon-iso.png b/skins/common/images/icons/fileicon-iso.png new file mode 100644 index 00000000..b4192e9e Binary files /dev/null and b/skins/common/images/icons/fileicon-iso.png differ diff --git a/skins/common/images/icons/fileicon-java.png b/skins/common/images/icons/fileicon-java.png new file mode 100644 index 00000000..757c6aec Binary files /dev/null and b/skins/common/images/icons/fileicon-java.png differ diff --git a/skins/common/images/icons/fileicon-mid.png b/skins/common/images/icons/fileicon-mid.png new file mode 100644 index 00000000..aa826070 Binary files /dev/null and b/skins/common/images/icons/fileicon-mid.png differ diff --git a/skins/common/images/icons/fileicon-mov.png b/skins/common/images/icons/fileicon-mov.png new file mode 100644 index 00000000..2c0da0d8 Binary files /dev/null and b/skins/common/images/icons/fileicon-mov.png differ diff --git a/skins/common/images/icons/fileicon-o.png b/skins/common/images/icons/fileicon-o.png new file mode 100644 index 00000000..bf051cb8 Binary files /dev/null and b/skins/common/images/icons/fileicon-o.png differ diff --git a/skins/common/images/icons/fileicon-ogg.png b/skins/common/images/icons/fileicon-ogg.png new file mode 100644 index 00000000..b8ba7714 Binary files /dev/null and b/skins/common/images/icons/fileicon-ogg.png differ diff --git a/skins/common/images/icons/fileicon-ogg.xcf b/skins/common/images/icons/fileicon-ogg.xcf new file mode 100644 index 00000000..a91024bf Binary files /dev/null and b/skins/common/images/icons/fileicon-ogg.xcf differ diff --git a/skins/common/images/icons/fileicon-pdf.png b/skins/common/images/icons/fileicon-pdf.png new file mode 100644 index 00000000..ee39b6c3 Binary files /dev/null and b/skins/common/images/icons/fileicon-pdf.png differ diff --git a/skins/common/images/icons/fileicon-ps.png b/skins/common/images/icons/fileicon-ps.png new file mode 100644 index 00000000..f1f504d7 Binary files /dev/null and b/skins/common/images/icons/fileicon-ps.png differ diff --git a/skins/common/images/icons/fileicon-rm.png b/skins/common/images/icons/fileicon-rm.png new file mode 100644 index 00000000..5ba04e5a Binary files /dev/null and b/skins/common/images/icons/fileicon-rm.png differ diff --git a/skins/common/images/icons/fileicon-rpm.png b/skins/common/images/icons/fileicon-rpm.png new file mode 100644 index 00000000..0f1c3b87 Binary files /dev/null and b/skins/common/images/icons/fileicon-rpm.png differ diff --git a/skins/common/images/icons/fileicon-svg.png b/skins/common/images/icons/fileicon-svg.png new file mode 100644 index 00000000..8dc6d30f Binary files /dev/null and b/skins/common/images/icons/fileicon-svg.png differ diff --git a/skins/common/images/icons/fileicon-tar.png b/skins/common/images/icons/fileicon-tar.png new file mode 100644 index 00000000..a4b15d7f Binary files /dev/null and b/skins/common/images/icons/fileicon-tar.png differ diff --git a/skins/common/images/icons/fileicon-tex.png b/skins/common/images/icons/fileicon-tex.png new file mode 100644 index 00000000..ee8c0226 Binary files /dev/null and b/skins/common/images/icons/fileicon-tex.png differ diff --git a/skins/common/images/icons/fileicon-ttf.png b/skins/common/images/icons/fileicon-ttf.png new file mode 100644 index 00000000..1b53066e Binary files /dev/null and b/skins/common/images/icons/fileicon-ttf.png differ diff --git a/skins/common/images/icons/fileicon-txt.png b/skins/common/images/icons/fileicon-txt.png new file mode 100644 index 00000000..76e98909 Binary files /dev/null and b/skins/common/images/icons/fileicon-txt.png differ diff --git a/skins/common/images/icons/fileicon.png b/skins/common/images/icons/fileicon.png new file mode 100644 index 00000000..5675170b Binary files /dev/null and b/skins/common/images/icons/fileicon.png differ diff --git a/skins/common/images/link_icon.gif b/skins/common/images/link_icon.gif new file mode 100644 index 00000000..815ccb1b Binary files /dev/null and b/skins/common/images/link_icon.gif differ diff --git a/skins/common/images/magnify-clip.png b/skins/common/images/magnify-clip.png new file mode 100644 index 00000000..50abcb68 Binary files /dev/null and b/skins/common/images/magnify-clip.png differ diff --git a/skins/common/images/mediawiki-small.xcf b/skins/common/images/mediawiki-small.xcf new file mode 100644 index 00000000..75355171 Binary files /dev/null and b/skins/common/images/mediawiki-small.xcf differ diff --git a/skins/common/images/mediawiki.png b/skins/common/images/mediawiki.png new file mode 100644 index 00000000..69fce988 Binary files /dev/null and b/skins/common/images/mediawiki.png differ diff --git a/skins/common/images/poweredby_mediawiki_88x31.png b/skins/common/images/poweredby_mediawiki_88x31.png new file mode 100644 index 00000000..ce1765d1 Binary files /dev/null and b/skins/common/images/poweredby_mediawiki_88x31.png differ diff --git a/skins/common/images/redirectltr.png b/skins/common/images/redirectltr.png new file mode 100644 index 00000000..9110ca13 Binary files /dev/null and b/skins/common/images/redirectltr.png differ diff --git a/skins/common/images/redirectrtl.png b/skins/common/images/redirectrtl.png new file mode 100644 index 00000000..60fd59d3 Binary files /dev/null and b/skins/common/images/redirectrtl.png differ diff --git a/skins/common/images/wiki.png b/skins/common/images/wiki.png new file mode 100644 index 00000000..49913f6a Binary files /dev/null and b/skins/common/images/wiki.png differ diff --git a/skins/common/metadata.js b/skins/common/metadata.js new file mode 100644 index 00000000..9f7a8e01 --- /dev/null +++ b/skins/common/metadata.js @@ -0,0 +1,49 @@ +// Exif metadata display for MediaWiki file uploads +// +// Add an expand/collapse link and collapse by default if set to +// (with JS disabled, user will see all items) +// +// attachMetadataToggle("mw_metadata", "More...", "Fewer..."); + + +function attachMetadataToggle(tableId, showText, hideText) { + if (document.createTextNode) { + var box = document.getElementById(tableId); + if (!box) + return false; + + var tbody = box.getElementsByTagName('tbody')[0]; + + var row = document.createElement('tr'); + + var col = document.createElement('td'); + col.colSpan = 2; + + var link = document.createElement('a'); + link.href = '#'; + + link.onclick = function() { + if (box.className == 'mw_metadata collapsed') { + changeText(link, hideText); + box.className = 'mw_metadata expanded'; + } else { + changeText(link, showText); + box.className = 'mw_metadata collapsed'; + } + return false; + } + + var text = document.createTextNode(hideText); + + link.appendChild(text); + col.appendChild(link); + row.appendChild(col); + tbody.appendChild(row); + + // And collapse! + link.onclick(); + + return true; + } + return false; +} diff --git a/skins/common/nostalgia.css b/skins/common/nostalgia.css new file mode 100644 index 00000000..cc427bc9 --- /dev/null +++ b/skins/common/nostalgia.css @@ -0,0 +1,18 @@ +@import url("common.css?1"); +body { + /* Background color is set separately on page type */ + color: black; +} +#specialform { display: inline; } +#powersearch { + background: #DDEEFF; border-style: solid; border-width: 1px; padding: 2px; +} +a.interwiki, a.external { color: #3366BB; } +a.printable { text-decoration: underline; } +a.stub { color:#772233; text-decoration:none; } +h1.pagetitle { padding-top: 0; margin-top: 0; padding-bottom: 0; margin-bottom: 0; } +h2, h3, h4, h5, h6 { margin-bottom: 0; } +textarea { overflow: auto; } +p.subtitle { padding-top: 0; margin-top: 0; } + + diff --git a/skins/common/preview.js b/skins/common/preview.js new file mode 100644 index 00000000..b117e85b --- /dev/null +++ b/skins/common/preview.js @@ -0,0 +1,53 @@ +// Live preview + +function openXMLHttpRequest() { + if( window.XMLHttpRequest ) { + return new XMLHttpRequest(); + } else if( window.ActiveXObject && navigator.platform != 'MacPPC' ) { + // IE/Mac has an ActiveXObject but it doesn't work. + return new ActiveXObject("Microsoft.XMLHTTP"); + } else { + return null; + } +} + +/** + * Returns true if could open the request, + * false otherwise (eg no browser support). + */ +function livePreview(target, text, postUrl) { + prevTarget = target; + if( !target ) { + window.alert('Live preview failed!\nTry normal preview.'); + var fallback = document.getElementById('wpPreview'); + if ( fallback ) { fallback.style.display = 'inline'; } + } + prevReq = openXMLHttpRequest(); + if( !prevReq ) return false; + + prevReq.onreadystatechange = updatePreviewText; + prevReq.open("POST", postUrl, true); + + var postData = 'wpTextbox1=' + encodeURIComponent(text); + prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + prevReq.send(postData); + return true; +} + +function updatePreviewText() { + if( prevReq.readyState != 4 ) { + return; + } + if( prevReq.status != 200 ) { + window.alert('Failed to connect: ' + prevReq.status + + ' "' + prevReq.statusText + '"'); + var fallback = document.getElementById('wpPreview'); + if ( fallback ) { fallback.style.display = 'inline'; } + return; + } + prevTarget.innerHTML = prevReq.responseText; + + /* Hide the active diff if it exists */ + var diff = document.getElementById('wikiDiff'); + if ( diff ) { diff.style.display = 'none'; } +} diff --git a/skins/common/protect.js b/skins/common/protect.js new file mode 100644 index 00000000..a144e5eb --- /dev/null +++ b/skins/common/protect.js @@ -0,0 +1,126 @@ +function protectInitialize(tableId, labelText) { + if (document.createTextNode) { + var box = document.getElementById(tableId); + if (!box) + return false; + + var tbody = box.getElementsByTagName('tbody')[0]; + var row = document.createElement('tr'); + tbody.appendChild(row); + + row.appendChild(document.createElement('td')); + var col2 = document.createElement('td'); + row.appendChild(col2); + + var check = document.createElement('input'); + check.id = "mwProtectUnchained"; + check.type = "checkbox"; + check.onclick = protectChainUpdate; + col2.appendChild(check); + + var label = document.createElement('label'); + label.setAttribute("for", "mwProtectUnchained"); + label.appendChild(document.createTextNode(labelText)); + col2.appendChild(label); + + if (protectAllMatch()) { + check.checked = false; + protectEnable(false); + } else { + check.checked = true; + protectEnable(true); + } + + return true; + } + return false; +} + +function protectLevelsUpdate(source) { + if (!protectUnchained()) { + protectUpdateAll(source.selectedIndex); + } +} + +function protectChainUpdate() { + if (protectUnchained()) { + protectEnable(true); + } else { + protectChain(); + protectEnable(false); + } +} + + +function protectAllMatch() { + var values = new Array(); + protectForSelectors(function(set) { + values[values.length] = set.selectedIndex; + }); + for (var i = 1; i < values.length; i++) { + if (values[i] != values[0]) { + return false; + } + } + return true; +} + +function protectUnchained() { + var unchain = document.getElementById("mwProtectUnchained"); + if (!unchain) { + alert("This shouldn't happen"); + return false; + } + return unchain.checked; +} + +function protectChain() { + // Find the highest-protected action and bump them all to this level + var maxIndex = -1; + protectForSelectors(function(set) { + if (set.selectedIndex > maxIndex) { + maxIndex = set.selectedIndex; + } + }); + protectUpdateAll(maxIndex); +} + +function protectUpdateAll(index) { + protectForSelectors(function(set) { + if (set.selectedIndex != index) { + set.selectedIndex = index; + } + }); +} + +function protectForSelectors(func) { + var selectors = protectSelectors(); + for (var i = 0; i < selectors.length; i++) { + func(selectors[i]); + } +} + +function protectSelectors() { + var all = document.getElementsByTagName("select"); + var ours = new Array(); + for (var i = 0; i < all.length; i++) { + var set = all[i]; + if (set.id.match(/^mwProtect-level-/)) { + ours[ours.length] = set; + } + } + return ours; +} + +function protectEnable(val) { + // fixme + var first = true; + protectForSelectors(function(set) { + if (first) { + first = false; + } else { + set.disabled = !val; + set.style.visible = val ? "visible" : "hidden"; + } + }); +} diff --git a/skins/common/quickbar-right.css b/skins/common/quickbar-right.css new file mode 100644 index 00000000..43bd427a --- /dev/null +++ b/skins/common/quickbar-right.css @@ -0,0 +1 @@ +#quickbar { position: fixed; right: 0px; top: 0px; padding: 4px;} diff --git a/skins/common/quickbar.css b/skins/common/quickbar.css new file mode 100644 index 00000000..d7930c2a --- /dev/null +++ b/skins/common/quickbar.css @@ -0,0 +1 @@ +#quickbar { position: fixed; padding: 4px; } diff --git a/skins/common/sticky.js b/skins/common/sticky.js new file mode 100644 index 00000000..cf248c3e --- /dev/null +++ b/skins/common/sticky.js @@ -0,0 +1,124 @@ +// Make a layer that stays in the same place on screen when scrolling the browser window. +// Version 1.2 +// See http://www.mark.ac/help for browser support. + +var mySticky; +var theLayer; + +// Setup variables for sliding. +// lastY and staticYOffset should match your CSS top definition. + +lastY=10;YOffset=0;staticYOffset=10;refreshMS=25; + + +// Setup function that runs when the page loads. + function setup(eID){ + bw=new checkBrowser; + if(bw.ns4||bw.opera){MM_reloadPage(true);} + var noFix=bw.ie4||bw.ns4||(bw.macie50)?true:false; + if (window.attachEvent){fix_bind()} + else if(noFix){ + if(bw.ns6){document.getElementById(eID).style.position="absolute";} + if(bw.macie50){document.getElementById(eID).style.position="absolute";document.getElementById(eID).style.backgroundColor="#ccffcc";} + if(bw.ns6&&YOffset==0){YOffset=-15} + mySticky=new makeLayerObj(eID); + layerSlide(eID)} + else{ + mySticky=new makeLayerObj(eID); + mySticky.css.position="fixed";} + + if(!mySticky){mySticky=new makeLayerObj(eID);} + //mySticky.css.visibility="visible"; + } + + +// ------------------------- +// emulate css 'position: fixed' in IE5+ Win +// code by aclover@1value.com + fix_elements = new Array(); + + function fix_event(){ + var i; + for (i=0; i < fix_elements.length; i++){ + fix_elements[i].style.left = parseInt(fix_elements[i].fix_left)+document.getElementsByTagName('html')[0].scrollLeft+document.getElementsByTagName('body')[0].scrollLeft+'px'; + fix_elements[i].style.top = parseInt(fix_elements[i].fix_top)+document.getElementsByTagName('html')[0].scrollTop+document.getElementsByTagName('body')[0].scrollTop+'px'; + } + } + + function fix_bind(){ + var i; + for (i=0; i < document.all.length; i++){ + if (document.all[i].currentStyle.position=='fixed'){ + document.all[i].fix_left = document.all[i].currentStyle.left; + document.all[i].fix_top = document.all[i].currentStyle.top; + document.all[i].style.position = 'absolute'; + fix_elements[fix_elements.length] = document.all[i]; + window.attachEvent('onscroll', fix_event); + window.attachEvent('onresize', fix_event); + } + } + } +// ------------------------- + + +// ------------------------- +// DHTML menu sliding. Requires checkBrowser() +// Based on source at http://www.simplythebest.net/ + function layerSlide(layerID) { + if(bw.dhtml){ + if(!mySticky){mySticky=new makeLayerObj(layerID);} + if (bw.ns) {winY = window.pageYOffset;} + else if (bw.ie) {winY = document.body.scrollTop;} + if (bw.ie||bw.ns) { + if (winY!=lastY&&winY>YOffset-staticYOffset){smooth = .3 * (winY - lastY - YOffset + staticYOffset);} + else if (YOffset-staticYOffset+lastY>YOffset-staticYOffset){smooth = .3 * (winY - lastY - (YOffset-(YOffset-winY)));} + else{smooth=0} + if(smooth > 0) {smooth = Math.ceil(smooth);} + else{smooth = Math.floor(smooth);} + if (bw.ie){mySticky.css.pixelTop+=smooth;} + else if (bw.ns){mySticky.css.top=parseInt(mySticky.css.top)+smooth;} + lastY = lastY+smooth; + top.window.status=new Date() + setTimeout('layerSlide("'+layerID+'")', refreshMS)}}} +// ------------------------- + +// Netscape 4.x browser resize fix + function MM_reloadPage(init) { + if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { + document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; top.onresize=MM_reloadPage; }} + else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) {location.reload();}} + +// Create browser-independent layer and browser objects + function makeLayerObj(eID){ + if(document.getElementById){this.css=document.getElementById(eID).style} + else if(document.layers){this.css=document.layers[eID];} + else if(document.all){this.css=document.all[eID].style;} + return this + } + + function checkBrowser(){ + this.ver=navigator.appVersion; + this.name=navigator.appName; + this.mac=(navigator.platform.toLowerCase().indexOf('mac')>-1)?true:false; + this.opera=(navigator.userAgent.toLowerCase().indexOf('opera')>-1)?true:false; + this.dom=document.getElementById?true:false; + this.ns=(this.name=='Netscape'); + this.ie4=(document.all && !this.dom)?true:false; + this.ie=(this.name =='Microsoft Internet Explorer'&&!this.opera)?true:false; + this.ie5=(this.ie && (navigator.userAgent.indexOf("MSIE 5")!=-1))?true:false; + this.macie50=(this.mac&&this.ie5&&(navigator.userAgent.indexOf("MSIE 5.0")!=-1))?true:false + this.ns4=(this.ns && parseInt(this.ver) == 4)?true:false; + this.ns6=((this.name=="Netscape")&&(parseInt(this.ver)==5))?true:false + this.standards=document.getElementById?true:false; + this.dhtml=this.standards||this.ie4||this.ns4; + } + + function showMe(eID){ + myFloater=new makeLayerObj(eID) + myFloater.css.visibility="visible"; + } + + function hideMe(eID){ + myFloater=new makeLayerObj(eID) + myFloater.css.visibility="hidden"; + } \ No newline at end of file diff --git a/skins/common/upload.js b/skins/common/upload.js new file mode 100644 index 00000000..160fbf27 --- /dev/null +++ b/skins/common/upload.js @@ -0,0 +1,23 @@ +function licenseSelectorCheck() { + var selector = document.getElementById("wpLicense"); + if (selector.selectedIndex > 0 && + selector.options[selector.selectedIndex].value == "" ) { + // Browser is broken, doesn't respect disabled attribute on
  • $text
  • + } + } + + +
    +
    {msg {toolbox}}
    +
    + +
    +
    + {language_urls { +
    +
    {msg {otherlanguages}}
    +
    +
      + $body +
    +
    +
    + } { +
  • $text
  • + }} + +
    + + + +{reporttime} +{if {} { vim: set syn=html ts=2 : }} + diff --git a/skins/disabled/MonoBookCBT.php b/skins/disabled/MonoBookCBT.php new file mode 100644 index 00000000..0474ad7c --- /dev/null +++ b/skins/disabled/MonoBookCBT.php @@ -0,0 +1,1390 @@ +execute( $out ); + } + + function execute( &$out ) { + global $wgTitle, $wgStyleDirectory, $wgParserCacheType; + $fname = 'SkinMonoBookCBT::execute'; + wfProfileIn( $fname ); + wfProfileIn( "$fname-setup" ); + Skin::initPage( $out ); + + $this->mOut =& $out; + $this->mTitle =& $wgTitle; + + $sourceFile = "$wgStyleDirectory/MonoBook.tpl"; + + wfProfileOut( "$fname-setup" ); + + if ( $wgParserCacheType == CACHE_NONE ) { + $template = file_get_contents( $sourceFile ); + $text = $this->executeTemplate( $template ); + } else { + $compiled = $this->getCompiledTemplate( $sourceFile ); + + wfProfileIn( "$fname-eval" ); + $text = eval( $compiled ); + wfProfileOut( "$fname-eval" ); + } + wfProfileOut( $fname ); + return $text; + } + + function getCompiledTemplate( $sourceFile ) { + global $wgDBname, $wgMemc, $wgRequest, $wgUser, $parserMemc; + $fname = 'SkinMonoBookCBT::getCompiledTemplate'; + + $expiry = 3600; + + // Sandbox template execution + if ( $this->mCompiling ) { + return; + } + + wfProfileIn( $fname ); + + // Is the request an ordinary page view? + if ( $wgRequest->wasPosted() || + count( array_diff( array_keys( $_GET ), array( 'title', 'useskin', 'recompile' ) ) ) != 0 ) + { + $type = 'nonview'; + } else { + $type = 'view'; + } + + // Per-user compiled template + // Put all logged-out users on the same cache key + $cacheKey = "$wgDBname:monobookcbt:$type:" . $wgUser->getId(); + + $recompile = $wgRequest->getVal( 'recompile' ); + if ( $recompile == 'user' ) { + $recompileUser = true; + $recompileGeneric = false; + } elseif ( $recompile ) { + $recompileUser = true; + $recompileGeneric = true; + } else { + $recompileUser = false; + $recompileGeneric = false; + } + + if ( !$recompileUser ) { + $php = $parserMemc->get( $cacheKey ); + } + if ( $recompileUser || !$php ) { + if ( $wgUser->isLoggedIn() ) { + // Perform staged compilation + // First compile a generic template for all logged-in users + $genericKey = "$wgDBname:monobookcbt:$type:loggedin"; + if ( !$recompileGeneric ) { + $template = $parserMemc->get( $genericKey ); + } + if ( $recompileGeneric || !$template ) { + $template = file_get_contents( $sourceFile ); + $ignore = array( 'loggedin', '!loggedin dynamic' ); + if ( $type == 'view' ) { + $ignore[] = 'nonview dynamic'; + } + $template = $this->compileTemplate( $template, $ignore ); + $parserMemc->set( $genericKey, $template, $expiry ); + } + } else { + $template = file_get_contents( $sourceFile ); + } + + $ignore = array( 'lang', 'loggedin', 'user' ); + if ( $wgUser->isLoggedIn() ) { + $ignore[] = '!loggedin dynamic'; + } else { + $ignore[] = 'loggedin dynamic'; + } + if ( $type == 'view' ) { + $ignore[] = 'nonview dynamic'; + } + $compiled = $this->compileTemplate( $template, $ignore ); + + // Reduce whitespace + // This is done here instead of in CBTProcessor because we can be + // more sure it is safe here. + $compiled = preg_replace( '/^[ \t]+/m', '', $compiled ); + $compiled = preg_replace( '/[\r\n]+/', "\n", $compiled ); + + // Compile to PHP + $compiler = new CBTCompiler( $compiled ); + $ret = $compiler->compile(); + if ( $ret !== true ) { + echo $ret; + wfErrorExit(); + } + $php = $compiler->generatePHP( '$this' ); + + $parserMemc->set( $cacheKey, $php, $expiry ); + } + wfProfileOut( $fname ); + return $php; + } + + function compileTemplate( $template, $ignore ) { + $tp = new CBTProcessor( $template, $this, $ignore ); + $tp->mFunctionCache = $this->mFunctionCache; + + $this->mCompiling = true; + $compiled = $tp->compile(); + $this->mCompiling = false; + + if ( $tp->getLastError() ) { + // If there was a compile error, don't save the template + // Instead just print the error and exit + echo $compiled; + wfErrorExit(); + } + $this->mFunctionCache = $tp->mFunctionCache; + return $compiled; + } + + function executeTemplate( $template ) { + $fname = 'SkinMonoBookCBT::executeTemplate'; + wfProfileIn( $fname ); + $tp = new CBTProcessor( $template, $this ); + $tp->mFunctionCache = $this->mFunctionCache; + + $this->mCompiling = true; + $text = $tp->execute(); + $this->mCompiling = false; + + $this->mFunctionCache = $tp->mFunctionCache; + wfProfileOut( $fname ); + return $text; + } + + /****************************************************** + * Callbacks * + ******************************************************/ + + function lang() { return $GLOBALS['wgContLanguageCode']; } + + function dir() { + global $wgContLang; + return $wgContLang->isRTL() ? 'rtl' : 'ltr'; + } + + function mimetype() { return $GLOBALS['wgMimeType']; } + function charset() { return $GLOBALS['wgOutputEncoding']; } + function headlinks() { + return cbt_value( $this->mOut->getHeadLinks(), 'dynamic' ); + } + function headscripts() { + return cbt_value( $this->mOut->getScript(), 'dynamic' ); + } + + function pagetitle() { + return cbt_value( $this->mOut->getHTMLTitle(), array( 'title', 'lang' ) ); + } + + function stylepath() { return $GLOBALS['wgStylePath']; } + function stylename() { return $this->mStyleName; } + + function notprintable() { + global $wgRequest; + return cbt_value( !$wgRequest->getBool( 'printable' ), 'nonview dynamic' ); + } + + function jsmimetype() { return $GLOBALS['wgJsMimeType']; } + + function jsvarurl() { + global $wgUseSiteJs, $wgUser; + if ( !$wgUseSiteJs ) return ''; + + if ( $wgUser->isLoggedIn() ) { + $url = $this->makeUrl('-','action=raw&smaxage=0&gen=js'); + } else { + $url = $this->makeUrl('-','action=raw&gen=js'); + } + return cbt_value( $url, 'loggedin' ); + } + + function pagecss() { + global $wgHooks; + + $out = false; + wfRunHooks( 'SkinTemplateSetupPageCss', array( &$out ) ); + + // Unknown dependencies + return cbt_value( $out, 'dynamic' ); + } + + function usercss() { + if ( $this->isCssPreview() ) { + global $wgRequest; + $usercss = $this->makeStylesheetCdata( $wgRequest->getText('wpTextbox1') ); + } else { + $usercss = $this->makeStylesheetLink( $this->makeUrl($this->getUserPageText() . + '/'.$this->mStyleName.'.css', 'action=raw&ctype=text/css' ) ); + } + + // Dynamic when not an ordinary page view, also depends on the username + return cbt_value( $usercss, array( 'nonview dynamic', 'user' ) ); + } + + function sitecss() { + global $wgUseSiteCss; + if ( !$wgUseSiteCss ) { + return ''; + } + + global $wgSquidMaxage, $wgContLang, $wgStylePath; + + $query = "action=raw&ctype=text/css&smaxage=$wgSquidMaxage"; + + $sitecss = ''; + if ( $wgContLang->isRTL() ) { + $sitecss .= $this->makeStylesheetLink( $wgStylePath . '/' . $this->mStyleName . '/rtl.css' ) . "\n"; + } + + $sitecss .= $this->makeStylesheetLink( $this->makeNSUrl('Common.css', $query, NS_MEDIAWIKI) ) . "\n"; + $sitecss .= $this->makeStylesheetLink( $this->makeNSUrl( + ucfirst($this->mStyleName) . '.css', $query, NS_MEDIAWIKI) ) . "\n"; + + // No deps + return $sitecss; + } + + function gencss() { + global $wgUseSiteCss; + if ( !$wgUseSiteCss ) return ''; + + global $wgSquidMaxage, $wgUser, $wgAllowUserCss; + if ( $this->isCssPreview() ) { + $siteargs = '&smaxage=0&maxage=0'; + } else { + $siteargs = '&maxage=' . $wgSquidMaxage; + } + if ( $wgAllowUserCss && $wgUser->isLoggedIn() ) { + $siteargs .= '&ts={user_touched}'; + $isTemplate = true; + } else { + $isTemplate = false; + } + + $link = $this->makeStylesheetLink( $this->makeUrl('-','action=raw&gen=css' . $siteargs) ) . "\n"; + + if ( $wgAllowUserCss ) { + $deps = 'loggedin'; + } else { + $deps = array(); + } + return cbt_value( $link, $deps, $isTemplate ); + } + + function user_touched() { + global $wgUser; + return cbt_value( $wgUser->mTouched, 'dynamic' ); + } + + function userjs() { + global $wgAllowUserJs, $wgJsMimeType; + if ( !$wgAllowUserJs ) return ''; + + if ( $this->isJsPreview() ) { + $url = ''; + } else { + $url = $this->makeUrl($this->getUserPageText().'/'.$this->mStyleName.'.js', 'action=raw&ctype='.$wgJsMimeType.'&dontcountme=s'); + } + return cbt_value( $url, array( 'nonview dynamic', 'user' ) ); + } + + function userjsprev() { + global $wgAllowUserJs, $wgRequest; + if ( !$wgAllowUserJs ) return ''; + if ( $this->isJsPreview() ) { + $js = '/*getText('wpTextbox1') . ' /*]]>*/'; + } else { + $js = ''; + } + return cbt_value( $js, array( 'nonview dynamic' ) ); + } + + function trackbackhtml() { + global $wgUseTrackbacks; + if ( !$wgUseTrackbacks ) return ''; + + if ( $this->mOut->isArticleRelated() ) { + $tb = $this->mTitle->trackbackRDF(); + } else { + $tb = ''; + } + return cbt_value( $tb, 'dynamic' ); + } + + function body_ondblclick() { + global $wgUser; + if( $this->isEditable() && $wgUser->getOption("editondblclick") ) { + $js = 'document.location = "' . $this->getEditUrl() .'";'; + } else { + $js = ''; + } + + if ( User::getDefaultOption('editondblclick') ) { + return cbt_value( $js, 'user', 'title' ); + } else { + // Optimise away for logged-out users + return cbt_value( $js, 'loggedin dynamic' ); + } + } + + function body_onload() { + global $wgUser; + if ( $this->isEditable() && $wgUser->getOption( 'editsectiononrightclick' ) ) { + $js = 'setupRightClickEdit()'; + } else { + $js = ''; + } + return cbt_value( $js, 'loggedin dynamic' ); + } + + function nsclass() { + return cbt_value( 'ns-' . $this->mTitle->getNamespace(), 'title' ); + } + + function sitenotice() { + // Perhaps this could be given special dependencies using our knowledge of what + // wfGetSiteNotice() depends on. + return cbt_value( wfGetSiteNotice(), 'dynamic' ); + } + + function title() { + return cbt_value( $this->mOut->getPageTitle(), array( 'title', 'lang' ) ); + } + + function title_urlform() { + return cbt_value( $this->getThisTitleUrlForm(), 'title' ); + } + + function title_userurl() { + return cbt_value( urlencode( $this->mTitle->getDBkey() ), 'title' ); + } + + function subtitle() { + $subpagestr = $this->subPageSubtitle(); + if ( !empty( $subpagestr ) ) { + $s = ''.$subpagestr.''.$this->mOut->getSubtitle(); + } else { + $s = $this->mOut->getSubtitle(); + } + return cbt_value( $s, array( 'title', 'nonview dynamic' ) ); + } + + function undelete() { + return cbt_value( $this->getUndeleteLink(), array( 'title', 'lang' ) ); + } + + function newtalk() { + global $wgUser, $wgDBname; + $newtalks = $wgUser->getNewMessageLinks(); + + if (count($newtalks) == 1 && $newtalks[0]["wiki"] === $wgDBname) { + $usertitle = $this->getUserPageTitle(); + $usertalktitle = $usertitle->getTalkPage(); + if( !$usertalktitle->equals( $this->mTitle ) ) { + $ntl = wfMsg( 'youhavenewmessages', + $this->makeKnownLinkObj( + $usertalktitle, + wfMsgHtml( 'newmessageslink' ), + 'redirect=no' + ), + $this->makeKnownLinkObj( + $usertalktitle, + wfMsgHtml( 'newmessagesdifflink' ), + 'diff=cur' + ) + ); + # Disable Cache + $this->mOut->setSquidMaxage(0); + } + } else if (count($newtalks)) { + $sep = str_replace("_", " ", wfMsgHtml("newtalkseperator")); + $msgs = array(); + foreach ($newtalks as $newtalk) { + $msgs[] = wfElement("a", + array('href' => $newtalk["link"]), $newtalk["wiki"]); + } + $parts = implode($sep, $msgs); + $ntl = wfMsgHtml('youhavenewmessagesmulti', $parts); + $this->mOut->setSquidMaxage(0); + } else { + $ntl = ''; + } + return cbt_value( $ntl, 'dynamic' ); + } + + function showjumplinks() { + global $wgUser; + return cbt_value( $wgUser->getOption( 'showjumplinks' ) ? 'true' : '', 'user' ); + } + + function bodytext() { + return cbt_value( $this->mOut->getHTML(), 'dynamic' ); + } + + function catlinks() { + if ( !isset( $this->mCatlinks ) ) { + $this->mCatlinks = $this->getCategories(); + } + return cbt_value( $this->mCatlinks, 'dynamic' ); + } + + function extratabs( $itemTemplate ) { + global $wgContLang, $wgDisableLangConversion; + + $etpl = cbt_escape( $itemTemplate ); + + /* show links to different language variants */ + $variants = $wgContLang->getVariants(); + $s = ''; + if ( !$wgDisableLangConversion && count( $wgContLang->getVariants() ) > 1 ) { + $vcount=0; + foreach ( $variants as $code ) { + $name = $wgContLang->getVariantname( $code ); + if ( $name == 'disable' ) { + continue; + } + $code = cbt_escape( $code ); + $name = cbt_escape( $name ); + $s .= "{ca_variant {{$code}} {{$name}} {{$vcount}} {{$etpl}}}\n"; + $vcount ++; + } + } + return cbt_value( $s, array(), true ); + } + + function is_special() { return cbt_value( $this->mTitle->getNamespace() == NS_SPECIAL, 'title' ); } + function can_edit() { return cbt_value( (string)($this->mTitle->userCanEdit()), 'dynamic' ); } + function can_move() { return cbt_value( (string)($this->mTitle->userCanMove()), 'dynamic' ); } + function is_talk() { return cbt_value( (string)($this->mTitle->isTalkPage()), 'title' ); } + function is_protected() { return cbt_value( (string)$this->mTitle->isProtected(), 'dynamic' ); } + function nskey() { return cbt_value( $this->mTitle->getNamespaceKey(), 'title' ); } + + function request_url() { + global $wgRequest; + return cbt_value( $wgRequest->getRequestURL(), 'dynamic' ); + } + + function subject_url() { + $title = $this->getSubjectPage(); + if ( $title->exists() ) { + $url = $title->getLocalUrl(); + } else { + $url = $title->getLocalUrl( 'action=edit' ); + } + return cbt_value( $url, 'title' ); + } + + function talk_url() { + $title = $this->getTalkPage(); + if ( $title->exists() ) { + $url = $title->getLocalUrl(); + } else { + $url = $title->getLocalUrl( 'action=edit' ); + } + return cbt_value( $url, 'title' ); + } + + function edit_url() { + return cbt_value( $this->getEditUrl(), array( 'title', 'nonview dynamic' ) ); + } + + function move_url() { + return cbt_value( $this->makeSpecialParamUrl( 'Movepage' ), array(), true ); + } + + function localurl( $query ) { + return cbt_value( $this->mTitle->getLocalURL( $query ), 'title' ); + } + + function selecttab( $tab, $extraclass = '' ) { + if ( !isset( $this->mSelectedTab ) ) { + $prevent_active_tabs = false ; + wfRunHooks( 'SkinTemplatePreventOtherActiveTabs', array( &$this , &$preventActiveTabs ) ); + + $actionTabs = array( + 'edit' => 'edit', + 'submit' => 'edit', + 'history' => 'history', + 'protect' => 'protect', + 'unprotect' => 'protect', + 'delete' => 'delete', + 'watch' => 'watch', + 'unwatch' => 'watch', + ); + if ( $preventActiveTabs ) { + $this->mSelectedTab = false; + } else { + $action = $this->getAction(); + $section = $this->getSection(); + + if ( isset( $actionTabs[$action] ) ) { + $this->mSelectedTab = $actionTabs[$action]; + + if ( $this->mSelectedTab == 'edit' && $section == 'new' ) { + $this->mSelectedTab = 'addsection'; + } + } elseif ( $this->mTitle->isTalkPage() ) { + $this->mSelectedTab = 'talk'; + } else { + $this->mSelectedTab = 'subject'; + } + } + } + if ( $extraclass ) { + if ( $this->mSelectedTab == $tab ) { + $s = 'class="selected ' . htmlspecialchars( $extraclass ) . '"'; + } else { + $s = 'class="' . htmlspecialchars( $extraclass ) . '"'; + } + } else { + if ( $this->mSelectedTab == $tab ) { + $s = 'class="selected"'; + } else { + $s = ''; + } + } + return cbt_value( $s, array( 'nonview dynamic', 'title' ) ); + } + + function subject_newclass() { + $title = $this->getSubjectPage(); + $class = $title->exists() ? '' : 'new'; + return cbt_value( $class, 'dynamic' ); + } + + function talk_newclass() { + $title = $this->getTalkPage(); + $class = $title->exists() ? '' : 'new'; + return cbt_value( $class, 'dynamic' ); + } + + function ca_variant( $code, $name, $index, $template ) { + global $wgContLang; + $selected = ($code == $wgContLang->getPreferredVariant()); + $action = $this->getAction(); + $actstr = ''; + if( $action ) + $actstr = 'action=' . $action . '&'; + $s = strtr( $template, array( + '$id' => htmlspecialchars( 'varlang-' . $index ), + '$class' => $selected ? 'class="selected"' : '', + '$text' => $name, + '$href' => htmlspecialchars( $this->mTitle->getLocalUrl( $actstr . 'variant=' . $code ) ) + )); + return cbt_value( $s, 'dynamic' ); + } + + function is_watching() { + return cbt_value( (string)$this->mTitle->userIsWatching(), array( 'dynamic' ) ); + } + + + function personal_urls( $itemTemplate ) { + global $wgShowIPinHeader, $wgContLang; + + # Split this function up into many small functions, to obtain the + # best specificity in the dependencies of each one. The template below + # has no dependencies, so its generation, and any static subfunctions, + # can be optimised away. + $etpl = cbt_escape( $itemTemplate ); + $s = " + {userpage {{$etpl}}} + {mytalk {{$etpl}}} + {preferences {{$etpl}}} + {watchlist {{$etpl}}} + {mycontris {{$etpl}}} + {logout {{$etpl}}} + "; + + if ( $wgShowIPinHeader ) { + $s .= " + {anonuserpage {{$etpl}}} + {anontalk {{$etpl}}} + {anonlogin {{$etpl}}} + "; + } else { + $s .= "{login {{$etpl}}}\n"; + } + // No dependencies + return cbt_value( $s, array(), true /*this is a template*/ ); + } + + function userpage( $itemTemplate ) { + global $wgUser; + if ( $this->isLoggedIn() ) { + $userPage = $this->getUserPageTitle(); + $s = $this->makeTemplateLink( $itemTemplate, 'userpage', $userPage, $wgUser->getName() ); + } else { + $s = ''; + } + return cbt_value( $s, 'user' ); + } + + function mytalk( $itemTemplate ) { + global $wgUser; + if ( $this->isLoggedIn() ) { + $userPage = $this->getUserPageTitle(); + $talkPage = $userPage->getTalkPage(); + $s = $this->makeTemplateLink( $itemTemplate, 'mytalk', $talkPage, wfMsg('mytalk') ); + } else { + $s = ''; + } + return cbt_value( $s, 'user' ); + } + + function preferences( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'preferences', + 'Preferences', wfMsg( 'preferences' ) ); + } else { + $s = ''; + } + return cbt_value( $s, array( 'loggedin', 'lang' ) ); + } + + function watchlist( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'watchlist', + 'Watchlist', wfMsg( 'watchlist' ) ); + } else { + $s = ''; + } + return cbt_value( $s, array( 'loggedin', 'lang' ) ); + } + + function mycontris( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + global $wgUser; + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'mycontris', + "Contributions/" . $wgUser->getTitleKey(), wfMsg('mycontris') ); + } else { + $s = ''; + } + return cbt_value( $s, 'user' ); + } + + function logout( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'logout', + 'Userlogout', wfMsg( 'userlogout' ), + $this->mTitle->getNamespace() === NS_SPECIAL && $this->mTitle->getText() === 'Preferences' + ? '' : "returnto=" . $this->mTitle->getPrefixedURL() ); + } else { + $s = ''; + } + return cbt_value( $s, 'loggedin dynamic' ); + } + + function anonuserpage( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = ''; + } else { + global $wgUser; + $userPage = $this->getUserPageTitle(); + $s = $this->makeTemplateLink( $itemTemplate, 'userpage', $userPage, $wgUser->getName() ); + } + return cbt_value( $s, '!loggedin dynamic' ); + } + + function anontalk( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = ''; + } else { + $userPage = $this->getUserPageTitle(); + $talkPage = $userPage->getTalkPage(); + $s = $this->makeTemplateLink( $itemTemplate, 'mytalk', $talkPage, wfMsg('anontalk') ); + } + return cbt_value( $s, '!loggedin dynamic' ); + } + + function anonlogin( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = ''; + } else { + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'anonlogin', 'Userlogin', + wfMsg( 'userlogin' ), 'returnto=' . urlencode( $this->getThisPDBK() ) ); + } + return cbt_value( $s, '!loggedin dynamic' ); + } + + function login( $itemTemplate ) { + if ( $this->isLoggedIn() ) { + $s = ''; + } else { + $s = $this->makeSpecialTemplateLink( $itemTemplate, 'login', 'Userlogin', + wfMsg( 'userlogin' ), 'returnto=' . urlencode( $this->getThisPDBK() ) ); + } + return cbt_value( $s, '!loggedin dynamic' ); + } + + function logopath() { return $GLOBALS['wgLogo']; } + function mainpage() { return $this->makeI18nUrl( 'mainpage' ); } + + function sidebar( $startSection, $endSection, $innerTpl ) { + $s = ''; + $lines = explode( "\n", wfMsgForContent( 'sidebar' ) ); + $firstSection = true; + foreach ($lines as $line) { + if (strpos($line, '*') !== 0) + continue; + if (strpos($line, '**') !== 0) { + $bar = trim($line, '* '); + $name = wfMsg( $bar ); + if (wfEmptyMsg($bar, $name)) { + $name = $bar; + } + if ( $firstSection ) { + $firstSection = false; + } else { + $s .= $endSection; + } + $s .= strtr( $startSection, + array( + '$bar' => htmlspecialchars( $bar ), + '$barname' => $name + ) ); + } else { + if (strpos($line, '|') !== false) { // sanity check + $line = explode( '|' , trim($line, '* '), 2 ); + $link = wfMsgForContent( $line[0] ); + if ($link == '-') + continue; + if (wfEmptyMsg($line[1], $text = wfMsg($line[1]))) + $text = $line[1]; + if (wfEmptyMsg($line[0], $link)) + $link = $line[0]; + $href = $this->makeInternalOrExternalUrl( $link ); + + $s .= strtr( $innerTpl, + array( + '$text' => htmlspecialchars( $text ), + '$href' => htmlspecialchars( $href ), + '$id' => htmlspecialchars( 'n-' . strtr($line[1], ' ', '-') ), + '$classactive' => '' + ) ); + } else { continue; } + } + } + if ( !$firstSection ) { + $s .= $endSection; + } + + // Depends on user language only + return cbt_value( $s, 'lang' ); + } + + function searchaction() { + // Static link + return $this->getSearchLink(); + } + + function search() { + global $wgRequest; + return cbt_value( trim( $this->getSearch() ), 'special dynamic' ); + } + + function notspecialpage() { + return cbt_value( $this->mTitle->getNamespace() != NS_SPECIAL, 'special' ); + } + + function nav_whatlinkshere() { + return cbt_value( $this->makeSpecialParamUrl('Whatlinkshere' ), array(), true ); + } + + function article_exists() { + return cbt_value( (string)($this->mTitle->getArticleId() !== 0), 'title' ); + } + + function nav_recentchangeslinked() { + return cbt_value( $this->makeSpecialParamUrl('Recentchangeslinked' ), array(), true ); + } + + function feeds( $itemTemplate = '' ) { + if ( !$this->mOut->isSyndicated() ) { + $feeds = ''; + } elseif ( $itemTemplate == '' ) { + // boolean only required + $feeds = 'true'; + } else { + $feeds = ''; + global $wgFeedClasses, $wgRequest; + foreach( $wgFeedClasses as $format => $class ) { + $feeds .= strtr( $itemTemplate, + array( + '$key' => htmlspecialchars( $format ), + '$text' => $format, + '$href' => $wgRequest->appendQuery( "feed=$format" ) + ) ); + } + } + return cbt_value( $feeds, 'special dynamic' ); + } + + function is_userpage() { + list( $id, $ip ) = $this->getUserPageIdIp(); + return cbt_value( (string)($id || $ip), 'title' ); + } + + function is_ns_mediawiki() { + return cbt_value( (string)$this->mTitle->getNamespace() == NS_MEDIAWIKI, 'title' ); + } + + function is_loggedin() { + global $wgUser; + return cbt_value( (string)($wgUser->isLoggedIn()), 'loggedin' ); + } + + function nav_contributions() { + $url = $this->makeSpecialParamUrl( 'Contributions', '', '{title_userurl}' ); + return cbt_value( $url, array(), true ); + } + + function is_allowed( $right ) { + global $wgUser; + return cbt_value( (string)$wgUser->isAllowed( $right ), 'user' ); + } + + function nav_blockip() { + $url = $this->makeSpecialParamUrl( 'Blockip', '', '{title_userurl}' ); + return cbt_value( $url, array(), true ); + } + + function nav_emailuser() { + global $wgEnableEmail, $wgEnableUserEmail, $wgUser; + if ( !$wgEnableEmail || !$wgEnableUserEmail ) return ''; + + $url = $this->makeSpecialParamUrl( 'Emailuser', '', '{title_userurl}' ); + return cbt_value( $url, array(), true ); + } + + function nav_upload() { + global $wgEnableUploads, $wgUploadNavigationUrl; + if ( !$wgEnableUploads ) { + return ''; + } elseif ( $wgUploadNavigationUrl ) { + return $wgUploadNavigationUrl; + } else { + return $this->makeSpecialUrl('Upload'); + } + } + + function nav_specialpages() { + return $this->makeSpecialUrl('Specialpages'); + } + + function nav_print() { + global $wgRequest, $wgArticle; + $action = $this->getAction(); + $url = ''; + if( $this->mTitle->getNamespace() !== NS_SPECIAL + && ($action == '' || $action == 'view' || $action == 'purge' ) ) + { + $revid = $wgArticle->getLatest(); + if ( $revid != 0 ) { + $url = $wgRequest->appendQuery( 'printable=yes' ); + } + } + return cbt_value( $url, array( 'nonview dynamic', 'title' ) ); + } + + function nav_permalink() { + $url = (string)$this->getPermalink(); + return cbt_value( $url, 'dynamic' ); + } + + function nav_trackbacklink() { + global $wgUseTrackbacks; + if ( !$wgUseTrackbacks ) return ''; + + return cbt_value( $this->mTitle->trackbackURL(), 'title' ); + } + + function is_permalink() { + return cbt_value( (string)($this->getPermalink() === false), 'nonview dynamic' ); + } + + function toolboxend() { + // This is where the MonoBookTemplateToolboxEnd hook went in the old skin + return ''; + } + + function language_urls( $outer, $inner ) { + global $wgHideInterlanguageLinks, $wgOut, $wgContLang; + if ( $wgHideInterlanguageLinks ) return ''; + + $links = $wgOut->getLanguageLinks(); + $s = ''; + if ( count( $links ) ) { + foreach( $links as $l ) { + $tmp = explode( ':', $l, 2 ); + $nt = Title::newFromText( $l ); + $s .= strtr( $inner, + array( + '$class' => htmlspecialchars( 'interwiki-' . $tmp[0] ), + '$href' => htmlspecialchars( $nt->getFullURL() ), + '$text' => ($wgContLang->getLanguageName( $nt->getInterwiki() ) != ''? + $wgContLang->getLanguageName( $nt->getInterwiki() ) : $l ), + ) + ); + } + $s = str_replace( '$body', $s, $outer ); + } + return cbt_value( $s, 'dynamic' ); + } + + function poweredbyico() { return $this->getPoweredBy(); } + function copyrightico() { return $this->getCopyrightIcon(); } + + function lastmod() { + global $wgMaxCredits; + if ( $wgMaxCredits ) return ''; + + if ( !isset( $this->mLastmod ) ) { + if ( $this->isCurrentArticleView() ) { + $this->mLastmod = $this->lastModified(); + } else { + $this->mLastmod = ''; + } + } + return cbt_value( $this->mLastmod, 'dynamic' ); + } + + function viewcount() { + global $wgDisableCounters; + if ( $wgDisableCounters ) return ''; + + global $wgLang, $wgArticle; + if ( is_object( $wgArticle ) ) { + $viewcount = $wgLang->formatNum( $wgArticle->getCount() ); + if ( $viewcount ) { + $viewcount = wfMsg( "viewcount", $viewcount ); + } else { + $viewcount = ''; + } + } else { + $viewcount = ''; + } + return cbt_value( $viewcount, 'dynamic' ); + } + + function numberofwatchingusers() { + global $wgPageShowWatchingUsers; + if ( !$wgPageShowWatchingUsers ) return ''; + + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'watchlist' ) ); + $sql = "SELECT COUNT(*) AS n FROM $watchlist + WHERE wl_title='" . $dbr->strencode($this->mTitle->getDBKey()) . + "' AND wl_namespace=" . $this->mTitle->getNamespace() ; + $res = $dbr->query( $sql, 'SkinTemplate::outputPage'); + $row = $dbr->fetchObject( $res ); + $num = $row->n; + if ($num > 0) { + $s = wfMsg('number_of_watching_users_pageview', $num); + } else { + $s = ''; + } + return cbt_value( $s, 'dynamic' ); + } + + function credits() { + global $wgMaxCredits; + if ( !$wgMaxCredits ) return ''; + + if ( $this->isCurrentArticleView() ) { + require_once("Credits.php"); + global $wgArticle, $wgShowCreditsIfMax; + $credits = getCredits($wgArticle, $wgMaxCredits, $wgShowCreditsIfMax); + } else { + $credits = ''; + } + return cbt_value( $credits, 'view dynamic' ); + } + + function normalcopyright() { + return $this->getCopyright( 'normal' ); + } + + function historycopyright() { + return $this->getCopyright( 'history' ); + } + + function is_currentview() { + global $wgRequest; + return cbt_value( (string)$this->isCurrentArticleView(), 'view' ); + } + + function usehistorycopyright() { + global $wgRequest; + if ( wfMsgForContent( 'history_copyright' ) == '-' ) return ''; + + $oldid = $this->getOldId(); + $diff = $this->getDiff(); + $use = (string)(!is_null( $oldid ) && is_null( $diff )); + return cbt_value( $use, 'nonview dynamic' ); + } + + function privacy() { + return cbt_value( $this->privacyLink(), 'lang' ); + } + function about() { + return cbt_value( $this->aboutLink(), 'lang' ); + } + function disclaimer() { + return cbt_value( $this->disclaimerLink(), 'lang' ); + } + function tagline() { + # A reference to this tag existed in the old MonoBook.php, but the + # template data wasn't set anywhere + return ''; + } + function reporttime() { + return cbt_value( $this->mOut->reportTime(), 'dynamic' ); + } + + function msg( $name ) { + return cbt_value( wfMsg( $name ), 'lang' ); + } + + function fallbackmsg( $name, $fallback ) { + $text = wfMsg( $name ); + if ( wfEmptyMsg( $name, $text ) ) { + $text = $fallback; + } + return cbt_value( $text, 'lang' ); + } + + /****************************************************** + * Utility functions * + ******************************************************/ + + /** Return true if this request is a valid, secure CSS preview */ + function isCssPreview() { + if ( !isset( $this->mCssPreview ) ) { + global $wgRequest, $wgAllowUserCss, $wgUser; + $this->mCssPreview = + $wgAllowUserCss && + $wgUser->isLoggedIn() && + $this->mTitle->isCssSubpage() && + $this->userCanPreview( $this->getAction() ); + } + return $this->mCssPreview; + } + + /** Return true if this request is a valid, secure JS preview */ + function isJsPreview() { + if ( !isset( $this->mJsPreview ) ) { + global $wgRequest, $wgAllowUserJs, $wgUser; + $this->mJsPreview = + $wgAllowUserJs && + $wgUser->isLoggedIn() && + $this->mTitle->isJsSubpage() && + $this->userCanPreview( $this->getAction() ); + } + return $this->mJsPreview; + } + + /** Get the title of the $wgUser's user page */ + function getUserPageTitle() { + if ( !isset( $this->mUserPageTitle ) ) { + global $wgUser; + $this->mUserPageTitle = $wgUser->getUserPage(); + } + return $this->mUserPageTitle; + } + + /** Get the text of the user page title */ + function getUserPageText() { + if ( !isset( $this->mUserPageText ) ) { + $userPage = $this->getUserPageTitle(); + $this->mUserPageText = $userPage->getPrefixedText(); + } + return $this->mUserPageText; + } + + /** Make an HTML element for a stylesheet link */ + function makeStylesheetLink( $url ) { + return '"; + } + + /** Make an XHTML element for inline CSS */ + function makeStylesheetCdata( $style ) { + return ""; + } + + /** Get the edit URL for this page */ + function getEditUrl() { + if ( !isset( $this->mEditUrl ) ) { + $this->mEditUrl = $this->mTitle->getLocalUrl( $this->editUrlOptions() ); + } + return $this->mEditUrl; + } + + /** Get the prefixed DB key for this page */ + function getThisPDBK() { + if ( !isset( $this->mThisPDBK ) ) { + $this->mThisPDBK = $this->mTitle->getPrefixedDbKey(); + } + return $this->mThisPDBK; + } + + function getThisTitleUrlForm() { + if ( !isset( $this->mThisTitleUrlForm ) ) { + $this->mThisTitleUrlForm = $this->mTitle->getPrefixedURL(); + } + return $this->mThisTitleUrlForm; + } + + /** + * If the current page is a user page, get the user's ID and IP. Otherwise return array(0,false) + */ + function getUserPageIdIp() { + if ( !isset( $this->mUserPageId ) ) { + if( $this->mTitle->getNamespace() == NS_USER || $this->mTitle->getNamespace() == NS_USER_TALK ) { + $this->mUserPageId = User::idFromName($this->mTitle->getText()); + $this->mUserPageIp = User::isIP($this->mTitle->getText()); + } else { + $this->mUserPageId = 0; + $this->mUserPageIp = false; + } + } + return array( $this->mUserPageId, $this->mUserPageIp ); + } + + /** + * Returns a permalink URL, or false if the current page is already a + * permalink, or blank if a permalink shouldn't be displayed + */ + function getPermalink() { + if ( !isset( $this->mPermalink ) ) { + global $wgRequest, $wgArticle; + $action = $this->getAction(); + $oldid = $this->getOldId(); + $url = ''; + if( $this->mTitle->getNamespace() !== NS_SPECIAL + && $this->mTitle->getArticleId() != 0 + && ($action == '' || $action == 'view' || $action == 'purge' ) ) + { + if ( !$oldid ) { + $revid = $wgArticle->getLatest(); + $url = $this->mTitle->getLocalURL( "oldid=$revid" ); + } else { + $url = false; + } + } else { + $url = ''; + } + } + return $url; + } + + /** + * Returns true if the current page is an article, not a special page, + * and we are viewing a revision, not a diff + */ + function isArticleView() { + global $wgOut, $wgArticle, $wgRequest; + if ( !isset( $this->mIsArticleView ) ) { + $oldid = $this->getOldId(); + $diff = $this->getDiff(); + $this->mIsArticleView = $wgOut->isArticle() and + (!is_null( $oldid ) or is_null( $diff )) and 0 != $wgArticle->getID(); + } + return $this->mIsArticleView; + } + + function isCurrentArticleView() { + if ( !isset( $this->mIsCurrentArticleView ) ) { + global $wgOut, $wgArticle, $wgRequest; + $oldid = $this->getOldId(); + $this->mIsCurrentArticleView = $wgOut->isArticle() && is_null( $oldid ) && 0 != $wgArticle->getID(); + } + return $this->mIsCurrentArticleView; + } + + + /** + * Return true if the current page is editable; if edit section on right + * click should be enabled. + */ + function isEditable() { + global $wgRequest; + $action = $this->getAction(); + return ($this->mTitle->getNamespace() != NS_SPECIAL and !($action == 'edit' or $action == 'submit')); + } + + /** Return true if the user is logged in */ + function isLoggedIn() { + global $wgUser; + return $wgUser->isLoggedIn(); + } + + /** Get the local URL of the current page */ + function getPageUrl() { + if ( !isset( $this->mPageUrl ) ) { + $this->mPageUrl = $this->mTitle->getLocalURL(); + } + return $this->mPageUrl; + } + + /** Make a link to a title using a template */ + function makeTemplateLink( $template, $key, $title, $text ) { + $url = $title->getLocalUrl(); + return strtr( $template, + array( + '$key' => $key, + '$classactive' => ($url == $this->getPageUrl()) ? 'class="active"' : '', + '$class' => $title->getArticleID() == 0 ? 'class="new"' : '', + '$href' => htmlspecialchars( $url ), + '$text' => $text + ) ); + } + + /** Make a link to a URL using a template */ + function makeTemplateLinkUrl( $template, $key, $url, $text ) { + return strtr( $template, + array( + '$key' => $key, + '$classactive' => ($url == $this->getPageUrl()) ? 'class="active"' : '', + '$class' => '', + '$href' => htmlspecialchars( $url ), + '$text' => $text + ) ); + } + + /** Make a link to a special page using a template */ + function makeSpecialTemplateLink( $template, $key, $specialName, $text, $query = '' ) { + $url = $this->makeSpecialUrl( $specialName, $query ); + // Ignore the query when comparing + $active = ($this->mTitle->getNamespace() == NS_SPECIAL && $this->mTitle->getDBkey() == $specialName); + return strtr( $template, + array( + '$key' => $key, + '$classactive' => $active ? 'class="active"' : '', + '$class' => '', + '$href' => htmlspecialchars( $url ), + '$text' => $text + ) ); + } + + function loadRequestValues() { + global $wgRequest; + $this->mAction = $wgRequest->getText( 'action' ); + $this->mOldId = $wgRequest->getVal( 'oldid' ); + $this->mDiff = $wgRequest->getVal( 'diff' ); + $this->mSection = $wgRequest->getVal( 'section' ); + $this->mSearch = $wgRequest->getVal( 'search' ); + $this->mRequestValuesLoaded = true; + } + + + + /** Get the action parameter of the request */ + function getAction() { + if ( !isset( $this->mRequestValuesLoaded ) ) { + $this->loadRequestValues(); + } + return $this->mAction; + } + + /** Get the oldid parameter */ + function getOldId() { + if ( !isset( $this->mRequestValuesLoaded ) ) { + $this->loadRequestValues(); + } + return $this->mOldId; + } + + /** Get the diff parameter */ + function getDiff() { + if ( !isset( $this->mRequestValuesLoaded ) ) { + $this->loadRequestValues(); + } + return $this->mDiff; + } + + function getSection() { + if ( !isset( $this->mRequestValuesLoaded ) ) { + $this->loadRequestValues(); + } + return $this->mSection; + } + + function getSearch() { + if ( !isset( $this->mRequestValuesLoaded ) ) { + $this->loadRequestValues(); + } + return $this->mSearch; + } + + /** Make a special page URL of the form [[Special:Somepage/{title_urlform}]] */ + function makeSpecialParamUrl( $name, $query = '', $param = '{title_urlform}' ) { + // Abuse makeTitle's lax validity checking to slip a control character into the URL + $title = Title::makeTitle( NS_SPECIAL, "$name/\x1a" ); + $url = cbt_escape( $title->getLocalURL( $query ) ); + // Now replace it with the parameter + return str_replace( '%1A', $param, $url ); + } + + function getSubjectPage() { + if ( !isset( $this->mSubjectPage ) ) { + $this->mSubjectPage = $this->mTitle->getSubjectPage(); + } + return $this->mSubjectPage; + } + + function getTalkPage() { + if ( !isset( $this->mTalkPage ) ) { + $this->mTalkPage = $this->mTitle->getTalkPage(); + } + return $this->mTalkPage; + } +} +?> diff --git a/skins/htmldump/lookup.js b/skins/htmldump/lookup.js new file mode 100644 index 00000000..5fd8d019 --- /dev/null +++ b/skins/htmldump/lookup.js @@ -0,0 +1,91 @@ +/** + * "Go" function for static HTML dump + */ +function goToStatic(depth) { + var url = getStaticURL(document.getElementById("searchInput").value, depth); + if (url != "") { + location = url; + } else { + alert("Invalid title"); + } +} + +/** + * Determine relative path for a given non-canonical title + */ +function getStaticURL(text, depth) { + var pdbk = getPDBK(text); + if (pdbk == "") { + return ""; + } else { + var i; + var path = getHashedDirectory(pdbk, depth) + "/" + getFriendlyName(pdbk) + ".html"; + if (!/(index\.html|\/)$/.exec(location)) { + for (i = 0; i < depth; i++) { + path = "../" + path; + } + } + return path; + } +} + +function getPDBK(text) { + // Spaces to underscores + text = text.replace(/ /g, "_"); + + // Trim leading and trailing space + text = text.replace(/^_+/g, ""); + text = text.replace(/_+$/g, ""); + + // Capitalise first letter + return ucfirst(text); +} + +function getHashedDirectory(pdbk, depth) { + // Find the first colon if there is one, use characters after it + var dbk = pdbk.replace(/^[^:]*:_*(.*)$/, "$1"); + var i, c, dir = ""; + + for (i=0; i < depth; i++) { + if (i) { + dir += "/"; + } + if (i >= dbk.length) { + dir += "_"; + } else { + c = dbk.charAt(i); + cc = dbk.charCodeAt(i); + + if (cc >= 128 || /[a-zA-Z0-9!#$%&()+,[\]^_`{}-]/.exec(c)) { + dir += c.toLowerCase(); + } else { + dir += binl2hex([cc]).substr(0,2).toUpperCase(); + } + } + } + return dir; +} + +function ucfirst(s) { + return s.charAt(0).toUpperCase() + s.substring(1, s.length); +} + +function getFriendlyName(name) { + // Replace illegal characters for Windows paths with underscores + var friendlyName = name.replace(/[\/\\*?"<>|~]/g, "_"); + + // Work out lower case form. We assume we're on a system with case-insensitive + // filenames, so unless the case is of a special form, we have to disambiguate + var lowerCase = ucfirst(name.toLowerCase()); + + // Make it mostly unique + if (lowerCase != friendlyName) { + friendlyName += "_" + hex_md5(_to_utf8(name)).substring(0, 4); + } + // Handle colon specially by replacing it with tilde + // Thus we reduce the number of paths with hashes appended + friendlyName = friendlyName.replace(":", "~"); + + return friendlyName; +} + diff --git a/skins/htmldump/main.css b/skins/htmldump/main.css new file mode 100644 index 00000000..d1b4a92b --- /dev/null +++ b/skins/htmldump/main.css @@ -0,0 +1,9 @@ +@import "../monobook/main.css"; + +#footer li { + display: block; +} +head:first-child + body #footer li { white-space: normal; } +.usermessage { display: none; } +.editsection { display: none; } + diff --git a/skins/htmldump/md5.js b/skins/htmldump/md5.js new file mode 100644 index 00000000..46d2aab7 --- /dev/null +++ b/skins/htmldump/md5.js @@ -0,0 +1,256 @@ +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} +function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} +function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} +function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } +function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } +function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md5_vm_test() +{ + return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; +} + +/* + * Calculate the MD5 of an array of little-endian words, and a bit length + */ +function core_md5(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function md5_cmn(q, a, b, x, s, t) +{ + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); +} +function md5_ff(a, b, c, d, x, s, t) +{ + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5_gg(a, b, c, d, x, s, t) +{ + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5_hh(a, b, c, d, x, s, t) +{ + return md5_cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5_ii(a, b, c, d, x, s, t) +{ + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +/* + * Calculate the HMAC-MD5, of a key and some data + */ +function core_hmac_md5(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md5(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} diff --git a/skins/htmldump/utf8.js b/skins/htmldump/utf8.js new file mode 100644 index 00000000..ea3b890c --- /dev/null +++ b/skins/htmldump/utf8.js @@ -0,0 +1,72 @@ +/** + * Obtained from http://homepage3.nifty.com/aokura/jscript/index.html + * The webpage says, among other things: + * * ソースコードの全てあるいは一部を使用したことにより生じた損害に関しては一切責任を負いません。 + * * ソースコードの使用、配布に制限はありません。ご自由にお使いください。 + * * 動作チェックが不充分な場合もありますので、注意してください。 + * + * Which, loosely translated, means: + * * The author takes no responsibility for damage which occurs due to the use of this code. + * * There is no restriction on the use and distribution of the source code. Please use freely. + * * Please be careful, testing may have been insufficient. + */ + + +/********************************************************************** + * + * Unicode ⇔ UTF-8 + * + * Copyright (c) 2005 AOK + * + **********************************************************************/ + +function _to_utf8(s) { + var c, d = ""; + for (var i = 0; i < s.length; i++) { + c = s.charCodeAt(i); + if (c <= 0x7f) { + d += s.charAt(i); + } else if (c >= 0x80 && c <= 0x7ff) { + d += String.fromCharCode(((c >> 6) & 0x1f) | 0xc0); + d += String.fromCharCode((c & 0x3f) | 0x80); + } else { + d += String.fromCharCode((c >> 12) | 0xe0); + d += String.fromCharCode(((c >> 6) & 0x3f) | 0x80); + d += String.fromCharCode((c & 0x3f) | 0x80); + } + } + return d; +} + +function _from_utf8(s) { + var c, d = "", flag = 0, tmp; + for (var i = 0; i < s.length; i++) { + c = s.charCodeAt(i); + if (flag == 0) { + if ((c & 0xe0) == 0xe0) { + flag = 2; + tmp = (c & 0x0f) << 12; + } else if ((c & 0xc0) == 0xc0) { + flag = 1; + tmp = (c & 0x1f) << 6; + } else if ((c & 0x80) == 0) { + d += s.charAt(i); + } else { + flag = 0; + } + } else if (flag == 1) { + flag = 0; + d += String.fromCharCode(tmp | (c & 0x3f)); + } else if (flag == 2) { + flag = 3; + tmp |= (c & 0x3f) << 6; + } else if (flag == 3) { + flag = 0; + d += String.fromCharCode(tmp | (c & 0x3f)); + } else { + flag = 0; + } + } + return d; +} + diff --git a/skins/monobook/IE50Fixes.css b/skins/monobook/IE50Fixes.css new file mode 100644 index 00000000..027e32ed --- /dev/null +++ b/skins/monobook/IE50Fixes.css @@ -0,0 +1,67 @@ +/* +** IE5.0 Fix Stylesheet +*/ + +#column-content { + margin: 0 !important; + float: none; +} +#column-content #content { + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + overflow: visible; + top: 0; + left: 0; + z-index: 3; +} +#footer { + margin: 0 0 0 13.6em; +} + +/* IE 5 & 5.5 interpret keyword sizes one off */ +body { font-size: xx-small; } +/* +** the edit tabs +*/ +#p-cactions li { + float: left; + padding-top: 0; + padding-bottom: 0 !important; + height: 0.9em; +} +#p-cactions li a { + display: block; + padding-bottom: 0.045em; +} +#p-cactions li.selected a { + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +/* 5.0 doesn't like the background icon for external links and user */ +.link-external, +.external { + background: none; + padding: 0; +} +#p-personal ul { float: right } +#p-personal li { float: left } +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login, +li#pt-logout { + background: none; + padding-left: none; +} +.visualClear { + width: 100%; + height: 0px; + padding:0; + margin: 0; +} +.firstHeading { margin-bottom: .3em; } +/*div{ border:1px solid Red !important;}*/ diff --git a/skins/monobook/IE55Fixes.css b/skins/monobook/IE55Fixes.css new file mode 100644 index 00000000..637daae1 --- /dev/null +++ b/skins/monobook/IE55Fixes.css @@ -0,0 +1,85 @@ +/* IE5.5/win- only fixes */ + +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + position: relative; + z-index: 5; + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; + width: 100%; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/*#bodyContent div, +#bodyContent pre { overflow: auto; }*/ + +#p-personal { padding-bottom: .1em; } + +body { font-size: xx-small; } + +#p-cactions { + width: 76% !important; + z-index: 3 !important; + float: none; +} +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +.portlet { + overflow: hidden; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +.visualClear { + width: 90%; + height: 1px; + padding: 0; + margin: 0; +} + +#editform { + width: 100%; +} diff --git a/skins/monobook/IE60Fixes.css b/skins/monobook/IE60Fixes.css new file mode 100644 index 00000000..6b646c70 --- /dev/null +++ b/skins/monobook/IE60Fixes.css @@ -0,0 +1,84 @@ +/* 6.0 - only fixes */ +/* content area */ +/* workaround for various ie float bugs */ +#column-content { + float: none; + margin-left: 0; + height: 1%; +} +#column-content #content { + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} +#column-one { + position: absolute; + top: 0; + left: 0; + z-index: 4; +} +#footer { + margin-left: 13.6em; + border-left: 1px solid #fabd23; +} + +/* the tabs */ + +#p-cactions { + z-index: 3; +} + +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +#portal-personaltools { + padding-bottom: 0.1em; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} + +/* show the hand */ +#p-logo a, +#p-logo a:hover { + cursor: pointer; +} +div.visualClear { + width:100%; + line-height: 0; +} +textarea { + width: 96%; +} + +div.editsection, +#catlinks, +div.tright, +div.tleft { + position: relative; +} +/*{ border:1px solid Red !important;}*/ + diff --git a/skins/monobook/IE70Fixes.css b/skins/monobook/IE70Fixes.css new file mode 100644 index 00000000..2a2c9c77 --- /dev/null +++ b/skins/monobook/IE70Fixes.css @@ -0,0 +1,75 @@ +/* 7.0 - only fixes */ +/* content area */ +/* workaround for various ie float bugs */ + +/* This bit is needed to make links clickable... WTF */ +#column-content #content { + margin-left: 12.2em; + margin-top: 3em; + height: 1%; +} + +.rtl #column-one { + /* For some reason it tries to inherit the padding-top into every div, + * and I can't figure out how to get it back off. + */ + padding-top: 0; +} +.rtl #column-one #p-navigation { + margin-top: 160px; +} + +/* the tabs */ + +#p-cactions { + z-index: 3; +} + + +#p-cactions li { + padding-bottom: 0 !important; + border: none; + background-color: transparent; + cursor: default; + float: none !important; +} + +#p-cactions li a { + display: inline-block !important; + vertical-align: top; + padding-bottom: 0; + border: solid #aaa; + border-width: 1px 1px 0; +} +#p-cactions li.selected a { + border-color: #fabd23; + padding-bottom: 0.17em; +} +#p-cactions li a:hover { + padding-bottom: 0.17em; +} +#p-navigation a { + display: inline-block; + width: 100%; +} +#portal-personaltools { + padding-bottom: 0.1em; +} +textarea { + width: 96%; +} + +/* +div.editsection, +#catlinks, +div.tright, +div.tleft { + position: relative; +} +*/ + + +#footer li { + /* Work around bug with inline
  • tags with right margins and nowrap */ + margin-right: 0; +} diff --git a/skins/monobook/IEMacFixes.css b/skins/monobook/IEMacFixes.css new file mode 100644 index 00000000..f1b05719 --- /dev/null +++ b/skins/monobook/IEMacFixes.css @@ -0,0 +1,44 @@ +/* IE/Mac only fix stylesheet, imported from main.css */ +#portal-column-content { + margin: 0 0 4.8em 0; + float: none; +} +#portal-column-content #content { + z-index: 0; +} +#portal-column-one { + position: absolute; + top: 0; + left: 0; + z-index: 3; +} +#portal-footer { + margin-left: 12em; +} +/* +#portlet-contentViews { + top: 0.6em !important; + left: 14.5em !important; +} +*/ +#portlet-contentViews li, +#portlet-contentViews .selected { + border: none !important; +} +#portlet-contentViews li a { + border: 1px solid #aaaaaa; + border-bottom: none; +} +#portlet-contentViews li.selected a { + border: 1px solid #fabd23; + border-bottom: none; +} +/* no background images */ +li#personaltools-userpage, +li#personaltools-login/* */ { + background: none; + padding-left: none; +} +#mactest { + color: green; +} diff --git a/skins/monobook/KHTMLFixes.css b/skins/monobook/KHTMLFixes.css new file mode 100644 index 00000000..97fba0c4 --- /dev/null +++ b/skins/monobook/KHTMLFixes.css @@ -0,0 +1,3 @@ +/* KHTML fix stylesheet */ +/* work around the horizontal scrollbars */ +#column-content { margin-left: 0; } diff --git a/skins/monobook/Opera6Fixes.css b/skins/monobook/Opera6Fixes.css new file mode 100644 index 00000000..88704739 --- /dev/null +++ b/skins/monobook/Opera6Fixes.css @@ -0,0 +1,14 @@ +/* opera 6 fixes */ +#column-one { + position: relative; + max-width: 11.7em; +} +#p-personal { + width: 45em; + margin-left: 8.6em; + right: 0; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} diff --git a/skins/monobook/Opera7Fixes.css b/skins/monobook/Opera7Fixes.css new file mode 100644 index 00000000..446ea44c --- /dev/null +++ b/skins/monobook/Opera7Fixes.css @@ -0,0 +1,11 @@ +/* small tweaks for opera seven */ +#p-cactions { + margin-top: .1em; +} +#p-cactions li a { + top: 2px; +} +#bodyContent a.external { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} diff --git a/skins/monobook/bullet.gif b/skins/monobook/bullet.gif new file mode 100644 index 00000000..b43de48a Binary files /dev/null and b/skins/monobook/bullet.gif differ diff --git a/skins/monobook/discussionitem_icon.gif b/skins/monobook/discussionitem_icon.gif new file mode 100644 index 00000000..baec471a Binary files /dev/null and b/skins/monobook/discussionitem_icon.gif differ diff --git a/skins/monobook/external.png b/skins/monobook/external.png new file mode 100644 index 00000000..419c06fb Binary files /dev/null and b/skins/monobook/external.png differ diff --git a/skins/monobook/file_icon.gif b/skins/monobook/file_icon.gif new file mode 100644 index 00000000..847f6485 Binary files /dev/null and b/skins/monobook/file_icon.gif differ diff --git a/skins/monobook/headbg.jpg b/skins/monobook/headbg.jpg new file mode 100644 index 00000000..5491c6e4 Binary files /dev/null and b/skins/monobook/headbg.jpg differ diff --git a/skins/monobook/link_icon.gif b/skins/monobook/link_icon.gif new file mode 100644 index 00000000..815ccb1b Binary files /dev/null and b/skins/monobook/link_icon.gif differ diff --git a/skins/monobook/lock_icon.gif b/skins/monobook/lock_icon.gif new file mode 100644 index 00000000..8a87e283 Binary files /dev/null and b/skins/monobook/lock_icon.gif differ diff --git a/skins/monobook/magnify-clip.png b/skins/monobook/magnify-clip.png new file mode 100644 index 00000000..992aa2e3 Binary files /dev/null and b/skins/monobook/magnify-clip.png differ diff --git a/skins/monobook/mail_icon.gif b/skins/monobook/mail_icon.gif new file mode 100644 index 00000000..50a87a9a Binary files /dev/null and b/skins/monobook/mail_icon.gif differ diff --git a/skins/monobook/main.css b/skins/monobook/main.css new file mode 100644 index 00000000..6373d18f --- /dev/null +++ b/skins/monobook/main.css @@ -0,0 +1,1448 @@ +/* +** MediaWiki 'monobook' style sheet for CSS2-capable browsers. +** Copyright Gabriel Wicke - http://wikidev.net/ +** License: GPL (http://www.gnu.org/copyleft/gpl.html) +** +** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John +** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, +** Michael Zeltner and Geir Bækholt) +** All you guys rock :) +*/ + +#column-content { + width: 100%; + float: right; + margin: 0 0 .6em -12.2em; + padding: 0; +} +#content { + margin: 2.8em 0 0 12.2em; + padding: 0 1em 1.5em 1em; + background: white; + color: black; + border: 1px solid #aaa; + border-right: none; + line-height: 1.5em; + position: relative; + z-index: 2; +} +#column-one { + padding-top: 160px; +} +/* the left column width is specified in class .portlet */ + +/* Font size: +** We take advantage of keyword scaling- browsers won't go below 9px +** More at http://www.w3.org/2003/07/30-font-size +** http://style.cleverchimp.com/font_size_intervals/altintervals.html +*/ + +body { + font: x-small sans-serif; + background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; + color: black; + margin: 0; + padding: 0; +} + +/* scale back up to a sane default */ +#globalWrapper { + font-size: 127%; + width: 100%; + margin: 0; + padding: 0; +} +.visualClear { + clear: both; +} + +/* general styles */ + +table { + background: white; + font-size: 100%; + color: black; +} +a { + text-decoration: none; + color: #002bb8; + background: none; +} +a:visited { + color: #5a3696; +} +a:active { + color: #faa700; +} +a:hover { + text-decoration: underline; +} +a.stub { + color: #772233; +} +a.new, #p-personal a.new { + color: #ba0000; +} +a.new:visited, #p-personal a.new:visited { + color: #a55858; +} + +img { + border: none; + vertical-align: middle; +} +p { + margin: .4em 0 .5em 0; + line-height: 1.5em; +} +p img { + margin: 0; +} + +hr { + height: 1px; + color: #aaa; + background-color: #aaa; + border: 0; + margin: .2em 0 .2em 0; +} + +h1, h2, h3, h4, h5, h6 { + color: black; + background: none; + font-weight: normal; + margin: 0; + padding-top: .5em; + padding-bottom: .17em; + border-bottom: 1px solid #aaa; +} +h1 { font-size: 188%; } +h2 { font-size: 150%; } +h3, h4, h5, h6 { + border-bottom: none; + font-weight: bold; +} +h3 { font-size: 132%; } +h4 { font-size: 116%; } +h5 { font-size: 100%; } +h6 { font-size: 80%; } + +ul { + line-height: 1.5em; + list-style-type: square; + margin: .3em 0 0 1.5em; + padding: 0; + list-style-image: url(bullet.gif); +} +ol { + line-height: 1.5em; + margin: .3em 0 0 3.2em; + padding: 0; + list-style-image: none; +} +li { + margin-bottom: .1em; +} +dt { + font-weight: bold; + margin-bottom: .1em; +} +dl { + margin-top: .2em; + margin-bottom: .5em; +} +dd { + line-height: 1.5em; + margin-left: 2em; + margin-bottom: .1em; +} + +fieldset { + border: 1px solid #2f6fab; + margin: 1em 0 1em 0; + padding: 0 1em 1em; + line-height: 1.5em; +} +legend { + background: white; + padding: .5em; + font-size: 95%; +} +form { + border: none; + margin: 0; +} + +textarea { + width: 100%; + padding: .1em; +} + +input.historysubmit { + padding: 0 .3em .3em .3em !important; + font-size: 94%; + cursor: pointer; + height: 1.7em !important; + margin-left: 1.6em; +} +select { + vertical-align: top; +} +abbr, acronym, .explain { + border-bottom: 1px dotted black; + color: black; + background: none; + cursor: help; +} +q { + font-family: Times, "Times New Roman", serif; + font-style: italic; +} +/* disabled for now +blockquote { + font-family: Times, "Times New Roman", serif; + font-style: italic; +}*/ +code { + background-color: #f9f9f9; +} +pre { + padding: 1em; + border: 1px dashed #2f6fab; + color: black; + background-color: #f9f9f9; + line-height: 1.1em; +} + +/* +** the main content area +*/ + +#siteSub { + display: none; +} + +#jump-to-nav { + display: none; +} + +#contentSub, #contentSub2 { + font-size: 84%; + line-height: 1.2em; + margin: 0 0 1.4em 1em; + color: #7d7d7d; + width: auto; +} +span.subpages { + display: block; +} + +/* Some space under the headers in the content area */ +#bodyContent h1, #bodyContent h2 { + margin-bottom: .6em; +} +#bodyContent h3, #bodyContent h4, #bodyContent h5 { + margin-bottom: .3em; +} +.firstHeading { + margin-bottom: .1em; +} + +/* user notification thing */ +.usermessage { + background-color: #ffce7b; + border: 1px solid #ffa500; + color: black; + font-weight: bold; + margin: 2em 0 1em; + padding: .5em 1em; + vertical-align: middle; +} +#siteNotice { + text-align: center; + font-size: 95%; + padding: 0 .9em; +} +#siteNotice p { + margin: 0; + padding: 0; +} +.error { + color: red; + font-size: larger; +} +.errorbox, .successbox { + font-size: larger; + border: 2px solid; + padding: .5em 1em; + float: left; + margin-bottom: 2em; + color: #000; +} +.errorbox { + border-color: red; + background-color: #fff2f2; +} +.successbox { + border-color: green; + background-color: #dfd; +} +.errorbox h2, .successbox h2 { + font-size: 1em; + font-weight: bold; + display: inline; + margin: 0 .5em 0 0; + border: none; +} + +#catlinks { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + margin-top: 1em; + clear: both; +} +/* currently unused, intended to be used by a metadata box +in the bottom-right corner of the content area */ +.documentDescription { + /* The summary text describing the document */ + font-weight: bold; + display: block; + margin: 1em 0; + line-height: 1.5em; +} +.documentByLine { + text-align: right; + font-size: 90%; + clear: both; + font-weight: normal; + color: #76797c; +} + +/* emulate center */ +.center { + width: 100%; + text-align: center; +} +*.center * { + margin-left: auto; + margin-right: auto; +} +/* small for tables and similar */ +.small, .small * { + font-size: 94%; +} +table.small { + font-size: 100%; +} + +/* +** content styles +*/ + +#toc, +.toc, +.mw-warning { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} +#toc h2, +.toc h2 { + display: inline; + border: none; + padding: 0; + font-size: 100%; + font-weight: bold; +} +#toc #toctitle, +.toc #toctitle, +#toc .toctitle, +.toc .toctitle { + text-align: center; +} +#toc ul, +.toc ul { + list-style-type: none; + list-style-image: none; + margin-left: 0; + padding-left: 0; + text-align: left; +} +#toc ul ul, +.toc ul ul { + margin: 0 0 0 2em; +} +#toc .toctoggle, +.toc .toctoggle { + font-size: 94%; +} + +.mw-warning { + margin-left: 50px; + margin-right: 50px; + text-align: center; +} + +/* images */ +div.floatright, table.floatright { + clear: right; + float: right; + position: relative; + margin: 0 0 .5em .5em; + border: 0; +/* + border: .5em solid white; + border-width: .5em 0 .8em 1.4em; +*/ +} +div.floatright p { font-style: italic; } +div.floatleft, table.floatleft { + float: left; + position: relative; + margin: 0 .5em .5em 0; + border: 0; +/* + margin: .3em .5em .5em 0; + border: .5em solid white; + border-width: .5em 1.4em .8em 0; +*/ +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: .5em; + border-style: solid; + border-color: white; + width: auto; +} +div.thumb div { + border: 1px solid #ccc; + padding: 3px !important; + background-color: #f9f9f9; + font-size: 94%; + text-align: center; + overflow: hidden; +} +div.thumb div a img { + border: 1px solid #ccc; +} +div.thumb div div.thumbcaption { + border: none; + text-align: left; + line-height: 1.4em; + padding: .3em 0 .1em 0; +} +div.magnify { + float: right; + border: none !important; + background: none !important; +} +div.magnify a, div.magnify img { + display: block; + border: none !important; + background: none !important; +} +div.tright { + clear: right; + float: right; + border-width: .5em 0 .8em 1.4em; +} +div.tleft { + float: left; + margin-right: .5em; + border-width: .5em 1.4em .8em 0; +} + +.hiddenStructure { + display: none; + speak: none; +} +img.tex { + vertical-align: middle; +} +span.texhtml { + font-family: serif; +} + +/* +** classes for special content elements like town boxes +** intended to be referenced directly from the wiki src +*/ + +/* +** User styles +*/ +/* table standards */ +table.rimage { + float: right; + position: relative; + margin-left: 1em; + margin-bottom: 1em; + text-align: center; +} +.toccolours { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; +} +div.townBox { + position: relative; + float: right; + background: white; + margin-left: 1em; + border: 1px solid gray; + padding: .3em; + width: 200px; + overflow: hidden; + clear: right; +} +div.townBox dl { + padding: 0; + margin: 0 0 .3em; + font-size: 96%; +} +div.townBox dl dt { + background: none; + margin: .4em 0 0; +} +div.townBox dl dd { + margin: .1em 0 0 1.1em; + background-color: #f3f3f3; +} + +/* +** edit views etc +*/ +.special li { + line-height: 1.4em; + margin: 0; + padding: 0; +} + +/* Page history styling */ +/* the auto-generated edit comments */ +.autocomment { + color: gray; +} +#pagehistory span.user { + margin-left: 1.4em; + margin-right: .4em; +} +#pagehistory span.minor { + font-weight: bold; +} +#pagehistory li { + border: 1px solid white; +} +#pagehistory li.selected { + background-color: #f9f9f9; + border: 1px dashed #aaa; +} + +/* +** Diff rendering +*/ +table.diff, td.diff-otitle, td.diff-ntitle { + background-color: white; +} +td.diff-addedline { + background: #cfc; + font-size: smaller; +} +td.diff-deletedline { + background: #ffa; + font-size: smaller; +} +td.diff-context { + background: #eee; + font-size: smaller; +} +span.diffchange { + color: red; + font-weight: bold; +} + +/* +** keep the whitespace in front of the ^=, hides rule from konqueror +** this is css3, the validator doesn't like it when validating as css2 +*/ +#bodyContent a.external, +#bodyContent a[href ^="gopher://"] { + background: url(external.png) center right no-repeat; + padding-right: 13px; +} +#bodyContent a[href ^="https://"], +.link-https { + background: url(lock_icon.gif) center right no-repeat; + padding-right: 16px; +} +#bodyContent a[href ^="mailto:"], +.link-mailto { + background: url(mail_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="news://"] { + background: url(news_icon.png) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="ftp://"], +.link-ftp { + background: url(file_icon.gif) center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="irc://"], +.link-irc { + background: url(discussionitem_icon.gif) center right no-repeat; + padding-right: 18px; +} +/* disable interwiki styling */ +#bodyContent a.extiw, +#bodyContent a.extiw:active { + color: #36b; + background: none; + padding: 0; +} +#bodyContent a.external { + color: #36b; +} +/* this can be used in the content area to switch off +special external link styling */ +#bodyContent .plainlinks a { + background: none !important; + padding: 0 !important; +} +/* +** Structural Elements +*/ + +/* +** general portlet styles (elements in the quickbar) +*/ +.portlet { + border: none; + margin: 0 0 .5em; + padding: 0; + float: none; + width: 11.6em; + overflow: hidden; +} +.portlet h4 { + font-size: 95%; + font-weight: normal; + white-space: nowrap; +} +.portlet h5 { + background: transparent; + padding: 0 1em 0 .5em; + display: inline; + height: 1em; + text-transform: lowercase; + font-size: 91%; + font-weight: normal; + white-space: nowrap; +} +.portlet h6 { + background: #ffae2e; + border: 1px solid #2f6fab; + border-style: solid solid none solid; + padding: 0 1em 0 1em; + text-transform: lowercase; + display: block; + font-size: 1em; + height: 1.2em; + font-weight: normal; + white-space: nowrap; +} +.pBody { + font-size: 95%; + background-color: white; + color: black; + border-collapse: collapse; + border: 1px solid #aaa; + padding: 0 .8em .3em .5em; +} +.portlet h1, +.portlet h2, +.portlet h3, +.portlet h4 { + margin: 0; + padding: 0; +} +.portlet ul { + line-height: 1.5em; + list-style-type: square; + list-style-image: url(bullet.gif); + font-size: 95%; +} +.portlet li { + padding: 0; + margin: 0; +} + +/* +** Logo properties +*/ + +#p-logo { + z-index: 3; + position: absolute; /*needed to use z-index */ + top: 0; + left: 0; + height: 155px; + width: 12em; + overflow: visible; +} +#p-logo h5 { + display: none; +} +#p-logo a, +#p-logo a:hover { + display: block; + height: 155px; + width: 12.2em; + background-repeat: no-repeat; + background-position: 35% 50% !important; + text-decoration: none; +} + +/* +** the navigation portlet +*/ + +#p-navigation { + position: relative; + z-index: 3; +} + +#p-navigation .pBody { + padding-right: 0; +} + +#p-navigation a { + display: block; +} + +#p-navigation li.active a, #p-navigation li.active a:hover { + text-decoration: none; + display: inline; + font-weight: bold; +} + + +/* +** Search portlet +*/ +#p-search { + position: relative; + z-index: 3; +} +input.searchButton { + margin-top: 1px; + font-size: 95%; +} +#searchGoButton { + padding-left: .5em; + padding-right: .5em; + font-weight: bold; +} +#searchInput { + width: 10.9em; + margin: 0; + font-size: 95%; +} +#p-search .pBody { + padding: .5em .4em .4em .4em; + text-align: center; +} + +/* +** the personal toolbar +*/ + +#p-personal { + width: 100%; + white-space: nowrap; + padding: 0; + margin: 0; + position: absolute; + left: 0; + top: 0; + z-index: 0; + border: none; + background: none; + overflow: visible; + line-height: 1.2em; +} + +#p-personal h5 { + display: none; +} +#p-personal .portlet, +#p-personal .pBody { + padding: 0; + margin: 0; + border: none; + z-index: 0; + overflow: visible; + background: none; +} +/* this is the ul contained in the portlet */ +#p-personal ul { + border: none; + line-height: 1.4em; + color: #2f6fab; + padding: 0 2em 0 3em; + margin: 0; + text-align: right; + text-transform: lowercase; + list-style: none; + z-index: 0; + background: none; + cursor: default; +} +#p-personal li { + z-index: 0; + border: none; + padding: 0; + display: inline; + color: #2f6fab; + margin-left: 1em; + line-height: 1.2em; + background: none; +} +#p-personal li.active { + font-weight: bold; +} +#p-personal li a { + text-decoration: none; + color: #005896; + padding-bottom: .2em; + background: none; +} +#p-personal li a:hover { + background-color: white; + padding-bottom: .2em; + text-decoration: none; +} +#p-personal li.active a:hover { + background-color: transparent; +} +/* the icon in front of the user name, single quotes +in bg url to hide it from iemac */ +li#pt-userpage, +li#pt-anonuserpage, +li#pt-login { + background: url(user.gif) top left no-repeat; + padding-left: 20px; + text-transform: none; +} + +/* +** the page-related actions- page/talk, edit etc +*/ +#p-cactions { + position: absolute; + top: 1.3em; + left: 11.5em; + margin: 0; + white-space: nowrap; + width: 76%; + line-height: 1.1em; + overflow: visible; + background: none; + border-collapse: collapse; + padding-left: 1em; + list-style: none; + font-size: 95%; +} +#p-cactions .hiddenStructure { + display: none; +} +#p-cactions ul { + list-style: none; +} +#p-cactions li { + display: inline; + border: 1px solid #aaa; + border-bottom: none; + padding: 0 0 .1em 0; + margin: 0 .3em 0 0; + overflow: visible; + background: white; +} +#p-cactions li.selected { + border-color: #fabd23; + padding: 0 0 .2em 0; + font-weight: bold; +} +#p-cactions li a { + background-color: #fbfbfb; + color: #002bb8; + border: none; + padding: 0 .8em .3em; + text-decoration: none; + text-transform: lowercase; + position: relative; + z-index: 0; + margin: 0; +} +#p-cactions li.selected a { + z-index: 3; + background-color: #fff; + padding: 0 1em .2em!important; +} +#p-cactions .new a { + color: #ba0000; +} +#p-cactions li a:hover { + z-index: 3; + text-decoration: none; + background-color: #fff; +} +#p-cactions h5 { + display: none; +} +#p-cactions li.istalk { + margin-right: 0; +} +#p-cactions li.istalk a { + padding-right: .5em; +} +#p-cactions #ca-addsection a { + padding-left: .4em; + padding-right: .4em; +} +/* offsets to distinguish the tab groups */ +li#ca-talk { + margin-right: 1.6em; +} +li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { + margin-left: 1.6em; +} + +/* +** the remaining portlets +*/ +#p-tbx, +#p-lang { + position: relative; + z-index: 3; +} + +/* TODO: #t-iscite is only used by the Cite extension, come up with some + * system which allows extensions to add to this file on the fly + */ +#t-ispermalink, #t-iscite { + color: #999; +} +/* +** footer +*/ +#footer { + background-color: white; + border-top: 1px solid #fabd23; + border-bottom: 1px solid #fabd23; + margin: .6em 0 1em 0; + padding: .4em 0 1.2em 0; + text-align: center; + font-size: 90%; +} +#footer li { + display: inline; + margin: 0 1.3em; +} +/* hide from incapable browsers */ +head:first-child+body #footer li { white-space: nowrap; } +#f-poweredbyico, #f-copyrightico { + margin: 0 8px; + position: relative; + top: -2px; /* Bump it up just a tad */ +} +#f-poweredbyico { + float: right; + height: 1%; +} +#f-copyrightico { + float: left; + height: 1%; +} + +/* js pref toc */ +#preftoc { + margin: 0; + padding: 0; + width: 100%; + clear: both; +} +#preftoc li { + margin: 1px -2px 1px 2px; + float: left; + padding: 2px 0 3px 0; + background-color: #f0f0f0; + color: #000; + border: 1px solid #fff; + border-right-color: #716f64; + border-bottom: 0; + position: relative; + white-space: nowrap; + list-style-type: none; + list-style-image: none; + z-index: 3; +} +#preftoc li.selected { + font-weight: bold; + background-color: #f9f9f9; + border: 1px solid #aaa; + border-bottom: none; + cursor: default; + top: 1px; + padding-top: 2px; + margin-right: -3px; +} +#preftoc > li.selected { + top: 2px; +} +#preftoc a, +#preftoc a:active { + display: block; + color: #000; + padding: 0 .7em; + position: relative; + text-decoration: none; +} +#preftoc li.selected a { + cursor: default; + text-decoration: none; +} +#prefcontrol { + padding-top: 2em; + clear: both; +} +#preferences { + margin: 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em; + background-color: #F9F9F9; +} +.prefsection { + border: none; + padding: 0; + margin: 0; +} +.prefsection fieldset { + border: 1px solid #aaa; + float: left; + margin-right: 2em; +} +.prefsection legend { + font-weight: bold; +} +.prefsection table, .prefsection legend { + background-color: #F9F9F9; +} +.mainLegend { + display: none; +} +div.prefsectiontip { + font-size: 95%; + margin-top: 0; + background-color: #FFC1C1; + padding: .2em .7em; + clear: both; +} +.btnSavePrefs { + font-weight: bold; + padding-left: .3em; + padding-right: .3em; +} + +.preferences-login { + clear: both; + margin-bottom: 1.5em; +} + +.prefcache { + font-size: 90%; + margin-top: 2em; +} + +div#userloginForm form, +div#userlogin form#userlogin2 { + margin: 0 3em 1em 0; + border: 1px solid #aaa; + clear: both; + padding: 1.5em 2em; + background-color: #f9f9f9; + float: left; +} + +div#userloginForm table, +div#userlogin form#userlogin2 table { + background-color: #f9f9f9; +} + +div#userloginForm h2, +div#userlogin form#userlogin2 h2 { + padding-top: 0; +} + +div#userlogin .captcha { + border: 1px solid #bbb; + padding: 1.5em 2em; + width: 400px; + background-color: white; +} + + +#userloginprompt, #languagelinks { + font-size: 85%; +} + +#login-sectiontip { + font-size: 85%; + line-height: 1.2; + padding-top: 2em; +} + +#userlogin .loginText, #userlogin .loginPassword { + width: 12em; +} + +#userloginlink a, #wpLoginattempt, #wpCreateaccount { + font-weight: bold; +} + +/* +** IE/Mac fixes, hope to find a validating way to move this +** to a separate stylesheet. This would work but doesn't validate: +** @import("IEMacFixes.css"); +*/ +/* tabs: border on the a, not the div */ +* > html #p-cactions li { border: none; } +* > html #p-cactions li a { + border: 1px solid #aaa; + border-bottom: none; +} +* > html #p-cactions li.selected a { border-color: #fabd23; } +/* footer icons need a fixed width */ +* > html #f-poweredbyico, +* > html #f-copyrightico { width: 88px; } +* > html #bodyContent, +* > html #bodyContent pre { + overflow-x: auto; + width: 100%; + padding-bottom: 25px; +} + +/* more IE fixes */ +/* float/negative margin brokenness */ +* html #footer {margin-top: 0;} +* html #column-content { + display: inline; + margin-bottom: 0; +} +* html div.editsection { font-size: smaller; } +#pagehistory li.selected { position: relative; } + +/* Mac IE 5.0 fix; floated content turns invisible */ +* > html #column-content { + float: none; +} +* > html #column-one { + position: absolute; + left: 0; + top: 0; +} +* > html #footer { + margin-left: 13.2em; +} +.redirectText { + font-size: 150%; + margin: 5px; +} + +.printfooter { + display: none; +} + +.not-patrolled { + background-color: #ffa; +} +div.patrollink { + font-size: 75%; + text-align: right; +} +span.newpage, span.minor, span.searchmatch, span.bot { + font-weight: bold; +} +span.unpatrolled { + font-weight: bold; + color: red; +} + +span.searchmatch { + color: red; +} +.sharedUploadNotice { + font-style: italic; +} + +span.updatedmarker { + color: black; + background-color: #0f0; +} +span.newpageletter { + font-weight: bold; + color: black; + background-color: yellow; +} +span.minoreditletter { + color: black; + background-color: #c5ffe6; +} + +table.gallery { + border: 1px solid #ccc; + margin: 2px; + padding: 2px; + background-color: white; +} + +table.gallery tr { + vertical-align: top; +} + +table.gallery td { + vertical-align: top; + background-color: #f9f9f9; + border: solid 2px white; +} + +table.gallery td.galleryheader { + text-align: center; + font-weight: bold; +} + +div.gallerybox { + margin: 2px; + width: 150px; +} + +div.gallerybox div.thumb { + text-align: center; + border: 1px solid #ccc; + margin: 2px; +} + +div.gallerytext { + font-size: 94%; + padding: 2px 4px; +} + +span.comment { + font-style: italic; +} + +span.changedby { + font-size: 95%; +} + +.previewnote { + text-indent: 3em; + color: #c00; + border-bottom: 1px solid #aaa; + padding-bottom: 1em; + margin-bottom: 1em; +} + +.previewnote p { + margin: 0; + padding: 0; +} + +.editExternally { + border: 1px solid gray; + background-color: #ffffff; + padding: 3px; + margin-top: 0.5em; + float: left; + font-size: small; + text-align: center; +} +.editExternallyHelp { + font-style: italic; + color: gray; +} + +li span.deleted, span.history-deleted { + text-decoration: line-through; + color: #888; + font-style: italic; +} + +.toggle { + margin-left: 2em; + text-indent: -2em; +} + +/* Classes for EXIF data display */ +table.mw_metadata { + font-size: 0.8em; + margin-left: 0.5em; + margin-bottom: 0.5em; + width: 300px; +} + +table.mw_metadata caption { + font-weight: bold; +} + +table.mw_metadata th { + font-weight: normal; +} + +table.mw_metadata td { + padding: 0.1em; +} + +table.mw_metadata { + border: none; + border-collapse: collapse; +} + +table.mw_metadata td, table.mw_metadata th { + text-align: center; + border: 1px solid #aaaaaa; + padding-left: 0.1em; + padding-right: 0.1em; +} + +table.mw_metadata th { + background-color: #f9f9f9; +} + +table.mw_metadata td { + background-color: #fcfcfc; +} + +table.collapsed tr.collapsable { + display: none; +} + + +/* filetoc */ +ul#filetoc { + text-align: center; + border: 1px solid #aaaaaa; + background-color: #f9f9f9; + padding: 5px; + font-size: 95%; + margin-bottom: 0.5em; + margin-left: 0; + margin-right: 0; +} + +#filetoc li { + display: inline; + list-style-type: none; + padding-right: 2em; +} + +/* @bug 1714 */ +input#wpSave, input#wpDiff { + margin-right: 0.33em; +} + +#editform .editOptions { + display: inline; +} + +#wpSave { + font-weight: bold; +} + +/* Classes for article validation */ + +table.revisionform_default { + border: 1px solid #000000; +} + +table.revisionform_focus { + border: 1px solid #000000; + background-color:#00BBFF; +} + +tr.revision_tr_default { + background-color:#EEEEEE; +} + +tr.revision_tr_first { + background-color:#DDDDDD; +} + +p.revision_saved { + color: green; + font-weight:bold; +} + +#mw_trackbacks { + border: solid 1px #bbbbff; + background-color: #eeeeff; + padding: 0.2em; +} + + +/* Allmessages table */ + +#allmessagestable th { + background-color: #b2b2ff; +} + +#allmessagestable tr.orig { + background-color: #ffe2e2; +} + +#allmessagestable tr.new { + background-color: #e2ffe2; +} + +#allmessagestable tr.def { + background-color: #f0f0ff; +} + + +/* noarticletext */ +div.noarticletext { + border: 1px solid #ccc; + background: #fff; + padding: .2em 1em; + color: #000; +} + +div#searchTargetContainer { + left: 10px; + top: 10px; + width: 90%; + background: white; +} + +div#searchTarget { + padding: 3px; + margin: 5px; + background: #F0F0F0; + border: solid 1px blue; +} + +div#searchTarget ul li { + list-style: none; +} + +div#searchTarget ul li:before { + color: orange; + content: "\00BB \0020"; +} + diff --git a/skins/monobook/news_icon.png b/skins/monobook/news_icon.png new file mode 100644 index 00000000..dd1541d1 Binary files /dev/null and b/skins/monobook/news_icon.png differ diff --git a/skins/monobook/required.gif b/skins/monobook/required.gif new file mode 100644 index 00000000..bd719769 Binary files /dev/null and b/skins/monobook/required.gif differ diff --git a/skins/monobook/rtl.css b/skins/monobook/rtl.css new file mode 100644 index 00000000..91e2fb37 --- /dev/null +++ b/skins/monobook/rtl.css @@ -0,0 +1,212 @@ +/* +Right-to-left fixes for MonoBook. +Places sidebar on right, tweaks various alignment issues. + +Works mostly ok nicely on Safari 1.2.1; fine in Mozilla. + +Safari bugs (1.2.1): +* Tabs are still appearing in left-to-right order. (Try after localizing) + +Opera bugs (7.23 linux): +* Some bits of ltr text (sidebar box titles) have forward and backward versions overlapping each other + +IE/mac bugs: +* The thing barfs on Hebrew and Arabic anyway, so no point testing. + +Missing features due to lack of support: +* external link icons + +To test: +* Opera6 +* IE 5.0 +* etc + +*/ +body { + direction: rtl; +/* unicode-bidi: bidi-override;*/ + unicode-bidi: embed; +} +#column-content { + margin: 0 -12.2em 0 0; + float: left; +} +#column-content #content{ + margin-left: 0; + margin-right: 12.2em; + border-right: 1px solid #aaaaaa; + border-left: none; +} +html>body .portlet { + float: right; + clear: right; +} +/* recover IEMac (might be fine with the float, but usually it's close to IE */ +*>body .portlet { + float: none; + clear: none; +} +.pBody { + padding-right: 0.8em; + padding-left: 0.5em; +} + +/* Fix alignment */ +.documentByLine, +.portletDetails, +.portletMore, +#p-personal { + text-align: left; +} + +div div.thumbcaption { + text-align: right; +} + +div.magnify, +#div.townBox, +#p-logo { + left: auto; + right: 0; +} +#p-personal { + left: auto; + right: 0; +} + +#p-cactions { + left: auto; + right: 11.5em; + padding-left: 0; + padding-right: 1em; +} +#p-cactions li { + margin-left: 0.3em; + margin-right: 0; + float: right; +} +* html #p-cactions li a { + display: block; + padding-bottom: 0; +} +* html #p-cactions li a:hover { + padding-bottom: 0.2em; +} +/* offsets to distinguish the tab groups */ +li#ca-talk { + margin-right: auto; + margin-left: 1.6em; +} +li#ca-watch,li#ca-unwatch { + margin-right: 1.6em !important; +} + +/* Fix margins for non-css2 browsers */ +/* top right bottom left */ + +ul { + margin-left: 0; + margin-right: 1.5em; +} +ol { + margin-left: 0; + margin-right: 2.4em; +} +dd { + margin-left: 0; + margin-right: 1.6em; +} +#contentSub { + margin-right: 1em; + margin-left: 0; +} +.tocindent { + margin-left: 0; + margin-right: 2em; +} +div.tright, div.floatright, table.floatright { + clear: none; +} +div.tleft, div.floatleft, table.floatleft { + clear: left; +} +div.townBox { + margin-left: 0; + margin-right: 1em; +} +div.townBox dl dd { + margin-left: 0; + margin-right: 1.1em; +} +#p-personal li { + margin-left: 0; + margin-right: 1em; +} + +li#ca-talk, +li#ca-watch { + margin-right: auto; + margin-left: 1.6em; +} + +#p-personal li { + float: left; +} +/* Fix link icons */ +.external { + padding: 0 !important; + background: none !important; +} +#footer { + clear: both; +} +* html #footer { + margin-left: 0; + margin-right: 13.6em; + border-left: 0; + border-right: 1px solid #fabd23; +} +* html #column-content { + float: none; + margin-left: 0; + margin-right: 0; +} +* html #column-content #content { + margin-left: 0; + margin-top: 3em; +} +* html #column-one { right: 0; } + +/* js pref toc */ + +#preftoc { + margin-right: 1em; +} + +.errorbox, .successbox, #preftoc li, .prefsection fieldset { + float: right; +} + +.prefsection { + padding-right: 2em; +} + +/* workaround for moz bug, displayed bullets on left side */ + +#toc ul { + text-align: right; +} + +#toc ul ul { + margin: 0 2em 0 0; +} + +input#wpSave, input#wpDiff { + margin-right: 0; + margin-left: .33em; +} + +#userlogin { + float: right; + margin: 0 0 1em 3em; +} diff --git a/skins/monobook/user.gif b/skins/monobook/user.gif new file mode 100644 index 00000000..bc934396 Binary files /dev/null and b/skins/monobook/user.gif differ diff --git a/skins/monobook/wiki-indexed.png b/skins/monobook/wiki-indexed.png new file mode 100644 index 00000000..189a2ae3 Binary files /dev/null and b/skins/monobook/wiki-indexed.png differ diff --git a/skins/monobook/wiki.png b/skins/monobook/wiki.png new file mode 100644 index 00000000..69fce988 Binary files /dev/null and b/skins/monobook/wiki.png differ diff --git a/skins/myskin/main.css b/skins/myskin/main.css new file mode 100644 index 00000000..f3ab0204 --- /dev/null +++ b/skins/myskin/main.css @@ -0,0 +1 @@ +/* this file must be empty */ diff --git a/skins/simple/discussionitem_icon.gif b/skins/simple/discussionitem_icon.gif new file mode 100644 index 00000000..baec471a Binary files /dev/null and b/skins/simple/discussionitem_icon.gif differ diff --git a/skins/simple/external.png b/skins/simple/external.png new file mode 100644 index 00000000..419c06fb Binary files /dev/null and b/skins/simple/external.png differ diff --git a/skins/simple/file_icon.gif b/skins/simple/file_icon.gif new file mode 100644 index 00000000..847f6485 Binary files /dev/null and b/skins/simple/file_icon.gif differ diff --git a/skins/simple/link_icon.gif b/skins/simple/link_icon.gif new file mode 100644 index 00000000..815ccb1b Binary files /dev/null and b/skins/simple/link_icon.gif differ diff --git a/skins/simple/lock_icon.gif b/skins/simple/lock_icon.gif new file mode 100644 index 00000000..8a87e283 Binary files /dev/null and b/skins/simple/lock_icon.gif differ diff --git a/skins/simple/mail_icon.gif b/skins/simple/mail_icon.gif new file mode 100644 index 00000000..50a87a9a Binary files /dev/null and b/skins/simple/mail_icon.gif differ diff --git a/skins/simple/main.css b/skins/simple/main.css new file mode 100644 index 00000000..d55552fc --- /dev/null +++ b/skins/simple/main.css @@ -0,0 +1,404 @@ +#toolbar { + display: none; +} + +div.center { + text-align: center; +} + +#contentSub { + padding-left: 2em; +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +#column-content { + width: 100%; + float: right; + margin: 0 0 0.6em -12.2em; + padding:0; +} + +#content { + margin: 0em 0 0 12.2em; + padding: 0em 1em 1.5em 1em; + border-left: 1px solid #959595; + line-height: 1.5em; +} + +#column-one { + position: absolute; + top: 0px; left: 0px; +} + +#footer { + display: none; +} + +body { + margin: 0; + padding: 0; +} + +#globalWrapper { + width: 100%; + height: 100%; + margin: 0; + padding: 0; +} +.visualClear { clear: both; } + +img { + border: none; +} +p { + margin: 0.4em 0em 0.5em 0em; + line-height: 1.5em; +} +p img { margin: 0; } + +h1, h2, h3, h4, h5, h6 { + margin: 0; + padding-top: 0.5em; + padding-bottom: 0.17em; +} +fieldset { + margin: 1em 0em 1em 0em; + padding: 0em 1em 1em 1em; +} +.usermessage { + background-color: #ffce7b; + border: 1px solid #ffa500; + color: Black; + font-weight: bold; + margin: 2em 0em 1em 0em; + padding: 0.5em 1em; + vertical-align: middle; +} +.error { + color: red; + font-size: larger; +} + +table.rimage { + float:right; + position:relative; + margin-left:1em; + margin-bottom:1em; + text-align:center; +} + +div.townBox { + position:relative; + float:right; + margin-left:1em; + padding:0.3em; + width: 200px; + overflow: hidden; + clear: right; +} +div.townBox dl { + padding: 0; + margin: 0 0 0.3em 0; +} +div.townBox dl dt { + background: none; + margin: 0.4em 0 0 0; +} +div.townBox dl dd { + margin: 0.1em 0 0 1.1em; +} +.portlet { + border: none; + float: none; + padding: 0; + width: 11.8em; + overflow: hidden; +} +.portlet h4 { + font-weight: normal; + white-space: nowrap; +} +.portlet h5 { + padding: 0em 1em 0em 0.5em; + display: inline; + height: 1em; + font-weight: normal; + white-space: nowrap; +} +.portlet h6 { + padding: 0em 1em 0em 1em; + display: block; + height: 1.2em; + font-weight: normal; + white-space: nowrap; +} +.pBody { + border-collapse: collapse; + padding: 0 0.8em 0.3em 0.5em; +} +.portlet h1, +.portlet h2, +.portlet h3, +.portlet h4 { + margin: 0; + padding: 0; + font-size: small; +} + +#p-search .pBody { + text-align: center; +} + +#searchInput { + width: 100%; + clear: both; + margin: 0 0 0 0; +} + +input.searchButton { + margin-top:1px; + padding: 0 0.4em; + cursor: pointer; +} + +#p-search .pBody { + padding: 0.5em 0.4em 0.4em 0.4em; +} + +textarea { + width: 100%; +} + +#p-personal li, #p-personal ul, +#p-tb li, #p-tb ul, +#p-navigation li, #p-navigation ul, +#p-cactions li, #p-cactions ul, +#p-newlinks li, #p-newlinks ul { + padding-left: 0em; + margin-left: 0.5em; +} + +#p-cactions li, #p-cactions ul { + margin-left: 0.7em; +} + +pre { + margin: 2em; + border: solid 1px black; +} + +h1.firstHeading, h2 { + border-bottom: solid 1px black; +} +#bodyContent a[href ^="http://"], +#bodyContent a[href ^="gopher://"] { + background: url("external.png") center right no-repeat; + padding-right: 13px; +} +#bodyContent a[href ^="https://"], +.link-https { + background: url("lock_icon.gif") center right no-repeat; + padding-right: 16px; +} +#bodyContent a[href ^="mailto:"], +.link-mailto { + background: url("mail_icon.gif") center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="news://"] { + background: url("news_icon.png") center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="ftp://"], +.link-ftp { + background: url("file_icon.gif") center right no-repeat; + padding-right: 18px; +} +#bodyContent a[href ^="irc://"], +.link-irc { + background: url("discussionitem_icon.gif") center right no-repeat; + padding-right: 18px; +} + +#bodyContent a.extiw, +#bodyContent a.extiw:active { + color: #5E7CFF; + background: none; + padding: 0; +} + +td.diff-addedline { + background-color: #B9FFB0; +} + +td.diff-deletedline { + background-color: #f8ffaa; +} + +span.diffchange { background-color: #FFCDF3; } +.autocomment { color: grey; } +#pagehistory span.user { + margin-left: 1.4em; + margin-right: 0.4em; +} +#pagehistory span.minor { font-weight: bold; } +#pagehistory li.selected { + background-color:#f9f9f9; + border:1px dashed #aaaaaa; +} +span.urlexpansion { + display: none; +} + +div.tocindent { + margin-left: 2em; +} +#toc { + text-align: left; + border-top: solid 1px black; + border-bottom: solid 1px black; +} + +div.floatright, table.floatright { + clear: right; + float: right; + margin: 0; + position: relative; + border-width: 0.5em 0 0.8em 1.4em; +} +div.floatright p { font-style: italic; } +div.floatleft, table.floatleft { + float: left; + margin: 0.3em 0.5em 0.5em 0; + position: relative; + border-width: 0.5em 1.4em 0.8em 0; +} +div.floatleft p { font-style: italic; } +/* thumbnails */ +div.thumb { + margin-bottom: 0.5em; + width: auto; +} +div.thumb div { + padding: 3px !important; + text-align: center; + overflow: hidden; +} + +div.thumb div div.thumbcaption { + border: none; + text-align: left; + line-height: 1.4; + padding: 0.3em 0 0.1em 0; +} +div.magnify { + float: right; + border: none !important; + background: none !important; +} +div.magnify a, div.magnify img { + display: block; + border: none !important; + background: none !important; +} +div.tright { + clear: right; + float: right; + border-width: 0.5em 0 0.8em 1.4em; +} +div.tleft { + float: left; + margin-right:0.5em; + border-width: 0.5em 1.4em 0.8em 0; +} + +a.stub { color: #772233; } +a.new, +#p-personal a.new { + text-decoration: line-through; +} +li.new { + text-decoration: line-through; +} +p.catlinks { + text-align: center; + width: 80%; + margin-left: auto; + margin-right: auto; + padding: 3px; +} + +#mytabs { + background-color: inherit; +} +#p-cactions { + background-color: inherit; +} +div.printfooter { + display: none; +} + + +#ca-addsection a:before { + content: "Add section"; + font-size: 10pt; +} + +#ca-addsection a { + font-size: 0px; +} + +#n-portal, +#n-currentevents, +#n-help, +#n-sitesupport { + display: none; +} + +span.searchmatch { + font-weight: bold; +} + +#preftoc { + float: left; + margin: 1em; + width: 13em; +} +#preftoc li { +} +#preftoc li.selected { + border: 1px dashed #aaa; +} +#preftoc a, +#preftoc a:active { + display: block; +} +#prefcontrol { + clear: both; + float: left; + margin-top: 1em; +} +div.prefsectiontip { + font-size: 95%; + margin-top: 1em; +} + +#mw_trackbacks { + border-style: groove; + padding: 0.2em; +} + +#jump-to-nav { + display: none; +} + +table.collapsed tr.collapsable { + display: none; +} -- cgit v1.2.2