diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 20:21:25 +0000 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 20:21:25 +0000 |
commit | d81f562b712f2387fa02290bf2ca86392ab356f2 (patch) | |
tree | d666cdefbe6ac320827a2c6cb473581b46e22c4c /skins | |
parent | 183851b06bd6c52f3cae5375f433da720d410447 (diff) |
Aktualisierung auf Version 1.8.1
Diffstat (limited to 'skins')
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') ?>" /> - <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') ?>" /> + <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 Binary files differnew file mode 100644 index 00000000..b8e3b6c6 --- /dev/null +++ b/skins/common/images/Arr_u.png diff --git a/skins/common/images/arrow_disabled_first_25.png b/skins/common/images/arrow_disabled_first_25.png Binary files differnew file mode 100644 index 00000000..aaa4bec4 --- /dev/null +++ b/skins/common/images/arrow_disabled_first_25.png diff --git a/skins/common/images/arrow_disabled_last_25.png b/skins/common/images/arrow_disabled_last_25.png Binary files differnew file mode 100644 index 00000000..7882fd8c --- /dev/null +++ b/skins/common/images/arrow_disabled_last_25.png diff --git a/skins/common/images/arrow_disabled_left_25.png b/skins/common/images/arrow_disabled_left_25.png Binary files differnew file mode 100644 index 00000000..e0c30042 --- /dev/null +++ b/skins/common/images/arrow_disabled_left_25.png diff --git a/skins/common/images/arrow_disabled_right_25.png b/skins/common/images/arrow_disabled_right_25.png Binary files differnew file mode 100644 index 00000000..bfec3e24 --- /dev/null +++ b/skins/common/images/arrow_disabled_right_25.png 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 Binary files differnew file mode 100644 index 00000000..b6351c50 --- /dev/null +++ b/skins/common/images/arrow_first_25.png diff --git a/skins/common/images/arrow_last_25.png b/skins/common/images/arrow_last_25.png Binary files differnew file mode 100644 index 00000000..d416ab39 --- /dev/null +++ b/skins/common/images/arrow_last_25.png 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 Binary files differnew file mode 100644 index 00000000..fd05fa6f --- /dev/null +++ b/skins/common/images/arrow_left_25.png diff --git a/skins/common/images/arrow_right_25.png b/skins/common/images/arrow_right_25.png Binary files differnew file mode 100644 index 00000000..cf1845c6 --- /dev/null +++ b/skins/common/images/arrow_right_25.png 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 } |