FANDOM


UserTags est un script développé par Lunarity, ayant pour fonction de personnaliser les « tags » utilisateurs (les tags sont les indications qui apparaissent sur la page de profil, et qui permettent de savoir si un utilisateur est admin, par exemple).

Ce script permet de changer ce qui est affiché dans le tag (par exemple « Grand Maître » à la place d'« Administrateur »), mais aussi d'afficher ces tags pour des droits qui ne l'ont pas par défaut (rollback par exemple). Il possède un grand nombre d'autres fonctionnalités dont nous parlerons plus en détail par la suite.

Comment l'installer sur son wiki ?Modifier

Premièrement, il va vous falloir appeler le script, sur la page MediaWiki:Common.js (pour plus d'infos sur les pages MediaWiki, voir le début de cette page).

Donc mettre ce code : 

importArticle({type:'script', article:'w:c:dev:UserTags/code.js'});

Ceci permet de mettre le script avec les fonctions de base. Cependant, il ne fonctionnera pas si vous ne mettez pas ceci :

a.tag {
	color: inherit;
}

Sur MediaWiki:Wikia.css.

Une fois ceci fait, vous avez le script avec les fonctionnalités de base.

ParamétrerModifier

Tout d'abord, voyons comment changer le nom des groupes existants, ainsi que comment en ajouter. Il est important de savoir que les utilisateurs d'un wiki sont divisés en groupes (admin, staff, assistants...) puis ces groupes sont convertis en tags qui s'affichent sur la page de l'utilisateur, s'il y a lieu.

Créer de nouveaux groupes/tagsModifier

window.UserTagsJS = {
	modules: {},
	tags: {
		// FORMAT= groupe: { tag associé }
		dieu: { u:'Divinité' },
		css: { u:'Codeur CSS' },
		modeles: { u:'Codeur Modèles' },
		codeur: { u:'Codeur Général' }
	}
};
Ici, je viens de créer trois groupes : dieu, css, modeles et codeur, qui, respectivement, vont afficher le tag « Divinité », « Codeur CSS », « Codeur modèles » et « Codeur Général ». Il est important de noter qu'il est possible de changer le genre du tag (suivant le sexe spécifié par l'utilisateur).

Pour cela :

window.UserTagsJS = {
	modules: {},
	tags: {
		// groupe: { tag associé }
		dieu: { u:'Divinité', m:'Dieu', f:'Déesse' },
		css: { u:'Codeur CSS', f:'Codeuse CSS' },
		modeles: { u:'Codeur Modèles', f:'Codeuse Modèles' },
		codeur: { u:'Codeur Général', f:'Codeuse Générale' }
	}
};

Pour le premier, j'ai spécifié « u », « m » et « f », qui indiquent respectivement le genre inconnu, masculin et féminin. Pour les deux suivant, le masculin étant le même que le genre inconnu, je n'ai pas besoin de le spécifier une deuxième fois.

Il est également possible de changer l'ordre dans lequel les tags vont apparaître, s'il y en a plusieurs :

window.UserTagsJS = {
	modules: {},
	tags: {
		// groupe: { tag associé }
		dieu: { u:'Divinité', order:'100' },
		css: { u:'Codeur CSS', order:'1/0' },
		modeles: { u:'Codeur modèles', order:'-1/0' },
		codeur: { u:'Codeur Général' }
	}
};

L'ordre est représenté par des nombres un nombre proche ou en dessous de 0 sera plus proche du début qu'un nombre éloigné de zéro. La valeur de base pour les tags est de 10100. J'ai également mis les valeurs « 1/0 » et « -1/0 », qui correspondent respectivement à une infinité positive (donc le nombre le plus grand, et par conséquent sera forcément à la fin) et à une infinité négative (et donc le tag sera forcément au début).

Il est possible d'ajouter d'autres paramètres, link: et title: qui ajoutent respectivement un lien au tag, et un texte apparaissant lorsqu'on passe la souris sur le tag.

Changer les tags associés à des groupes déjà existantsModifier

window.UserTagsJS = {
	modules: {},
	tags: {
		bureaucrat: { u:'Super tag de bureaucrate', link:'Centre des communautés:Bureaucrates' },
		inactive: { u: 'N\'édite plus !!!' }
	}
};
Ici, je change le tag associé au groupes bureaucrat et inactive, groupes qui n'apparaissent pas normalement, mais qui sont présents par défaut dans le code du script. Il vous est possible de spécifier juste un lien, ou un ordre, retirer "u:" ne pose pas de problèmes. Notez également que pour des groupes avec un tiret (bot-global par exemple) il est nécessaire de le mettre entre ' et ' sinon cela ne fonctionnera pas.

Customiser l'apparence du tagModifier

Il est possible de changer l'apparence du tag avec du CSS, par exemple pour bureaucrate :

.tag.usergroup-bureaucrat {
	background-color: gold !important;
	color: black !important;
	border: 3px red solid;
	border-radius: 0;
}

Ceci va changer la couleur du fond du tag, celle de l'écriture , du contour et va mettre des bords carrés au tag.

.tag.usergroup-bureaucrat:before -{
	/* ajoute une image avant le tag bureaucrate */
	content: url("http://example.net/masuperimage-982554.png");
}

Voir sur Picsou Wiki.

ModulesModifier

En plus ce cela, un certain nombre de « modules » existent, qui ajoutent des fonctionnalités supplémentaires au script :

Modules d'ajout de tagsModifier

Groupes MediaWikiModifier

Ce module permet d'afficher les tags associés à des groupes qui n'ont normalement pas de tag (le script est disponible par défaut en français, donc un renommage n'est pas nécessaire.

UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop', 'rollback', 'bannedfromchat'];

Ceci affichera les tags de bureaucrate, administrateur (groupe « sysop »), rollback et banni du tchat. Il vous est possible de mettre autant de groupes reconnus par MediaWiki que vous le souhaitez.

Voici une liste de certains groupes reconnus par MediaWiki :

  • sysop : Administrateur
  • bureaucrat : Bureaucrate
  • content-moderator / rollback  : Modérateur de contenu / rollback
  • chatmoderator threadmoderator : Modérateur du tchat / de discussions
  • Une liste plus complète se trouve sur cette page.

Ajout de groupes customModifier

Ce module permet d'affecter un utilisateur à un groupe qui n'est pas créé par défaut.

UserTagsJS.modules.custom = {
	'Utilisateur1': ['dieu', 'css'], // ajoute "Divinité" plus "Codeur CSS"
	'Utilisateur2': ['css'], // Add Codeur CSS
	'Utilisateur3': ['modele', 'css'], // Ajoute modèle+css
	'Utilisateur4': ['inactive'] // Toujours indiqué comme inactif, même s'il modifie.
};

InactifsModifier

Ce module ajoute le groupe « inactive » aux utilisateurs qui n'ont pas édité depuis 30 jours. Il est possible de changer le nombre de jours comme ceci :

UserTagsJS.modules.inactive = 50; // 50 jours

Il est même possible d'être plus précis, en faisant ceci :

UserTagsJS.modules.inactive = {
	days: 30, // 30 jours
	namespaces: [0], // Modifications uniquement dans l'espace de noms principal
	zeroIsInactive: true // 0 modifications est considéré comme inactif
};

Nouveau comptesModifier

Celui-ci permet d'ajouter un tag spécifique aux nouveaux utilisateurs :

UserTagsJS.modules.autoconfirmed = true; // L'active

Il est à noter que le nom de chacun des tags ajoutés par ces modules peut être modifié via la manière expliquée plus haut.

Il existe une variant de ce module, plus souple qui permet de voir les nouveaux éditeurs :

UserTagsJS.modules.newuser = {
	days: 5, // est présent depuis moins de 5 jours
	edits: 10, // à fait moins de 10 édits
	namespace: 0 // Les édits doivent être faits sur des articles
};

Autres modules (filtres et retrait de tags)Modifier

FiltreModifier

Ce module est l'inverse du module custom. en effet, alors que le module « custom » permet d'ajouter des groupes à un utilisateur, celui-ci permet d'en retirer.

UserTagsJS.modules.userfilter = {
	'Utilisateur1': ['inactive'], // Ne sera jamais affiché inactif
	'Utilisateur2': ['founder'], // Retire le groupe "fondateur"
	'Utiliateur3': ['nonuser', 'newuser', 'inactive'] // Retire les groupes "nonuser", "newuser" et "inactive".
};

Ce module est utile principalement pour éviter d'avoir une quantité de tags trop importante.

MétaFiltreModifier

A l'instar du précédent, ce module permet de retirer des tags, mais sous certains conditions et automatiquement :

UserTagsJS.modules.metafilter = {
	'inactive': ['sysop', 'bureaucrat'], // Les bureaucrates et admins ne sont pas considérés comme inactifs
	'sysop': ['bureaucrat'], // Retire le tag "admin de celui de "bureaucrate"
	'chatmoderator': ['sysop', ['patroller', 'rollback']] // Retire le tag "chatmoderator" des admins et des utilisateurs ayant les droits rollback ET patroller
};

CombinaisonModifier

Ce module permet d'affecter automatiquement un groupe à un utilisateur si plusieurs groupes sont déjà présents. Je m'explique : Dans le première exemple, je mets comme groupes « css », « modele » et « codeur », je souhaite que le tag « codeur » s'affiche pour les utilisateurs ayant à la fois « css » et « modele ». Une autre utilisation peut être la mise en place d'un tag « admin-inactif » pour les utilisateurs étant ET admin ET inactif (comme inactif est mis automatiquement, cela évite de devoir vérifier quel admin est inactif pour mettre le groupe manuellement) :

UserTagsJS.modules.implode = {
	'codeur': ['css', 'modele'], // Ajoute codeur si css et modele sont présents, et retire ces derniers.
	'admin-inactif': ['sysop', 'inactive']
};

Une autre version existe, qui à les mêmes effets, mais qui ne retire pas les tags :

UserTagsJS.modules.explode = {
	'anti-vandales': ['rollback', 'patroller'] // Ajoute "anti-vandales" et laisse rollback et patroller
};

Modules en rapport avec le blocageModifier

Ne pas afficher si l'utilisateur est bloquéModifier

Ce module est actif par défaut, et permet de ne pas afficher les tags d'un utilisateur si celui-ci est bloqué. Le mettre dans le code sert uniquement à le désactiver, et donc à afficher les droits si un utilisateur est bloqué :

UserTagsJS.modules.stopblocked = false; // Stoppe le module

Préférences linguistiques et capacités en programmationModifier

Ces deux modules servent à afficher les préférences linguistiques et les capacités en programmation des utilisateurs. Pour les activer :

UserTagsJS.modules.prefLanguages = true; //Langue
UserTagsJS.modules.prefCoding = true; //Programmation

Ces modules ne requièrent pas de configuration par code, celle-ci se fait via une page Spéciale, Spécial:Scripts. elle est accessible via le lien « My Scripts » qui apparaît dans le menu déroulant utilisateur, dans le coin en haut à droit du site (le menu pour se déconnecter). Cependant, le page spéciale semble ne pas fonctionner correctement.

ExempleModifier

Enfin, finissons sur un exemple qui présent l'apparence globale que doit avoir le script au final.

window.UserTagsJS = {
	modules: {},
	tags: {
		rollback: 'Gardien de la Paix',
		sysop: { u:'Admin', link:'Centre des communautés:Administrateur', order:'-1/0' },
		dieu: { u: 'Divinité', link:'http://fr.wikipedia.com/wiki/Divinité' },
		grandmaitreducustom: { u:'Grand Maître du Custom' },
		'wikien-en-portrait': { u: 'Wikien en Portrait', link:'Centre des communautés:Portraits de Wikien' },
		'anti-vandales': 'Anti Vandales'
	}
};
// Ajout des groupes custom
UserTagsJS.modules.custom = {
	'Une personne': ['helper', 'wikien-en-portrait'],
	'John Trololo': ['grandmaitreducustom'],
	'Toi': ['inactive'], // Force le groupe inactif
	'Moi': ['wikien-en-portrait', 'rollback']
};
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.inactive = 35; // Inactif au bout de 35 jours sans modifications 
UserTagsJS.modules.mwGroups = ['bureaucrat']; // Ajoute le groupe bureaucrat aux bureaucrates
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat'], // Retire le groupe administrateur aux bureaucates
	grandmaitreducustom: ['dieu'] // retire le groupe grandmaitreducustom aux "dieu"
};
UserTagsJS.modules.userfilter = {
	'Wyz': ['inactive'] // Wyz n'est jamais inactifs, même s'il devrait l'être
};
UserTagsJS.modules.implode = {
	'dieu': ['sysop', 'grandmaîtreducustom', 'chatmoderator'] // Retire admin, grandaitreducustom et chatmoderator, puis ajoute dieu
};
UserTagsJS.modules.explode = {
	'anti-vandales': ['patroller', 'rollback'] // Ajoute "anti vandales" pour les rollbacks et patrollers
};
importArticle({type:'script', article:'w:c:dev:UserTags/code.js'});

Il est important de noter que la plupart des modules sont utilisé ici, mais qu'ils ne sont pas tous nécessaires.

Et voici la configuration par défaut du script.

window.UserTagsJS = {
	modules: {},
	tags: {}
};
UserTagsJS.modules.inactive = 30;
UserTagsJS.modules.newuser = true;
UserTagsJS.modules.autoconfirmed = true;
// NOTE: bannedfromchat apparaît en Oasis mais n'est pas un groupe, il doit donc être mis manuellement.
UserTagsJS.modules.mwGroups = ['bureaucrat', 'chatmoderator', 'patroller', 'rollback', 'sysop', 'bannedfromchat', 'bot', 'bot-global'];
UserTagsJS.modules.metafilter = {
	sysop: ['bureaucrat', 'founder'],
	bureaucrat: ['founder'],
	chatmoderator: ['sysop', 'bureaucrat']
};
importArticle({type:'script', article:'w:c:dev:UserTags/code.js'});

LienModifier

Sauf mention contraire, le contenu de la communauté est disponible sous licence CC-BY-SA .