Manual:Hooks/AuthChangeFormFields/fr

This page is a translated version of the page Manual:Hooks/AuthChangeFormFields and the translation is 100% complete.
Other languages:
AuthChangeFormFields
Disponible depuis version 1.27.0
Permet de modifier les formulaires basés sur AuthManager
Fonction à définir :
public static function onAuthChangeFormFields( $requests, $fieldInfo, &$formDescriptor, $action ) { ... }
Attacher l'accroche : Dans extension.json :
{
	"Hooks": {
		"AuthChangeFormFields": "MyExtensionHooks::onAuthChangeFormFields"
	}
}
Appelé de : Fichier(s) : specialpage/AuthManagerSpecialPage.php
Interface : AuthChangeFormFieldsHook.php

Pour plus d'information sur l'ajout des accroches (hooks), voir Accroches .
Pour des exemples d'extensions utilisant cette accroche, voir Category:AuthChangeFormFields extensions/fr .


Détails

  • $requests - tableau de AuthenticationRequests à partir duquel les champs sont créés
  • $fieldInfo - tableau de description des champs (union de toutes les réponses AuthenticationRequest::getFieldInfo()).
  • &$formDescriptor - descripteur de HTMLForm. La clé spéciale weight peut être déclarée pour modifier l'ordre des champs.
  • $action - une des constantes AuthManager::ACTION_* .

$formDescriptor va contenir la définition de HTMLForm (c'est à dire le tableau de descripteurs qui sera passé au constructeur de HTMLForm); l'accroche permet de le modifier. Le nom des champs du fomulaire (clés de tableaux) correspondra aux noms des champs dans les requêtes. $fieldInfo est le résultat de AuthenticationRequest::mergeFieldInfo( $requests ).

Mises en garde :

  • vous n'avez pas le droit de modifier les requêtes
  • vous n'avez pas le droit d'ajouter des champs avec des données (mais il est bon d'ajouter des champs d'information). Utilisez une méthode d'authentification getAuthenticationRequests() du fournisseur pour ajouter de nouveaux champs.
  • toute validation, contrôle de droit ou logique d'affaire dans l'accroche peut être contournée simplement en utilisant l'API. La logique d'affaire doit être dans les fournisseurs.
  • toute information vitale doit également être rendue accessible via l'API. Si elle concerne les utilisateurs (comme par exemple le texte d'un CAPTCHA), utilisez un champ null dans AuthenticationRequest::getFieldInfo() (qui peut être masqué ou modifié pour l'interface utilisateur web à partir de cette accroche si nécessaire). Si elle concerne les machines (comme la clé publique de l'API pour le CAPTCHA), utilisez AuthenticationRequest::getMetadata().

Le but de l'accroche est d'abord d'étendre les champs définis par un fournisseur dans la même extension (par exemple remplacer un champ texte par un champ à lecture prévisionnelle ou tout autre widget interactif), de modifier la position du widget ou de fournir des liens d'aide ou autres informations supplémentaires. Modifier les champs de formulaire qui appartiennent au noyau ou à d'autres extensions est autorisé mais doit de préférence être évité car cela rend le code plus fragile.