Gadget kitchen/fr

Bienvenue dans la cuisine de gadgets. Il s'agit d'un didacticiel expliquant comment écrire et utiliser des gadgets et des scripts utilisateur en JavaScript.

Que sont les scripts d'utilisateur et les gadgets?
MediaWiki permet à quiconque d'écrire du code public JavaScript pour changer immédiatement le comportement du logiciel. Ce code peut être partagé avec d'autres utilisateurs. Ce code se trouve dans les pages wiki.


 * Un script utilisateur peut être modifié par son auteur originel (s'il est stocké dans l'espace de noms ) et par quiconque ayant les droits utilisateurs edituserjs (habituellement uniquement les administrateurs d'interface). Le code est habituellement hébergé dans une sous-page de votre page utilisateur. Les exemples incluent : XTools/ArticleInfo.js et m:User:Hoo man/useful links.js.  Les scripts utilisateur sont similaires aux pages JavaScript personnelles telles que Special:MyPage/common.js, mais ils permettent de partager avec d'autres utilisateurs, des portions de code unitaires.
 * Un gadget est un script utilisateur qui a été "promu" par un administrateur d'interface, en l'ajoutant à MediaWiki:Gadgets-definition. Les utilisateurs connectés peuvent activer les gadgets dans l'onglet Gadgets de leurs préférences utilisateur. Les gadgets sont créés et gérés par les administrateurs d'interface.
 * Par souci d'exhaustivité : Il y a aussi le siteJS situé à MediaWiki:Common.js. Le JavaScript de ce fichier est exécuté automatiquement avec tous les utilisateurs qu'ils soient connectés ou non-connectés. Les administrateurs d'interface peuvent modifier cette page. Veuillez lire la section JavaScript du manuel d'interface pour d'autres informations.

Si vous exécutez votre propre copie de MediaWiki, doit être activé pour que les scripts utilisateur fonctionnent, et l'extension  doit être installée pour permettre de promouvoir des scripts individuels au statut de gadget. Pour une expérience de développement plus agréable, assurez-vous que l'extension est installée sur votre wiki.

Ecrivez votre premier script
Dans cette section, vous allez créer un exemple de script utilisateur qui calcule le temps estimé pour la lecture d'une page du wiki.
 * 1) Assurez-vous d'être connecté.
 * 2) Allez sur Special:MyPage/common.js. Cette page contient votre JavaScript personnel qui est chargé à chaque fois que vous affichez une page (sauf pour Special:Preferences).
 * 3) Soit vous créez la page, soit vous la modifiez si elle existait déjà.
 * 4) Copiez les six lignes suivantes et collez-les dans la page :
 * 5) Cliquez sur .
 * 6) Ouvrez une page quelconque. Lisez le titre.
 * 1) Ouvrez une page quelconque. Lisez le titre.

Cet exemple de script utilisateur est extrait de. Il y a beaucoup d'autres exemples de scripts utilisateur simples sur cette page.

En général, consultez les conventions de codage JavaScript pour écrire du JavaScript conforme au style de MediaWiki.

Développement de scripts utilisateur et de gadgets
Cette section liste les ressources nécessaires ou utiles pour les scripts utilisateur plus élaborés.

ResourceLoader
Depuis 2015 (MediaWiki 1.26), les gadgets doivent utiliser ResourceLoader (T107399). est une fonctionnalité principale de MediaWiki qui fournit intelligemment des ressources JavaScript et CSS aux utilisateurs et aux lecteurs. Étant donné que les gadgets sont codés en JavaScript, en tant que codeur de gadgets, vous êtes obligé d'interagir avec ResourceLoader.

Votre gadget doit charger les modules ResourceLoader utiles.


 * Modules - Une liste des bibliothèques JavaScript, des plugins jQuery et des utilitaires MediaWiki qui existent déjà dans ResourceLoader que vous pouvez réutiliser.
 * Voir la documentation jQuery pour toute information concernant l'utilisation de jQuery dans MediaWiki
 * Développer avec ResourceLoader — liste d'utilisations pratiques, comme l'activation du mode debug et aide au débogage.
 * Voir aussi les Meilleures utilisations de ResourceLoader.

OOUI
OOUI est une bibliothèque JavaScript avec des éléments d'interface utilisateur (tels que les fenêtres pop-up) utilisés spécifiquement sur MediaWiki. La bibliothèque des Gadgets de OOUI sur MediaWiki peut être utilisée dans les gadgets.

API Action de MediaWiki
Voir API pour plus d'informations.

VisualEditor
Voir le tutoriel dédié aux gadgets de VisualEditor à Gadgets de l'Editeur Visuel.

Deboguer les scripts utilisateur et les gadgets

 * Les gadgets sont habituellement compactés par le ResourceLoader, minimisés et aggrégés. Utilisez le paramètre  de l'URI (précédé de   ou , bien sûr), pour demander la version non compressée de la page et pour charger le format  original du source de votre gadget. Voir aussi Developper avec ResourceLoader pour d'autres informations.
 * Apprenez comment utiliser les Outils du développeur pour votre navigateur (par exemple comment désactiver le cache de votre navigateur). Voir la documentation correspondante : Chrome/Chromium, Firefox, Internet Explorer, Opera, Safari.
 * Si un gadget existant pose problème, vous pouvez aussi utiliser la page Special:Gadgets pour connaître l'emplacement du code source du gadget.

Données confidentielles et contenu externe
Vous ne devez pas charger de ressources externes susceptibles de nuire à la confidentialité des utilisateurs. Dans les wikis Wikimedia, les domaines suivants sont considérés comme sûrs :


 * *.wiktionary.org
 * *.wikimedia.org
 * *.wikibooks.org
 * *.wikisource.org
 * *.wikiversity.org
 * *.wikinews.org
 * *.wikiquote.org
 * *.wikidata.org
 * *.wikivoyage.org
 * www.mediawiki.org

Exemple plus complexe de script utilisateur
Découvrez MediaWiki:Tutorial-QuickRC.js qui utilise mw.loader, mw.util, mw.html, mw.user de ResourceLoader, l'API MediaWiki Action, une boîte de dialogue d'interface utilisateur jQuery, jQuery AJAX et la liaison d'événement jQuery.

Copiez et collez le contenu de MediaWiki:Tutorial-QuickRC.js dans votre Special:MyPage/common.js.

Le résultat doit être le même que ci-dessus, mais vous pouvez maintenant modifier le script, jouer avec et le remplacer par autre chose.

Charger un script utilisateur existant
Dans la section précédente, vous avez copié le contenu d'un script utilisateur. Dans cette section, vous allez charger le script existant MediaWiki:Tutorial-QuickRC.js à la place.


 * 1) Assurez-vous d'être connecté.
 * 2) Allez sur Special:MyPage/common.js. Cette page contient votre JavaScript personnel qui est chargé à chaque affichage de page (sauf pour  Special:Preferences).
 * 3) Créez cette page ou modifiez-la si elle existe déjà.
 * 4) Copiez le texte suivant et collez-le dans la page : mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Tutorial-QuickRC.js&action=raw&ctype=text/javascript');
 * 5) Cliquez sur Publier les modifications. Vous devriez maintenant avoir un lien dans la section Outils appelé Journal rapide des modifications.
 * 6) Cliquez sur Journal rapide des modifications. Vous obtenez une fenêtre pop-up. Il vous montre un sous-ensemble de modifications récentes sur ce site web.

Utiliser un script sur un autre wiki Wikimedia
Si vous souhaitez utiliser un script sur un autre site web Wikimedia (par exemple Wikipedia anglais au lieu de MediaWiki.org), effectuez les mêmes étapes que ci-dessus: indiquez à ResourceLoader de charger votre code. Consultez votre common.js sur la Wikipedia anglaise et ajoutez ce qui suit :

mw.loader.load("//www.mediawiki.org/w/index.php?title=MediaWiki:Tutorial-QuickRC.js&action=raw&ctype=text/javascript");

Vous pouvez également charger le script utilisateur que vous venez de créer ci-dessus, en modifiant  dans la ligne précédente en   (remplacez   et   en conséquence). Ceci nécessite d'abord que vous n'enregistriez pas le code de votre script utilisateur dans Special:MyPage/common.js lui-même, mais à la place, dans une sous-page séparée de votre page utilisateur.

This also helps to keep code in one single place, so you have to update code in only one place.

Inconvénients et problèmes des gadgets

 * Les gadgets sont développés par les membres de la communauté. À ce jour, aucune révision de code formelle n'est requise pour les gadgets sur les sites Wikimedia (voir T71445). Veuillez suivre les meilleures pratiques répertoriées sur cette page.
 * On Wikimedia sites, the process how to "promote" a user script to a gadget in the "Gadgets" tab of the user preferences is not always clear. You will have to find an interface administrator and might have to provide deployment instructions to them.
 * Wikimedia lacks a systematic process for re-using, modifying and contributing to existing user scripts and gadgets.

Idées sur lesquelles travailler
Certains membres de communautés Wikimedia peuvent partager leurs idées sur ce qu'ils souhaiteraient voir implémenté par d'autres personnes.


 * Gadget Kitchen/Requests - not a popular page, so you might waste time
 * w:Wikipedia:User scripts/Requests for English Wikipedia

Deploying or enabling a gadget
If your user script should become a gadget (see the definitions above) on a wiki, the following steps are needed:


 * Steps for the user script author:
 * Recruit an experienced developer to review your gadget code. There is no formal process to do so.
 * Check with community members if there aren't any concerns with enabling the gadget on a wiki. For the website MediaWiki.org itself, this would be Project:Village Pump.
 * Recruit a site administrator with interface rights. See the page Special:ListUsers/interface-admin on your wiki.
 * Steps for the interface administrator:
 * Copy your JS & CSS files in the  namespace on your wiki, and make sure the page names have the prefix  .  Example:
 * Define the gadget on the MediaWiki:Gadgets-definition page of your wiki. That includes the modules used, dependencies, JS, and CSS file names, etc. This will allow users to enable the gadget on the Special:Preferences page of your wiki. Example:
 * Create a page for the gadget in the  namespace with prefix  . This will generate a label for the gadget on the Special:Preferences page of your wiki.  Example:

Autres pages en rapport

 * Wikipedia:Scripts utilisateur sur Wikipedia anglais et ses alternatives dans d'autres langues sont les principaux hubs pour le développement de scripts utilisateur et de gadgets sur Wikipedia.
 * The user scripts guide on the English Wikipedia has tons of useful information to get you started.
 * Wikipedia:Gadget page sur la Wikipedia anglaise
 * Slides for a workshop to teach the basics of user scripts and gadgets (part of Small wiki toolkits)
 * Liste des gadgets par popularité dans tous les projets Wikimedia
 * For a specific website, see Special:GadgetUsage for the number of users that each gadget has
 * Compatibility - MediaWiki's JavaScript support per browser and browser version
 * A video tutorial from the year 2012 regarding gadgets and user scripts. This is a bit outdated and the quality could be better, but shows how to use developer tools etc.
 * See Extension:EventLogging for a mechanism to gather data created from users interacting with a gadget.