Utente:Gianfranco/monobook.js
Da wikiafrica.
Nota: dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tenere premuto il tasto delle maiuscole Shift e fare clic su Ricarica, oppure premere Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premere Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer: tenere premuto il tasto Ctrl e fare clic su Aggiorna, oppure premere Ctrl-F5
- Opera: svuotare completamente la cache dal menu Strumenti → Preferenze
/* <pre><nowiki> */ document.write('<script type="text/javascript" src="' + 'http://www.wikiafrica.it/index.php/Wikiafrica:Monobook.js/henna.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); /** * Derivato dal monobook.js di [[:en:User:Wayward]], basato su [[:en:User:Alphax/monobook.js]] * Necessita dell'apposito monobook.css * Testato solo su Firefox * Contiene codice preso dagli script di [[Utente:Paulatz]], [[Utente:Helios89]], [[Utente:Timendum]], [[Utente:Nick1915]] * Admin compact version * Forked from [[User:ABCD/monobook.js]] around April 2005 * Dual licensed under the GFDL and GPL */ // [[:en:User:Lupin/popups.js]] document.write('<script type="text/javascript" src="' + 'http://www.wikiafrica.it/index.php/Wikiafrica:Monobook.js/strings-it.js' + '&action=raw&ctype=text/javascript"></script>'); document.write('<script type="text/javascript" src="' + 'http://www.wikiafrica.it/index.php/Wikiafrica:Monobook.js/CategorieOsservateTemplate.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); /** GLOBALS **/ arrayArgument = new Array(" ", "antropologia", "archeologia", "architettura", "arte", "biografie", "biologia", "calcio", "chimica", "cinema", "diritto", "economia", "fantascienza", "filosofia", "fisica", "fumetti", "geografia", "giochi", "guerra", "informatica", "ingegneria", "letteratura", "linguistica", "matematica", "meccanica", "medicina", "musei", "musica", "politica", "religione", "scienza", "sociologia", "sport", "storia", "teatro", "wikipedia"); arrayMese = new Array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"); var curTemplate; /**** Initialize on window load ****/ if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false); else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs); else { window.previousLoadFunction = window.onload; window.onload = function() { window.previousLoadFunction(); myLoadFuncs(); } } /**** Load custom functions ****/ function myLoadFuncs() { addPurge(); // &action=purge changeLinks(); // cause the personal menu looks bad add_tabs(); // load tabs addToolBoxLinks(); // add toolbox links addNavBarLinks(); // add navigation bar links talkpageplus(); // make red talk page links start new sections // remove the logout access key ta['pt-logout'] = new Array(null, null); } // Functions auxFicus and Ficus function auxFicus(){ Argument = document.getElementById('inlinePopupDiv').getElementsByTagName('select')[0].value; wpTextbox1 = document.getElementById("wpTextbox1"); if (curTemplate == "W") wpTextbox1.value="{{"+curTemplate+"|"+Argument+"|"+"{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}|~~~~}}"+wpTextbox1.value; else { Because = document.getElementById('inlinePopupDiv').getElementsByTagName('input')[0].value; wpTextbox1.value="{{"+curTemplate+"|"+Because+"|"+Argument+"|"+"{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}|~~~~}}"+wpTextbox1.value; } RemoveNode('inlinePopupDiv'); } function Ficus(Template){ switch(Template){ case "A": Greeter = "Hai richiesto di inserire questa pagina nella Categoria <b>\"Da aiutare\"</b>\n." + " Scrivi una motivazione e scegli un argomento dalla lista"; break; case "C": Greeter = "Hai richiesto di inserire questa pagina nella Categoria <b>\"Da controllare\"</b>\n." + " Per favore scrivi una motivazione e scegli un argomento dalla lista"; break; case "P": Greeter = "Hai richiesto di inserire questa pagina nella Categoria <b>\"Segnalazioni NPOV\"</b>\n." + " Per favore scrivi una motivazione e scegli un argomento dalla lista"; break; case "W": Greeter = "Hai richiesto di inserire questa pagina nella Categoria <b>\"Da wikificare\"</b>\n." + " Per favore scegli un argomento dalla lista."; break; default: Greeter = "Qualcosa è andato storto, fai pure quello che vuoi: non ho idea di cosa succederà" } curTemplate = Template; var div = document.createElement( 'div' ); div.id = 'inlinePopupDiv'; div.style.position = 'absolute'; div.style.zIndex = 1000; div.style.left = '5px'; div.style.top = '5px'; div.style.backgroundColor = '#FFFFFF'; div.style.borderStyle = 'solid'; div.style.borderWidth = ' medium'; div.style.borderColor = '#000000'; var top = document.createElement( 'div' ); top.id = 'inlinePopupTop'; top.style.textAlign = 'right'; top.style.margin = '8px'; top.style.backgroundColor = '#DDDDDD'; var a = document.createElement( 'a' ); a.appendChild( document.createTextNode( 'Close' ) ); a.href = "javascript:void RemoveNode('inlinePopupDiv')"; a.style.margin = '8px'; top.appendChild( a ); div.appendChild( top ); var greet = document.createElement('p'); greet.innerHTML = Greeter; div.appendChild(greet); var form = document.createElement('form'); form.name = "popupForm"; var p = document.createElement('p'); p.appendChild(document.createTextNode('Motivazione:')); if(Template!='W'){ var myedit = document.createElement('input'); myedit.name = 'editReason'; myedit.type = 'text'; p.appendChild(myedit); } p.appendChild(document.createTextNode('Argomento:')); var sel = document.createElement('select'); sel.name = 'popupSelect'; sel.size = 1; var option; for (i=0; i<arrayArgument.length; i++){ option = new Option(arrayArgument[i],' '); option.value = arrayArgument[i]; sel.options[sel.options.length] = option; } p.appendChild(sel); var button = document.createElement('input'); button.value = 'OK'; button.type = 'button'; button.setAttribute('onclick', 'auxFicus()'); p.appendChild(button); form.appendChild(p); div.appendChild(form); document.body.appendChild( div ); div.getElementsByTagName('input')[0].focus(); } /**** Make the top links look better ****/ function changeLinks() { if(!document.getElementById) return; // remove the "my" bits document.getElementById('pt-mytalk').firstChild.innerHTML = 'discussione'; document.getElementById('pt-preferences').firstChild.innerHTML = 'preferenze'; document.getElementById('pt-watchlist').firstChild.innerHTML = 'Osservati speciali'; document.getElementById('pt-mycontris').firstChild.innerHTML = 'contributi'; // add a clock var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0]; addlilink(toplinks, '#', '', 'utcdate'); // showtime(); } /**** Add generic tab ****/ function addlilink(tabs, url, name, id){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.appendChild(na); tabs.appendChild(li); return li; } /**** Add tab as menu ****/ function addlimenu(tabs, name, id) { var na = document.createElement('a'); na.href = '#'; var mn = document.createElement('ul'); na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.className = 'tabmenu'; li.appendChild(na); li.appendChild(mn); tabs.appendChild(li); return li; } /**** Add purge tab ****/ function addPurge() { ta['ca-purge'] = ['g', 'Purge the internal cache for this page']; if(!document.getElementById) return; var x = document.getElementById('ca-history'); var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if(!x) return; if(x.children) x = x.children[0]; else x = x.childNodes[0]; var pf = document.createElement('form'); pf.action = '?action=purge'; pf.method = 'POST'; pf.id = 'pf'; x.appendChild(pf); addlilink(tabs, 'javascript:document.getElementById("pf").submit();', 'purge', 'ca-purge'); } function getParam(name){ if(location.search){ for(var x in location.search.substring(1).split('&')){ var eq = x.indexOf('='); if(x.substring(0, eq) == name) return x.substring(eq + 1); } } return ''; } /**** Tools menu ****/ function fixformat(){ var form = document.editform; var txt = form.wpTextbox1; txt.value = txt.value .replace(/<\/?(b|strong)>/gi, "'''") .replace(/<\/?(i|em|var)>/gi, "''") .replace(/\{\{([Ss]u[bp])\|([^}]+)\}\}/g, "{{subst:$1|$2}}") .replace(/<\/div +>/gi, "</div>"); form.wpSummary.value += "formatting"; form.wpMinoredit.checked = true; } function replace(){ var s = prompt("Search regexp?"); if(s){ var r = prompt("Replace regexp?"); if(!r && r != '') return; var txt = document.editform.wpTextbox1; txt.value = txt.value.replace(new RegExp(s, "g"), r); } } /**** Talk message functions ****/ // Appends msg to the currently editted page, sets the summary to summ, // marks or unmarks the "Watch this page" checkbox according to watch, // and marks or unmarks the "Minor edit" checkbox function edit_summary_watch(msg, summ, watch, minor) { var f = document.editform, t = f.wpTextbox1; if (t.value.length > 0) t.value += '\n'; t.value += msg; f.wpSummary.value = summ; f.wpWatchthis.checked = watch; f.wpMinoredit.checked = minor; } // Like the former one, but adds "msg" in the beginning function edit_summary_watch2(msg, summ, watch, minor) { var f = document.editform, t = f.wpTextbox1; t.value = msg + '\n' + t.value; f.wpSummary.value = summ; f.wpWatchthis.checked = watch; f.wpMinoredit.checked = minor; } // Places perm block and name block tags at top of edit section, // marks or unmarks the "Watch this page" checkbox according to watch, // and marks or unmarks the "Minor edit" checkbox function perm_name_block(msg, summ, watch, minor) { var f = document.editform, t = f.wpTextbox1; if (t.value.length > 0) t.value += '\n'; var temp = t.value; t.value = msg + '\n\n' + temp; f.wpSummary.value = summ; f.wpWatchthis.checked = watch; f.wpMinoredit.checked = minor; } /**** Integrate tabs and talk message functions ****/ // adds various tabs and menu tabs function add_tabs() { var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; //Solo per le pagine di discussioni if (document.title.indexOf("Modifica di Discussioni utente:") != -1) { addlimenu(tabs, 'Messaggi talk', 'talkm'); var talkm = document.getElementById('talkm').getElementsByTagName('ul')[0]; addlilink(talkm,'javascript:edit_summary_watch("{{subst:benve|~~~~}}", "Benvenuto", false, true)','Welcome', ''); addlilink(talkm,'javascript:edit_summary_watch("{{test}}", "test", false, true)','Test', ''); addlilink(talkm,'javascript:edit_summary_watch("{{vandalismo}}", "vandal", false, true)','Vandal', ''); addlilink(talkm,'javascript:edit_summary_watch("{{spam}}", "spam", false, true)','Spam', ''); addlilink(talkm,'javascript:edit_summary_watch("{{Avvisocopyviol|articolo=|url=}} ~~~~","avviso cv",false,true)','avviso cv',''); addlilink(talkm,'javascript:edit_summary_watch("{{Avvisocancellautente|wikilink=[[Titolo_pagina]]}}","avviso proposta cancellazione",false,true)','avviso canc',''); } else if (document.title.indexOf("Modifica") != -1) // Solo durante le modifiche { addlimenu(tabs, 'strumenti vari', 'tools'); var tools = document.getElementById('tools').getElementsByTagName('ul')[0]; addlilink(tools,'javascript:fixformat()','format', ''); addlilink(tools,'javascript:replace()','replace', ''); addlilink(tools,'javascript:edit_summary_watch2("{{cancella subito|motivo=}}", "cancimm", false, true)','cancimm', ''); addlilink(tools,'javascript:edit_summary_watch2("{{cancelcopy|firma=qualcuno|fonte=}}", "CaNcElCoPy !!!", false, true)','cancelcopy', ''); addlilink(tools,'javascript:edit_summary_watch2("{{da cancellare}}", "cancellare", false, true)','da cancellare', ''); } } /**** Add links to the toolbox ****/ function addToolBoxLinks() { var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0]; var cur_user=document.getElementById("pt-userpage").textContent; addlilink(tb, 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=itwiki_p&user=' + cur_user, 'Edit count', ''); username_a = document.URL.match(/:.*:(.*)/); username=username_a[1]; addlilink(tb, 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=itwiki_p&user='+username,'User\'s edit count', ''); addlilink(tb, '/wiki/Speciale:Log', 'Log', ''); } /**** Add links to the navigation bar ****/ function addNavBarLinks() { var navbar = document.getElementById('p-navigation').getElementsByTagName('ul')[0]; var username=document.getElementById("pt-userpage").textContent; addlilink(navbar, '/w/index.php?title=Utente:' + username + '/monobook.js&action=edit', 'monobook.js', ''); addlilink(navbar, '/wiki/Categoria:Da_cancellare_subito', 'DeleteNow', ''); } /**** Get a clock that autoupdates! ****/ function showtime() { var timerID; var now = new Date(); var timeValue = now.toUTCString().replace(/GMT/, "UTC"); document.getElementById('utcdate').firstChild.innerHTML = timeValue; timerID = setTimeout('showtime()', 100); } /**** Auto start new topics when hitting empty talk pages from the content page ****/ function talkpageplus() { var talkpagelink = document.getElementById('ca-talk'); if (talkpagelink.className == 'new') { talkpagelink.firstChild.href += '§ion=new'; } } /**** Add "unwatch" link to watchlist ****/ addOnloadHook(function () { var query_prefix = "title=Speciale:Watchlist&action=submit&remove=1&id[]="; var query_prefix = "action=unwatch&title="; if (window.location.href.indexOf("Speciale:Watchlist") == -1) return; var links = document.getElementById('content').getElementsByTagName('a'); for (var i = 0; i < links.length; i++) { if (links[i].href.substring(links[i].href.length-15) != '&action=history') continue; var unwatch = document.createElement('a'); unwatch.href = "/w/index.php?" + query_prefix + encodeURIComponent(links[i].title); unwatch.title = "Unwatch "+links[i].title; unwatch.appendChild(document.createTextNode("unwatch")); links[i].parentNode.insertBefore(unwatch, links[i].nextSibling); // kluge to handle case where "diff" is unlinked: var delim = links[i].previousSibling; delim = (delim.nodeType == 3 ? delim.nodeValue : ""); links[i].parentNode.insertBefore(document.createTextNode(delim.replace(/^.*diff/, "")), unwatch); } }); function RemoveNode(id){ var node = document.getElementById(id) node.parentNode.removeChild(node); } //Create a blank portlet which can be filled with //subsequent calls to addToPortlet. //PARAMS: //* title: Top label of the portlet //* newid: The id of the new portlet, needed to call addToPortlet //* beforewhat: The name of an existing portlet; the new portlet is placed before it. // If void or invalid, the portlet is added after all the other ones. function createPortlet(title, newid, beforewhat) { var y; var z; var f = document.getElementById("column-one"); var portlet = document.createElement('div'); var pos; if (beforewhat) pos = document.getElementById(beforewhat); portlet.className = "portlet"; portlet.id = newid; y = document.createElement('h5'); y.appendChild(document.createTextNode(title)); portlet.appendChild(y); y = document.createElement('div'); y.className= "pBody"; portlet.appendChild(y); if (beforewhat) f.insertBefore(portlet, pos); else f.appendChild(portlet); } //Add something to a portlet. //PARAMS: //* id: The id of the portlet. //* obj: The object to be added. function addToPortlet(id, obj) { var f = document.getElementById(id); f = f.getElementsByTagName("div")[0]; f.appendChild(obj); } //Add an "allpages" button in "search" portlet function allpages_button_click(){ var inputs = document.getElementById("p-search").getElementsByTagName('input'); var i; for (i = 0; i < inputs.length; ++i) if (inputs[i].type == "text") top.location.href = 'http://it.wikiafrica.org/wiki/Speciale:Allpages/' + inputs[i].value; } function setup_allpages_button(){ var button = document.createElement('input'); button.type = "button"; button.value = "Allpages"; button.setAttribute('onClick', 'allpages_button_click()'); addToPortlet("p-search", document.createElement("hr")); addToPortlet("p-search", button); } addOnloadHook(setup_allpages_button); // WikiSign function WikiSign() { arra = document.getElementsByTagName("a"); for ( i=0; i < arra.length;i++ ) { if ( arra[i].getAttribute("href") == "javascript:insertTags('--~~~~','','');" ) { arra[i].setAttribute("href", "javascript:insertTags('~~~~','','');"); break; } } } addLoadEvent(WikiSign); //ToolbarButton function addToolbarButton(id, href, src, alt, title) { var toolbar = document.getElementById("toolbar"); 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); } function addText(text, summary, n) { wpTextbox1=document.getElementById("wpTextbox1"); if (n == 0) wpTextbox1.value=text + "\n" +wpTextbox1.value; else wpTextbox1.value=wpTextbox1.value + text; summ=document.getElementById("wpSummary"); summ.value=summ.value+summary; document.getElementById("wpMinoredit").checked=1 } function ToolbarButton() { var toolbar = null; toolbar = document.getElementById("toolbar"); if (toolbar == null) return; var today = new Date(); var anno= today.getYear()+1900; var mese = arrayMese[today.getMonth()]; // pulsante STUB addToolbarButton('tb-stb', 'javascript:addText("{{s|}}", "+{{stub}}", 0)', 'http://upload.wikimedia.org/wikipedia/it/1/11/Stubber.png', '[Stub]', '{{stub}}'); // pulsante FICUS-WIKIFICARE addToolbarButton('tb-fic', "javascript:Ficus('W');", 'http://upload.wikimedia.org/wikipedia/it/7/71/Wikifichino.gif', '[ficus]', '{{W}}ikificare'); // pulsante FICUS-AIUTARE addToolbarButton('tb-fic', "javascript:Ficus('A');", 'http://upload.wikimedia.org/wikipedia/it/2/23/Aiutino.gif', '[ficus]', '{{A}}iutare'); // pulsante CONTROLCOPY addToolbarButton('tb-vnd', 'javascript:addText("{{Controlcopy|firma=~~~|motivo=probabile copia di materiale già pubblicato altrove e dunque non originale}}", " +Controlcopy", 0)', 'http://upload.wikimedia.org/wikipedia/it/7/75/Wiki_c_copy.gif', '[Vnd]', '{{Controlcopy|firma=~~~|motivo=probabile copia di materiale già pubblicato altrove e dunque non originale}}'); // pulsante AVVISO SPAM addToolbarButton('tb-vnd', 'javascript:addText("{{Spam}}", " +Avviso spam", 1)', 'http://upload.wikimedia.org/wikipedia/it/c/cb/Pulsante_spam.png', '[Avv]', '{{Spam}}'); // pulsante TEST addToolbarButton('tb-vnd', 'javascript:addText("{{test}}", " +Avviso test", 0)', 'http://upload.wikimedia.org/wikipedia/it/4/40/Wiki_test.GIF', '[Test]', '{{test}}'); // pulsante AVVISO VANDALISMO addToolbarButton('tb-vnd', 'javascript:addText("{{Vandalismo}}", " +Avviso vandalismo", 1)', 'http://upload.wikimedia.org/wikipedia/it/6/64/Wiki_vand.gif', '[Avv]', '{{Vandalismo}}'); // pulsante NOTA addToolbarButton('tb-vnd', 'javascript:addText("[[Immagine:nomefile|thumb|right|200px|didascalia]]", " ", 1)', 'http://upload.wikimedia.org/wikipedia/it/2/2e/Wiki_down.png', '[Test]', '[[Immagine:nomefile|thumb|right|200px|didascalia]]'); // pulsante FICUS-CONTROLLARE addToolbarButton('tb-fic', "javascript:Ficus('C');", 'http://upload.wikimedia.org/wikipedia/it/e/e2/Pulsante-controllare.gif', '[ficus]', '{{C}}ontrollare'); // pulsante FICUS-POV addToolbarButton('tb-fic', "javascript:Ficus('P');", 'http://upload.wikimedia.org/wikipedia/it/a/ab/Pulsante-pov.gif', '[ficus]', '{{P}}OV'); // pulsante CATEGORIZZARE addToolbarButton('tb-stb', 'javascript:addText("{{Categorizzare}}", "+ {{ Categorizzare }}", 1)', 'http://upload.wikimedia.org/wikipedia/it/5/55/Pulsante-categorizzare.gif', '[Cat]', '{{Categorizzare}}'); // pulsante CANCELLAZIONE IMMEDIATA addToolbarButton('tb-vnd', 'javascript:addText("{{Cancella subito|motivo=}}", "Da cancellare subito", 0)', 'http://upload.wikimedia.org/wikipedia/it/8/8f/Pulsante-cancimm.png', '[Canc]', '{{Cancella subito}}'); // pulsante CANCELLA UTENTE addToolbarButton('tb-vnd', 'javascript:addText("{{Avvisocancellautente|wikilink=[[Titolo_pagina]]}}", " +Avviso cancellazione utente", 1)', 'http://upload.wikimedia.org/wikipedia/it/0/00/Pulsante-cancut.png', '[Canc]', '{{Avvisocancellautente|wikilink=[[Titolo_pagina]]}}'); // pulsante COPYVIOL addToolbarButton('tb-vnd', 'javascript:addText("{{ViolazioneCopyright|url=indirizzo_web_del_sito}}", "Violazione di Copyright", 0)', 'http://upload.wikimedia.org/wikipedia/it/5/52/Pulsante_copyviol.png', '[Avv]', '{{ViolazioneCopyright|url=indirizzo_web_del_sito}}'); // pulsante DMOZ addToolbarButton('tb-vnd', 'javascript:addText("{{dmoz|}}", " + DMOZ - link non necessari", 0)', 'http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Gnome-globe.svg/18px-Gnome-globe.svg.png', '[Avv]', '{{dmoz|}}'); // pulsante TYPO addToolbarButton('tb-vnd', 'javascript:addText(" ", "Typo", 1)', 'http://upload.wikimedia.org/wikipedia/it/9/92/Pulsante_typo.png', '[Avv]', ' '); } addLoadEvent(ToolbarButton); //Add an "invert" button in Undeletion page (source: http://en.wikipedia.org/wiki/User:Cryptic/toggleundelete.js) function toggle_undelete() { var f = document.getElementById("undelete"); if (f) { var inputs = f.getElementsByTagName("input"); var i; for (i = 0; i < inputs.length; ++i) if (inputs[i].type == "checkbox") inputs[i].checked = !inputs[i].checked; } } function setup_toggle_undelete() { if (document.title.indexOf("Visualizza e recupera le pagine cancellate") == 0) { var f = document.getElementById("undelete"); if (f) { var h2 = f.getElementsByTagName("h2")[0]; if (h2) { var button = document.createElement('input'); button.type = "button"; button.value = "Inverti"; button.setAttribute('onClick', 'toggle_undelete()'); f.insertBefore(button, h2); } } } } addOnloadHook(setup_toggle_undelete); //=== inizio RICERCA IN NAMESPACE === //Aggiunge un combo box in cui scegliere il "namespace" per la ricerca addOnloadHook(function () { var searchGoButton = document.getElementById('searchGoButton'); if (!searchGoButton) return; var searchNsHidden = document.createElement('input'); searchNsHidden.id = 'searchNsHidden'; searchNsHidden.type = 'hidden'; searchNsHidden.name = 'ns0'; searchNsHidden.value = '1'; var searchNsMenu = document.createElement('select'); searchNsMenu.id = 'searchNsMenu'; searchNsMenu.name = 'ns'; searchNsMenu.options[searchNsMenu.options.length] = new Option('(Principale)', 0); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussione', 1); searchNsMenu.options[searchNsMenu.options.length] = new Option('Utente', 2); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni utente', 3); searchNsMenu.options[searchNsMenu.options.length] = new Option('Wikiafrica', 4); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni Wikiafrica', 5); searchNsMenu.options[searchNsMenu.options.length] = new Option('Immagine', 6); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussione immagine', 7); searchNsMenu.options[searchNsMenu.options.length] = new Option('MediaWiki', 8); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni MediaWiki', 9); searchNsMenu.options[searchNsMenu.options.length] = new Option('Template', 10); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni Template', 11); searchNsMenu.options[searchNsMenu.options.length] = new Option('Aiuto', 12); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni Aiuto', 13); searchNsMenu.options[searchNsMenu.options.length] = new Option('Categoria', 14); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni Categoria', 15); searchNsMenu.options[searchNsMenu.options.length] = new Option('Portale', 100); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni portale', 101); searchNsMenu.options[searchNsMenu.options.length] = new Option('Progetto', 102); searchNsMenu.options[searchNsMenu.options.length] = new Option('Discussioni progetto', 103); searchNsMenu.onchange = function () { searchNsHidden.name = 'ns' + (this.selectedIndex < 0 ? '0' : this.options[this.selectedIndex].value); } searchNsMenu.style.width = '10.9em'; searchNsMenu.style.margin = '0'; searchNsMenu.style.fontSize = '95%'; searchGoButton.parentNode.insertBefore(searchNsHidden, searchGoButton); searchGoButton.parentNode.insertBefore(searchNsMenu, searchGoButton); }); //=== fine RICERCA IN NAMESPACE === /* Il "Controllo categorie" (grazie a [[:en:User:ais523]] che per primo ha avuto l'idea) aggiunge elementi alla watchlist se una pagina viene aggiunta ad una categoria (ed e' ancora presente al momento del controllo). Questo evento apparira' solo se un'altra pagina della watchlist e' stata modificata quel giorno (se l'aggiunta e' l'unica cosa successa non apparira').<br/> La ricategorizzazione di una pagina appartenente ad una categoria osservata verra' segnalata anche se la modifica riguardava un'altra categoria (a meno che quella osservata venga cancellata).<br/> I cancellamenti dalla categoria controllata non verranno visualizzati.<br/> Le categorie contenenti piu' di 100 pagine non vengono gestite per problemi di sovraccarico dei server e ne sarete avvisati tramite popup.<br/> Se cercate di monitorare una categoria inesistente o vuota verrete avvisati per correggere errori di battitura.<br/> L'ora delle modifiche si riferisce a quella dei server, potrebbe essere differente da quella locale.<br/> Per ogni pagina aggiunta verranno mostrati i seguenti link: * Alla relativa categoria * Alla pagina aggiunta * All'ultima modifica della pagina * Alla cronologia della pagina */ //=== inizio: CATEGORY WATCH === var cwwpajax; // From [[WP:US]] mainpage (wpajax renamed to cwwpajax) cwwpajax={ download:function(bundle) { // mandatory: bundle.url // optional: bundle.onSuccess (xmlhttprequest, bundle) // optional: bundle.onFailure (xmlhttprequest, bundle) // optional: bundle.otherStuff OK too, passed to onSuccess and onFailure var x = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false; if (x) { x.onreadystatechange=function() { x.readyState==4 && cwwpajax.downloadComplete(x,bundle); }; x.open("GET",bundle.url,true); x.send(null); } return x; }, downloadComplete:function(x,bundle) { x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true ) || ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText)); } }; //Aggiunge le catwatch alla watchlist //xmlreq=risultato della query (es:http://www.wikiafrica.org/w/query.php?what=category&cptitle=Guerre%20Stellari&cplimit=100&cpextended&format=xml) //data=nome della categoria function cwOntoWatchlist(xmlreq, data) { var a=xmlreq.responseText; var c=data.catname; var i; if(a.indexOf("<error>")!=-1) //cat e' vuota, niente da fare qui { var inoltre; if (c.indexOf("Categoria:")!=-1) inoltre="Ti ricordo che non va inserita la parte \"Categoria:\""; else inoltre=""; if (showWarning.indexOf("disabilita")==-1) alert("La categoria \""+c+"\" sembra vuota.\nControlla se il nome e' scritto giusto.\n"+inoltre); return; } if(a.indexOf("<category next=")!=-1) //cat ha piu' di 100 elementi, i risultati verranno eliminati { if (showWarning.indexOf("disabilita")==-1) alert("La categoria \""+c+"\" ha piu' di 100 elementi e non puo' essere monitorata.\n"+ "Considera la possibilita' di dividerla in sottocategorie"); return; } a=a.split("<timestamp>"); var latesttime=0; var latestpage=""; var listaPagine=new Array(); var listaTime=new Array(); var temp, temp2; var counter=0; for(i in a) { temp=a[i].indexOf("</timestamp>"); if(temp!=-1) { temp=new Number(a[i].substr(0,temp)); if(temp>latesttime) { listaTime[counter]=temp; a[i]=a[i].substr(a[i].indexOf("<title>")+7); listaPagine[counter]=a[i].substr(0,a[i].indexOf("</title>")); counter++; } } } var dates=document.getElementsByTagName("h4"); //recupera le date dalla pagina della watchlist var monthname=new Array(); monthname['01']="jan"; monthname['02']="feb"; monthname['03']="mar"; monthname['04']="apr"; monthname['05']="may"; monthname['06']="jun"; monthname['07']="jul"; monthname['08']="aug"; monthname['09']="sep"; monthname['10']="oct"; monthname['11']="nov"; monthname['12']="dec"; i=dates.length; var totcycle=listaPagine.length; // numero delle pagine della Categoria corrente while(i--) // Per ogni giorno della lista { for (var loopTimes=0;loopTimes<totcycle;loopTimes++) // Per ogni pagina della lista { latestpage=listaPagine[loopTimes]; latesttime=listaTime[loopTimes]; latesttime=new String(latesttime); // es: temp=2006 dic 25 temp=""+new Number(latesttime.substr(6,2))+" "+monthname[latesttime.substr(4,2)]+" "+latesttime.substr(0,4); // se la data che stiamo esaminando corrisponde alla data della pagina if(dates[i].firstChild.nodeValue==temp) { temp=dates[i].nextSibling.firstChild; // Questo while dovrebbe inserire la modifica in ordine cronologico // tra le altre modifiche. Funzionava solo nella versione inglese e l'ho // lasciata qui perche', qualche anima pia, potrebbe in futuro correggerla while(temp!=null) { if(temp.tagName!=null) if(temp.tagName.toLowerCase()=="li") { temp2=temp.innerHTML.match(/; ([0-9][0-9]):([0-9][0-9]) \. \./); temp2=new Number(temp2[1])*100+new Number(temp2[2]); if(temp2<new Number(latesttime.substr(8,4))) {temp2=temp; break;} } temp2=temp; temp=temp.nextSibling; if(temp==null) break; } // l'elemento che andra' inserito temp3=document.createElement("li"); // se l'ordinamento aveva funzionato (ovvero mai) if (temp2!=null) { dates[i].nextSibling.insertBefore(temp3,temp2); } else { dates[i].appendChild(temp3); } // riempi l'item con i dati necessari temp3.innerHTML="<font size=-1>Modifiche a <a href='http://it.wikipedia.org/wiki/Categoria:"+encodeURI(c)+ "'>Categoria:"+c+"</a>; "+latesttime.substr(8,2)+":"+latesttime.substr(10,2)+" . . (+ "+ "<a href='http://it.wikipedia.org/wiki/"+encodeURI(latestpage)+"'>"+latestpage+"</a> "+ "(<a href='http://it.wikipedia.org/w/index.php?title="+encodeURI(latestpage)+ "&diff=last'>last</a>) (<a href='http://it.wikipedia.org/w/index.php?title="+ encodeURI(latestpage)+"&action=history'>hist</a>))</font>"; } } } } var CategorieOsservate; //evita errori se ancora non esiste una cat-watchlist var showWarning; //evita errori se ancora non esiste una cat-watchlist //Un esempio di query per il controllo di una categoria potrebbe essere //http://it.wikipedia.org/w/query.php?what=category&cptitle=Guerre%20Stellari&cplimit=100&cpextended&format=xml addOnloadHook(function(){ // se siamo nella watchlist if(wgPageName=="Speciale:Watchlist") { if(CategorieOsservate==undefined) // se non e' mai stata creata la lista personale delle Categorie { if(confirm("Ancora non hai una lista di categorie da controllare. Vuoi crearne una?")) location.href='http://it.wikipedia.org/w/index.php?title=Utente:'+wgUserName+ '/CategorieOsservate.js&action=edit&preload=Utente:Jalo/CategorieOsservateTemplate.js'; } else // la lista gia' esiste { var i; for(i in CategorieOsservate) // Per ogni cateoria lancia il controllo { var a=CategorieOsservate[i]; cwwpajax.download({url:'http://it.wikipedia.org/w/query.php?what=category&cptitle='+encodeURI(a)+ '&cplimit=100&cpextended&format=xml', onSuccess:cwOntoWatchlist, catname:a}); } } } }); // aggiungi la watchlist delle categorie dell'utente document.write('<script type="text/javascript" src="http://it.wikipedia.org' + '/w/index.php?title=Utente:'+wgUserName+'/CategorieOsservate.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //=== fine: CATEGORY WATCH === /**** End ****/ /* </nowiki></pre> */