Utente:LoStrangolatore/sandboxes/2: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
svuoto
Riga 1:
///////////////////////////////////// TOOL "APRI PAGINE IN SEQUENZA" /////////////////////////////////////
// Racchiude tutte le funzioni del tool, così non possono esserci conflitti di nomi
Tool_ApriPagineInSequenza = {};
 
// Apre le pagine specificate del testo specificato. In particolare, ognuna delle pagine
// è Pagina:titolo.djvu/i dove i è compreso fra primaPagina e ultimaPagina incluse.
Tool_ApriPagineInSequenza.apriPagine = function(testo, primaPagina, ultimaPagina) {
for(var i = primaPagina; i <= ultimaPagina; i++) {
var pagina = "Pagina:" + testo + ".djvu/" + i;
Tool_ApriPagineInSequenza.apriSchedaDelBrowser("http://it.wikisource.org/w/index.php?title=" + pagina + "&action=edit");
}
};
 
// Apre lo URL specificato in una nuova scheda del browser.
Tool_ApriPagineInSequenza.apriSchedaDelBrowser = function(url) {
window.open(url); // corretto?
}
 
// Cerca di dedurre il nome del testo cui l'utente ha intenzione di accedere.
// Nel caso non riesca a dedurre un buon nome, restituisce "".
Tool_ApriPagineInSequenza.deduciPossibileNomeTesto = function() {
var nsPrincipale = 0, nsPagina = 108, nsIndice = 110;
var nomePagina = wgPageName; // copio perché dopo uso funzioni con side-effect
switch(wgNamespaceNumber) {
case nsPrincipale: return nomePagina;
case nsPrincipale+1: return nomePagina.split(":")[1];
case nsPagina: case nsPagina+1:
return nomePagina.replace(/.*\s*[Pp]agina:/, "").replace(/.djvu\/\d+/, "");
case nsIndice: case nsIndice+1:
return nomePagina.replace(/.*\s*[Ii]ndice:/, "").replace(/.djvu/, "");
default:
return nomePagina.split(":")[1];
}
}
 
// Esegue il tool.
Tool_ApriPagineInSequenza.esegui = function() {
// Messaggi utente.
var messaggio1 =
"Inserisci il nome del testo.\n\n" + "ESEMPIO:\nSe vuoi accedere alle pagine di:\n" +
" Testo:Piccolo Mondo Moderno (Fogazzaro).djvu\n" +
"inserisci:\n" +
"Piccolo Mondo Moderno (Fogazzaro)";
var messaggio2 = "Inserisci il numero della prima e dell'ultima pagina, separate da uno spazio.\n\n" +
"ESEMPIO:\nPer aprire le seguenti pagine:\n"+
" Pagina:Piccolo Mondo Moderno (Fogazzaro).djvu/20\n" +
" Pagina:Piccolo Mondo Moderno (Fogazzaro).djvu/21\n" +
" Pagina:Piccolo Mondo Moderno (Fogazzaro).djvu/22\n" +
"qui sotto dovrai scrivere:\n20 22";
// Ottengo input. Termino il tool se l'utente preme "Annulla" o se inserisce un input errato.
var testo = prompt(messaggio1, Tool_ApriPagineInSequenza.deduciPossibileNomeTesto());
if (testo == null) return; // tasto "Annulla"
var pagine = prompt(messaggio2, "");
if (pagine == null) return; // tasto "Annulla"
if (!pagine.match(/\d+\s\d+/)) {
alert("Impossibile proseguire: devono essere inseriti due numeri separati da uno spazio.");
return;
}
pagine = pagine.split(" ");
var primaPagina = pagine[0], ultimaPagina = pagine[1];
 
// Eseguo, usando l'input raccolto.
Tool_ApriPagineInSequenza.apriPagine(testo, primaPagina, ultimaPagina);
}
 
///////////////////////////////////// FINE TOOL "APRI PAGINE IN SEQUENZA" /////////////////////////////////////