MediaWiki:Common.js
Aus Kitakien
(Unterschied zwischen Versionen)
K (Wersija 68167 wužiwarja Tlustulimu (diskusija) bu wotstronjena.) |
K (Korrektur) |
||
(Der Versionsvergleich bezieht 10 dazwischenliegende Versionen mit ein.) | |||
Zeile 16: | Zeile 16: | ||
plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href); | plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href); | ||
}) | }) | ||
+ | |||
+ | //po ruskej wikipediji | ||
+ | //according to russian wikipedia | ||
+ | |||
+ | //import module | ||
+ | importedScripts = {} | ||
+ | function importScript2(page, lang) { | ||
+ | page = '?title=' + encodeURIComponent(page.replace(' ','_')) | ||
+ | if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page | ||
+ | else page = wgScript + page | ||
+ | if (importedScripts[page]) return | ||
+ | importedScripts[page] = true | ||
+ | var s = document.createElement('script') | ||
+ | s.type = 'text/javascript' | ||
+ | s.src = page + '&action=raw&ctype=text/javascript' | ||
+ | document.getElementsByTagName('head')[0].appendChild(s) | ||
+ | } | ||
+ | // end import module | ||
// ============================================================ | // ============================================================ | ||
Zeile 38: | Zeile 56: | ||
var linkFA_enabled = true; | var linkFA_enabled = true; | ||
- | /** description that is displayed when cursor hovers above FA interwiki links */ | + | /** description that is displayed when cursor hovers above FA and GA interwiki links */ |
- | var linkFA_description = " | + | var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; |
- | + | var linkGA_description = "Dieser Artikel wurde als lesenswert bewertet."; | |
/** | /** | ||
* star logo for featured articles in other languages, | * star logo for featured articles in other languages, | ||
Zeile 66: | Zeile 84: | ||
var li = lis[i]; | var li = lis[i]; | ||
// only links with a corresponding Link_FA template are interesting | // only links with a corresponding Link_FA template are interesting | ||
- | if ( | + | if (document.getElementById(li.className + "-fa")) { |
// additional class so the template can be hidden with CSS | // additional class so the template can be hidden with CSS | ||
li.className += " FA"; | li.className += " FA"; | ||
// change title | // change title | ||
li.title = linkFA_description; | li.title = linkFA_description; | ||
+ | }else if (document.getElementById(li.className + "-ga")) { | ||
+ | // additional class so the template can be hidden with CSS | ||
+ | li.className += " GA"; | ||
+ | // change title | ||
+ | li.title = linkGA_description; | ||
+ | } | ||
} | } | ||
} | } | ||
Zeile 135: | Zeile 159: | ||
} | } | ||
} | } | ||
- | |||
- | |||
- | |||
- | // ============================================================ | + | |
- | // | + | // Z němskeje wikipedije |
- | // | + | //================================================================================ |
- | + | //*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]]) | |
- | + | // Local Maintainer: [[Commons:User:Dschwen]] | |
- | function | + | |
- | + | function includePage(name) { | |
- | + | document.write('<script type="text/javascript" src="' + wgScript + '?title=' | |
- | + | + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>'); // smaxage=3600 | |
- | + | } | |
- | + | ||
- | + | ||
- | + | //================================================================================ | |
- | + | //*** import Onlyifuploading-functions | |
- | + | // SEE ALSO [[MediaWiki:Onlyifuploading.js]] | |
- | + | ||
- | + | if (wgCanonicalSpecialPageName == "Upload") { | |
- | + | includePage("MediaWiki:Onlyifuploading.js"); | |
- | + | includePage("MediaWiki:Onlyifediting.js"); | |
- | + | ||
- | + | ||
- | + | ||
} | } | ||
- | + | ||
- | + | ||
- | + | ||
// END Externhinweis | // END Externhinweis | ||
// ============================================================ | // ============================================================ | ||
Zeile 175: | Zeile 191: | ||
//Collapsible Tables and Divs, [[:ru:ВП:СБ]] | //Collapsible Tables and Divs, [[:ru:ВП:СБ]] | ||
- | var autoCollapse = | + | var autoCollapse = 0 |
- | var collapseCaption = ' | + | var collapseCaption = 'Verstecken' |
- | var expandCaption = ' | + | var expandCaption = 'Anzeigen' |
function collapsibleTables(){ | function collapsibleTables(){ | ||
Zeile 324: | Zeile 340: | ||
// END pageview counter | // END pageview counter | ||
// ============================================================ | // ============================================================ | ||
+ | |||
+ | // corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...) | ||
+ | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); | ||
+ | |||
+ | /** Skript für Vorlage:Galerie */ | ||
+ | addOnloadHook(function() { | ||
+ | if (document.URL.match(/printable/g)) return; | ||
+ | |||
+ | function toggleImageFunction(group, remindex, shwindex) { | ||
+ | return function() { | ||
+ | document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none"; | ||
+ | document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block"; | ||
+ | return false; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | var divs = document.getElementsByTagName("div"); | ||
+ | var i = 0, j = 0; | ||
+ | var units, search; | ||
+ | var currentimage; | ||
+ | var UnitNode; | ||
+ | for (i = 0; i < divs.length; i++) { | ||
+ | if (divs[i].className !== "ImageGroup") { continue; } | ||
+ | UnitNode = undefined; | ||
+ | search = divs[i].getElementsByTagName("div"); | ||
+ | for (j = 0; j < search.length; j++) { | ||
+ | if (search[j].className !== "ImageGroupUnits") { continue; } | ||
+ | UnitNode=search[j]; | ||
+ | break; | ||
+ | } | ||
+ | if (UnitNode === undefined) { continue; } | ||
+ | units = []; | ||
+ | for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { | ||
+ | var temp = UnitNode.childNodes[j]; | ||
+ | if (temp.className === "center") { units.push(temp); } | ||
+ | } | ||
+ | var rightlink = undefined; | ||
+ | var commentText = undefined; | ||
+ | for (j = 0; j < units.length; j++) { | ||
+ | currentimage = units[j]; | ||
+ | currentimage.id = "ImageGroupsGr" + i + "Im" + j; | ||
+ | var leftlink = document.createElement("a"); | ||
+ | if (commentText !== undefined) { | ||
+ | leftlink.setAttribute("title", commentText); | ||
+ | } | ||
+ | var comment; | ||
+ | if (typeof(currentimage.getAttribute("title")) !== "string") { | ||
+ | commentText = (j+1) + "/" + units.length; | ||
+ | comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")")); | ||
+ | } | ||
+ | else { | ||
+ | commentText = currentimage.getAttribute("title"); | ||
+ | comment = document.createElement("span").appendChild(document.createTextNode(commentText)); | ||
+ | currentimage.removeAttribute("title"); | ||
+ | } | ||
+ | if(rightlink !== undefined) { | ||
+ | rightlink.setAttribute("title", commentText); | ||
+ | } | ||
+ | var imghead = document.createElement("div"); | ||
+ | rightlink = document.createElement("a"); | ||
+ | if (j != 0) { | ||
+ | leftlink.href = "#"; | ||
+ | leftlink.onclick = toggleImageFunction(i, j, j-1); | ||
+ | leftlink.appendChild(document.createTextNode("◀")); | ||
+ | } | ||
+ | if (j != units.length - 1) { | ||
+ | rightlink.onclick = toggleImageFunction(i, j, j+1); | ||
+ | rightlink.appendChild(document.createTextNode("▶")); | ||
+ | } | ||
+ | imghead.style["fontSize"] = "110%"; | ||
+ | imghead.style["fontweight"] = "bold"; | ||
+ | imghead.appendChild(leftlink); | ||
+ | imghead.appendChild(document.createTextNode("\xA0")); | ||
+ | imghead.appendChild(comment); | ||
+ | imghead.appendChild(document.createTextNode("\xA0")); | ||
+ | imghead.appendChild(rightlink); | ||
+ | if (units.length > 1) { | ||
+ | currentimage.insertBefore(imghead,currentimage.childNodes[0]); | ||
+ | } | ||
+ | if (j != 0) { | ||
+ | currentimage.style["display"] = "none"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }); | ||
// </source> | // </source> |
Aktuelle Version vom 19:02, 17. Okt. 2010
/* <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); }) //po ruskej wikipediji //according to russian wikipedia //import module importedScripts = {} function importScript2(page, lang) { page = '?title=' + encodeURIComponent(page.replace(' ','_')) if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page else page = wgScript + page if (importedScripts[page]) return importedScripts[page] = true var s = document.createElement('script') s.type = 'text/javascript' s.src = page + '&action=raw&ctype=text/javascript' document.getElementsByTagName('head')[0].appendChild(s) } // end import module // ============================================================ // BEGIN hasclass //hasClass, from en.wp and ru.wp var hasClass = (function (){ var reCache = {} return function (element, className){ return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className) } })() function addLoadEvent(f) {addOnloadHook(f)} //for backwards compatibility // END hasclass // ============================================================ // ============================================================ // 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 and GA interwiki links */ var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; var linkGA_description = "Dieser Artikel wurde als lesenswert 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")) { // additional class so the template can be hidden with CSS li.className += " FA"; // change title li.title = linkFA_description; }else if (document.getElementById(li.className + "-ga")) { // additional class so the template can be hidden with CSS li.className += " GA"; // change title li.title = linkGA_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](); } } } // Z němskeje wikipedije //================================================================================ //*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]]) // Local Maintainer: [[Commons:User:Dschwen]] function includePage(name) { document.write('<script type="text/javascript" src="' + wgScript + '?title=' + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>'); // smaxage=3600 } //================================================================================ //*** import Onlyifuploading-functions // SEE ALSO [[MediaWiki:Onlyifuploading.js]] if (wgCanonicalSpecialPageName == "Upload") { includePage("MediaWiki:Onlyifuploading.js"); includePage("MediaWiki:Onlyifediting.js"); } // END Externhinweis // ============================================================ // ============================================================ // BEGIN Dynamic Navigation Bars // NEEDS Enable multiple onload functions // nowa wersija po ruskej wikipediji //Collapsible Tables and Divs, [[:ru:ВП:СБ]] var autoCollapse = 0 var collapseCaption = 'Verstecken' var expandCaption = 'Anzeigen' function collapsibleTables(){ var Table, HRow, THs, Header, btn, a, tblIdx = 0, colTables = [] var allTables = document.getElementsByTagName('table') for (var i=0; Table = allTables[i]; i++){ if (!hasClass(Table, 'collapsible')) continue if (!(HRow = Table.rows[0])) continue THs = HRow.getElementsByTagName('th') if (THs.length == 0) continue Header = THs[THs.length-1] //last TH, not 1st like in en.wp Table.id = 'collapsibleTable' + tblIdx btn = document.createElement('span') btn.style.styleFloat = btn.style.cssFloat = 'right' btn.style.fontWeight = 'normal' a = document.createElement('a') a.id = 'collapseButton' + tblIdx a.href = 'javascript:collapseTable(' + tblIdx + ');' a.appendChild(document.createTextNode(collapseCaption)) btn.appendChild(document.createTextNode('[')) btn.appendChild(a) btn.appendChild(document.createTextNode(']')) Header.insertBefore(btn, Header.childNodes[0]) colTables[tblIdx++] = Table } for (var i=0; i < tblIdx; i++) if ((tblIdx > autoCollapse && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed')) collapseTable(i) } function collapseTable (idx){ var Table = document.getElementById('collapsibleTable' + idx) var btn = document.getElementById('collapseButton' + idx) if (!Table || !btn) return false var Rows = Table.rows var isShown = (btn.firstChild.data == collapseCaption) btn.firstChild.data = isShown ? expandCaption : collapseCaption var disp = isShown ? 'none' : Rows[0].style.display for (var i=1; i < Rows.length; i++) Rows[i].style.display = disp } var NavigationBarHide = '[' + collapseCaption + ']' var NavigationBarShow = '[' + expandCaption + ']' var NavigationBarShowDefault = autoCollapse function collapsibleDivs(){ var navIdx = 0, colNavs = [], i, NavFrame var divs = document.getElementById('content').getElementsByTagName('div') for (i=0; NavFrame = divs[i]; i++) { if (!hasClass(NavFrame, 'NavFrame')) continue NavFrame.id = 'NavFrame' + navIdx var a = document.createElement('a') a.className = 'NavToggle' a.id = 'NavToggle' + navIdx a.href = 'javascript:collapseDiv(' + navIdx + ');' a.appendChild(document.createTextNode(NavigationBarHide)) // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for (var j=0; j < NavFrame.childNodes.length; j++) if (hasClass(NavFrame.childNodes[j], 'NavHead')) NavFrame.childNodes[j].appendChild(a) colNavs[navIdx++] = NavFrame } for (i=0; i < navIdx; i++) if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed')) collapseDiv(i) } function collapseDiv(idx) { var div = document.getElementById('NavFrame' + idx) var btn = document.getElementById('NavToggle' + idx) if (!div || !btn) return false var isShown = (btn.firstChild.data == NavigationBarHide) btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide var disp = isShown ? 'none' : 'block' for (var child = div.firstChild; child != null; child = child.nextSibling) if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent')) child.style.display = disp } addOnloadHook(collapsibleDivs); addOnloadHook(collapsibleTables); // 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 // ============================================================ // corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...) document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); /** Skript für Vorlage:Galerie */ addOnloadHook(function() { if (document.URL.match(/printable/g)) return; function toggleImageFunction(group, remindex, shwindex) { return function() { document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none"; document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block"; return false; }; } var divs = document.getElementsByTagName("div"); var i = 0, j = 0; var units, search; var currentimage; var UnitNode; for (i = 0; i < divs.length; i++) { if (divs[i].className !== "ImageGroup") { continue; } UnitNode = undefined; search = divs[i].getElementsByTagName("div"); for (j = 0; j < search.length; j++) { if (search[j].className !== "ImageGroupUnits") { continue; } UnitNode=search[j]; break; } if (UnitNode === undefined) { continue; } units = []; for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { var temp = UnitNode.childNodes[j]; if (temp.className === "center") { units.push(temp); } } var rightlink = undefined; var commentText = undefined; for (j = 0; j < units.length; j++) { currentimage = units[j]; currentimage.id = "ImageGroupsGr" + i + "Im" + j; var leftlink = document.createElement("a"); if (commentText !== undefined) { leftlink.setAttribute("title", commentText); } var comment; if (typeof(currentimage.getAttribute("title")) !== "string") { commentText = (j+1) + "/" + units.length; comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")")); } else { commentText = currentimage.getAttribute("title"); comment = document.createElement("span").appendChild(document.createTextNode(commentText)); currentimage.removeAttribute("title"); } if(rightlink !== undefined) { rightlink.setAttribute("title", commentText); } var imghead = document.createElement("div"); rightlink = document.createElement("a"); if (j != 0) { leftlink.href = "#"; leftlink.onclick = toggleImageFunction(i, j, j-1); leftlink.appendChild(document.createTextNode("◀")); } if (j != units.length - 1) { rightlink.onclick = toggleImageFunction(i, j, j+1); rightlink.appendChild(document.createTextNode("▶")); } imghead.style["fontSize"] = "110%"; imghead.style["fontweight"] = "bold"; imghead.appendChild(leftlink); imghead.appendChild(document.createTextNode("\xA0")); imghead.appendChild(comment); imghead.appendChild(document.createTextNode("\xA0")); imghead.appendChild(rightlink); if (units.length > 1) { currentimage.insertBefore(imghead,currentimage.childNodes[0]); } if (j != 0) { currentimage.style["display"] = "none"; } } } }); // </source>