MediaWiki:Gadget-common-areadati.js
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
- Opera: premi Ctrl-F5.
var campiIntestazione = new Array("Lingua originale del testo", "Nome e cognome dell'autore", "Nome e cognome del curatore", "Nome e cognome dell'autore delle musiche", "Organismo emittente", "Anno di pubblicazione", "Anno di traduzione", "Nome e cognome del traduttore", "URL della versione cartacea a fronte", "Argomento", "Progetto", "Titolo", "Nome della pagina principale", "Università", "Facoltà", "Corso di laurea", "Nome e cognome del relatore", "Nome della versione");
var campiIncludi = new Array("Argomento", "autore", "sottotitolo", "prec", "succ");
var campiQualita = new Array("data", "avz", "arg");
var campiAutore = new Array("Nome", "Cognome", "Attività", "Nazionalità", "Professione e nazionalità");
/*
* Get the value of a template parameter
* str: the text of the template
* param_name: the name of the parameter
*/
function findparamTemplate(str, param_name) {
var pattern = "\\n([\\s]*?)\\|([\\s]*?)" + param_name + "([\\s]*?)=([\\s\\S]*?)\\n([\\s]*?)\\|([^=\\n\\|]+)=";
var re = new RegExp(pattern);
var m = str.match(re);
if (m) {
val = m[4];
//niente note tra i parametri
nota = find_stringa(val, "<ref>", "</ref>", true, "");
while (nota !== "") {
val = val.replace(nota,"");
nota = find_stringa(val, "<ref>", "</ref>", true, "");
}
return val;
}
return '';
}
function findparamQualita(str, param_name) {
var pattern = "\\|" + param_name + "=([\\s\\S]*?)\\|([^=\\|]+)=";
var re = new RegExp(pattern);
var m = str.match(re);
if (m) return m[1];
return '';
}
//controlla che dopo il }} che chiude il template non sia rimasta della robaccia in più
function togliRobaccia(testo) {
testo2 = testo.substring(2) + "}}";
var i = 1;
var fine = 2;
while (i > 0) {
var open = testo2.search("{{");
var close = testo2.search("}}");
if (open != -1 && open < close) {
i++;
testo2 = testo2.substring(open + 2);
fine += open + 2;
}
else {
i--;
testo2 = testo2.substring(close + 2);
fine += close + 2;
}
}
return testo.substring(0, fine - 2);
}
/* genera l'area dati per le pagine in namespace principale
*
* Called from MediaWiki:Common.js
*/
window.creaAreaDatiNs0 = function creaAreaDatiNs0() {
if (mw.config.get("wgNamespaceNumber") !== 0) { return; }
var text = document.getElementById("wpTextbox1");
if (!text) { return; }
var testo = text.value;
// togli parametro inutile
testo = testo.replace(/\n[\s]*\|[\s]*Eventuale secondo anno di pubblicazione[\s]*=[\s]*\n/, "\n");
// togli l'area dati vecchia se per caso era rimasta
areaDatiVecchia = find_stringa(testo, "<!-- Area dati:", "a qui -->", true, "");
if (areaDatiVecchia !== "") {
testo = testo.replace(areaDatiVecchia, "");
}
var textdata = '<!-- Area dati: non modificare da qui: --><onlyinclude><div style="display:none">';
var nome_template = "Intestazione";
var existQualita = false;
// esci se non trova né Template:Intestazione né IncludiIntestazione
params = '';
if (testo) {
var re = /\{\{[Ii]ntestazione([\s\S]*)\n[\s]*\}\}/m;
var m = testo.match(re);
if (!m) {
re = /\{\{[Ii]ncludiIntestazione([\s\S]*)([\n]?)\}\}/m;
testo2 = testo.replace(/\|/g, "\n|").replace(/\n\n/g, "\n");
var mi = testo2.match(re);
nome_template = "IncludiIntestazione";
if (!mi) {
re = /\{\{[Ss]ubIntestazione([\s\S]*)([\n]?)\}\}/m;
mi = testo2.match(re);
nome_template = "SubIntestazione";
}
if (!mi) {
re = /\{\{[Ee]dizione([\s\S]*)([\n]?)\}\}/m;
mi = testo2.match(re);
nome_template = "Edizione";
}
if (!mi) {
re = /\{\{[Ss]ottopagina([\s\S]*)([\n]?)\}\}/m;
mi = testo2.match(re);
nome_template = "Sottopagina";
}
if (!mi) return;
else {
params = togliRobaccia(mi[1]) + '\n\|END=';
campiIntestazione = campiIncludi;
}
}
else params = togliRobaccia(m[1]) + '\n\|END=';
re = /\{\{[Qq]ualità([\s\S]+?)\}\}/m;
var mq = testo.match(re);
//se non trova il tl:Qualità inserisce solo gli altri dati
if (mq) existQualita = true;
if (existQualita) paramsQualita = mq[1] + '\|END=';
}
for (i = 0; i < campiIntestazione.length; i++) {
value = findparamTemplate(params, campiIntestazione[i]).trim();
if (value !== '') {
textdata += '<section begin="' + campiIntestazione[i] + '"/>' + value.replace(/\n\|/g, "|") + '<section end="' + campiIntestazione[i] + '"/>\n';
}
}
textdata += '<section begin="nome template"/>' + nome_template + '<section end="nome template"/>\n';
if (existQualita) {
for (i = 0; i < campiQualita.length; i++) {
value = findparamQualita(paramsQualita, campiQualita[i]).trim();
if (value !== '') {
textdata += '<section begin="' + campiQualita[i] + '"/>' + value + '<section end="' + campiQualita[i] + '"/>\n';
}
}
}
textdata += '</div></onlyinclude><!-- a qui -->';
// rimuove dal testo l'eventuale tl Conteggio pagine e lo aggiunge in cima
testo = testo.replace("{{Conteggio pagine|[[Speciale:Statistiche]]}}", "");
testo = "{{Conteggio pagine|[[Speciale:Statistiche]]}}" + textdata + testo;
document.getElementById("wpTextbox1").value = testo;
}
/* genera l'area dati per le pagine Autore
*
* Called from MediaWiki:Common.js
*/
window.creaAreaDatiAutore = function creaAreaDatiAutore() {
//esci se il namespace non è Autore
if (mw.config.get("wgNamespaceNumber") != 102) { return; }
var text = document.getElementById("wpTextbox1");
if (!text) { return; }
var testo = text.value;
//togli l'area dati se per caso era rimasta
areaDatiVecchia = find_stringa(testo, "<!-- Area dati:", "a qui -->", true, "");
if (areaDatiVecchia !== "") {
testo = testo.replace(areaDatiVecchia, "");
}
var textdata = '<!-- Area dati: non modificare da qui: --><onlyinclude><div style="display:none">';
// esci se non trova Template:Autore
params = '';
if (testo) {
var re = /\{\{[Aa]utore([\s\S]*)\n\}\}/m;
var m = testo.match(re);
if (!m) return;
else params = togliRobaccia(m[1]) + '\n\|END=';
}
for (i = 0; i < campiAutore.length; i++) {
value = findparamTemplate(params, campiAutore[i]).trim();
if (value !== '') {
textdata += '<section begin="' + campiAutore[i].replace(/\\/g, "") + '"/>' + value + '<section end="' + campiAutore[i].replace(/\\/g, "") + '"/>\n';
}
}
textdata += '</div></onlyinclude><!-- a qui -->';
testo = textdata + testo;
document.getElementById("wpTextbox1").value = testo;
}