MediaWiki:Common.js/numarticles.js
Merk: Etter publisering vil det kanskje være nødvendig å slette mellomlageret i nettleseren din for å se endringene.
- Firefox / Safari: Hold Shift mens du klikker på Oppdater, eller trykk enten Ctrl+F5 eller Ctrl+R (⌘+R på Mac)
- Google Chrome: Trykk Ctrl+Shift+R (⌘+Shift+R på Mac)
- Internet Explorer / Edge: Hold Ctrl mens du trykker på Oppdater eller trykk Ctrl+F5
- Opera: Ttrykk Ctrl+F5.
/* Interwiki {{NUMBEROFARTICLES}} [0.0.2], originalt fra http://test.wikipedia.org/wiki/MediaWiki:Common.js/numarticles.js
Bruker API for å hente ut antall artikler på andre wiki-prosjekter
Eksempel: <span class="numarticles-iw">en.wikipedia</span>
*/
function numArticlesIW() {
var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document.getElementsByTagName('body')[0]
var numa = getElementsByClassName(docobj,'span','numarticles-iw');
if(numa.length == 0) return
for(var i=0;i<numa.length;i++) {
var txt = getText(numa[i]);
if(!txt.match(/[a-z0-9-]{2,12}\.(wikipedia|wiktionary|wikibooks|wikinews|wikisource|wikiquote)/)) continue;
var url = 'http://' + txt + '.org/w/api.php?maxage=3600&smaxage=3600&action=parse&format=json&callback=numartCB&text=id-' + i + '-id%20%20num-{{NUMBEROFARTICLES}}-num'
mw.loader.load(url);
remText(numa[i]);
}
}
$(numArticlesIW);
function numartCB(obj) {
if(!obj['parse'] || !obj['parse']['text'] || !obj['parse']['text']['*']) return;
var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document.getElementsByTagName('body')[0]
var numa = getElementsByClassName(docobj,'span','numarticles-iw');
var txt = obj['parse']['text']['*'];
var id = txt.match(/id-\d*-id/i)[0].replace(/id-(\d*)-id/i,'$1');
var num = txt.match(/num-.*-num/i)[0].replace(/num-(.*)-num/i,'$1');
if(num.indexOf('&') == -1) {
numa[id].appendChild(document.createTextNode(num));
} else {
//sigh, contains html entities, heck with DOM!
numa[id].innerHTML = num;
}
}
function getText(obj) {
if(obj.nodeType == 3) return obj.nodeValue;
var txt = [];
var i = 0;
while(obj.childNodes[i]) {
txt[txt.length] = getText(obj.childNodes[i]);
i++;
}
return txt.join('');
}
function remText(obj) {
while(obj.firstChild) obj.removeChild(obj.firstChild)
}