summaryrefslogtreecommitdiff
path: root/skins
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2006-10-11 20:21:25 +0000
committerPierre Schmitz <pierre@archlinux.de>2006-10-11 20:21:25 +0000
commitd81f562b712f2387fa02290bf2ca86392ab356f2 (patch)
treed666cdefbe6ac320827a2c6cb473581b46e22c4c /skins
parent183851b06bd6c52f3cae5375f433da720d410447 (diff)
Aktualisierung auf Version 1.8.1
Diffstat (limited to 'skins')
-rw-r--r--skins/CologneBlue.php2
-rw-r--r--skins/MonoBook.php20
-rw-r--r--skins/Standard.php60
-rw-r--r--skins/common/ajax.js209
-rw-r--r--skins/common/ajaxsearch.js104
-rw-r--r--skins/common/common.css48
-rw-r--r--skins/common/images/Arr_u.pngbin0 -> 1044 bytes
-rw-r--r--skins/common/images/arrow_disabled_first_25.pngbin0 -> 481 bytes
-rw-r--r--skins/common/images/arrow_disabled_last_25.pngbin0 -> 480 bytes
-rw-r--r--skins/common/images/arrow_disabled_left_25.pngbin0 -> 460 bytes
-rw-r--r--skins/common/images/arrow_disabled_right_25.pngbin0 -> 447 bytes
-rw-r--r--skins/common/images/arrow_first.svg85
-rw-r--r--skins/common/images/arrow_first_25.pngbin0 -> 482 bytes
-rw-r--r--skins/common/images/arrow_last_25.pngbin0 -> 484 bytes
-rw-r--r--skins/common/images/arrow_left.svg78
-rw-r--r--skins/common/images/arrow_left_25.pngbin0 -> 462 bytes
-rw-r--r--skins/common/images/arrow_right_25.pngbin0 -> 449 bytes
-rw-r--r--skins/common/protect.js3
-rw-r--r--skins/common/wikibits.js20
-rw-r--r--skins/disabled/HTMLDump.php16
-rw-r--r--skins/disabled/MonoBookCBT.php25
-rw-r--r--skins/monobook/main.css46
22 files changed, 539 insertions, 177 deletions
diff --git a/skins/CologneBlue.php b/skins/CologneBlue.php
index b5f7c917..08389c43 100644
--- a/skins/CologneBlue.php
+++ b/skins/CologneBlue.php
@@ -306,7 +306,7 @@ class SkinCologneBlue extends Skin {
$s .= "<input type='text' name=\"search\" size='14' value=\""
. htmlspecialchars(substr($search,0,256)) . "\" />"
- . "<br /><input type='submit' name=\"go\" value=\"" . htmlspecialchars( wfMsg( "go" ) ) . "\" /> <input type='submit' name=\"fulltext\" value=\"" . htmlspecialchars( wfMsg( "search" ) ) . "\" /></form>";
+ . "<br /><input type='submit' name=\"go\" value=\"" . htmlspecialchars( wfMsg( "searcharticle" ) ) . "\" /> <input type='submit' name=\"fulltext\" value=\"" . htmlspecialchars( wfMsg( "search" ) ) . "\" /></form>";
return $s;
}
diff --git a/skins/MonoBook.php b/skins/MonoBook.php
index c80700d0..698585c7 100644
--- a/skins/MonoBook.php
+++ b/skins/MonoBook.php
@@ -64,7 +64,9 @@ class MonoBookTemplate extends QuickTemplate {
<!--[if IE 7]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE70Fixes.css?1";</style><![endif]-->
<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
- <script type="<?php $this->text('jsmimetype') ?>">var skin = '<?php $this->text('skinname')?>';var stylepath = '<?php $this->text('stylepath')?>';</script>
+
+ <?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
+
<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?1"><!-- wikibits js --></script>
<?php if($this->data['jsvarurl' ]) { ?>
<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl' ) ?>"><!-- site js --></script>
@@ -87,13 +89,13 @@ class MonoBookTemplate extends QuickTemplate {
</head>
<body <?php if($this->data['body_ondblclick']) { ?>ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
<?php if($this->data['body_onload' ]) { ?>onload="<?php $this->text('body_onload') ?>"<?php } ?>
- class="<?php $this->text('nsclass') ?> <?php $this->text('dir') ?>">
+ class="mediawiki <?php $this->text('nsclass') ?> <?php $this->text('dir') ?>">
<div id="globalWrapper">
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
- <h1 class="firstHeading"><?php $this->data['displaytitle']!=""?$this->text('title'):$this->html('title') ?></h1>
+ <h1 class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
<div id="bodyContent">
<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
<div id="contentSub"><?php $this->html('subtitle') ?></div>
@@ -164,8 +166,8 @@ class MonoBookTemplate extends QuickTemplate {
?>accesskey="<?php $this->msg('accesskey-search') ?>"<?php }
if( isset( $this->data['search'] ) ) {
?> value="<?php $this->text('search') ?>"<?php } ?> />
- <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('go') ?>" />&nbsp;
- <input type='submit' name="fulltext" class="searchButton" value="<?php $this->msg('search') ?>" />
+ <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle') ?>" />&nbsp;
+ <input type='submit' name="fulltext" class="searchButton" value="<?php $this->msg('searchbutton') ?>" />
</div></form>
</div>
</div>
@@ -263,10 +265,16 @@ class MonoBookTemplate extends QuickTemplate {
?>
</ul>
</div>
- <script type="text/javascript"> if (window.runOnloadHook) runOnloadHook();</script>
+
+ <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
</div>
<?php $this->html('reporttime') ?>
+<?php if ( $this->data['debug'] ): ?>
+<!-- Debug output:
+<?php $this->text( 'debug' ); ?>
+-->
+<?php endif; ?>
</body></html>
<?php
wfRestoreWarnings();
diff --git a/skins/Standard.php b/skins/Standard.php
index 8140b7d6..90bcfc5b 100644
--- a/skins/Standard.php
+++ b/skins/Standard.php
@@ -177,32 +177,42 @@ class SkinStandard extends Skin {
} 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;
+ case NS_TALK:
+ case NS_USER_TALK:
+ case NS_PROJECT_TALK:
+ case NS_IMAGE_TALK:
+ case NS_MEDIAWIKI_TALK:
+ case NS_TEMPLATE_TALK:
+ case NS_HELP_TALK:
+ case NS_CATEGORY_TALK:
+ $text = wfMsg('viewtalkpage');
+ break;
+ case NS_MAIN:
+ $text = wfMsg( 'articlepage' );
+ break;
+ case NS_USER:
+ $text = wfMsg( 'userpage' );
+ break;
+ case NS_PROJECT:
+ $text = wfMsg( 'projectpage' );
+ break;
+ case NS_IMAGE:
+ $text = wfMsg( 'imagepage' );
+ break;
+ case NS_MEDIAWIKI:
+ $text = wfMsg( 'mediawikipage' );
+ break;
+ case NS_TEMPLATE:
+ $text = wfMsg( 'templatepage' );
+ break;
+ case NS_HELP:
+ $text = wfMsg( 'viewhelppage' );
+ break;
+ case NS_CATEGORY:
+ $text = wfMsg( 'categorypage' );
+ break;
default:
- $text= wfMsg('articlepage');
+ $text= wfMsg( 'articlepage' );
}
$link = $wgTitle->getText();
diff --git a/skins/common/ajax.js b/skins/common/ajax.js
index 90676548..6cc652b3 100644
--- a/skins/common/ajax.js
+++ b/skins/common/ajax.js
@@ -3,18 +3,38 @@
var sajax_debug_mode = false;
var sajax_request_type = "GET";
-var started;
-var typing;
-var memory=null;
-var body=null;
-var oldbody=null;
-
+/**
+* if sajax_debug_mode is true, this function outputs given the message into
+* the element with id = sajax_debug; if no such element exists in the document,
+* it is injected.
+*/
function sajax_debug(text) {
- if (sajax_debug_mode)
- alert("RSD: " + text)
+ if (!sajax_debug_mode) return false;
+
+ var e= document.getElementById('sajax_debug');
+
+ if (!e) {
+ e= document.createElement("p");
+ e.className= 'sajax_debug';
+ e.id= 'sajax_debug';
+
+ var b= document.getElementsByTagName("body")[0];
+
+ if (b.firstChild) b.insertBefore(e, b.firstChild);
+ else b.appendChild(e);
+ }
+
+ var m= document.createElement("div");
+ m.appendChild( document.createTextNode( text ) );
+
+ e.appendChild( m );
+
+ return true;
}
-
+/**
+* compatibility wrapper for creating a new XMLHttpRequest object.
+*/
function sajax_init_object() {
sajax_debug("sajax_init_object() called..")
var A;
@@ -31,30 +51,51 @@ function sajax_init_object() {
A = new XMLHttpRequest();
if (!A)
sajax_debug("Could not create connection object.");
+
return A;
}
-
-function sajax_do_call(func_name, args) {
+/**
+* Perform an ajax call to mediawiki. Calls are handeled by AjaxDispatcher.php
+* func_name - the name of the function to call. Must be registered in $wgAjaxExportList
+* args - an array of arguments to that function
+* target - the target that will handle the result of the call. If this is a function,
+* if will be called with the XMLHttpRequest as a parameter; if it's an input
+* element, its value will be set to the resultText; if it's another type of
+* element, its innerHTML will be set to the resultText.
+*
+* Example:
+* sajax_do_call('doFoo', [1, 2, 3], document.getElementById("showFoo"));
+*
+* This will call the doFoo function via MediaWiki's AjaxDispatcher, with
+* (1, 2, 3) as the parameter list, and will show the result in the element
+* with id = showFoo
+*/
+function sajax_do_call(func_name, args, target) {
var i, x, n;
var uri;
var post_data;
uri = wgServer + "/" + wgScriptPath + "/index.php?action=ajax";
if (sajax_request_type == "GET") {
if (uri.indexOf("?") == -1)
- uri = uri + "?rs=" + escape(func_name);
+ uri = uri + "?rs=" + encodeURIComponent(func_name);
else
- uri = uri + "&rs=" + escape(func_name);
- for (i = 0; i < args.length-1; i++)
- uri = uri + "&rsargs[]=" + escape(args[i]);
+ uri = uri + "&rs=" + encodeURIComponent(func_name);
+ for (i = 0; i < args.length; i++)
+ uri = uri + "&rsargs[]=" + encodeURIComponent(args[i]);
//uri = uri + "&rsrnd=" + new Date().getTime();
post_data = null;
} else {
- post_data = "rs=" + escape(func_name);
- for (i = 0; i < args.length-1; i++)
- post_data = post_data + "&rsargs[]=" + escape(args[i]);
+ post_data = "rs=" + encodeURIComponent(func_name);
+ for (i = 0; i < args.length; i++)
+ post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]);
}
x = sajax_init_object();
+ if (!x) {
+ alert("AJAX not supported");
+ return false;
+ }
+
x.open(sajax_request_type, uri, true);
if (sajax_request_type == "POST") {
x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
@@ -65,113 +106,37 @@ function sajax_do_call(func_name, args) {
x.onreadystatechange = function() {
if (x.readyState != 4)
return;
- sajax_debug("received " + x.responseText);
- var status;
- var data;
- status = x.responseText.charAt(0);
- data = x.responseText.substring(2);
- if (status == "-")
- alert("Error: " + data);
- else
- args[args.length-1](data);
+
+ sajax_debug("received (" + x.status + " " + x.statusText + ") " + x.responseText);
+
+ //if (x.status != 200)
+ // alert("Error: " + x.status + " " + x.statusText + ": " + x.responseText);
+ //else
+
+ if ( typeof( target ) == 'function' ) {
+ target( x );
+ }
+ else if ( typeof( target ) == 'object' ) {
+ if ( target.tagName == 'INPUT' ) {
+ if (x.status == 200) target.value= x.responseText;
+ //else alert("Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")");
+ }
+ else {
+ if (x.status == 200) target.innerHTML = x.responseText;
+ else target.innerHTML= "<div class='error'>Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")</div>";
+ }
+ }
+ else {
+ alert("bad target for sajax_do_call: not a function or object: " + target);
+ }
+
+ return;
}
+
+ sajax_debug(func_name + " uri = " + uri + " / post = " + post_data);
x.send(post_data);
- sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
sajax_debug(func_name + " waiting..");
delete x;
-}
-
-// Remove the typing barrier to allow call() to complete
-function Search_doneTyping()
-{
- typing=false;
-}
-
-// Wait 500ms to run call()
-function Searching_Go()
-{
- setTimeout("Searching_Call()", 500);
-}
-
-// If the user is typing wait until they are done.
-function Search_Typing() {
- started=true;
- typing=true;
- window.status = "Waiting until you're done typing...";
- setTimeout("Search_doneTyping()", 500);
-
- // I believe these are needed by IE for when the users press return?
- if (window.event)
- {
- if (event.keyCode == 13)
- {
- event.cancelBubble = true;
- event.returnValue = false;
- }
- }
-}
-
-// Set the body div to the results
-function Searching_SetResult(result)
-{
- //body.innerHTML = result;
- t = document.getElementById("searchTarget");
- if ( t == null ) {
- oldbody=body.innerHTML;
- body.innerHTML= '<div id="searchTargetContainer"><div id="searchTarget" ></div></div>' ;
- t = document.getElementById("searchTarget");
- }
- t.innerHTML = result;
- t.style.display='block';
-}
-
-function Searching_Hide_Results()
-{
- t = document.getElementById("searchTarget");
- t.style.display='none';
- body.innerHTML = oldbody;
-}
-
-
-// This will call the php function that will eventually
-// return a results table
-function Searching_Call()
-{
- var x;
- Searching_Go();
-
- //Don't proceed if user is typing
- if (typing)
- return;
-
- x = document.getElementById("searchInput").value;
-
- // Don't search again if the query is the same
- if (x==memory)
- return;
-
- memory=x;
- if (started) {
- // Don't search for blank or < 3 chars.
- if ((x=="") || (x.length < 3))
- {
- return;
- }
- x_wfSajaxSearch(x, Searching_SetResult);
- }
-}
-
-function x_wfSajaxSearch() {
- sajax_do_call( "wfSajaxSearch", x_wfSajaxSearch.arguments );
-}
-
-//Initialize
-function sajax_onload() {
- x = document.getElementById( 'searchInput' );
- x.onkeypress= function() { Search_Typing(); };
- Searching_Go();
- body = document.getElementById("content");
+ return true;
}
-
-hookEvent("load", sajax_onload);
diff --git a/skins/common/ajaxsearch.js b/skins/common/ajaxsearch.js
new file mode 100644
index 00000000..e6ea31ab
--- /dev/null
+++ b/skins/common/ajaxsearch.js
@@ -0,0 +1,104 @@
+// remote scripting library
+// (c) copyright 2005 modernmethod, inc
+
+var started;
+var typing;
+var memory=null;
+var body=null;
+var oldbody=null;
+
+// Remove the typing barrier to allow call() to complete
+function Search_doneTyping()
+{
+ typing=false;
+}
+
+// Wait 500ms to run call()
+function Searching_Go()
+{
+ setTimeout("Searching_Call()", 500);
+}
+
+// If the user is typing wait until they are done.
+function Search_Typing() {
+ started=true;
+ typing=true;
+ window.status = "Waiting until you're done typing...";
+ setTimeout("Search_doneTyping()", 500);
+
+ // I believe these are needed by IE for when the users press return?
+ if (window.event)
+ {
+ if (event.keyCode == 13)
+ {
+ event.cancelBubble = true;
+ event.returnValue = false;
+ }
+ }
+}
+
+// Set the body div to the results
+function Searching_SetResult( request )
+{
+ if ( request.status != 200 ) {
+ alert("Error: " + request.status + " " + request.statusText + ": " + request.responseText);
+ return;
+ }
+
+ var result = request.responseText;
+
+ //body.innerHTML = result;
+ t = document.getElementById("searchTarget");
+ if ( t == null ) {
+ oldbody=body.innerHTML;
+ body.innerHTML= '<div id="searchTargetContainer"><div id="searchTarget" ></div></div>' ;
+ t = document.getElementById("searchTarget");
+ }
+ t.innerHTML = result;
+ t.style.display='block';
+}
+
+function Searching_Hide_Results()
+{
+ t = document.getElementById("searchTarget");
+ t.style.display='none';
+ body.innerHTML = oldbody;
+}
+
+
+// This will call the php function that will eventually
+// return a results table
+function Searching_Call()
+{
+ var x;
+ Searching_Go();
+
+ //Don't proceed if user is typing
+ if (typing)
+ return;
+
+ x = document.getElementById("searchInput").value;
+
+ // Don't search again if the query is the same
+ if (x==memory)
+ return;
+
+ memory=x;
+ if (started) {
+ // Don't search for blank or < 3 chars.
+ if ((x=="") || (x.length < 3))
+ {
+ return;
+ }
+
+ sajax_do_call( "wfSajaxSearch", [ x ], Searching_SetResult );
+ }
+}
+
+//Initialize
+function sajax_onload() {
+ x = document.getElementById( 'searchInput' );
+ x.onkeypress= function() { Search_Typing(); };
+ Searching_Go();
+ body = document.getElementById("content");
+}
diff --git a/skins/common/common.css b/skins/common/common.css
index 09409fd6..e630b77e 100644
--- a/skins/common/common.css
+++ b/skins/common/common.css
@@ -383,4 +383,50 @@ table.collapsed tr.collapsable {
table.gallery td.galleryheader {
text-align: center;
font-weight: bold;
-} \ No newline at end of file
+}
+
+div.multipageimagenavbox {
+ border: solid 1px silver;
+ padding: 4px;
+ margin: 1em;
+ -moz-border-radius: 6px;
+ background: #f0f0f0;
+}
+
+div.multipageimagenavbox div.thumb {
+ border: none;
+ margin-left: 2em;
+ margin-right: 2em;
+}
+
+div.multipageimagenavbox hr {
+ margin: 6px;
+}
+
+table.multipageimage td {
+ text-align: center;
+}
+
+/*
+ Table pager (e.g. Special:Imagelist)
+ - remove underlines from the navigation link
+ - collapse borders
+ - set the borders to outsets (similar to Special:Allmessages)
+ - remove line wrapping for all td and th, set background color
+ - restore line wrapping for the last two table cells (description and size)
+*/
+.TablePager_nav a { text-decoration: none; }
+.TablePager { border-collapse: collapse; }
+.TablePager, .TablePager td, .TablePager th {
+ border: 0.15em solid #777777;
+ padding: 0 0.15em 0 0.15em;
+}
+.TablePager th { background-color: #eeeeff }
+.TablePager td { background-color: #ffffff }
+.TablePager tr:hover td { background-color: #eeeeff }
+
+.imagelist td, .imagelist th { white-space: nowrap }
+.imagelist .TablePager_col_links { background-color: #eeeeff }
+.imagelist .TablePager_col_img_description { white-space: normal }
+.imagelist th.TablePager_sort { background-color: #ccccff }
+
diff --git a/skins/common/images/Arr_u.png b/skins/common/images/Arr_u.png
new file mode 100644
index 00000000..b8e3b6c6
--- /dev/null
+++ b/skins/common/images/Arr_u.png
Binary files differ
diff --git a/skins/common/images/arrow_disabled_first_25.png b/skins/common/images/arrow_disabled_first_25.png
new file mode 100644
index 00000000..aaa4bec4
--- /dev/null
+++ b/skins/common/images/arrow_disabled_first_25.png
Binary files differ
diff --git a/skins/common/images/arrow_disabled_last_25.png b/skins/common/images/arrow_disabled_last_25.png
new file mode 100644
index 00000000..7882fd8c
--- /dev/null
+++ b/skins/common/images/arrow_disabled_last_25.png
Binary files differ
diff --git a/skins/common/images/arrow_disabled_left_25.png b/skins/common/images/arrow_disabled_left_25.png
new file mode 100644
index 00000000..e0c30042
--- /dev/null
+++ b/skins/common/images/arrow_disabled_left_25.png
Binary files differ
diff --git a/skins/common/images/arrow_disabled_right_25.png b/skins/common/images/arrow_disabled_right_25.png
new file mode 100644
index 00000000..bfec3e24
--- /dev/null
+++ b/skins/common/images/arrow_disabled_right_25.png
Binary files differ
diff --git a/skins/common/images/arrow_first.svg b/skins/common/images/arrow_first.svg
new file mode 100644
index 00000000..c1d8e364
--- /dev/null
+++ b/skins/common/images/arrow_first.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="512.85712"
+ height="600"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="C:\htdocs\w\skins\common\images"
+ sodipodi:docname="big_arrow_first.svg"
+ inkscape:export-filename="C:\htdocs\w\skins\common\images\big_arrow_left.png"
+ inkscape:export-xdpi="5.0520902"
+ inkscape:export-ydpi="5.0520902">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="375"
+ inkscape:cy="520"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="600.24px"
+ height="600.88px"
+ inkscape:window-width="853"
+ inkscape:window-height="573"
+ inkscape:window-x="66"
+ inkscape:window-y="87" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-239.3783,-208.0743)">
+ <path
+ sodipodi:type="star"
+ style="fill:#00a;fill-opacity:1;fill-rule:evenodd;stroke:#00a;stroke-width:10.35552788;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1874"
+ sodipodi:sides="3"
+ sodipodi:cx="94.285713"
+ sodipodi:cy="343.79074"
+ sodipodi:r1="75.484825"
+ sodipodi:r2="37.742413"
+ sodipodi:arg1="1.056345"
+ sodipodi:arg2="2.1035426"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 131.42857,409.50502 L 18.804046,343.10026 L 132.62452,278.76694 L 131.42857,409.50502 z "
+ transform="matrix(3.596688,0,0,4.278606,254.9147,-964.348)" />
+ <rect
+ style="fill:#00a;fill-opacity:1;stroke:#00a;stroke-width:39.31948471;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3737"
+ width="20.680517"
+ height="560.68054"
+ x="259.03799"
+ y="227.73401" />
+ </g>
+</svg>
diff --git a/skins/common/images/arrow_first_25.png b/skins/common/images/arrow_first_25.png
new file mode 100644
index 00000000..b6351c50
--- /dev/null
+++ b/skins/common/images/arrow_first_25.png
Binary files differ
diff --git a/skins/common/images/arrow_last_25.png b/skins/common/images/arrow_last_25.png
new file mode 100644
index 00000000..d416ab39
--- /dev/null
+++ b/skins/common/images/arrow_last_25.png
Binary files differ
diff --git a/skins/common/images/arrow_left.svg b/skins/common/images/arrow_left.svg
new file mode 100644
index 00000000..bd4bbc74
--- /dev/null
+++ b/skins/common/images/arrow_left.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="450"
+ height="600"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="C:\htdocs\w\skins\common\images"
+ sodipodi:docname="big_arrow_left.svg"
+ inkscape:export-filename="C:\htdocs\w\skins\common\images\big_arrow_left.png"
+ inkscape:export-xdpi="5.0520902"
+ inkscape:export-ydpi="5.0520902">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="375"
+ inkscape:cy="520"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="600.24px"
+ height="600.88px"
+ inkscape:window-width="853"
+ inkscape:window-height="573"
+ inkscape:window-x="66"
+ inkscape:window-y="87" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-302.2354,-208.0743)">
+ <path
+ sodipodi:type="star"
+ style="fill:#00a;fill-opacity:1;fill-rule:evenodd;stroke:#00a;stroke-width:10.35552788;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1874"
+ sodipodi:sides="3"
+ sodipodi:cx="94.285713"
+ sodipodi:cy="343.79074"
+ sodipodi:r1="75.484825"
+ sodipodi:r2="37.742413"
+ sodipodi:arg1="1.056345"
+ sodipodi:arg2="2.1035426"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 131.42857,409.50502 L 18.804046,343.10026 L 132.62452,278.76694 L 131.42857,409.50502 z "
+ transform="matrix(3.596688,0,0,4.278606,254.9147,-964.348)" />
+ </g>
+</svg>
diff --git a/skins/common/images/arrow_left_25.png b/skins/common/images/arrow_left_25.png
new file mode 100644
index 00000000..fd05fa6f
--- /dev/null
+++ b/skins/common/images/arrow_left_25.png
Binary files differ
diff --git a/skins/common/images/arrow_right_25.png b/skins/common/images/arrow_right_25.png
new file mode 100644
index 00000000..cf1845c6
--- /dev/null
+++ b/skins/common/images/arrow_right_25.png
Binary files differ
diff --git a/skins/common/protect.js b/skins/common/protect.js
index a144e5eb..4baa5e4c 100644
--- a/skins/common/protect.js
+++ b/skins/common/protect.js
@@ -18,6 +18,9 @@ function protectInitialize(tableId, labelText) {
check.onclick = protectChainUpdate;
col2.appendChild(check);
+ var space = document.createTextNode(" ");
+ col2.appendChild(space);
+
var label = document.createElement('label');
label.setAttribute("for", "mwProtectUnchained");
label.appendChild(document.createTextNode(labelText));
diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js
index d95c4dcc..3a8fd6c6 100644
--- a/skins/common/wikibits.js
+++ b/skins/common/wikibits.js
@@ -49,6 +49,8 @@ function hookEvent(hookName, hookFunct) {
attachEvent("on" + hookName, hookFunct);
}
+//note: all skins shoud call runOnloadHook() at the end of html output,
+// so the below should be redundant. It's there just in case.
hookEvent("load", runOnloadHook);
// document.write special stylesheet links
@@ -610,10 +612,24 @@ function checkboxMouseupHandler(e) {
return true;
}
-function fillDestFilename() {
+function toggle_element_activation(ida,idb) {
if (!document.getElementById)
return;
- var path = document.getElementById('wpUploadFile').value;
+ document.getElementById(ida).disabled=true;
+ document.getElementById(idb).disabled=false;
+}
+
+function toggle_element_check(ida,idb) {
+ if (!document.getElementById)
+ return;
+ document.getElementById(ida).checked=true;
+ document.getElementById(idb).checked=false;
+}
+
+function fillDestFilename(id) {
+ if (!document.getElementById)
+ return;
+ var path = document.getElementById(id).value;
// Find trailing part
var slash = path.lastIndexOf('/');
var backslash = path.lastIndexOf('\\');
diff --git a/skins/disabled/HTMLDump.php b/skins/disabled/HTMLDump.php
index 20ec01e3..5f739a37 100644
--- a/skins/disabled/HTMLDump.php
+++ b/skins/disabled/HTMLDump.php
@@ -28,7 +28,7 @@ class SkinHTMLDump extends SkinTemplate {
$badMessages = array( 'recentchanges-url', 'randompage-url' );
$badUrls = array();
foreach ( $badMessages as $msg ) {
- $badUrls[] = $this->makeInternalOrExternalUrl( wfMsgForContent( $msg ) );
+ $badUrls[] = self::makeInternalOrExternalUrl( wfMsgForContent( $msg ) );
}
foreach ( $sections as $heading => $section ) {
@@ -75,7 +75,13 @@ class SkinHTMLDump extends SkinTemplate {
}
if ( $nt->getNamespace() == NS_CATEGORY ) {
- return $this->makeKnownLinkObj( $nt, $text, $query, $trail, $prefix );
+ # Determine if the category has any articles in it
+ $dbr =& wfGetDB( DB_SLAVE );
+ $hasMembers = $dbr->selectField( 'categorylinks', '1',
+ array( 'cl_to' => $nt->getDBkey() ), __METHOD__ );
+ if ( $hasMembers ) {
+ return $this->makeKnownLinkObj( $nt, $text, $query, $trail, $prefix );
+ }
}
if ( $text == '' ) {
@@ -131,7 +137,7 @@ class HTMLDumpTemplate extends QuickTemplate {
<div id="content">
<a name="top" id="contentTop"></a>
<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
- <h1 class="firstHeading"><?php $this->text('title') ?></h1>
+ <h1 class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
<div id="bodyContent">
<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
<div id="contentSub"><?php $this->html('subtitle') ?></div>
@@ -165,7 +171,7 @@ class HTMLDumpTemplate extends QuickTemplate {
<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
<?php foreach ($this->data['sidebar'] as $bar => $cont) { ?>
<div class='portlet' id='p-<?php echo htmlspecialchars($bar) ?>'>
- <h5><?php $this->msg( $bar ) ?></h5>
+ <h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
<div class='pBody'>
<ul>
<?php foreach($cont as $key => $val) { ?>
@@ -177,7 +183,7 @@ class HTMLDumpTemplate extends QuickTemplate {
<?php } ?>
<div id="p-search" class="portlet">
<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
- <div class="pBody">
+ <div id="searchBody" class="pBody">
<form action="javascript:goToStatic(3)" id="searchform"><div>
<input id="searchInput" name="search" type="text"
<?php if($this->haveMsg('accesskey-search')) {
diff --git a/skins/disabled/MonoBookCBT.php b/skins/disabled/MonoBookCBT.php
index 0474ad7c..f5f742d6 100644
--- a/skins/disabled/MonoBookCBT.php
+++ b/skins/disabled/MonoBookCBT.php
@@ -238,9 +238,9 @@ class SkinMonoBookCBT extends SkinTemplate {
if ( !$wgUseSiteJs ) return '';
if ( $wgUser->isLoggedIn() ) {
- $url = $this->makeUrl('-','action=raw&smaxage=0&gen=js');
+ $url = self::makeUrl( '-','action=raw&smaxage=0&gen=js' );
} else {
- $url = $this->makeUrl('-','action=raw&gen=js');
+ $url = self::makeUrl( '-','action=raw&gen=js' );
}
return cbt_value( $url, 'loggedin' );
}
@@ -260,7 +260,7 @@ class SkinMonoBookCBT extends SkinTemplate {
global $wgRequest;
$usercss = $this->makeStylesheetCdata( $wgRequest->getText('wpTextbox1') );
} else {
- $usercss = $this->makeStylesheetLink( $this->makeUrl($this->getUserPageText() .
+ $usercss = $this->makeStylesheetLink( self::makeUrl($this->getUserPageText() .
'/'.$this->mStyleName.'.css', 'action=raw&ctype=text/css' ) );
}
@@ -283,9 +283,8 @@ class SkinMonoBookCBT extends SkinTemplate {
$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";
+ $sitecss .= $this->makeStylesheetLink( self::makeNSUrl( 'Common.css', $query, NS_MEDIAWIKI ) ) . "\n";
+ $sitecss .= $this->makeStylesheetLink( self::makeNSUrl( ucfirst( $this->mStyleName ) . '.css', $query, NS_MEDIAWIKI ) ) . "\n";
// No deps
return $sitecss;
@@ -308,7 +307,7 @@ class SkinMonoBookCBT extends SkinTemplate {
$isTemplate = false;
}
- $link = $this->makeStylesheetLink( $this->makeUrl('-','action=raw&gen=css' . $siteargs) ) . "\n";
+ $link = $this->makeStylesheetLink( self::makeUrl('-','action=raw&gen=css' . $siteargs) ) . "\n";
if ( $wgAllowUserCss ) {
$deps = 'loggedin';
@@ -330,7 +329,7 @@ class SkinMonoBookCBT extends SkinTemplate {
if ( $this->isJsPreview() ) {
$url = '';
} else {
- $url = $this->makeUrl($this->getUserPageText().'/'.$this->mStyleName.'.js', 'action=raw&ctype='.$wgJsMimeType.'&dontcountme=s');
+ $url = self::makeUrl($this->getUserPageText().'/'.$this->mStyleName.'.js', 'action=raw&ctype='.$wgJsMimeType.'&dontcountme=s');
}
return cbt_value( $url, array( 'nonview dynamic', 'user' ) );
}
@@ -765,7 +764,7 @@ class SkinMonoBookCBT extends SkinTemplate {
}
function logopath() { return $GLOBALS['wgLogo']; }
- function mainpage() { return $this->makeI18nUrl( 'mainpage' ); }
+ function mainpage() { return self::makeI18nUrl( 'mainpage' ); }
function sidebar( $startSection, $endSection, $innerTpl ) {
$s = '';
@@ -800,7 +799,7 @@ class SkinMonoBookCBT extends SkinTemplate {
$text = $line[1];
if (wfEmptyMsg($line[0], $link))
$link = $line[0];
- $href = $this->makeInternalOrExternalUrl( $link );
+ $href = self::makeInternalOrExternalUrl( $link );
$s .= strtr( $innerTpl,
array(
@@ -911,12 +910,12 @@ class SkinMonoBookCBT extends SkinTemplate {
} elseif ( $wgUploadNavigationUrl ) {
return $wgUploadNavigationUrl;
} else {
- return $this->makeSpecialUrl('Upload');
+ return self::makeSpecialUrl('Upload');
}
}
function nav_specialpages() {
- return $this->makeSpecialUrl('Specialpages');
+ return self::makeSpecialUrl('Specialpages');
}
function nav_print() {
@@ -1301,7 +1300,7 @@ class SkinMonoBookCBT extends SkinTemplate {
/** Make a link to a special page using a template */
function makeSpecialTemplateLink( $template, $key, $specialName, $text, $query = '' ) {
- $url = $this->makeSpecialUrl( $specialName, $query );
+ $url = self::makeSpecialUrl( $specialName, $query );
// Ignore the query when comparing
$active = ($this->mTitle->getNamespace() == NS_SPECIAL && $this->mTitle->getDBkey() == $specialName);
return strtr( $template,
diff --git a/skins/monobook/main.css b/skins/monobook/main.css
index 6373d18f..95b4c735 100644
--- a/skins/monobook/main.css
+++ b/skins/monobook/main.css
@@ -59,7 +59,6 @@ body {
/* general styles */
table {
- background: white;
font-size: 100%;
color: black;
}
@@ -164,7 +163,6 @@ fieldset {
line-height: 1.5em;
}
legend {
- background: white;
padding: .5em;
font-size: 95%;
}
@@ -1446,3 +1444,47 @@ div#searchTarget ul li:before {
content: "\00BB \0020";
}
+div.multipageimagenavbox {
+ border: solid 1px silver;
+ padding: 4px;
+ margin: 1em;
+ -moz-border-radius: 6px;
+ background: #f0f0f0;
+}
+
+div.multipageimagenavbox div.thumb {
+ border: none;
+ margin-left: 2em;
+ margin-right: 2em;
+}
+
+div.multipageimagenavbox hr {
+ margin: 6px;
+}
+
+table.multipageimage td {
+ text-align: center;
+}
+
+/*
+ Table pager (e.g. Special:Imagelist)
+ - remove underlines from the navigation link
+ - collapse borders
+ - set the borders to outsets (similar to Special:Allmessages)
+ - remove line wrapping for all td and th, set background color
+ - restore line wrapping for the last two table cells (description and size)
+*/
+.TablePager_nav a { text-decoration: none; }
+.TablePager { border-collapse: collapse; }
+.TablePager, .TablePager td, .TablePager th {
+ border: 0.15em solid #777777;
+ padding: 0 0.15em 0 0.15em;
+}
+.TablePager th { background-color: #eeeeff }
+.TablePager td { background-color: #ffffff }
+.TablePager tr:hover td { background-color: #eeeeff }
+
+.imagelist td, .imagelist th { white-space: nowrap }
+.imagelist .TablePager_col_links { background-color: #eeeeff }
+.imagelist .TablePager_col_img_description { white-space: normal }
+.imagelist th.TablePager_sort { background-color: #ccccff }