MediaWiki:Common.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). 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 Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
/**
* Mantenere il codice di MediaWiki:Common.js il più breve possibile, in quanto è caricato
* da ciascuna pagina, per tutti gli utenti.
* Se possibile creare invece un accessorio abilitato di default (gli accessori sono infatti
* moduli ottimizzati del ResourceLoader con la possibilità di aggiungere dipendenze, ecc.).
*/
/* global mediaWiki, jQuery */
( function ( mw, $ ) {
'use strict';
/**
* Redirect bad mirrors to it.wikipedia.org
* @author [[m:User:Hoo man]]
*/
( function () {
var badMirrors = [
'wikipedia.sapere.alice.it',
'212.48.3.33',
'wikipedia.virgilio.it',
'213.92.16.218',
'it.wikipedia.net.ru'
];
if( badMirrors.indexOf( window.___location.host ) !== - 1 ) {
// redirect users to the same page on itwiki
// window.___location.href = '//it.wikipedia.org/wiki/' + mw.config.get( 'wgPageName' );
// redirect users to a landing page
window.___location.href = '//it.wikipedia.org/wiki/Wikipedia:Live_mirror';
}
} )();
/**
* Wikipedia:Bar/Discussioni/L'Unione Europea, il copyright e il sapere libero
*/
( function () {
// pagine che tutti gli utenti possono visitare
var allowedPages = [
"Proposta_di_direttiva_sul_diritto_d'autore_nel_mercato_unico_digitale",
"Pubblico_dominio",
"Libertà_di_panorama",
"Wikipedia:Bar/Discussioni/L'Unione_Europea,_il_copyright_e_il_sapere_libero",
"Wikipedia:Bar/Discussioni/L'Unione_Europea,_il_copyright_e_il_sapere_libero/Media",
"Wikipedia:Comunicato_3_luglio_2018",
"Wikipedia:Comunicato_3_luglio_2018/ast",
"Wikipedia:Comunicato_3_luglio_2018/ca",
"Wikipedia:Comunicato_3_luglio_2018/de",
"Wikipedia:Comunicato_3_luglio_2018/el",
"Wikipedia:Comunicato_3_luglio_2018/en",
"Wikipedia:Comunicato_3_luglio_2018/es",
"Wikipedia:Comunicato_3_luglio_2018/et",
"Wikipedia:Comunicato_3_luglio_2018/fr",
"Wikipedia:Comunicato_3_luglio_2018/gl",
"Wikipedia:Comunicato_3_luglio_2018/lmo",
"Wikipedia:Comunicato_3_luglio_2018/lv",
"Wikipedia:Comunicato_3_luglio_2018/pl",
"Wikipedia:Comunicato_3_luglio_2018/pt",
"Wikipedia:Comunicato_3_luglio_2018/rassegna_stampa",
"Wikipedia:Comunicato_3_luglio_2018/FAQ",
"Aiuto:Canale_IRC",
"Aiuto:Cosa_vuol_dire_\"libera\"%3F",
"Speciale:Entra",
"Speciale:Esci"
];
// se l'utente non appartiene al gruppo sysop e se la pagina non è tra allowedPages redirige al comunicato
if ( mw.config.get( 'wgUserGroups' ).indexOf( 'sysop' ) === -1 && allowedPages.indexOf( mw.config.get( 'wgPageName' ) ) === -1 ) {
window.___location.replace( '//it.wikipedia.org/wiki/Wikipedia:Comunicato_3_luglio_2018' );
}
} )();
// ============================
// Caricamento script
// ============================
/**
* Ricerca in Wikidata
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ||
( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
mw.loader.load( '//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript' );
}
/**
* Menu interprogetto nella sidebar, vedi anche [[Modulo:Interprogetto]]
*/
importScript('MediaWiki:InterProject.js');
/**
* Esempio di diff in Aiuto:Diff
*/
if ( mw.config.get( 'wgPageName' ) === 'Aiuto:Diff' ) {
mw.loader.load( 'mediawiki.diff.styles' );
}
// ============================
// Modifica HTML pagine
// ============================
/**
* Portlets
*/
function addPortlets() {
mw.loader.using( [ 'mediawiki.util' ], function () {
// Collegamento diretto alla pagina di upload di Commons nel portlet Strumenti
mw.util.addPortletLink( 'p-tb', '//commons.wikimedia.org/wiki/Commons:Upload/it', 'Carica su Commons',
't-uploadcommons', 'Carica file multimediali su Wikimedia Commons', '', '#t-specialpages' );
// In "Pagina principale" aggiunge il link alla lista completa di tutte le pagine
if ( mw.config.get( 'wgIsMainPage' ) || mw.config.get( 'wgPageName' ) === "Discussione:Pagina_principale" ) {
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/Lista_di_Wikipedie',
'Lista completa', 'interwiki-completelist', 'Lista completa delle Wikipedie' );
}
} );
}
$( addPortlets );
/**
* Aggiunge un combobox a [[MediaWiki:Edittools]] per selezionare un gruppo di caratteri speciali.
*/
function comboboxEdittools() {
var $specialChars = $( '#specialchars' );
if ( $specialChars.length ) {
var $select = $( '<select>' ).change( function () {
$specialChars.find( 'p' ).hide();
$specialChars.find( 'option:selected' ).data().show();
} );
$specialChars.find( 'p' ).each( function () {
$( '<option>' ).html( $( this ).attr( 'id' ).replace( /_/g, ' ' ) )
.data( $( this ) ).appendTo( $select );
} );
$specialChars.prepend( $select );
$select.change();
}
}
$( comboboxEdittools );
/**
* Toglie "Soggetto/Intestazione" nelle creazioni delle discussioni al Bar
*/
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 &&
mw.config.get( 'wgPageName' ).indexOf( 'Wikipedia:Bar/' ) === 0 &&
mw.config.get( 'wgAction' ) === 'edit' &&
document.URL.indexOf( '§ion=new&preload=' ) !== -1) {
$( function () {
document.getElementById( 'wpSummaryLabel' ).style.display = 'none';
document.getElementById( 'wpSummary' ).style.display = 'none';
} );
}
// ============================
// Supporto ai template
// ============================
/**
* Utilizzata con [[template:Titolo errato]] per cambiare il titolo di una pagina,
* cerca un HTML (creato dal template) contenente:
* <div id="RealTitleBanner"><span id="RealTitle">titolo</span></div>
* Si può disattivare con un elemento con id="DisableRealTitle".
* Importata inizialmente da [[en:MediaWiki:Common.js]].
*/
function checkRealTitleBanner() {
/**
* Possibilità di disabilitarlo.
* (Sì. Può essere fastidioso... :)
*/
if( window.disableCheckRealTitleBanner ) {
return;
}
var $realTitleBanner = $( '#RealTitleBanner' );
if ( $realTitleBanner.length && !$( '#DisableRealTitle' ).length ) {
var $realTitle = $realTitleBanner.find( '#RealTitle' );
var $firstH1 = $( 'h1:first' );
if ( $realTitle.length && $firstH1.length ) {
$realTitleBanner.hide();
$firstH1.html( $realTitle.html() );
document.title = $realTitle.text() + ' - Wikipedia';
}
}
}
$( checkRealTitleBanner );
/**
* Utilizzata con [[template:Galleria]] per creare una galleria di immagini,
* cerca un HTML (creato dal template) contenente:
* <div class="ImageGroup"><div class="ImageGroupUnits">immagini</div></div>
* Idea originale da [[fr:MediaWiki:Common.js]] del 2007.
* @author [[it:User:Rotpunkt]]
*/
function updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink ) {
$images.hide().eq( currImg ).show();
$countInfo.html( '(' + ( currImg + 1 ) + '/' + $images.length + ')' );
$prevLink.toggle( currImg !== 0 );
$nextLink.toggle( currImg !== $images.length - 1 );
}
function initImageGroup() {
$( 'div.ImageGroup > div.ImageGroupUnits' ).each( function ( i, imageGroupUnits ) {
var currImg = 0;
var $images = $( imageGroupUnits ).children( '.center' );
var $countInfo = $( '<kbd>' ).css( 'font-size', '110%' );
var $prevLink = $( '<a>' )
.attr( 'href', '#' ).attr( 'title', 'Immagine precedente' )
.text( '◀' ).css( 'text-decoration', 'none' )
.click( function ( e ) {
e.preventDefault();
updateImageGroup( currImg -= 1, $images, $countInfo, $prevLink, $nextLink );
} );
var $nextLink = $( '<a>' )
.attr( 'href', '#' ).attr( 'title', 'Immagine successiva' )
.text( '▶' ).css( 'text-decoration', 'none' )
.click( function ( e ) {
e.preventDefault();
updateImageGroup( currImg += 1, $images, $countInfo, $prevLink, $nextLink );
} );
updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink );
$( imageGroupUnits ).prepend( $prevLink, $countInfo, $nextLink );
} );
}
$( initImageGroup );
/**
* Utilizzata con [[Template:Navbox]]: se presente più di una table
* con classi navbox e mw-collapsible, quelle con autocollapse si chiudono da sole.
* @author [[it:User:Rotpunkt]]
*/
function checkAutocollapse() {
if ( $( 'table.navbox.mw-collapsible' ).length > 1 ) {
$( 'table.navbox.mw-collapsible.autocollapse' ).each( function ( i, el ) {
if ( !$( el ).hasClass( 'mw-collapsed' ) ) {
// makeCollapsible a volte è eseguita prima, a volte successivamente al Common.js,
// se è già stata eseguita, non resta che simulare un click.
if ( $( el ).data( 'mw-made-collapsible' ) ) {
// hide() chiude la tabella più velocemente di fadeOut
$( el ).find( 'tr:not(:first)' ).hide();
$( el ).find( '.mw-collapsible-toggle' ).click();
} else {
$( el ).addClass( 'mw-collapsed' );
}
}
} );
}
}
$( checkAutocollapse );
}( mediaWiki, jQuery ) );
/* Normalizzazione dei caratteri particolari per l'ordinamento alfabetico nelle tabelle sortable.
In futuro potrebbe diventare default e non più necessario, vedi [[phab:T72157]] */
mw.config.set( 'tableSorterCollation', {'á':'a','à':'a','ă':'a','â':'a','ǎ':'a','å':'a','ä':'a','ã':'a','ā':'a','ȁ':'a',
'Á':'A','À':'A','Ă':'A','Â':'A','Ǎ':'A','Å':'A','Ä':'A','Ã':'A','Ā':'A','Ȁ':'A',
'ć':'c','ĉ':'c','č':'c','ç':'c',
'Ć':'C','Ĉ':'C','Č':'C','Ç':'C',
'đ':'d','ð':'d',
'Đ':'D','Ð':'D',
'é':'e','è':'e','ê':'e','ě':'e','ë':'e','ẽ':'e','ȩ':'e','ę':'e','ē':'e','ȅ':'e',
'É':'E','È':'E','Ê':'E','Ě':'E','Ë':'E','Ẽ':'E','Ȩ':'E','Ę':'E','Ē':'E','Ȅ':'E',
'ǵ':'g','ğ':'g','ĝ':'g','ǧ':'g',
'Ǵ':'G','Ğ':'G','Ĝ':'G','Ǧ':'G',
'í':'i','ì':'i','ĭ':'i','î':'i','ǐ':'i','ï':'i','ĩ':'i','ī':'i','ȉ':'i',
'Í':'I','Ì':'I','Ĭ':'I','Î':'I','Ǐ':'I','Ï':'I','Ĩ':'I','Ī':'I','Ȉ':'I',
'ľ':'l','ł':'l',
'Ľ':'L','Ł':'L',
'ń':'n','ǹ':'n','ň':'n','ñ':'n',
'Ń':'N','Ǹ':'N','Ň':'N','Ñ':'N',
'ó':'o','ò':'o','ŏ':'o','ô':'o','ǒ':'o','ö':'o','ő':'o','õ':'o','ø':'o','ō':'o','ȍ':'o',
'Ó':'O','Ò':'O','Ŏ':'O','Ô':'O','Ǒ':'O','Ö':'O','Ő':'O','Õ':'O','Ø':'O','Ō':'O','Ȍ':'O',
'ŕ':'r','ř':'r',
'Ŕ':'R','Ř':'R',
'ś':'s','ṥ':'s','ŝ':'s','š':'s','ş':'s','ș':'s',
'Ś':'S','Ṥ':'S','Ŝ':'S','Š':'S','Ş':'S','Ș':'S',
'ţ':'t','ț':'t',
'Ţ':'T','Ț':'T',
'ú':'u','ù':'u','ŭ':'u','û':'u','ǔ':'u','ü':'u','ű':'u','ũ':'u','ū':'u','ȕ':'u',
'Ú':'U','Ù':'U','Ŭ':'U','Û':'U','Ǔ':'U','Ü':'U','Ű':'U','Ũ':'U','Ū':'U','Ȕ':'U',
'ý':'y','ỳ':'y','ÿ':'y','ỹ':'y',
'Ý':'Y','Ỳ':'Y','Ÿ':'Y','Ỹ':'Y',
'ź':'z','ž':'z',
'Ź':'Z','Ž':'Z'} );