MediaWiki:Common.js
Z Wikiźródeł, repozytorium wolnych materiałów źródłowych
Uwaga: Zmiany po zapisaniu nowych ustawień mogą nie być widoczne. Należy wyczyścić zawartość pamięci podręcznej przeglądarki internetowej.
- Mozilla, Firefox lub Safari – przytrzymaj wciśnięty Shift i kliknij na Odśwież lub wciśnij Ctrl‐F5 lub Ctrl‐R (Cmd‐Shift‐R na Macintoshu)
- Konqueror – kliknij przycisk Odśwież lub wciśnij F5
- Opera – wyczyść pamięć podręczną w menu Narzędzia → Preferencje
- Internet Explorer – przytrzymaj Ctrl i kliknij na Odśwież lub wciśnij Ctrl‐F5
/* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */ /*<pre><nowiki>*/ /* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ addOnloadHook( function() { var hideAll=(document.getElementById('mojNaglowekUryj')); var noFooter=false; var tags = document.getElementsByTagName('div'); var footers = 0; for (var i = 0; i < tags.length; i++) { var el=tags[i].getAttribute("id"); if (el=='mojaStopka') footers++; else if (hideAll && (el=='mojNaglowek')) { tags[i].innerHTML=""; noFooter=true; } } if (noFooter) return; var footer = document.getElementById('mojaStopka'); if ((footer != null) && (footers==1)) { var content = document.getElementById('content'); if (content != null) { var s0=document.getElementById('mojaStopka0'); var s1=document.getElementById('mojaStopka1'); if ((s1 != null) || ((s0 == null) && (content.innerHTML.length>8000))) content.appendChild(footer); } } }); /* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */ /* Skrypt odpowiedzialny za wyświetlanie galerii obrazków [[Szablon:Galeria]] */ function toggleImage(group, remindex, shwindex) { document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none"; document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline"; } function ImageGroup(){ if (document.URL.match(/printable/g)) return; 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=Array(); for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { var temp = UnitNode.childNodes[j]; if (temp.className=="center") units.push(temp); } for (j = 0 ; j < units.length ; j++) { currentimage=units[j]; currentimage.id="ImageGroupsGr"+i+"Im"+j; var imghead = document.createElement("div"); var leftlink = document.createElement("a"); var rightlink = document.createElement("a"); if (j != 0) { leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");"; leftlink.innerHTML="◀"; } if (j != units.length - 1) { rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");"; rightlink.innerHTML="▶"; } var comment = document.createElement("tt"); comment.innerHTML = "("+ (j+1) + "/" + units.length + ")"; with(imghead) { style.fontSize="110%"; style.fontweight="bold"; appendChild(leftlink); appendChild(comment); appendChild(rightlink); } if (units.length>1) currentimage.insertBefore(imghead,currentimage.childNodes[0]); if (j != 0) currentimage.style.display="none"; } } } addOnloadHook(ImageGroup); /* Koniec skryptu odpowiedzialnego za wyświetlanie galerii obrazków [[Szablon:Galeria]] */ /* Skrypt odpowiedzialny za zmianę napisu na zakładce treść - pierwszej od lewej [[Szablon:Autorinfo]], [[Szablon:Wykaz2]]] oraz [[Szablon:Postęp prac]] */ addOnloadHook(function() { var tab1 = document.getElementById("ca-nstab-category"); if(tab1 && (document.getElementById("Authorcat"))) { var t = tab1.firstChild; t.title="Zobacz stronę kategorii autora["+tooltipAccessKeyPrefix+"c]"; t.firstChild.textContent="kategoria autora"; } tab1 = document.getElementById("ca-nstab-main"); if(tab1) { var t = tab1.firstChild; if (document.getElementById("Author")) { t.title="Zobacz stronę autora ["+tooltipAccessKeyPrefix+"c]"; t.firstChild.textContent="autor"; } q = document.getElementById("textquality") if (q) { var src = { "0%": "http://upload.wikimedia.org/wikipedia/commons/8/8f/00%25.png", "25%": "http://upload.wikimedia.org/wikipedia/commons/5/5b/25%25.png", "50%": "http://upload.wikimedia.org/wikipedia/commons/3/3a/50%25.png", "75%": "http://upload.wikimedia.org/wikipedia/commons/c/cd/75%25.png", "100%": "http://upload.wikimedia.org/wikipedia/commons/6/64/100%25.png" } if (src[q.className]) { var i = document.createElement("img"); i.className = "textquality-image"; i.src = src[q.className]; i.width = 9; i.height = 9; t.appendChild(i); } } } }); /* Koniec skryptu odpowiedzialnego za zmianę napisu na zakładce treść - pierwszej od lewej */ /* Skrypt odpowiedzialny za dodatkowe informacje interwiki [[Szablon:Interwiki-info]] */ addOnloadHook(function() { // iterate over all <span>-elements for(var i=0; a = document.getElementsByTagName("span")[i]; i++) { // if found a linkInfo span if(a.className == "interwiki-info") { // iterate over all <li>-elements var count=0; for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { if(b.className == "interwiki-" + a.id) { b.innerHTML = b.innerHTML + " "+a.title; if(a.title == "(org.)") { b.title = "Tekst oryginalny"; } } else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) { count = count+1; if(a.id.charAt(a.id.length-1) == count) { b.innerHTML = b.innerHTML + " "+a.title; } } } } } }); /* Koniec skryptu odpowiedzialnego za dodatkowe informacje interwiki */ /* Skrypt odpowiedzialny za dodanie do wszystkich interwiki możliwości porównania wersji językowych - ⇔ */ addOnloadHook(function() { if( wgNamespaceNumber != 0) return; var doc_url = document.URL; var url = ''; // iterate over all <li>-elements for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { if(b.className.substring(0,10) == "interwiki-" ) { var lang = b.className.substring(10,b.className.length); if( doc_url.indexOf('?title=') != -1 ) { var qm = doc_url.indexOf('&match='); if( qm != -1 ) url = doc_url.substring(0,qm)+"&match="+lang; else url = doc_url+"&match="+lang; } else { var qm = doc_url.indexOf('?'); if( qm != -1 ) url = doc_url.substring(0,qm)+"?match="+lang; else url = doc_url+"?match="+lang; } b.innerHTML = b.innerHTML+'<a href="'+url+'" title="Porównaj z wersją w tym języku"> ⇔</a>'; } } }); /* Koniec skryptu odpowiedzialnego za dodanie do interwiki możliwości porównania wersji językowych - ⇔ */ /* Test if an element has a certain class ************************************** * * Description: Uses regular expressions and caching for better performance. * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[en:Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = "ukryj"; var expandCaption = "pokaż"; function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) { var element = NavigationBoxes[i]; while (element = element.parentNode) { if ( hasClass( element, "outercollapse" ) ) { collapseTable ( i ); break; } } } } } addOnloadHook( createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language var NavigationBarHide = '[' + collapseCaption + ']'; var NavigationBarShow = '[' + expandCaption + ']'; // 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 ( hasClass( NavChild, 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( hasClass( NavChild, 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if (hasClass(NavChild, 'NavPic')) { NavChild.style.display = 'block'; } if (hasClass(NavChild, 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = NavigationBarHide; } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if (hasClass(NavFrame, "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var isCollapsed = hasClass( NavFrame, "collapsed" ); /* * Check if any children are already hidden. This loop is here for backwards compatibility: * the old way of making NavFrames start out collapsed was to manually add style="display:none" * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make * the content visible without JavaScript support), the new recommended way is to add the class * "collapsed" to the NavFrame itself, just like with collapsible tables. */ for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) { if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) { if ( NavChild.style.display == 'none' ) { isCollapsed = true; } } } if (isCollapsed) { for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) { NavChild.style.display = 'none'; } } } var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide); NavToggle.appendChild(NavToggleText); // 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(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } addOnloadHook( createNavigationBarToggleButton ); //## ProofRead function ProofReadLink () { // iterate over all < span >-elements until class "ProofRead" is found var spans = document.getElementsByTagName("span"); for (var i=0; i<spans.length; i++) { var SpanElem = spans[i]; // if found a page number if (SpanElem.className == "ProofRead") { ImageSrc=SpanElem.title; var ProofReadTab = document.createElement("li"); ProofReadTab.setAttribute('id', 'ca-proofread'); var ProofReadTabLink = document.createElement("a"); var caEdit = document.getElementById("ca-edit"); if (!caEdit) break; ProofReadTabLink.href= caEdit.firstChild.href + "&image="+ImageSrc; ProofReadTabText = document.createTextNode("koryguj"); ProofReadTabLink.appendChild(ProofReadTabText); ProofReadTab.appendChild(ProofReadTabLink); var VersionLink = document.getElementById("ca-history"); VersionLink.parentNode.appendChild(ProofReadTab); break; } } } addOnloadHook(ProofReadLink); // Importowanie funkcji działających podczas edycji. Patrz: [[MediaWiki:Common-Edit.js]] if (wgAction == 'edit' || wgAction == 'submit') { if (wgNamespaceNumber > -1) { importScript( "MediaWiki:Common-Edit.js" ) } } //-------------------------------------------------------------------------------- //## Cookies function SetCookie(name,value) { document.cookie = name + "=" + escape(value); } function GetCookie(name) { var i =0; while (i < document.cookie.length) { if (document.cookie.substr(i,name.length) == name) { var valend = document.cookie.indexOf(";",i+name.length+1); if (valend == -1) { valend = document.cookie.length; } return unescape(document.cookie.substring(i+name.length+1,valend)); } i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } } /* POCZĄTEK - Obsługa zmiany linku i opisu dla obrazka w przypisach Szablon:Przypiswiki */ function refInit() { var lista = document.getElementsByTagName('a'); for (var i = 0; i < lista.length; i++) { var wiersz = lista[i]; if (wiersz && (wiersz.className.toLowerCase()=='image') && wiersz.getAttribute('href') && (wiersz.getAttribute('href')=='/wiki/Plik:Wikisource-logo.png')) { wiersz.setAttribute('title','Przypis własny Wikiźródeł'); wiersz.setAttribute('href','/wiki/Wikiźródła:Przypisy'); var a=wiersz.getElementsByTagName('img'); for (var j = 0; j < a.length; j++) if (a[j]) a[j].setAttribute('alt','Przypis własny Wikiźródeł'); } } } addOnloadHook(refInit); /* KONIEC - Obsługa zmiany linku i opisu dla obrazka w przypisach */ /* Link w postaci książki do pokazywania/ukrywania numerów stron */ var openbook = "http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Open_book_nae_02.svg/20px-Open_book_nae_02.svg.png"; function addTogglePageNumbersButton() { var a = document.getElementById("ca-nstab-main"); if(!a) return; var link = document.createElement("a"); link.setAttribute("title", "Pokaż/ukryj numery stron"); if (skin == "monobook" || skin == "vector") { var img = document.createElement("img"); img.src = openbook; var span = document.createElement("span"); span.appendChild(img); link.appendChild(span); } else { var text = document.createTextNode("Numeracja stron"); link.appendChild(text); } link.onclick = togglePageNumbers; link.href = '#'; var li = document.createElement("li"); li.appendChild(link); a.parentNode.insertBefore(li,a.nextSibling); } function togglePageNumbers() { var spans = document.getElementsByTagName("span"); for(var i=0; i < spans.length; i++) { var span = spans[i]; if (span.className != "PageNumber") continue; span.style.display = span.style.display == 'none' ? 'inline' : 'none'; } } if (wgNamespaceNumber == 0) addOnloadHook(addTogglePageNumbersButton); /* === Link do brudnopisów w menu osobistym === ; autor: [[Wikipedysta:Herr Kriss]] */ var disableSandboxLink = 0; // ustawienie tego na 1 lub true w swoim monobook.js pozwoli wyłączyć tę funkcjonalność addOnloadHook(function() { if (wgUserName != null && disableSandboxLink == 0) { var caption = 'Mój brudnopis' if (wgUserLanguage != 'pl') caption = 'My sandbox'; addPortletLink('p-personal', wgServer + wgScript + '?title=Special:Mypage/brudnopis', caption, 'pt-sandbox', caption, '', document.getElementById('pt-preferences')); } });