Extension:BetaFeatures/uk

Розширення BetaFeature дозволяє іншим розширенням MediaWiki реєструвати бета-функції зі списком налаштувань користувача у вікі. Він використовує існуючу архітектуру налаштувань користувача та кілька спеціальних сторінок для виконання своєї функції.

Використання нових гачків у вашому розширенні
Використовувати це розширення для підтримки вашої бета-функції легко. Зареєструйте хук типу «» у вашому файлі — синтаксис майже ідентичний хуку, з невеликими змінами для підтримки типу переваги, який нам потрібен у цьому випадку.

У :

У :

Потім ви можете скористатися зручною функцією, наданою бета-функціями, щоб перевірити, чи ввімкнено цю функцію.

Ви також можете використовувати звичайну перевірку налаштувань, але не перевіряйте істинні чи хибні значення – використовуйте значення з класу HTMLFeatureField.

Оскільки клас бета-функцій повинен бути присутнім скрізь, ви можете використовувати функцію зручності в будь-якому хуку, спеціальній сторінці чи будь-якому іншому, що забажаєте. Просто пам’ятайте про потенційні проблеми із продуктивністю або кешуванням, які можуть виникнути внаслідок цих змін.

Якщо ви також хочете використовувати своє розширення без бета-функцій, Ви також повинні перевірити його існування, наприклад:

Конфігурація
Змінну конфігурації  можна використовувати, щоб обмежити, які бета-функції відображаються в налаштуваннях. За замовчуванням він порожній, і відображаються всі бета-функції.

Якщо вона використовується, то для того, щоб бета-функція відображалася в налаштуваннях, її потрібно занести в білий список. Ця змінна конфігурації приймає масив рядків. Кожен рядок має бути ім’ям бета-функції, як зазначено у визначенні налаштувань, переданому до. Наприклад, у коді, наведеному вище, назва бета-функції —, тому вам потрібно буде додати цей рядок до масиву   у конфігурація вашої вікі:

Advanced usage
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.