Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
BetaFeaturesHandlers
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 onGetBetaFeaturePreferences
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace MediaWiki\Extension\Wikistories\Hooks;
4
5use MediaWiki\Config\Config;
6use MediaWiki\Extension\BetaFeatures\Hooks\GetBetaFeaturePreferencesHook;
7use MediaWiki\Extension\Wikistories\Hooks;
8use MediaWiki\MainConfigNames;
9use MediaWiki\User\User;
10
11class BetaFeaturesHandlers implements GetBetaFeaturePreferencesHook {
12
13    public const WIKISTORIES_BETA_FEATURE = 'wikistories-storiesonarticles';
14
15    public function __construct(
16        private readonly Config $mainConfig,
17    ) {
18    }
19
20    /**
21     * Allows overwriting of beta feature preferences
22     *
23     * @param User $user User the preferences are for
24     * @param array &$betaFeatures
25     * @return bool|void True or no return value to continue or false to abort
26     */
27    public function onGetBetaFeaturePreferences( User $user, array &$betaFeatures ) {
28        if ( !Hooks::isBetaDiscoveryMode( $this->mainConfig ) ) {
29            return;
30        }
31        $extensionAssetsPath = $this->mainConfig->get( MainConfigNames::ExtensionAssetsPath );
32        $betaFeatures[ self::WIKISTORIES_BETA_FEATURE ] = [
33            'label-message' => 'wikistories-beta-feature-message',
34            'desc-message' => 'wikistories-beta-feature-description',
35            'screenshot' => [
36                'ltr' => "$extensionAssetsPath/Wikistories/resources/images/wikistories-betafeature-ltr.svg",
37                'rtl' => "$extensionAssetsPath/Wikistories/resources/images/wikistories-betafeature-rtl.svg",
38            ],
39            'info-link' => 'https://www.mediawiki.org/wiki/Wikistories',
40            'discussion-link' => 'https://www.mediawiki.org/wiki/Talk:Wikistories',
41        ];
42    }
43}