MediaWiki:Common.js
Wikibooks, manuali e libri di testo liberi.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti. Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menu Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
//<source lang=javascript> /* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */ /*</source> ==tooltips and access keys== <source lang=javascript>*/ // Da http://en.wikibooks.org/wiki/MediaWiki:Common.js // hasClass() // 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); }; })(); ta = new Object(); ta['pt-userpage'] = new Array('.','La mia pagina utente'); ta['pt-anonuserpage'] = new Array('.','La pagina utente dell\'ip che stai usando'); ta['pt-mytalk'] = new Array('n','Le mie discussioni'); ta['pt-anontalk'] = new Array('n','Discussioni riguardo le modifiche fatte da questo ip'); ta['pt-preferences'] = new Array('','Le mie preferenze'); ta['pt-watchlist'] = new Array('l','La lista delle pagine che stai tenendo sotto sorveglianza.'); ta['pt-mycontris'] = new Array('y','La lista dei miei contributi'); ta['pt-login'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); ta['pt-anonlogin'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); ta['pt-logout'] = new Array('o','Log out (esci)'); ta['ca-talk'] = new Array('t','Vedi le discussioni relative alla pagina.'); ta['ca-edit'] = new Array('e','Puoi modificare questa pagina. Per favore usa il bottone di anteprima prima di salvare.'); ta['ca-addsection'] = new Array('+','Aggiungi un commento a questa discussione.'); ta['ca-viewsource'] = new Array('e','Questa pagina è protetta, ma puoi vedere il suo codice sorgente.'); ta['ca-history'] = new Array('h','Versioni precedenti di questa pagina.'); ta['ca-protect'] = new Array('=','Proteggi questa pagina'); ta['ca-delete'] = new Array('d','Cancella questa pagina'); ta['ca-undelete'] = new Array('d','Ripristina la pagina com\'era prima della cancellazione'); ta['ca-move'] = new Array('m','Sposta questa pagina ad un altro titolo'); ta['ca-nomove'] = new Array('','Non hai il permesso di spostare questa pagina'); ta['ca-watch'] = new Array('w','Aggiungi questa pagina all\'elenco delle pagine che tieni sotto sorveglianza'); ta['ca-unwatch'] = new Array('w','Togli questa pagina dall\'elenco delle pagine che tieni sotto sorveglianza'); ta['search'] = new Array('f','Cerca questa wiki'); ta['p-logo'] = new Array('','Pagina Principale'); ta['n-mainpage'] = new Array('z','Visita la Pagina Principale'); ta['n-portal'] = new Array('','Descrizione del progetto, cosa puoi fare, e dove trovare le cose'); ta['n-sitesupport'] = new Array('','Aiutaci'); ta['n-recentchanges'] = new Array('r','La lista delle ultime modifiche a questa wiki.'); ta['n-randompage'] = new Array('x','Mostra una pagina a caso'); ta['n-help'] = new Array('','Raccolta di manuali.'); ta['n-villagepump'] = new Array('','Per discutere di Wikibooks'); ta['n-currentevents'] = new Array('','Eventi di attualità'); ta['t-whatlinkshere'] = new Array('j','Lista di tutte le pagine che portano a questa'); ta['t-recentchangeslinked'] = new Array('k','Lista delle ultime modifiche alle pagine linkate da questa.'); ta['feed-rss'] = new Array('','Feed RSS per questa pagina'); ta['feed-atom'] = new Array('','Feed Atom per questa pagina'); ta['t-contributions'] = new Array('','Lista dei contributi di questo utente'); ta['t-emailuser'] = new Array('','Manda un\'E.mail a questo utente'); ta['t-upload'] = new Array('u','Carica immagini o file multimediali su Wikibooks'); ta['t-specialpages'] = new Array('q','Lista di tutte le pagine speciali'); ta['ca-nstab-main'] = new Array('c','Vedi l\'articolo relativo'); ta['ca-nstab-user'] = new Array('c','Vedi la pagina utente'); ta['ca-nstab-media'] = new Array('c','Vedi la pagina del file multimediale'); ta['ca-nstab-special'] = new Array('','Questa è una pagina speciale, non può essere modificata.'); ta['ca-nstab-wp'] = new Array('a','Vedi la pagina del progetto'); ta['ca-nstab-image'] = new Array('c','Vedi la pagina dell\'immagine'); ta['ca-nstab-mediawiki'] = new Array('c','Vedi il messaggio di sistema'); ta['ca-nstab-template'] = new Array('c','Vedi il template'); ta['ca-nstab-help'] = new Array('c','Vedi la pagina di aiuto'); ta['ca-nstab-category'] = new Array('c','Vedi la pagina della categoria'); ta['ca-nstab-portal'] = new Array('c','Vedi il portale'); /*</source> == funzioni di uso comune == <source lang=javascript>*/ function inc(wikiPage) { // Include uno script document.writeln('<script type="text/javascript" src="/w/index.php?title=' + wikiPage + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } function arrayContains(elemento, array) { for(i=0; i<array.length; i++) { if (array[i] == elemento) return true; } return false; } arrayMese = new Array(" ", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"); // 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 function getElementsByClass(cls, tag, doc) { allElements = doc.getElementsByTagName(tag); var i = 0; var arr = new Array(); for(i = 0; i<allElements.length; i++) { if(cls == allElements[i].className || allElements[i].className.indexOf(cls + ' ') != -1 || allElements[i].className.indexOf(' ' + cls) != -1) arr.push(allElements[i]); } return arr; } //Aggiunge un pulsante generico alla Toolbar function addToolbarButton(id, href, src, alt, title) { var toolbar = document.getElementById("toolbar"); if(!toolbar) return; var today = new Date(); var anno= today.getYear()+1900; var mese = arrayMese[today.getMonth()]; var tmp = document.createElement("a"); tmp.id = id; tmp.href = href; var imag = document.createElement("img"); imag.setAttribute('src', src); imag.setAttribute('alt', alt); imag.setAttribute('title', title); tmp.appendChild(imag); toolbar.appendChild(tmp); } /*</source> ==link laterali== <source lang=javascript>*/ // ================================================== // Book-wide search using Google // from pl.wikibooks, maintainer [[b:pl:User:Piotr]] // modified by [[b:en:User:darklama]] // ================================================== var wgBookName = wgPageName.split("/", 1)[0] || wgPageName; function insertGoogleSearch() { if ( wgNamespaceNumber != 0) return; var google = "http://www.google.it/custom?sa=Google+Search&domains=it.wikibooks.org/wiki/PAGE&sitesearch=it.wikibooks.org/wiki/PAGE"; var tb = document.getElementById('p-tb'); if (tb) tb = tb.getElementsByTagName('ul')[0]; else return; var link = document.createElement('a'); var li = document.createElement('li'); link.href = google.replace(/PAGE/g, wgBookName); link.appendChild(document.createTextNode("Cerca in questo libro")); li.id = "google-trick-search"; li.appendChild(link); tb.insertBefore(li, tb.firstChild); } addOnloadHook(insertGoogleSearch); /*** Collegamento diretto alla pagina di upload di Commons nel menu di sinistra, da WP:PT */ function linkUploadToCommons() { if (document.getElementById("carrega-para-commons")) return; var li_carrega = document.getElementById("t-upload"); if (!li_carrega) return; var afegit = li_carrega.nextSibling; var ul_eines = li_carrega.parentNode; var li = document.createElement("li"); li.id = "carrega-para-commons"; li.innerHTML = '<a href="http://commons.wikimedia.org/wiki/Special:Upload">Carica su Commons</a>'; if (afegit) ul_eines.insertBefore(li, afegit); else ul_eines.appendChild(li); } addLoadEvent(linkUploadToCommons); function add_editcount() { var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; // use the "edit this page" tab to get already-tidied url var linguettaedit = document.getElementById('ca-edit'); if(!linguettaedit) return; var editlk = linguettaedit.getElementsByTagName('a')[0].href; if(editlk.indexOf('Utente:') != -1) { // cut everything up to "title=" from the start and everything past "&action=edit" from the end editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit')); editlk = editlk.substring(editlk.indexOf(':') + 1); var slloc = editlk.indexOf('/'); if (slloc > 0) editlk = editlk.substring(0, slloc); editcounturl = 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user='+ editlk +'&dbname=itwikibooks_p'; if (document.getElementById("toolbar-user-editcount")) return; var li_carrega = document.getElementById("carrega-para-commons"); if (!li_carrega) return; var afegit = li_carrega.nextSibling; var ul_eines = li_carrega.parentNode; var li = document.createElement("li"); li.id = "carrega-para-commons"; li.innerHTML = '<a href="' + editcounturl + '">Numero edit</a>'; if (afegit) ul_eines.insertBefore(li, afegit); else ul_eines.appendChild(li); } } addLoadEvent(add_editcount); /*** Fine del collegamento diretto alla pagina di upload di Commons */ function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } function LinkAdQ() { if ( document.getElementById( "p-lang" ) ) { var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" ); for ( var i = 0; i < InterwikiLinks.length; i++ ) { if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) { InterwikiLinks[i].className += " FA" InterwikiLinks[i].title = "La voce è in vetrina in questa lingua."; } } } } addLoadEvent( LinkAdQ ); /*</source> == dynamic navigation bars == <source lang=javascript>*/ // BEGIN Dynamic Navigation Bars // set up the words in your language var NavigationBarHide = '▲ Nascondi'; var NavigationBarShow = '▼ Espandi'; // 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 var NavigationBarShowDefault = 0; // 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 /*</source> ==tab & titolo== <source lang=javascript>*/ function booktab() { var tab = document.getElementById("ca-nstab-main"); if(tab){ var titolo = document.title; if (titolo.indexOf('/') == -1) { tab.childNodes[0].firstChild.nodeValue = 'libro '; } if(titolo.indexOf('Pagina principale') != -1) { tab.childNodes[0].firstChild.nodeValue = 'pagina principale'; } if(titolo.indexOf('Libro di cucina/Ricette/') != -1) { tab.childNodes[0].firstChild.nodeValue = 'ricetta '; } } } addLoadEvent(booktab); /************************************************************/ /* Applications : les fonctionnalités client en elles-mêmes */ /************************************************************/ /** * Modifica l'aspetto del titolo di una pagina * * @todo : http://fr.wikibooks.org/wiki/Eros * @author : utenti DavidL, Tavernier (riscrittura) su fr.books */ enableSpecialTitle = true; function setupTitle() { if(!enableSpecialTitle) return false; if (wgAction != 'view') return false; //solamente in lettura if (wgNamespaceNumber) return false; //solo nel ns0 if (document.getElementById('contentSub2')) return false; //lorsque la page est supprimée, pour éviter d'attraper le "N modifications effacées" var titre = getElementsByClass("firstHeading", '*', document)[0]; var hasInnerText = (titre.innerText != undefined) ? true : false; if (!hasInnerText) { var saveTitre = titre.textContent; } else { var saveTitre = titre.innerText; // hack } var souspages = getElementsByClass("subpages", '*', document); if (souspages == "") { // pas de souspages return false; } var liens = souspages[0].getElementsByTagName("a"); titre.innerHTML = ""; var finTitre = ""; for (var souspage=0; souspage<liens.length; souspage++) { if (!hasInnerText) { var textContent = liens[souspage].textContent; } else { var textContent = liens[souspage].innerText; // hack... hack... } var pathname = liens[souspage].pathname; if (pathname.substr(0,1) != '/') pathname = '/' + pathname; titre.innerHTML += "<a href=\"" + pathname + "\" title=\"" + liens[souspage].title + "\"\>" + textContent + "</a>" + "\n<br />" finTitre += textContent + "/"; } finTitre = saveTitre.replace(finTitre, ""); titre.innerHTML += finTitre; //un wgSubPageName sarebbe più pratico... titre.style.lineHeight = "1.2em;" if (!hasInnerText) { souspages[0].textContent = saveTitre; } else { souspages[0].innerText = saveTitre; //per copiare il titolo della pagina senza usare l'url } //souspages[0].textContent = saveTitre; // pour pouvoir copier-coller le titre complet sans passer par l'url //souspages[0].innerText = saveTitre; //hack } addOnloadHook(setupTitle); function killTitle() { if(document.getElementById('NoTitle')) { var fh = getElementsByClass('firstHeading', '*', document)[0]; var sp = getElementsByClass('subpages', '*', document)[0]; var ss = document.getElementById('siteSub'); fh.style.display = ss.style.display = 'none'; if(sp) sp.style.display = 'none'; } } addLoadEvent(killTitle); /*</source> ==Menu caratteri speciali== <source lang=javascript>*/ /** * Aggiunge il menu a tendina per selezionare un sottoinsieme di caratteri speciali * Attenzione: l'ordine della lista deve corrispondere a quello di MediaWiki:Edittools ! */ function addCharSubsetMenu() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; menu += "<option>Wiki</option>"; menu += "<option>Latino</option>"; menu += "<option>Greco antico</option>"; menu += "<option>Greco moderno</option>"; menu += "<option>Cirillico</option>"; menu += "<option>Arabo</option>"; menu += "<option>Ebraico</option>"; menu += "<option>Armeno</option>"; menu += "<option>Geroglifico</option>"; menu += "<option>Vietnamita</option>"; menu += "<option>IPA</option>"; menu += "<option>Matematico</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ chooseCharSubset(0); } } /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } addLoadEvent(addCharSubsetMenu); // END Menu caratteri speciali // INIZIO Collegamenti Interprogetto (codice adattato da de:wikt:Mediawiki:monobook.js) document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>'); function iProject() { if (document.getElementById("interProject")) { var iProject = document.getElementById("interProject").innerHTML; var interProject = document.createElement("div"); interProject.style.marginTop = "0.7em"; interProject.innerHTML = '<h5>altri progetti<\/h5><div class="pBody">'+iProject+'<\/div>'; document.getElementById("p-tb").appendChild(interProject); } } hookEvent("load", iProject); // FINE Collegamenti Interprogetto // CODICE PER IL TEMPLATE GALLERY // da fr.wiki 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 bc=document.getElementById("bodyContent"); var divs=bc.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; var rightlink; if (j != 0) { leftlink = document.createElement("a"); leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");"; leftlink.innerHTML="◀"; } else { leftlink = document.createElement("span"); leftlink.innerHTML=" "; } if (j != units.length - 1) { rightlink = document.createElement("a"); rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");"; rightlink.innerHTML="▶"; } else { rightlink = document.createElement("span"); 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); } currentimage.insertBefore(imghead,currentimage.childNodes[0]); if (j != 0) currentimage.style.display="none"; } } } addOnloadHook(ImageGroup); function onglets() { //first tab var linguetta = document.getElementById("ca-nstab-main"); if(!linguetta) return; var a = linguetta.firstChild; if(!a) return; q = document.getElementById("textquality") if(!q) return; var image = ""; if(q.className == "0%" || q.className == "00%" ) { image = "http://upload.wikimedia.org/wikipedia/commons/8/8f/00%25.png"; } if(q.className == "25%") { image = "http://upload.wikimedia.org/wikipedia/commons/5/5b/25%25.png"; } if(q.className == "50%") { image = "http://upload.wikimedia.org/wikipedia/commons/3/3a/50%25.png"; } if(q.className == "75%") { image = "http://upload.wikimedia.org/wikipedia/commons/c/cd/75%25.png"; } if(q.className == "100%") { image = "http://upload.wikimedia.org/wikipedia/commons/6/64/100%25.png"; } var newChild = document.createElement('img'); newChild.setAttribute('src', image); newChild.setAttribute('alt', q.className); a.appendChild(newChild); } addLoadEvent(onglets); inc('MediaWiki:FasiAvanzamento.js'); if(wgNamespaceNumber == 0) { inc('MediaWiki:CambiaAvanzamento.js'); } //</source>