User:Austro/vector.js
//Funzioni per fare le query al DB con api.php
var wpajax = {
http: function(bundle) {
// mandatory: bundle.url
// optional: bundle.async
// optional: bundle.method
// optional: bundle.headers
// optional: bundle.data
// optional: bundle.onSuccess (xmlhttprequest, bundle)
// optional: bundle.onFailure (xmlhttprequest, bundle)
// optional: bundle.otherStuff OK too, passed to onSuccess and onFailure
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
wpajax.httpComplete(xmlhttp,bundle);
};
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers)
xmlhttp.setRequestHeader(field,bundle.headers[field]);
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
},
httpComplete: function(xmlhttp,bundle) {
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess)
bundle.onSuccess(xmlhttp,bundle);
} else if (bundle.onFailure) {
bundle.onFailure(xmlhttp,bundle);
} else {
// A activer en debug mode ?
// alert(xmlhttp.statusText);
}
}
};
// Parser
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = "false";
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
// HTMLize
String.prototype.htmlize = function() {
var chars = new Array('&','<','>','"');
var entities = new Array('amp','lt','gt','quot');
var regex = new RegExp();
var string = this;
for (var i=0; i regex.compile(chars[i], "g"); string = string.replace(regex, '&' + entities[i] + ';'); } return string; } //Alias di document.getElementById $ = function(id){ return document.getElementById(id); }; /****** Traduzione automatica dei wikilink da lingua straniera in italiano *******/ var elencoLink = new Array(); function tradToIT() { // Recupera l'area di testo text = $("wpTextbox1").value; elencoLink.length=0; result = ""; inseriti = "|"; while (text.indexOf("[[") != -1) { text = text.substring(text.indexOf("[[")+2); to1 = text.indexOf("]]"); if (to1 == -1) to1 = 10000000; to2 = text.indexOf("|"); if (to2 == -1) to2 = 10000000; to3 = text.indexOf(":"); if (to3 == -1) to3 = 10000000; if (to3 { text = text.substring(2); continue; } link = text.charAt(0).toUpperCase(); // prima lettera maiuscola link += text.substring(1, (to1 if (inseriti.indexOf("|"+link+"|") == -1) elencoLink[elencoLink.length] = link; // così non mette i doppioni inseriti += link+"|"; } for (x in elencoLink) { // Ricava l'elenco degli interwiki della voce in oggetto wpajax.http({url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&prop=langlinks&titles='+escape(elencoLink[x])+'&redirects&format=xml&lllimit=5000', onSuccess: addRow, en: elencoLink[x] }); } } // Crea la lista dei risultati var result = ""; var total=0; function addRow(xmlreq, data) { var api = xmlreq.responseXML; var en = data.en; // Cerca se c'è "it.wiki" interwikis = api.getElementsByTagName('ll'); trovato = ""; for (i=0; i if (interwikis[i].getAttribute('lang')=="it") { trovato = interwikis[i].textContent; break; } // Aggiungi al totale la riga: en.wiki => it.wiki / No link if (trovato != "") result += "" + en + " => " + trovato + " else result += "" + en + " => No link if (++total == elencoLink.length) { // splitto su list = result.split(" // ordina la lista list.sort(); // ricrea la stringa result = list.join(" result = result.substring(5); // elimino il // Mostra tutta la lista calcolata total=0; myRef = window.open('about:blank','mywin', 'left=20,top=20,width=500,height=500,toolbar=yes,resizable=yes'); myRef.document.write(" } } addOnloadHook(function () { if (wgAction=="edit") { addPortletLink('p-tb', 'javascript:tradToIT()', 'Traduci i wikilink', 'tradIT'); $('tradIT').firstChild.accessKey = 'T'; $('tradIT').title = 'Alt-Shift-T'; } })
";
";
");
");
iniziale