Utilisateur:Kipmaster/monobook.js

La bibliothèque libre.

Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
// helper functions
// works in FF and Opera, definitely not in IE, other not tested 
// browser has to support XPath
var $ = function(id) { return document.getElementById(id); };
var $$ = function(css) { return $x('//*[contains(@class,"'+css+'")]'); };
var $x = function(exp, node) {
	node = node || document;
	var r = document.evaluate(exp, node, null, 0, null);
	switch (r.resultType) {
		case 1: return r.numberValue;
		case 2: return r.stringValue;
		case 3: return r.booleanValue;
		case 4: {
			var a = [];
			while(i = r.iterateNext()) a.push(i);
			return a;
		}
	}
};
 
// use other format for [[Special:IndexPages]], only hard nurmbers
// only start, have to check something
if (wgCanonicalSpecialPageName == 'IndexPages') {
	addOnloadHook(function() {
		// where to get the data and the array itself
		var where = $x('//ol[@class="special"]')[0];
		var data = new Array();
 
		// data is stored in the td-tags, first 3 are shit, extract data to data array
		var tds = $x('//td', where);
		for (var i = 0; ((i+1)*9)+3 <= tds.length; i++) {
			var n = (i*9)+3;
			data[i] = new Array(8);
			data[i].href = tds[n].firstChild.href;
			data[i].name = tds[n].firstChild.innerHTML;
			data[i].pages = parseInt(/(\d+)/.exec(tds[n+1].innerHTML));
			data[i].q4 = (tds[n+4].width ? parseInt(tds[n+4].width) : 0);
			data[i].q3 = (tds[n+5].width ? parseInt(tds[n+5].width) : 0);
			data[i].q2 = (tds[n+6].width ? parseInt(tds[n+6].width) : 0);
			data[i].q1 = (tds[n+7].width ? parseInt(tds[n+7].width) : 0);
			data[i].q0 = (tds[n+8].width ? parseInt(tds[n+8].width) : 0);
 
		};
 
		// delete list and create own
		where.innerHTML = '';
		var table = document.createElement('table');
		table.setAttribute('style','background-color:transparent; width:100%;');
		var tr = new Array();
		var th = new Array(9);
		var text = ['Livre','Pages','NA','-','Pb','1','2','3','Total']
		tr[0] = document.createElement('tr');
		for (i in text) {
			th[i] = document.createElement('th');
			th[i].innerHTML = text[i];
			tr[0].appendChild(th[i]);
		}
		tr[0].setAttribute('style','text-align:left;');
		for (var i = 0; i < data.length; i++) {
			tr[i+1] = document.createElement('tr');
			var td = new Array(9);
			for (var j = 0; j < 9; j++) { td[j] = document.createElement('td'); }
			var a = document.createElement('a');
			a.innerHTML = data[i].name;
			a.href = data[i].href;
			td[0].appendChild(a);
			td[0].setAttribute('style','font-weight:bold;');
			td[1].innerHTML = data[i].pages;
			td[2].innerHTML = data[i].pages - data[i].q0 - data[i].q1 - data[i].q2 - data[i].q3 - data[i].q4;
			td[3].innerHTML = data[i].q0;
			td[3].setAttribute('class','quality0');
			td[4].innerHTML = data[i].q2;
			td[4].setAttribute('class','quality2');
			td[5].innerHTML = data[i].q1;
			td[5].setAttribute('class','quality1');
			td[6].innerHTML = data[i].q3;
			td[6].setAttribute('class','quality3');
			td[7].innerHTML = data[i].q4;
			td[7].setAttribute('class','quality4');
//			td[8].innerHTML = Math.round((data[i].q1 + (data[i].q3 * 2) + (data[i].q4 * 3)) * 100 / (data[i].pages * 3)) +'%';
			td[8].innerHTML = Math.round((data[i].q4 + data[i].q0) * 100 / (data[i].pages )) +'%';
			td[8].setAttribute('style','font-weight:bold;');
			for (var j = 0; j < 9; j++) { tr[i+1].appendChild(td[j]); }
		}
		for (var i = 0; i < tr.length; i++) { table.appendChild(tr[i]); }
		where.appendChild(table);
	});
};