MediaWiki:Common.js
Aus Kitakien
(Unterschied zwischen Versionen)
K (dodawk po ruskej wikipediji) |
(nowa funkcija linkFA()) |
||
Zeile 1: | Zeile 1: | ||
/* <source lang="javascript"> | /* <source lang="javascript"> | ||
- | + | Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. | |
- | + | Execute function on page load ********************************************* | |
* | * | ||
* Description: Wrapper around addOnloadHook() for backwards compatibility. | * Description: Wrapper around addOnloadHook() for backwards compatibility. | ||
Zeile 17: | Zeile 17: | ||
}) | }) | ||
- | + | // ============================================================ | |
- | + | // BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles | |
- | + | /** set to false in Special:Mypage/monobook.js to switch off this "feature" */ | |
- | + | var linkFA_enabled = true; | |
- | /** | + | /** description that is displayed when cursor hovers above FA interwiki links */ |
- | + | var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; | |
- | + | ||
- | + | /** | |
- | + | * star logo for featured articles in other languages, | |
- | // early exit when | + | * see Template:Link_FA and MediaWiki:Common.css |
- | if (! | + | */ |
- | + | function linkFA() { | |
- | // links are to replaced in p-lang only | + | // early exit when disabled |
- | + | if (!linkFA_enabled) return; | |
- | + | ||
- | + | // skins need to be treated differently | |
- | + | if (skin == "monobook" || skin == "simple") { | |
- | + | newer(); | |
- | + | } | |
- | + | else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") { | |
- | + | older(); | |
- | + | } | |
- | + | ||
- | + | /** skin == "monobook" || skin == "simple" */ | |
- | + | function newer() { | |
- | + | // links are to replaced in p-lang only | |
+ | var pLang = document.getElementById("p-lang"); | ||
+ | if (!pLang) return; | ||
+ | var lis = pLang.getElementsByTagName("li"); | ||
+ | for (var i = 0; i < lis.length; i++) { | ||
+ | var li = lis[i]; | ||
+ | // only links with a corresponding Link_FA template are interesting | ||
+ | if (!document.getElementById(li.className + "-fa")) continue; | ||
+ | // additional class so the template can be hidden with CSS | ||
+ | li.className += " FA"; | ||
+ | // change title | ||
+ | li.title = linkFA_description; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */ | ||
+ | function older() { | ||
+ | // these root elements can contain FA-links | ||
+ | var rootIds = new Array("topbar", "footer"); | ||
+ | for (var i=0; i<rootIds.length; i++) { | ||
+ | var rootId = rootIds[i]; | ||
+ | var root = document.getElementById(rootId); | ||
+ | if (!root) continue; | ||
+ | |||
+ | // if the root exists, try to decorate all the links within | ||
+ | var links = root.getElementsByTagName("a"); | ||
+ | for (var j=0; j<links.length; j++) { | ||
+ | var link = links[j]; | ||
+ | decorate(link); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** id necessary, modify a link to show the FA-star (older) */ | ||
+ | function decorate(link) { | ||
+ | // exit if not a FA-link | ||
+ | var lang = link.title.split(":")[0]; // not precise enough | ||
+ | var fa = document.getElementById("interwiki-" + lang + "-fa"); | ||
+ | if (!fa) return; | ||
+ | // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special" | ||
+ | // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article | ||
+ | |||
+ | // build an image-node for the FA-star | ||
+ | var img = document.createElement("img"); | ||
+ | img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png"); | ||
+ | img.setAttribute("alt", linkFA_description); | ||
+ | img.setAttribute("style", "margin-right: 0.2em;"); | ||
+ | |||
+ | // decorate the link with the image | ||
+ | link.appendChild(img); | ||
+ | link.appendChild(link.removeChild(link.firstChild)); | ||
+ | link.setAttribute("title", linkFA_description); | ||
} | } | ||
- | + | } | |
- | + | // aOnloadFunctions[aOnloadFunctions.length] = linkFA; | |
- | + | addOnloadHook(linkFA); | |
- | + | // END Configuration for "star" logo in front of interwiki links to Featured Articles | |
- | + | ||
- | + | // ============================================================ | |
- | + | // BEGIN Enable multiple onload functions | |
- | + | // setup onload functions this way: | |
- | + | // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! | |
- | + | if (!window.aOnloadFunctions) { | |
var aOnloadFunctions = new Array(); | var aOnloadFunctions = new Array(); | ||
- | + | } | |
- | + | window.onload = function() { | |
if (window.aOnloadFunctions) { | if (window.aOnloadFunctions) { | ||
for (var _i=0; _i<aOnloadFunctions.length; _i++) { | for (var _i=0; _i<aOnloadFunctions.length; _i++) { | ||
Zeile 69: | Zeile 119: | ||
} | } | ||
} | } | ||
- | + | } | |
- | + | // END Enable multiple onload functions | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN Externhinweis | |
- | + | // NEEDS Enable multiple onload functions | |
- | + | /* | |
- | + | function externHinweis() { | |
if ( | if ( | ||
(document.getElementById("pt-login")) && // ob der Benutzer NICHT angemeldet ist | (document.getElementById("pt-login")) && // ob der Benutzer NICHT angemeldet ist | ||
Zeile 96: | Zeile 146: | ||
document.getElementById("content").appendChild(externHinweis); | document.getElementById("content").appendChild(externHinweis); | ||
} | } | ||
- | + | } | |
- | + | aOnloadFunctions[aOnloadFunctions.length] = externHinweis; | |
- | + | */ | |
- | + | // END Externhinweis | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN Dynamic Navigation Bars | |
- | + | // NEEDS Enable multiple onload functions | |
- | + | // set up the words in your language | |
- | + | var NavigationBarHide = 'Schować'; | |
- | + | var NavigationBarShow = 'Pokazać'; | |
- | + | // set up max count of Navigation Bars on page, | |
- | + | // if there are more, all will be hidden | |
- | + | // NavigationBarShowDefault = 0; // all bars will be hidden | |
- | + | // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden | |
- | + | if (typeof NavigationBarShowDefault == 'undefined' ) { | |
var NavigationBarShowDefault = 1; | var NavigationBarShowDefault = 1; | ||
- | + | } | |
- | + | // shows and hides content and picture (if available) of navigation bars | |
- | + | // Parameters: | |
- | + | // indexNavigationBar: the index of navigation bar to be toggled | |
- | + | function toggleNavigationBar(indexNavigationBar) | |
- | + | { | |
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | ||
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | ||
Zeile 168: | Zeile 218: | ||
} | } | ||
} | } | ||
- | + | } | |
- | + | // adds show/hide-button to navigation bars | |
- | + | function createNavigationBarToggleButton() | |
- | + | { | |
var indexNavigationBar = 0; | var indexNavigationBar = 0; | ||
// iterate over all < div >-elements | // iterate over all < div >-elements | ||
Zeile 212: | Zeile 262: | ||
} | } | ||
- | + | } | |
- | + | aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; | |
- | + | // END Dynamic Navigation Bars | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN Moving of the editsection links | |
- | + | /* | |
- | + | * moveEditsection | |
- | + | * Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand | |
- | + | * direkt rechts neben die jeweiligen Überschriften. | |
- | + | * This script moves the [edit]-buttons from the right border of the window | |
- | + | * directly right next to the corresponding headings. | |
- | + | * | |
- | + | * Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene | |
- | + | * monobook.js (zu finden unter [[Special:Mypage/monobook.js|Benutzer:Name/monobook.js]]) kopieren: | |
- | + | * var oldEditsectionLinks = true; | |
- | + | * | |
- | + | * dbenzhuser (de:Benutzer:Dbenzhuser) | |
- | + | */ | |
- | + | function moveEditsection() { | |
if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { | if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { | ||
var spans = document.getElementsByTagName("span"); | var spans = document.getElementsByTagName("span"); | ||
Zeile 249: | Zeile 299: | ||
} | } | ||
} | } | ||
- | + | } | |
- | + | // onload | |
- | + | addOnloadHook(moveEditsection); | |
- | + | // END Moving of the editsection links | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN import Onlyifediting-functions | |
- | + | // SEE ALSO [[MediaWiki:Onlyifediting.js]] | |
- | + | if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { | |
document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); | ||
- | + | } | |
- | + | // END import Onlyifediting-functions | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN pageview counter | |
- | + | // SEE ALSO [[MediaWiki:Pagecounter.js]] | |
- | + | // Please talk to User:LeonWeber before changing anything or | |
- | + | // if there are any issues with this. | |
- | + | // disable the counter | |
- | + | var disable_counter = 0; | |
- | + | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Pagecounter.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); | |
- | + | // END pageview counter | |
- | + | // ============================================================ | |
/* </source> */ | /* </source> */ |
Version vom 19:34, 24. Sep. 2007
/* <source lang="javascript"> Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. Execute function on page load ********************************************* * * Description: Wrapper around addOnloadHook() for backwards compatibility. * Will be removed in the near future. */ /* z ruskeje wikipedije */ /* Чтоб была возможность изменить поведение кнопки "+" (добавление новой темы) для страниц обсуждения */ addOnloadHook(function(){ var plus = document.getElementById('ca-addsection'); if (!plus) return; var custom = document.getElementById('add-custom-section'); if (!custom) return; plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href); }) // ============================================================ // BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles /** set to false in Special:Mypage/monobook.js to switch off this "feature" */ var linkFA_enabled = true; /** description that is displayed when cursor hovers above FA interwiki links */ var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; /** * star logo for featured articles in other languages, * see Template:Link_FA and MediaWiki:Common.css */ function linkFA() { // early exit when disabled if (!linkFA_enabled) return; // skins need to be treated differently if (skin == "monobook" || skin == "simple") { newer(); } else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") { older(); } /** skin == "monobook" || skin == "simple" */ function newer() { // links are to replaced in p-lang only var pLang = document.getElementById("p-lang"); if (!pLang) return; var lis = pLang.getElementsByTagName("li"); for (var i = 0; i < lis.length; i++) { var li = lis[i]; // only links with a corresponding Link_FA template are interesting if (!document.getElementById(li.className + "-fa")) continue; // additional class so the template can be hidden with CSS li.className += " FA"; // change title li.title = linkFA_description; } } /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */ function older() { // these root elements can contain FA-links var rootIds = new Array("topbar", "footer"); for (var i=0; i<rootIds.length; i++) { var rootId = rootIds[i]; var root = document.getElementById(rootId); if (!root) continue; // if the root exists, try to decorate all the links within var links = root.getElementsByTagName("a"); for (var j=0; j<links.length; j++) { var link = links[j]; decorate(link); } } } /** id necessary, modify a link to show the FA-star (older) */ function decorate(link) { // exit if not a FA-link var lang = link.title.split(":")[0]; // not precise enough var fa = document.getElementById("interwiki-" + lang + "-fa"); if (!fa) return; // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special" // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article // build an image-node for the FA-star var img = document.createElement("img"); img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png"); img.setAttribute("alt", linkFA_description); img.setAttribute("style", "margin-right: 0.2em;"); // decorate the link with the image link.appendChild(img); link.appendChild(link.removeChild(link.firstChild)); link.setAttribute("title", linkFA_description); } } // aOnloadFunctions[aOnloadFunctions.length] = linkFA; addOnloadHook(linkFA); // END Configuration for "star" logo in front of interwiki links to Featured Articles // ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } // END Enable multiple onload functions // ============================================================ // ============================================================ // BEGIN Externhinweis // NEEDS Enable multiple onload functions /* function externHinweis() { if ( (document.getElementById("pt-login")) && // ob der Benutzer NICHT angemeldet ist (document.getElementById("ca-edit")) && // ob die seite nicht geschützt ist (!document.getElementById("ca-nstab-user")) && // ob die seite keine benutzerseite ist (document.referrer != "") && // ob der referrer nicht leer ist (document.referrer.search(/wikipedia\.org/) == -1) // ob der Referrer NICHT wikipedia.org enthält ) { var externHinweis = document.createElement("div"); externHinweis.setAttribute('id','externHinweis'); // Hier kann der Text verändert werden. // Bitte keine einfachen Anführungsstriche im Text verwenden! // Wikisyntax funktioniert nicht! externHinweis.innerHTML = 'Witaj! Móžeš zmylki porjedźić abo nastawk rozšěrić.; document.getElementById("content").appendChild(externHinweis); } } aOnloadFunctions[aOnloadFunctions.length] = externHinweis; */ // END Externhinweis // ============================================================ // ============================================================ // BEGIN Dynamic Navigation Bars // NEEDS Enable multiple onload functions // set up the words in your language var NavigationBarHide = 'Schować'; var NavigationBarShow = 'Pokazać'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden if (typeof NavigationBarShowDefault == 'undefined' ) { var NavigationBarShowDefault = 1; } // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarShow; } } // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarHide; } } } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "NavFrame") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; // END Dynamic Navigation Bars // ============================================================ // ============================================================ // BEGIN Moving of the editsection links /* * moveEditsection * Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand * direkt rechts neben die jeweiligen Überschriften. * This script moves the [edit]-buttons from the right border of the window * directly right next to the corresponding headings. * * Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene * monobook.js (zu finden unter [[Special:Mypage/monobook.js|Benutzer:Name/monobook.js]]) kopieren: * var oldEditsectionLinks = true; * * dbenzhuser (de:Benutzer:Dbenzhuser) */ function moveEditsection() { if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { var spans = document.getElementsByTagName("span"); for(var i = 0; i < spans.length; i++) { if(spans[i].className == "editsection") { spans[i].style.fontSize = "x-small"; spans[i].style.fontWeight = "normal"; spans[i].style.cssFloat = "none"; spans[i].style.marginLeft = "0px"; spans[i].parentNode.appendChild(document.createTextNode(" ")); spans[i].parentNode.appendChild(spans[i]); } } } } // onload addOnloadHook(moveEditsection); // END Moving of the editsection links // ============================================================ // ============================================================ // BEGIN import Onlyifediting-functions // SEE ALSO [[MediaWiki:Onlyifediting.js]] if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } // END import Onlyifediting-functions // ============================================================ // ============================================================ // BEGIN pageview counter // SEE ALSO [[MediaWiki:Pagecounter.js]] // Please talk to User:LeonWeber before changing anything or // if there are any issues with this. // disable the counter var disable_counter = 0; document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Pagecounter.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); // END pageview counter // ============================================================ /* </source> */