Extension:BetaFeatures/nl

De extensie BetaFeatures staat toe dat andere MediaWiki extensies hun betafuncties registeren in de lijst met gebruikersvoorkeuren op de wiki. Het gebruikt hiervoor de bestaande structuur van gebruikersvoorkeuren en een aantal speciale pagina's.

Installatie


De nieuwe hooks in uw extensie gebruiken
Het gebruik van deze extensie is eenvoudig. Registreer een hook van type "" in uw bestand, de syntaxis is bijna gelijk aan de hook , met wat kleine aanpassingen om het type voorkeur te ondersteunen.

In :

In :

U kunt daarna de functie convenience van BetaFeatures gebruiken om te controleren of de functie is ingeschakeld.

Dit kan ook met een normale controle van de voorkeur, maar test niet of true of false, gebruik de waarden in de class HTMLFeatureField om te testen.

Omdat de class BetaFeatures overal aanwezig moet zijn kunt u de convenience functie in elke hook, op elke speciale pagina of eldere gebruiken. Kijk wel uit voor de mogelijke performance problemen bij het cachen die door deze wijziging kunnen ontstaan.

Als u uw extensie ook zonder BetaFeatures wilt gebruiken, voeg dan ook een test of het bestaat uit:

Configuratie
De configuratie instelling  kan worden gebruikt om het aantal betafuncties dat in de voorkeuren wordt getoond, te beperken. Standaard is het leeg, dat betekent dat alle betafuncties worden getoond.

Als het wordt gebruikt dan wordt een betafunctie getoond in de voorkeuren als het in de 'whitelist' staat. Deze variabele is een array van strings. Elke string is dan de naam van een betafunctie zoals gespecificeerd in de voorkeursdefinitie doorgegeven aan. In het voorbeeld hierboven is de naam van de betafunctie, dus dient die naam toegevoegd worden als string in het array   in de configuratie van uw wiki:



Geavanceerd gebruik
Wilt u iets te gek zien?



Automatische inschrijvingsgroepen
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.



Beheer van afhankelijkheden
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 notities
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.

