Accroches

This page is a translated version of the page Manual:Hooks and the translation is 98% complete.
Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Esperanto • ‎dansk • ‎español • ‎français • ‎português • ‎português do Brasil • ‎čeština • ‎български • ‎македонски • ‎русский • ‎中文 • ‎日本語 • ‎한국어
MediaWiki extensions

Les accroches permettent au code utilisateur d'être exécuté lorsqu'un événement prédéfini (tel que l'enregistrement d'une page ou la connexion d'un utilisateur) se produit. Par exemple, l'extrait de code suivant déclenche un appel à la fonction MyExtensionHooks::pageContentSaveComplete quand l'accroche PageContentSaveComplete est sollicitée, en passant à sa fonction, les arguments spécifiques à PageContentSaveComplete.

Les accroches peuvent être enregistrées en établissant une correspondance entre le nom de l'accroche et la procédure de callback dans le fichier extension.json de l'extension:

"Hooks": {
    "PageContentSaveComplete": "MyExtensionHooks::onPageContentSaveComplete"
}

MediaWiki fournit beaucoup d'accroches comme celle-ci pour étendre les fonctionnalités du logiciel MediaWiki. Assigner une fonction (appelée gestionnaire d'événements) à une accroche fera que cette fonction sera appelée à l'endroit approprié du code principal MediaWiki, afin d'exécuter toute(s) tâche(s) supplémentaire(s) que le développeur pense utile(s) à cet endroit. Chaque accroche peut avoir de multiples gestionnaires qui lui sont attachés, auquel cas elle appellera les fonctions dans l'ordre où elles ont été assignées, les modifications laissées par une fonction étant passées à la fonction suivante de la chaîne.

Assignez les fonctions aux accroches à la fin de LocalSettings.php ou dans votre fichier personnel d'extension à la portée du fichier (non pas dans une fonction $wgExtensionFunctions ni dans l'accroche de ParserFirstCallInit). Pour les extensions, si le comportement de la fonction de l'accroche est conditionné par une valeur de LocalSettings.php, l'accroche devra être assignée et la fonction se terminer plus tôt lorsque la condition n'est pas satisfaite.

Vous pouvez aussi créer de nouvelles accroches dans votre propre extension; si vous le faites, ajoutez les au registre des accroches des extensions.

Contexte

Une accroche est déclenchée par un appel à la fonction Hooks::run (décrite dans le fichier hooks.txt, et définie dans GlobalFunctions.php. Le premier argument de Hooks::run est le nom de l'accroche, le second est le tableau des arguments de cette accroche. Elle trouvera les gestionnaires d'événements à exécuter dans le tableau $wgHooks. Elle appelle la fonction PHP call_user_func_array avec les arguments qui seront ceux de la fonction appelée.

Voir aussi la spécification des accroches du système.

Dans cet exemple de la fonction doPurge de WikiPage.php, doPurge appelle Hooks::run pour exécuter l'accroche ArticlePurge, en lui passant &$wikiPage comme argument :

Hooks::run( 'ArticlePurge', [ &$wikiPage ] );

Le Noyau appelle beaucoup d'accoches, mais Manuel:Extensions peut aussi appeler des accroches.

Ecrire un gestionnaire d'événements

Un gestionnaire d'événements est une fonction que vous assignez à une accroche, et qui sera exécutée à chaque fois que l'événement représenté par cette accroche se produit. Il consiste en :

  • une fonction avec quelques données optionnelles qui l'accompagnent, ou
  • un object avec une méthode et quelques données optionnelles qui l'accompagnent.

Enregistrez le gestionnaire d'événements en l'ajoutant au tableau global $wgHooks pour un événement donné. Les attaches peuvent être ajoutées en tout point de l'exécution avant que l'accroche ne soit appellée, mais sont en général ajoutées dans LocalSettings.php, ses fichiers inclus, ou, pour les extensions, dans le fichier extension.json. Tout ce qui suit sont des manières valides pour définir une fonction d'accroche pour l'événement EventName à qui on passe deux paramètres, montrant le code qui sera exécuté quand l'événement EventName se produit:

Format Syntaxe Appel de fonction résultant
Fonction statique $wgHooks['EventName'][] = 'MyExtensionHooks::onEventName'; MyExtensionHooks::onEventName( $param1, $param2 );
Fonction sans données $wgHooks['EventName'][] = 'someFunction'; someFunction( $param1, $param2 );
Fonction avec données $wgHooks['EventName'][] = [ 'someFunction', $someData ]; someFunction( $someData, $param1, $param2 );
Fonction sans données
(syntaxe bizarre mais OK)
$wgHooks['EventName'][] = [ 'someFunction' ]; someFunction( $param1, $param2 );
fonction anonyme en ligne
$wgHooks['EventName'][] = function ( $param1, $param2 ) {
// ...function body
}
(la fonction anonyme est appelée avec les paramètres de l'accroche)
Objet seul $wgHooks['EventName'][] = $object; $object->onEventName( $param1, $param2 );
Objet avec méthode $wgHooks['EventName'][] = [ $object, 'someMethod' ]; $object->someMethod( $param1, $param2 );
Objet avec méthode et données $wgHooks['EventName'][] = [ $object, 'someMethod', $someData ]; $object->someMethod( $someData, $param1, $param2 );
Objet seul
(syntaxe bizarre mais OK)
$wgHooks['EventName'][] = [ $object ]; $object->onEventName( $param1, $param2 );

Pour les extensions, la syntaxe est similaire dans le fichier extension.json (correspondant au premier et au second cas ci-dessus):

{
	"Hooks": {
		"EventName": [
			"MyExtensionHooks::onEventName",
			"someFunction"
		]
	}
}

Quand une erreur survient, la fonction (ou la méthode de l'objet) que vous avez enregistrée est appelée, avec les paramètres de l'événement, et toutes les données facultatives que vous avez fournies à l'enregistrement. Notez que lorsqu'un objet est l'accroche et que vous n'avez pas indiqué de méthode, la méthode appelée est 'onEventName'. Pour les autres événements cela serait 'onArticleSave', 'onUserLogin', etc.

Les données optionnelles sont utiles si vous voulez utiliser la même fonction ou objet pour différents objectifs. Par exemple :

$wgHooks['PageContentSaveComplete'][] = [ 'ircNotify', 'TimStarling' ];
$wgHooks['PageContentSaveComplete'][] = [ 'ircNotify', 'brion' ];

Ce code résulterait en une double exécution de ircNotify quand une page est enregistrée : une fois pour 'TimStarling', et une fois pour 'brion'.

Les gestionnaires d'événements peuvent retourner l'une des trois valeurs possibles :

  • aucune valeur retournée (ou nul): le gestionnaire de l'attache s'est bien exécuté. (Avant MediaWiki 1.23, il était nécessaire de retourner la valeur vrai.)
  • "une chaîne de caractères": une erreur est survenue; le traitement doit s'arrêter et l'erreur doit être affichée à l'utilisateur
  • false : le gestionnaire de l'attache a fait le travail demandé, ou s'est substitué au traitement normal. Cela empêche les autres gestionnaires d'être exécutés, et dans certains cas cela permet à la fonction appelante de sauter le traitement normal.
Dans la plupart des cas où un message d'erreur est attendu, l'accroche va définir une variable passée par référence pour que les extensions y enregistrent un message d'erreur ce qui est préférable plutôt que de renvoyer une chaîne de caractères qui ne sera qu'affichée en tant qu' "erreur interne".

Retourner false donne moins de sens aux événements pour lesquels l'action est terminée, et sera normalement ignoré par l'appelant.

Comportement de l'accroche avant MediaWiki 1.22 et après

Extrait de : change 500542: pour les accroches non abortables (cas de la plupart des accroches) retourner vrai est redondant depuis MediaWiki 1.22 (en 2015). Ceci a été fait pour réduire les chances d'un disfonctionnement accidentel parce que nous avons expérimenté plusieurs pannes et fonctionalités cassées à cause de fautes silencieuses où par exemple une fonction de callback quelque part a involontairement retourné un non booléen ou bien false au lieu de true ou 'void' et a ainsi court-circuité tout le système.

(Retourner non-vrai/non-void dans une accroche MediaWiki est équivalent à e.preventDefault et e.stopImmediatePropagation pour les événements JavaScript, cela tue les autres écouteurs du même événement).

Par exemple, si l'accroche onBeforePageDisplay devait retourner faux dans MobileFrontend, cela signifierait que Popups s'est arrêté car son callback ne s'exécute plus. Voir les différences ci-dessous, en supposant que l'accroche est onBeforePageDisplay.

Avant MediaWiki 1.22

public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) {
    // some code
    return true; // explicit
}

ou

public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) {
    // some code
    return; // explicit
}

MediaWiki 1.22+

public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) {
    // some code
    // no need for a return true or return
}

Documentation

Actuellement, les accroches du coeur de MediaWiki doivent être documentées à la fois dans https://doc.wikimedia.org/mediawiki-core/master/php/group__Hooks.html (dans le dépôt de code source) et ici sur MediaWiki.org. Dans certaines situations, un de ces endroits peut ne pas encore être finalisé, aussi si une accroche paraît non documentée, vérifiez les deux cas.

Each hook provided by MediaWiki Core is defined in a hook interface. Typically, hook interfaces are located in a "Hook" sub-namespace inside the caller namespace. For example, Storage/Hook/PageContentSaveCompleteHook.php. You can find a list of hook interfaces in the generated MediaWiki PHP documentation.

Pour documenter une accroche du wiki, utilisez {{MediaWikiHook}}.

As of June 2020, docs/hooks.txt is deprecated as a source of documentation for individual hooks. For more information about the introduction of hooks based on HookContainer, see the hook specification in MediaWiki Core.

Hook interface doc template

In hook interfaces, doc comments specify the status, purpose, parameters, and behavior of the hook.

/**
 * @stable for implementation
 * @ingroup Hooks
 */
interface NameHook {
	/**
	 * This hook is called after/before/when...
	 * Use this hook to...
	 *
	 * @since x.xx
	 *
	 * @param type $name Description
	 * @return bool|void True or no return value to continue or false to abort
	 */
	public function onName( $param );
}

Accroches disponibles

Accroches groupées par fonction

Certaines de ces accroches peuvent être groupées dans plusieurs fonctions.

Sections: Gestion des articles - Modification de page - Génération de page - Interface utilisateur - Pages spéciales - Gestion des utilisateurs - Connexion - Modèles d'habillages - API - Import/Export - Divers
  Avertissement : De nouvelles accroches sont ajoutées à MediaWiki régulièrement, donc il est possible que cette liste ne soit pas toujours actuelle. Comme avec la plupart de la documentation de ce site, si vous avez besoin absolument de la dernière information complète, il est préférable de consulter le code source directement. Comme d'habitude, nous vous encourageons à mettre à jour cette liste pour corriger les erreurs éventuellles ou les omissions.
Fonction Version Accroche Description
Gestion des articles 1.4.0 ArticleDelete Se produit à chaque fois que le logiciel reçoit une requête de suppression d'un article
1.4.0 ArticleDeleteComplete se produit après que la demande de suppression d'article a été traitée
1.9.1 ArticleUndelete Lorsqu'une ou plusieurs révisions d'un article sont restaurées
1.12.0 ArticleRevisionUndeleted Se produit après qu'une révision d'article ait été restaurée
1.8.0 ArticleFromTitle Appelé pour déterminer la classe qui va gérer le rendu de l'article en fonction de son titre
1.4.0 ArticleProtect se produit à chaque fois que le logiciel reçoit une requête pour protéger un article
1.4.0 ArticleProtectComplete Se produit après que la demande de protection d'un article ait été traitée
1.6.0 ArticleInsertComplete Se produit après qu'un nouvel article a été créé
1.11.0 RevisionInsertComplete Appelé après qu'une révision ait été insérée dans la base de données
1.4.0 ArticleSave (obsolète) (utiliser MultiContentSave) Se produit lorsque le logiciel reçoit une requête d'enregistrement d'article
1.21.0 PageContentSave (obsolète) (utiliser MultiContentSave) Se produit lorsque le logiciel reçoit une requête d'enregistrement d'article
1.35.0 MultiContentSave Occurs whenever the software receives a request to save an article
1.4.0 ArticleSaveComplete (obsolète) (utilisez PageContentSaveComplete) se porduit après que la requête d'enregistrement d'article ait été traitée
1.21.0 ConvertContent appelé lors d'une demande de conversion vers un autre modèle de contenu.
1.21.0 PageContentSaveComplete se produit après que la demande d'enregistrement d'article ait été traitée
1.11.0 ArticleUpdateBeforeRedirect se produit après qu'une page ait été mise à jour (habituellement lors de la sauvegarde), avant que l'utilisateur ne soit redirigé sur cette page
1.5.7 ArticleEditUpdateNewTalk permet aux extensions d'empêcher l'envoi d'une notification utilisateur lorsqu'un nouveau message est ajouté sur sa page de discussion
1.14.0 ArticleEditUpdates Appelé lorsque les mises à jour des modifications (principalement le suivi des liens) sont faites lorsqu'un article a été modifié.
1.6.0 ArticleEditUpdatesDeleteFromRecentchanges Se produit avant l'enregistrement en base de données. S'il renvoie false, les anciennes entrées ne sont pas supprimées de la liste des modifications récentes.
1.8.0 RecentChange_save appelé après qu'une « Modification récente » ait été validée dans la base de données
1.6.0 SpecialMovepageAfterMove appelé après qu'une page ait été renommée.
1.22.0 TitleMove se produit avant qu'un renommage de page ne soit réalisé
1.4.0 TitleMoveComplete se produit lorsqu'une demande de renommage de page s'est terminée
1.25.0 MovePageIsValidMove Indique si une page peut être déplacée pour des raisons techniques.
1.12.0 ArticleRollbackComplete se produit après que la restitution d'un article soit terminée
1.12.0 ArticleMergeComplete après avoir fusionné vers un article en utilisant Special:Mergehistory
1.6.0 ArticlePurge Permet à une extension d'annuler une purge.
1.13.0 ArticleRevisionVisibilitySet appelé lors du changement de visibilté d'une ou plusieurs révisions d'un article
1.21.0 ContentHandlerDefaultModelFor appelé lorsqu'il faut décider du modèle de contenu par défaut d'un titre donné.
1.21.0 ContentHandlerForModelID appelé lorsqu'un ContentHandler est appelé pour un nom de modèle de contenu donné, mais qu'il n'existe pas d'entrée pour ce modèle dans $wgContentHandlers .
1.23.0 Article::MissingArticleConditions appelé à l'affichage d'une page
1.20.0 TitleIsAlwaysKnown permet de réécraser le comportement par défaut pour déterminer qu'une page existe.
Modification de page 1.6.0 AlternateEdit utilisé pour remplacer la page entière de modification, tous les éléments.
1.21.0 AlternateEditPreview Permet de rétablir l'aperçu des modifications
1.6.0 EditFilter réalise des contrôles sur une modification
1.12.0 EditFilterMerged (obsolète) (utilisez EditFilterMergedContent) filtre des modifications concernant les fusions ultérieures de sections
1.21.0 EditFilterMergedContent filtre des modifications des fusions ultérieures de sections
1.7.0 EditFormPreloadText appelé lorsque la page de modification pour un nouvel article est affichée. Ceci vous permet de remplir la boîte textuelle d'une nouvelle page avec du code wiki initial.
1.8.3 EditPage::attemptSave appelé avant qu'un article ne soit enregistré, c'est à dire avant que insertNewArticle() ne soit appelé
1.6.0 EditPage::showEditForm:fields Permet l'injection d'un champ formulaire dans le formulaire de modification.
1.6.0 EditPage::showEditForm:initial Permet l'injection de code HTML dans le formulaire de modification
1.21.0 EditPage::showStandardInputs:options Permet l'ajout de champs de formulaire dans la zone editOptions
1.13.0 EditPageBeforeConflictDiff Permet de modifier l'objet EditPage et la sortie lorsqu'il y a un conflit d'édition.
1.12.0 EditPageBeforeEditButtons Permet de modifier les boutons d'édition du formulaire de modification
1.14.0 EditPageBeforeEditChecks permet de modifier les cases à cocher sous la zone de texte du formulaire de modification
Génération de page 1.27.0 AfterBuildFeedLinks exécuté après que tous les liens de flux ne soient créés.
1.6.0 ArticlePageDataBefore s'exécute avant que les données de l'article demandé ne soient chargées.
1.6.0 ArticlePageDataAfter s'exécute après avoir chargé les données d'un article de la base de données.
1.6.0 ArticleViewHeader Appelé après qu'un entête d'article soit affiché.
1.6.0 PageRenderingHash modifie la clé de hachage de l'option du cache de l'analyseur syntaxique
1.6.0 ArticleAfterFetchContent utilisé pour traiter les lignes de code wiki après que la plupart des traitements d'analyse syntaxique se soient terminés.
1.22.0 GalleryGetModes permet aux extensions d'ajouter des classes qui peunvent générer différents modes d'une gallerie.
1.6.0 ParserClearState Appelé à la fin de Parser::clearState()
1.21.0 ParserCloned Appelé quand l'objet Parser est cloné.
1.5.0 ParserBeforeStrip Utilisé pour traiter les lignes de code wiki avant de leur appliquer tout traitement interne.
1.5.0 ParserAfterStrip (obsolète) Avant la version 1.14.0, utilisé pour traiter les lignes de code wiki après que le texte entouré par les balises <nowiki> ait été protégé et qu'avant que tout autre texte ne soit traité. Dans les versions 1.14.0 et ultérieures, s'exécute juste après ParserBeforeStrip.
1.6.0 ParserBeforeInternalParse Remplace par un traitement personnalisé, le traitement standard du texte wiki nettoyé. Utilisé à l'origine pour prendre en charge (plutôt que d'ajouter), les alternatives à la syntaxe des balises du noyau de MediaWiki.
1.6.0 ParserGetVariableValueVarCache Utilsez ceci pour modifier la valeur de cache de la variable , ou retournez false pour ne pas l'utiliser.
1.6.0 ParserGetVariableValueTs Utilisé pour modifier la valeur de l'heure pour le mot magique {{LOCAL...}}.
1.6.0 ParserGetVariableValueSwitch assigne une valeur à une variable définie par l'utilisateur.
1.10.0 InternalParseBeforeLinks utilisé pour traiter le code wiki expansé après que <nowiki>, que les commentaires HTML, ainsi que les modèles ont été traités. Convient aux entensions de syntaxe qui veulent personnaliser le traitement de la syntaxe des liens internes, c'est à dire [[....]].
1.13.0 LinkerMakeExternalLink appelé avant que le HTML des liens externes ne soit retourné. Utilisé pour modifier le HTML des liens externes.
1.13.0 LinkerMakeExternalImage appelé avant que le HTML d'une image externe ne soit retourné. Utilisé pour modifier le HTML des images externes.
1.23.0 LinkerMakeMediaLinkFile appelé avant que le HTML des liens des médias ne soit retourné. Utilisé pour modifier le HTML des liens de média.
1.11.0 EditSectionLink (obsolète) réécrase la valeur de retour de Linker::editSectionLink(). Appelé après la création [modification] d'un lien dans l'entête, dans la méthode Linker::editSectionLink mais avant que le HTML ne soit affiché.
1.11.0 EditSectionLinkForOther (obsolète) réécrase la valeur de retour de la méthode Linker::editSectionLinkForOther(). Appelé après la création [modification] de lien dans l'entête, dans la méthode Linker::editSectionLinkForOther mais avant que le HTML ne soit affiché.
1.5.0 ParserBeforeTidy utilisé pour traiter le code HTML de la page presque généré (mais avant toute opération de nettoyage)
1.5.0 ParserAfterTidy utilisé pour ajouter un ultime traitement à la sortie générée de la page complète
1.24.0 ContentGetParserOutput personnalise la sortie de l'analyseur syntaxique pour un objet donné de contenu, appelé par AbstractContent::getParserOutput. Peut être utilisé pour réécraser le rendu classique du contenu de la page dépendant du modèle.
1.8.0 OutputPageParserOutput appelé après l'analyse syntaxique, avant que le HTML ne soit ajouté à la sortie.
1.6.0 OutputPageBeforeHTML appelé à chaque fois que du code wiki est ajouté à OutputPage, après qu'il soit passé par l'analyse syntaxique mais avant qu'il soit ajouté. Appelé après que la page ait été générée, mais avant que le HTML ne soit affiché.
1.4.3 CategoryPageView appelé avant l'affichage d'une page de catégorie dans CategoryPage::view
1.5.1 ArticleViewRedirect Permet à une extension d'empêcher l'affichage d'un lien « Redirigé à partir de » sur une page de redirection.
1.10.0 IsFileCacheable autorise une extension à désactiver la mise en cache de fichiers pour les pages.
1.10.1 BeforeParserFetchTemplateAndtitle permet à une extension de spécifier la version d'une page à récupérer pour pouvoir l'inclure dans un modèle.
1.18.0 BeforeParserFetchFileAndTitle permet à une extension de sélectionner une version différente de l'image pointée par le lien
1.10.1 BeforeParserrenderImageGallery permet à une extension de modifier une gallerie d'images avant de la générer.
1.17.0 ResourceLoaderRegisterModules permet d'enregistrer les modules avec ResourceLoader
1.24.0 SidebarBeforeOutput Directement avant que la barre latérale ne soit affichée
Interface utilisateur 1.5.4 AutoAuthenticate permet d'authentifier des utilisateurs sur des moyens externes ou environnementaux
1.4.0 UserLoginComplete se produit après que l'utilisateur se soit connecté avec succès
1.18.0 BeforeWelcomeCreation permet à une extension de modifier le message affiché après une connexion réussie
1.4.0 UserLogout se produit lorsque le logiciel reçoit une requête de déconnexion
1.4.0 UserLogoutComplete se produit après que l'utilisateur se soit déconnecté avec succès
1.6.0 userCan pour interrompre ou conseiller le contrôle de « l'utilisateur peut faire X sur les articles Y »
1.4.0 WatchArticle Se produit lorsque le logiciel reçoit une requête de suivi d'article
1.4.0 WatchArticleComplete Se produit après que la demande de suivi d'article ait été traitée
1.4.0 UnwatchArticle Se produit lorsque le logiciel reçoit une requête pour arrêter le suivi d'un article
1.4.0 UnwatchArticleComplete Se produit après que la demande d'arrêt de suivi d'article ait été traitée
1.6.0 MarkPatrolled Appelé avant qu'une modification ait été marquée relue
1.6.0 MarkPatrolledComplete Appelé après que la modification a été relue
1.4.0 EmailUser se produit à chaque fois que le logiciel reçoit une requête pour envoyer un courriel d'un utilisateur à un autre
1.4.0 EmailUserComplete Se produit après qu'un courriel a été envoyé d'un utilisateur à un autre
1.6.0 SpecialMovepageAfterMove appelé après qu'une page ait été renommée.
1.19.0 SpecialSearchCreateLink appelé à la construction du message de création de page ou pour aller à une page existante
1.17.0 SpecialSearchGo (obsolète)
1.6.0 SpecialSearchNogomatch appelé lorsque la fonctionnalité 'Go' est activée et que la cible n'existe pas. Le texte complet des résultats de la recherche est généré après que cette accroche soit appelée
1.19.0 SpecialSearchPowerBox équivalent de SpecialSearchProfileForm pour le formulaire avancé
1.5.7 ArticleEditUpdateNewTalk avant de mettre à jour user_newtalk lorsqu'une page utilisateur a été changée.
1.5.7 UserRetrieveNewTalks appelé lors de la récupération de « Vous avez de nouveaux messages »
1.5.7 UserClearNewTalkNotification appelé à l'effacement de « Vous avez de nouveaux messages », retournez false pour ne pas le supprimer
1.6.0 ArticlePurge s'exécute avant de lancer « &action=purge »
Téléversement de fichiers 1.6.0 UploadVerification (obsolète) (utiliser UploadVerifyFile) appelé lorsqu'un fichier a été téléversé, permet de réaliser les vérifications supplémentaires
1.17 UploadVerifyFile appelé lorsqu'un fichier est téléversé; permet d'insérer des vérifications supplémentaires sur le fichier
1.28 UploadVerifyUpload (préféré) peut être utilisé pour rejeter le téléversement d'un fichier. A la différence de 'UploadVerifyFile' il fournit des informations concernant le commentaire du téléversement et la page de description de fichier, mais ne fonctionne pas pour le téléversement dans la zone de préparation (stash).
1.6.4 UploadComplete Appelé lorsqu'un téléversement de fichier est terminé.
Pages spéciales 1.6.0 SpecialPageGetRedirect
1.24.0 SpecialBlockModifyFormFields ajouter ou modifier les champs de blocage de Special:Block
1.28.0 SpecialContributions::formatRow::flags appelé avant de générer une ligne Special:Contributions.
1.13.0 SpecialListusersDefaultQuery appelé juste avant l'appel de UsersPager::getDefaultQuery()
1.13.0 SpecialListusersFormatRow appelé juste avant la fin de UsersPager::formatRow()
1.13.0 SpecialListusersHeader appelé avant de fermer le <fieldset> dans UsersPager::getPageHeader()
1.13.0 SpecialListusersHeaderForm appelé avant l'ajout du bouton envoyer dans UsersPager::getPageHeader()
1.13.0 SpecialListusersQueryInfo appelé juste avant la fin de UsersPager::getQueryInfo()
1.6.0 SpecialPageExecuteBeforeHeader (obsolète) appelé avant de définir le texte de l'entête de la page spéciale
1.6.0 SpecialPageExecuteBeforePage (obsolète) appelé avant de définir le texte de la page spéciale
1.6.0 SpecialPageExecuteAfterPage (obsolète) appelé après avoir exécuté une page spéciale
1.6.0 SpecialVersionExtensionTypes (obsolète) ajoute aux types qui peuvent être utilisés avec $wgExtensionCredits
1.7.0 SpecialPage_initList Appelé après que la liste de la page spéciale ait été remplie
1.9.0 UploadForm:initial appelé juste avant que le formulaire de téléversement ne soit généré
1.9.0 UploadForm:BeforeProcessing appelé juste avant que les données du fichier (par exemple, la description) ne soient traitées, et ceci afin que les extensions aient une chance de pourvoir les manipuler.
1.14.0 UserrightsChangeableGroups appelé après que la liste des groupes pouvant être manipulés par Special:UserRights ait été remplie, mais avant qu'elle ne soit retournée.
1.24.0 WhatLinksHereProps permet aux extensions d'annoter les entrées de Pages liées (WhatLinksHere).
Gestion des utilisateurs 1.5.0 AddNewAccount appelé après qu'un utilisateur ait été créé (obsolète)
1.26.0 LocalUserCreated appelé tout de suite après qu'un utilisateur local a été créé et enregistré dans la base de données.
1.27.0 SessionMetadata ajoute les méta données à une session en cours de sauvegarde
1.27.0 SessionCheckInfo valide les données de session comme si elles étaient chargées à partir de leur emplacement
1.27.0 SecuritySensitiveOperationStatus modifie la valeur de retour de AuthManager::securitySensitiveOperationStatus()
1.27.0 UserLoggedIn appelé après que l'utilisateur se soit connecté
1.4.0 BlockIp se produit à chaque fois que le logiciel reçoit une requête pour bloquer (ou pour modifier les paramètres) d'une adresse IP ou d'un utilisateur
1.4.0 BlockIpComplete se produit après que la demande de blocage (ou la modification des paramètres de blocage) d'une adresse IP ou d'un utilisateur ait été traitée
1.29.0 UnblockUser se produit à chaque fois que le logiciel reçoit une requête pour débloquer une adresse IP ou un utilisateur
1.29.0 UnblockUserComplete se produit après que la demande de déblocage d'une adresse IP ou d'un utilisateur a été traitée
1.29.0 ChangeUserGroups appelé avant que les droits d'appartenance à un groupe ne soient modifiés
1.6.0 UserRights (obsolète) (utilisez UserGroupsChanged) appelé après que les droits d'appartenance d'un utilisateur à un groupe aient été modifiés
1.11.0 UserGetRights appelé dans User::getRights() pour ajouter des droits dynamiquement
1.32.0 UserGetRightsRemove appelé dans User::getRights() pour supprimer dynamiquement des droits
1.6.0 GetBlockedStatus déclenché après que le getBlockStatus de l'utilisateur soit positionné
1.26.0 UserIsLocked Lancé pour vérifier que le compte d'un utilisateur est bloqué
Connexion 1.6.0 LogPageActionText (obsolète) chaînes utilisées par wfMsg en tant qu'entête.
1.5.0 LogPageLogHeader (obsolète)
1.5.0 LogPageLogName (obsolète)
1.5.0 LogPageValidTypes (obsolète)
1.26.0 LogException appelé avant qu'une exception (ou une erreur PHP) ne soit tracée dans le journal.
Habillages / Modèles 1.7.0 BeforePageDisplay permet les modifications de dernière minute sur la page générée, par exemple en ajoutant du code CSS ou du Javascript à l'aide d'extensions.
1.6.0 MonoBookTemplateToolboxEnd appelé par l'habillage Monobook après que les liens de la boîte à outils ont été générés (utile pour ajouter des liens supplémentaires)
1.7.0 PersonalUrls (SkinTemplate.php) appelé après que la liste des URL personnelles ait été populée (liens supérieurs dans Monobook).
1.24.0 PostLoginRedirect (SpecialUserlogin.php) modifie le comportement de la redirection juste après la procédure de connexion.
1.23.0 BaseTemplateAfterPortlet (SkinTemplate.php) après avoir généré les portlets.
1.11.0 SkinAfterBottomScripts (Skin.php) A la fin de Skin::bottomScripts()
1.12.0 SkinSubPageSubtitle (Skin.php) appelé avant de générer la liste des liens vers les sous-pages en haut d'une sous-page
1.5.0 SkinTemplateContentActions appelé après que la liste des onglets par défaut soit populée (la liste dépend du contexte; par exemple article « normal » ou page « spéciale »).
1.16.0 SkinTemplateNavigation appelé sur les pages de contenu uniquement après que les onglets ont été ajoutés, mais avant que les variants ne soient ajoutés. Voir les deux autres accroches SkinTemplateNavigation pour les autres points où les onglets peuvent encore être modifiés.
1.18.0 SkinTemplateNavigation::Universal appelé à la fois pour les pages de contenu et les pages spéciales après que les variantes ont été ajoutées
1.18.0 SkinTemplateNavigation::SpecialPage appelé pour les pages spéciales après que l'onglet spécial ait été ajouté mais avant l'ajout des variantes
1.6.0 SkinTemplatePreventOtherActiveTabs appelé pour activer/désactiver l'inclusion d'onglets supplémentaires à l'habillage.
1.6.0 SkinTemplateSetupPageCss (obsolète) définit le CSS pour un habillage
1.6.0 SkinTemplateBuildContentActionUrlsAfterSpecialPage (obsolète) après l'onglet unique lorsque vous affichez une page spéciale
1.6.0 SkinTemplateBuildNavUrlsNav_urlsAfterPermalink appelé après que le lien permanent (permalink) a été entré dans le tableau des URLs de navigation.
1.23.0 SkinTemplateGetLanguageLink appelé après avoir construit les données pour un lien de langue pour lequel le HTML actuel est construit.
1.27.0 AuthChangeFormFields permet la modification des formulaires basés sur AuthManager
1.25.0 LoginFormValidErrorMessages Permet d'ajouter des messages d'erreur supplémentaires (SpecialUserLogin.php).
1.25.0 MinervaDiscoveryTools permet aux autres extensions d'ajouter ou de réécraser les outils de découverte (SkinMinerva.php).
API 1.23.0 ApiBeforeMain appelé avant l'exécution de ApiMain
1.13.0 APIEditBeforeSave appelé juste avant d'enregistrer une modification soumise avec api.php?action=edit
1.13.0 APIQueryInfoTokens Utilisez cette accroche pour ajouter des jetons personnalisés à prop=info
1.13.0 APIQueryRevisionsTokens Utilisez cette accroche pour ajouter des jetons personnalisés à prop=revisions
1.14.0 APIQueryRecentChangesTokens Utilisez cette accroche pour ajouter des jetons personnalisés à list=recentchanges
1.14.0 APIGetAllowedParams Utilisez cette accroche pour modifier les paramètres d'un module
1.14.0 APIGetParamDescription Utilisez cette accroche pour modifier la description des paramètres des modules
1.14.0 APIAfterExecute Utilisez cette accroche pour étendre les modules API du noyau
1.14.0 APIQueryAfterExecute Utilisez cette accroche pour étendre les modules API de requête du noyau.
1.14.0 APIQueryGeneratorAfterExecute utilisez cette accroche pour étendre les modules de requête de l'API noyau
1.23.0 GetExtendedMetadata permet d'inclure des informations de méta-données supplémentaires concernant le fichier dans l'API imageinfo.
1.23.0 AddNewAccountApiForm permet de modifier le formulaire interne de connexion lorsque l'on crée un compte via l'API.
1.23.0 AddNewAccountApiResult modifie la sortie de l'API lorsqu'un compte a été créé via l'API.
1.25.0 ApiOpenSearchSuggest appelé lors de la construction des résultats OpenSearch. Les accroches peuvent modifier ou ajouter des éléments au tableau.
Importer / Exporter 1.17.0 AfterImportPage Lorsqu'une importation de page est terminée
1.17.0 ImportHandleLogItemXMLTag Lors de l'analyse syntaxique d'une balise XML appartenant à un élément du journal
1.17.0 ImportHandlePageXMLTag Lors de l'analyse syntaxique d'une balise XML dans une page
1.17.0 ImportHandleRevisionXMLTag Lors de l'analyse syntaxique d'une balise XML dans une révision de page
1.17.0 ImportHandleToplevelXMLTag Lors de l'analyse syntaxique d'une balise XML de haut niveau
1.17.0 ImportHandleUploadXMLTag lors de l'analyse syntaxique d'une balise XML dans un fichier téléversé
1.16.0 ModifyExportQuery modifier la requête utilisée par l'exporteur
1.15.0 WikiExporter::dumpStableQuery fournit la requête SELECT pour les dumps des versions «  stables »
1.16.0 XmlDumpWriterOpenPage appelé à la fin de XmlDumpWriter::openPage, pour permettre d'ajouter des métadonnées supplémentaires.
1.16.0 XmlDumpWriterWriteRevision appelé à la fin d'une révision de dump XML, pour y ajouter des métadonnées supplémentaires.
Divers 1.19.0 AlternateUserMailer appelé avant que le courriel ne soit envoyé de sorte à ce qu'il puisse être tracé (ou équivalent) au lieu d'utiliser PEAR ou mail() de PHP.
1.6.0 ArticleEditUpdatesDeleteFromRecentchanges se produit avant de sauvegarder une base de données.
1.21.0 CategoryAfterPageAdded Appelé après qu'une page ait été ajoutée à une catégorie
1.21.0 CategoryAfterPageRemoved Appelé après qu'une page ait été retirée d'une catégorie
1.19.0 Collation::factory permet aux extensions d'enregistrer de nouveaux noms de collations, à utiliser avec $wgCategoryCollation
1.8.0 DisplayOldSubtitle permet aux extensions de modifier l'affichage des liens vers les autres révisions lorsque vous naviguez parmi les révisions.
1.18.0 GetDefaultSortkey permet de réécraser la clé de tri définie par défaut, telle qu'elle est utilisée pour classer les pages dans une catégorie.
1.25.0 GetDifferenceEngine autorise les extensions du type moteur de différences personnalisé tel que Special:MyLanguage/Extension:WikEdDiff.
1.21.0 GetDoubleUnderscoreIDs accroche pour modifier la liste des mots magiques
1.6.0 GetInternalURL utilisé pour modifier les URLs complètement spécifiées (utile pour purger le cache squid)
1.6.0 GetLocalURL utilisé pour modifier les URLs locales en tant que liens de pages
1.6.0 GetFullURL utilisé pour modifier les URLs complètement spécifiées utilisées dans les redirections, les exportations et les données hors connexion
1.16.0 ImgAuthBeforeStream exécuté avant qu'un fichier ne soit envoyé à l'utilisateur, mais seulement si on utilise img_auth
1.22.0 LanguageLinks Manipule les liens de langue d'une page.
1.14.0 LinkBegin utilisé lors de la génération des liens internes et des liens inter-wikis dans Linker::link()
1.14.0 LinkEnd utilisé lors de la génération des liens internes et des liens inter-wikis dans Linker::link(), juste avant que la fonction ne retourne une valeur.
1.8.0 LoadAllMessages (obsolète) appelé quand $wgMessageCache->loadAllMessages() est exécuté, permet aux extensions d'injecter leurs propres messages.
1.6.0 MagicWordMagicWords (obsolète) permet aux extensions de définir de nouveaux mots magiques.
1.6.0 MagicWordwgVariableIDs indique à MediaWiki qu'un ou plusieurs IDs de mots magiques doivent être traités comme des variables.
1.12.0 MediaWikiPerformAction Réécrase l'action de MediaWiki::performAction()
1.27.0 MediaWikiServices appelé lorsqu'une instance globale de MediaWikiServices est initialisée.
1.5.7 MessagesPreLoad se produit au chargement d'un message de la base de données
1.6.0 ParserTestParser appelé à la création d'une nouvelle instance de Parser pour les tests de l'analyseur syntaxique
1.8.0 RecentChange_save appelé après qu'une Modification récente ait été validée dans la base de données
1.5.0 SpecialContributionsBeforeMainOutput avant le formulaire sur Special:Contributions
1.22.0 TitleSquidURLs pour modifier ou fournir des URLs alternatives pour envoyer les requêtes HTTP PURGE.
1.17.0 UnitTestsList Ajoute les tests à exécuter qui feront partie de la suite des tests unitaires.
1.30.0 UnitTestsAfterDatabaseSetup appelé juste après l'infrastructure de test de MediaWiki ait fini de créer ou de dupliquer les tables du noyau pour les tests unitaires.
1.30.0 UnitTestsBeforeDatabaseTeardown appelé juste avant que l'infrastructure de test de MediaWiki ne commence à déchirer les tables pour les tests unitaires.
1.4.0 UnknownAction (obsolète) Avant MediaWiki 1.19, était utilisé pour ajouter de nouvellles actions de chaînes de requête.
1.24.0 UserMailerChangeReturnPath appelé pour générer une adresse de retour VERP quand UserMailer envoie un courriel, avec une extension qui gère les rebonds.
1.8.0 UserToggles (obsolète) appelé avant de retourner les noms des préférences utilisateur. Remplacé par l'accroche GetPreferences .
1.6.0 wgQueryPages s'exécute à chaque page spéciale qui étend la classe QueryPage (déclenché par l'inclusion du fichier QueryPage.php). Ne sert que dans maintenance/updateSpecialPages.php et dans l'API QueryPage.

Liste alphabétique des accroches

Pour une liste complète des accroches, utilisez la catégorie , qui devrait être plus à jour.

Voir aussi