MediaWiki:Common.js

/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */

// Redirect dalla pagina di ringraziamento

/* ********************************************************************************************* Se si vuole ottenere il testo della pagina, dato che si viene redirezionati anche in modifica (e in crono) si può fare una chiamata all'API, come la seguente:

http://wiki.wikimedia.it/w/api.php?action=query&prop=revisions&titles=API|Donazioni/ringraziamenti&rvprop=timestamp|user|comment|content

ed inserendo l'opportuno titolo della pagina.

Si può poi fare unescape del testo usando un tool come ad esempio:

http://webtools.drunkvision.net/utility/free/online/Escape_and_Unescape_xml_and_html_and_js/en?command=UTILITY&ID=7

if (mw.config.get( 'wgPageName' ) == 'Donazioni/ringraziamenti') { window.location.replace("//www.sostienilacultura.it/dona-adesso/grazie/"); }

// Redirect dalla pagina di conferma ricevimento della quota di iscrizione

if (mw.config.get( 'wgPageName' ) == 'Iscrizioni/Conferma_quota') { window.location.replace("//www.sostienilacultura.it/regala-uniscrizione/grazie/"); }

// Sidebar per soci

function isObject(obj) { if (typeof obj == "object" && obj != null) return true; else return false; }

function isArray(obj) { if (isObject(obj)) { if (obj.constructor.toString.indexOf("Array") == -1) return false; else return true; }   else return false; }

Array.prototype.Contains = function(element,strict) { for(i in this) { if(this[i] == element && !strict) return true; else if(this[i] === element) return true; }    return false; }

function ModifySidebar(action, section, name, link) { try { switch (section) { case "languages": var target = "p-lang"; break; case "toolbox": var target = "p-tb"; break; case "navigation": var target = "p-navigation"; break; default: var target = "p-" + section; break; }       if (action == "add") { var node = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var aNode = document.createElement('a'); var liNode = document.createElement('li'); aNode.appendChild(document.createTextNode(name)); aNode.setAttribute('href', link); liNode.appendChild(aNode); liNode.className='plainlinks'; node.appendChild(liNode); }       if (action == "remove") { var list = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var listelements = list.getElementsByTagName('li'); for (var i = 0; i < listelements.length; i++) { if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||                   listelements[i].getElementsByTagName('a')[0].href == link) { list.removeChild(listelements[i]); }           }        }    } catch(e) { // lets just ignore what's happened return; } }

function aggiungiPortlet(section, name) { // elementi già esistenti var barra = document.getElementById('p-navigation').parentNode; // su Vector basta: // var barra = document.getElementById('mw-panel'); var pToolbox = document.getElementById('p-tb'); // crea i nuovi elementi e imposta gli attributi var pSoci = document.createElement('DIV'); var titolo = document.createElement('H5'); var divBody = document.createElement('DIV'); var ul = document.createElement('UL'); pSoci.setAttribute("class","portal portlet"); pSoci.setAttribute("id","p-" + section); var textTitolo = document.createTextNode(name); titolo.appendChild(textTitolo); divBody.setAttribute("class","body"); divBody.appendChild(ul); pSoci.appendChild(titolo); pSoci.appendChild(divBody); // ora appende gli elementi dopo la toolbox barra.insertBefore(pSoci, pToolbox ); } function CustomizeModificationsOfSidebar { // aggiunge i link per soli utenti registrati aggiungiPortlet('soci', 'Soci'); ModifySidebar("add", "soci", "Pagina principale", "/wiki/Associazione:Pagina_principale"); ModifySidebar("add", "soci", "Bar", "/wiki/Associazione:Bar"); ModifySidebar("add", "soci", "Ultime modifiche", "/wiki/Speciale:UltimeModifiche"); }

if (isArray(wgUserGroups)) { if (wgUserGroups.Contains('Soci')) { addOnloadHook(CustomizeModificationsOfSidebar); } }

// FINE Sidebar per soci