Extension:BetaFeatures/fr

L'extension BetaFeatures autorise les autres extensions MediaWiki à enregistrer leur fonctionnalités beta avec la liste des préférences utilisateur sur le wiki. Elle utilise l'architecture des préférences déjà existante et quelques pages spéciales pour accomplir sa fonction.

Utiliser les nouveaux crochets dans votre extension
L'utilisation de cette extension pour prendre en charge votre fonctionnalité bêta est facile. Enregistrez un crochet de type "" dans votre fichier — la syntaxe est presque identique au crochet, avec de petites modifications pour prendre en charge le type de préférence dont nous avons besoin dans ce cas.

Dans  :

Dans  :

Alors vous pouvez utiliser la fonction commodité fournie par les Fonctionnalités Bêta pour vérifier si la fonctionnalité est activée.

Vous pouvez également utiliser une vérification de préférence normale, mais ne vérifiez pas les valeurs véridiques ou fausses - utilisez les valeurs de la classe HTMLFeatureField.

Étant donné que la classe BetaFeatures doit être présente partout, vous pouvez utiliser la fonction de commodité dans n'importe quel crochet, page spéciale ou tout autre élément de votre choix. Soyez simplement conscient des problèmes potentiels de performances ou de mise en cache que vous pourriez introduire avec ces modifications.

Si vous souhaitez également utiliser votre extension sans BetaFeatures, vous devez également vérifier son existence, par exemple :

Configuration
La variable de configuration  peut être utilisée pour limiter les fonctionnalités bêta affichées dans les préférences. Par défaut, il est vide et toutes les fonctionnalités bêta sont affichées.

S'il est utilisé, pour qu'une fonctionnalité bêta apparaisse dans les préférences, elle doit être répertoriée dans la liste blanche. Cette variable de configuration accepte un tableau de chaînes. Chaque chaîne doit être le nom d'une fonctionnalité bêta, comme spécifié dans la définition de préférence transmise à. For example, in the code given above, the name of the beta feature is, so you would need to add that string to the   array in your wiki's configuration:

Utilisation avancée
Vous voulez voir quelque chose de vraiment cool ?

Auto-enroll groups
With this example, we register a preference that's an "auto-enroll" one - if a user checks this, and new features come out that are in a particular group, the user will be automatically enrolled in those features.

Gestion des dépendances
Next up, we can actually define dependency management per-feature. To do this we first register the name of a hook that we want to use for this with the hook "", then we register a hook of that type that checks some dependency, and returns true if it's met or false if not.

You can abuse use this feature to do per-wiki disabling of features, if they're marked as dependent. But that sounds really hacky. You probably shouldn't. I can hear you thinking about it right now, just stop it.

Database stuff
There's a database table defined, and used, by BetaFeatures. But you might get confused by it if you try to use it locally.

We use the job queue to run updates for this table, when the cache expires (30 minutes TTL). If your wiki is configured to run jobs on each request, this will make about one request every 30 minutes reeeeeeally slow, but the rest will be relatively fast. If you configure your wiki to run jobs via cron, things will work much better.