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.

/*
 * Inserisce il template {{tradotto da}} ricavando automaticamente
 * i dati da wikidata e dalla wiki di origine. La lingua viene ricavata dagli
 * ultimi due caratteri che precedono il cursore.
 * 
 * Shortcut: Ctrl + y
 * 
 * @author [[Utente:Tino]]
 */
(function (mw, $) {
    'use strict';
    
    var keystrokeDefault = true;
    
    $(function() {
        $('#wpTextbox1').keydown(function(e) {
            if (!e.altKey && !e.shiftKey && !e.metaKey && 
                    e.ctrlKey && e.keyCode === 89 /* "y" key */ &&
                    mw.config.get('wgNamespaceNumber') === 2) {
                
                var lang, cursorPosition;
                
                cursorPosition = $(e.target).textSelection('getCaretPosition');
                lang = $('#wpTextbox1').val().substring(cursorPosition - 2, cursorPosition);                               
            
                var wiki = lang + 'wiki';
                
                keystrokeDefault = false;
            
                var page = mw.config.get('wgTitle');
                
                $.ajax({
                    url: '//www.wikidata.org/w/api.php',
                    data: {
                        'format': 'json',
                        'action': 'wbgetentities',
                        'sites': wiki,
                        'titles': page,
                        'props': 'sitelinks',
                        'languages': lang,
                        'maxage': mw.config.get("wgUserName") == null ? 900 : 30,
                        'smaxage': mw.config.get("wgUserName") == null ? 900 : 30,
                        'maxlag': 1
                    },
                    dataType: 'jsonp',
                    success: function(data) {
                        var monthNames = [
                            'gennaio',   'febbraio', 'marzo',    'aprile',
                            'maggio',    'giugno',   'luglio',   'agosto',
                            'settembre', 'ottobre',  'novembre', 'dicembre'
                        ];                                    
                        
                        var text = '|';
                        var index;
                        
                        for (index in data.entities) {
                            var title = data.entities[index].sitelinks[wiki].title;
                            
                            $.ajax({
                                url: '//' + lang + '.wikipedia.org/w/api.php',
                                data: {
                                    'format': 'json',
                                    'action': 'query',
                                    'titles': title,
                                    'prop': 'revisions'
                                },
                                dataType: 'jsonp',
                                success: function(voiceData) {
                                    // regex to extract the date from a timestamp
                                    var dateRegex = /([0-9]{4})-([0-9]{2})-([0-9]{2}).*/;
                                    
                                    for (index in voiceData.query.pages) {
                                        var page = voiceData.query.pages[index];
                                        
                                        // extract date fields
                                        var match = dateRegex.exec(page.revisions[0].timestamp);
                                        
                                        // add voice title
                                        text += page.title + '|';
                                        // add date as: day monthname year
                                        text +=   match[3] + ' ' 
                                                + monthNames[match[2] - 1] + ' '
                                                + match[1] + '|';
                                        // add revid
                                        text += page.revisions[0].revid;
                                        // close template
                                        text += '}}\n'
                                        
                                        // insert template at the beginning of the page
                                        $('#wpTextbox1').val(text + $('#wpTextbox1').val());
                                    }
                                }   
                            });
                            
                        }
                    }
                });
            }
        });
        
        $('#wpTextbox1').keypress(function(e) {
            if (!e.altKey && !e.shiftKey && !e.metaKey && 
                    e.ctrlKey && e.keyCode === 89 /* "y" key */ ) {
                return keystrokeDefault;
            }
        });
    });
}(mediaWiki, jQuery));