Extension:BetaFeatures/pt-br

A extensão BetaFeatures permite que outras extensões do MediaWiki registrem seus recursos beta na lista de preferências do usuário na wiki. Ela utiliza da arquitetura já existente das preferências de usuário e de algumas poucas páginas especiais para cumprir seu propósito.

Usando os novos hooks em sua extensão
Usando essa extensão para dar suporte ao seu recurso beta é fácil. Registre um hook do tipo “” no seu arquivo — a sintaxe é quase idêntica ao hook, com algumas pequenas mudanças para ser compatível com o tipo de preferência necessário neste caso.

Na :

Na :

Daí, é possível utilizar a função de conveniência fornecida pela BetaFeatures para conferir se o recurso foi ativado.

Também é possível utilizar um normal check nas preferências, mas não o faça contra valores booleanos (True/False) — utilize os valores da classe.

Pelo fato da classe  necessitar estar presente em todos os lugares, é possível utilizar a função de conveniência em qualquer hook, página especial, etc. Apenas tenha em mente os possível problemas de performance ou de cache que poderão vir com essas mudanças.

Caso você também deseje utilizar sua extensão sem a BetaFeatures, certifique-se que ela não existe:

Configuração
A variável de configuração  pode ser utilizada para limitar quais recursos betas são exibidos nas preferências. Por padrão, a variável é nula, e todos os recursos beta são exibidos.

Se ela for utilizada, para que um recurso beta seja exibido nas preferências, ele necessitará ser listado na whitelist. Essa variável aceita um arranjo de strings. Cada string deve ser o nome do recurso beta conforme especificado na definição passada ao. Por exemplo, no código acima, o nome do recurso beta é, então ele deveria ser adicionado ao arranjo   na configuração da sua wiki:

Uso avançado
Want to see something really 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.

Dependency management
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 "GetBetaFeatureDependencyHooks", 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.

Ver também

 * Beta Features
 * Roadmap
 * Rollout plan