Extension:Gadgets

This page is a translated version of the page Extension:Gadgets and the translation is 88% complete.
Outdated translations are marked like this.
Cette extension est fournie avec MediaWiki 1.18 et supérieur. Ainsi vous n'avez pas besoin de la télécharger à nouveau. Néanmoins, vous devez encore suivre les autres instructions fournies.
Manuel des extensions MediaWiki
OOjs UI icon advanced-invert.svg
Gadgets
État de la version : stable
Screenshot-gadgets-tab-vector-skin.png
Implémentation MyWiki , Page spéciale , API
Description Permet aux utilisateurs d'activer des gadgets basés sur JavaScript et fournis aux utilisateurs à partir de leur page de préférences.
Auteur(s) Daniel Kinzler (Duesentriebdiscussion)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki 1.19+
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
README
Exemple Wikimédia Commons : Présentation des gadgets, Préférences de l'utilisateur (cliquez sur "Gadgets" ; vous devez bien sûr être connecté)
  • $wgGadgetsRepoClass
  • $wgSpecialGadgetUsageActiveUsers
Quarterly downloads 200 (Ranked 50th)
Public wikis using 6,111 (Ranked 13th)
Traduire l’extension Gadgets sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L'extension Gadgets apporte un moyen pour les utilisateurs d'utiliser des "gadgets" écrits en JavaScript ou CSS que d'autres utilisateurs du wiki ont fournis.

Les gadgets sont constitués de Fragments de code de JavaScript et/ou CSS situés sur les pages de l'espace de noms MediaWiki. Chaque gadget est défini par une ligne dans MediaWiki:Gadgets-definition, fournissant un nom et une description pour le gadget, et une liste du code JavaScript et CSS qu'il utilise (voir la section Utilisation ci-dessous).

Comme les gadgets sont définis dans l'espace de noms MediaWiki: (la liste décrivant les gadgets comme le code lui-même), seuls les sysops (administrateurs d'interface depuis 1.32) peuvent modifier le code. Et c'est une bonne chose : seuls les utilisateurs particulièrement fiables au sein de la communauté du wiki sont supposés aptes à modifier le code JavaScript utilisé par d'autres utilisateurs, dans la mesure où le JavaScript peut être facilement utilisé pour hacker des comptes ou espionner des gens.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé Gadgets dans votre dossier extensions/.
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'Gadgets' );
    
  •   Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Utilisation

 
Sélection de certains gadgets aux préférences de l'utilisateur dans de.wikipedia

Une fois créés avec au moins un gadget valide, les gadgets définis s'affichent dans la section "Gadgets" de Special:Preferences, afin que les utilisateurs puissent choisir les gadgets qu'ils souhaitent utiliser. Un aperçu des gadgets définis par MediaWiki:Gadgets-definition est également affiché sur Special:Gadgets, ainsi que des liens vers les messages système respectifs, pour faciliter l'édition. Les statistiques d'utilisation des gadgets autres que par défaut sont visibles à Special:GadgetUsage.

Format

Chaque ligne de MediaWiki:Gadgets-definition qui commence par un ou plusieurs caractères "*" (astérisques) définit un gadget ; il doit avoir la forme suivante :

* mygadget [== Options (peut être omis) ==] | Noms de page

Le premier champ ("mygadget" dans l'exemple) est le nom interne du gadget et fait référence à un message système (MediaWiki:Gadget-mygadget dans l'exemple) qui contient une courte description du gadget, en utilisant la syntaxe wiki.

Cela signifie qu'il doit commencer par une lettre latine de base ([A-Za-z]) et peut être suivi de n'importe quel nombre de lettres, de chiffres ([0-9]), de tirets (-), de traits de soulignement (_), de deux-points ($5) et de points (.). Le 'nom interne' est utilisé comme partie intégrante du nom d'un champ de formulaire et doit suivre les rules defined for NAME attribute values.

Format des options:

[ResourceLoader | option1 | option2 | ... optionN]

The ResourceLoader flag is required unless the gadget contains only styles. Options that are "flags" only need to have their name written to be turned on. Une option unique peut être constituée d'un nom d'option unique (dans ce cas, il s'agit d'une option d'indicateur) ou contenir une liste de valeurs séparées par des virgules: les espaces peuvent être omis.

[ResourceLoader | myflag | mykey = value1, value2, value3 ]

Exemples:

 * mygadget[ResourceLoader]|mygadget.js|mygadget.css

ou

 * mygadget[ResourceLoader|package]| mygadget.js | mygadget-Foo.js | mygadget-data.json | mygadget.css

ou

* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css

Utiliser l'espace de noms de définition de Gadget

Il y a deux façons de définir les gadgets en fonction de $wgGadgetsRepoClass. S'il est 'MediaWikiGadgetsDefinitionRepo' (valeur par défaut), la liste des gadgets disponibles est définie sur MediaWiki:Gadgets-definition. De manière alternative, les définitions de gadget sont définies sur les pages de l'espace de noms Définition de gadget lorsque $wgGadgetsRepoClass est défini sur 'GadgetDefinitionNamespaceRepo'.

La migration des définitions de gadget existantes n'est pas encore prise en charge. Vous perdrez donc les gadgets précédemment définis après avoir modifié cette option.

La création de la page Gadget definition:mygadget et l'insertion du code JSON ci-dessous ont le même effet que mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css.

{
	"settings": {
		"rights": [ "foo", "bar" ],
		"default": false,
		"package": false,
		"hidden": false,
		"skins": [],
		"actions": [],
		"category": ""
	},
	"module": {
		"scripts": [ "mygadget.js" ],
		"styles": [ "mygadget.css" ],
		"datas": [],
		"peers": [],
		"dependencies": [],
		"messages": [],
		"type": ""
	}
}

Dans l'exemple ci-dessus, Gadget:Mygadget.js et Gadget:mygadget.css sont utilisés.

Options

Nom Paramètres Description Depuis
ResourceLoader Aucun Marque les scripts du gadget comme compatibles avec ResourceLoader . ?
dependencies Noms de modules séparés par des virgules Voir la liste des modules par défaut. Notez que cette option n'a aucun effet si le gadget actuel n'a pas de ressources compatibles avec ResourceLoader (c'est-à-dire pas de styles et de scripts non marqués comme compatibles). ?
rights Noms des droits séparés par des virgules Rend le gadget disponible (et visible dans les préférences) uniquement pour les utilisateurs qui possèdent les droits spécifiés. ?
hidden Aucun Masquer le gadget de la page Préférences. Cela peut être utilisé de deux manières :
  • Activer un gadget par défaut sans possibilité de le désactiver (comme alternative modulaire à Common.js). Notez que vous devez ajouter les deux : hidden | default pour charger un module pour tous les utilisateurs.
  • Les gadgets qui ne sont pas destinés aux utilisateurs, mais qui sont plutôt destinés à être chargés par d'autres gadgets. Par exemple, pour permettre à deux gadgets de réutiliser le même code interne, ou pour enregistrer la partie « centrale » d'un gadget qui ne se charge que sur certaines pages.
1.28
skins Noms d'habillages séparés par des virgules Rend le gadget disponible (et visible dans les préférences) uniquement pour les utilisateurs qui utilisent les habillages spécifiés. Avant MediaWiki 1.32, il prenait en compte l'habillage défini dans les préférences de l'utilisateur, et non celui qui est actuellement affiché (comme lorsqu'on ajoute ?useskin=monobook dans l'URL, tâche T199478). ?
actions Noms d'actions séparés par des virgules Rend le gadget disponible uniquement avec les actions spécifiées. Par exemple, actions = edit, history pour charger un gadget uniquement pendant l'édition et sur les pages d'historique.
Spécifier l'action edit le chargera également avec action=submit. Les actions invalides désactivent concrètement le gadget puisqu'il ne peut être exécuté nulle part.
1.38-wmf.16
default Aucun Active le gadget par défaut pour tout le monde (y compris les IP). Les utilisateurs enregistrés peuvent toujours le désactiver dans leurs préférences. 1.18
package Aucun Marque ce gadget comme étant un package. Dans ce mode, seule la première page JavaScript sera exécutée. D'autres pages peuvent être importées en utilisant la fonction require(). Ce mode permet également d'utiliser des pages JSON, qui ne peuvent être incluses autrement. 1.38-wmf.16
targets desktop (par défaut), mobile ou desktop,mobile Définit la ou les cibles ResourceLoader pour le gadget. gerrit:60954
type styles ou general Utiliser styles pour les modules qui ne modifient que le style des éléments déjà présents sur la page (par exemple, lors de la personnalisation de l'habillage, de la mise en page ou du contenu de l'article). Il fera en sorte que les fichiers CSS du module soient inclus dans la page HTML au lieu d'être chargés via JavaScript. Pour plus de détails, voir ResourceLoader/Migration guide (users)#Gadget type.
Utiliser styles ne chargera aucun des fichiers JavaScript spécifiés. Pour les gadgets qui modifient le style des éléments à l'aide de JavaScript et de CSS, deux définitions de gadget individuelles sont nécessaires.
1.28
peers Noms de modules séparés par des virgules Requiert des gadgets uniquement en CSS (qui sont généralement cachés). Ces gadgets seront chargés plus tôt que par les dependencies, et seront chargés même si JavaScript est désactivé. Pour plus de détails, voir ResourceLoader/Migration guide (users)#Gadget peers. 1.29.0-wmf.11
(préversion)
supportsUrlLoad Aucun | true | false Rend le gadget disponible pour être chargé avec le paramètre de requête URL ?withgadget. 1.38
requiresES6 None Allow use of ES6 syntax (ES2015) in the gadget. Enabling this means server-side syntax validation is skipped for the gadget. Any ES6-requiring gadgets are loaded together in a single web request, which isolates failures due to invalid or unsupported syntax to those gadgets only, without affecting other gadgets and MediaWiki software features. It is recommended to use a tool like ESLint to ensure only valid ES6 syntax is used. 1.40.0-wmf.7
top Aucun (supprimé en 1.29) Permet au gadget d'être chargé par les composants de MediaWiki. Ceci devrait être utilisé avec parcimonie, mais peut être nécessaire pour certaines initialisations comme l'enregistrement de plugins avec VisualEditor. gerrit:75506

Vous pouvez spécifier des dépendances supplémentaires pour vos gadgets, par exemple :

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

Ici, nous demandons à ResourceLoader de charger les modules jquery.ui et jquery.effects.clip avec mygadget. Notez que les gadgets ne peuvent pas dépendre des scripts des pages, des fichiers statiques ou d'URL externes, mais uniquement des modules déjà enregistrés dans ResourceLoader. Pour qu'un script d'une page dépende d'un autre script d'une page, chaque script doit être un gadget qui s'enregistre en tant que module dans ResourceLoader, puis on peut leur faire avoir des dépendances en utilisant la syntaxe suivante :

* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js

Pour activer un gadget par défaut, utilisez "default" :

* mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css

Pour que le gadget ne soit accessible qu'aux utilisateurs disposant des droits appropriés, définissez l'option rights, par exemple :

* ImprovedDeletion [rights=delete] | ImprovedDeletion.js

Rend le gadget disponible uniquement pour les utilisateurs qui peuvent supprimer des pages.

Notez que les restrictions sont basées sur les droits, et non sur des groupes d'utilisateurs comme les administrateurs ou les bureaucrates. Voici quelques exemples réels :

* modrollback[ResourceLoader|rights=rollback]|modrollback.js
* UTCLiveClock[ResourceLoader|rights=purge]|UTCLiveClock.js
* Ajax_sysop[ResourceLoader|rights=patrol,rollback,markbotedits,delete]|Ajax_sysop.js

User rights

This extension adds two new user rights, gadgets-edit and gadgets-definition-edit, which by default aren't given to any group.

Vous pouvez ajouter les éléments suivants dans votre LocalSettings.php pour fournir les autorisations appropriées aux utilisateurs qui font partie du groupe interface-admin. La modification de pages dans l'espace de noms Gadget nécessite le droit gadgets-edit et la modification de pages dans l'espace de noms de définition Gadget nécessite le droit gadgets-definition-edit.

$wgGroupPermissions['interface-admin']['gadgets-edit'] = true;
$wgGroupPermissions['interface-admin']['gadgets-definition-edit'] = true;

Pages

Les autres éléments de la ligne font référence au code JavaScript, CSS ou JSON qui compose le gadget, contenu dans des messages système (MediaWiki:Gadget-mygadget.js et MediaWiki:Gadget-mygadget.css dans l'exemple) ; les noms de ces messages doivent se terminer par ".js" ou ".css", respectivement.

Un gadget peut utiliser un nombre quelconque de messages système contenant de code. Plus précisément, un code commun peut être inséré dans un message système contenant du code utilisé par plusieurs gadgets, en plus de leur propre code spécifique, par exemple :

 * frobinator[ResourceLoader]|commonStuff.js|frob.js|frob.css|pretty.css
 * l33t[ResourceLoader]|commonStuff.js|tools.js|l33t.js
 * foobar[ResourceLoader|package]|foo.js|bar.js|foobar.json

Veuillez noter que si votre code contient des chaînes qui pourraient être interprétées comme de la syntaxe wiki (par exemple, le code de signature ~~~~), vous voudrez peut-être enfermer votre code dans ‎<nowiki>...‎</nowiki> et placer ces balises dans des commentaires JavaScript ou CSS afin qu'elles ne soient pas interprétées jusqu'à ce qu'elles soient effectivement utilisées.

Voir la première et la dernière ligne de MediaWiki:Gadget-externalsearch-bar.js pour un exemple.

Sections

La liste des gadgets dans MediaWiki:Gadgets-definition peut être divisée en sections à l'aide de lignes qui commencent et finissent par deux ou plusieurs caractères "=" (égaux), entourant le nom d'un message système qui définit le nom de la section, par exemple :

 == interface-gadgets ==

Cela définirait une nouvelle section, avec le titre défini sur la page MediaWiki:Gadget-section-interface-gadgets.

Popular gadgets

See meta:Gadgets for gadgets which are popular in Wikimedia communities.

Voir aussi