MediaWiki:Gadget-HomonymiesEnCouleur.js

De Poképédia
Aller à la navigation Aller à la recherche

Note : après avoir publié 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 appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/**
 * Liens vers des pages d'homonymie mis en évidence par un fond coloré
 *
 * Version de septembre 2017 par XFusio
 * Idée de base : http://hu.wikipedia.org/wiki/MediaWiki:Gadget-bkl-check.js
 */

// NB : le code actuel ne fait qu'une requête à l'API pour trouver la liste des homonymies et est donc limité par la taille maximale d'une requête. À l'heure actuelle (19 juillet 2023), il y a 526 homonymies.
// Pour les administrateurs et les robots, dont la taille de la requête est limitée à 5000, il n'y a donc pas de problème et il ne devrait pas y en avoir avant très très longtemps.
// En revanche, pour les autres utilisateurs, la taille de la requête est limitée à 500, et certaines homonymies ne sont donc pas gérées. Il faudrait ajouter une fonction pour relancer une deuxième requête.
 
( function(){
	if ( !mw.config.get( 'wgArticleId' ) || (mw.config.get('wgAction') != "view" && mw.config.get('wgAction') != "submit") || document.location.href.indexOf('diff') != -1 ) return;
	var api = new mw.Api();
	api.get({
		'format': 'json',
		'action': 'query',
		'list': 'categorymembers',
		'cmtitle': 'Catégorie:Homonymie',
		'cmlimit': 'max'
	}).done(function(data){
		data.query.categorymembers.forEach(function(page){
			$( '#mw-content-text a[href="' + mw.util.getUrl(page.title) + '"]' ).css( 'background-color', '#a7d7f9' );
		});
	}).fail(function(error){
		console.log('Erreur HomonymiesEnCouleur API-1 : ' + error);
	});
}) (jQuery);