mediawiki-skins-Vector/includes/Components/VectorComponentMainMenuActionOptOut.php
Jon Robson 9c36435220 VectorComponentMainMenuAction: Have class to distinguish between different actions
It should be possible to style the language alert without impacting the opt in
action.

Bug: T317899
Change-Id: Ifea7d476099ab3a09da20522380664b9ad5eceb3
2022-11-28 20:15:16 +00:00

56 lines
1.4 KiB
PHP

<?php
namespace MediaWiki\Skins\Vector\Components;
use Skin;
use SpecialPage;
/**
* VectorComponentMainMenuActionOptOut component
*/
class VectorComponentMainMenuActionOptOut implements VectorComponent {
/** @var Skin */
private $skin;
/**
* T243281: Code used to track clicks to opt-out link.
*
* The "vct" substring is used to describe the newest "Vector" (non-legacy)
* feature. The "w" describes the web platform. The "1" describes the version
* of the feature.
*
* @see https://wikitech.wikimedia.org/wiki/Provenance
* @var string
*/
private const OPT_OUT_LINK_TRACKING_CODE = 'vctw1';
/**
* @param Skin $skin
*/
public function __construct( Skin $skin ) {
$this->skin = $skin;
}
/**
* @inheritDoc
*/
public function getTemplateData(): array {
$skin = $this->skin;
// Note: This data is also passed to legacy template where it is unused.
$optOutUrl = [
'text' => $skin->msg( 'vector-opt-out' )->text(),
'href' => SpecialPage::getTitleFor(
'Preferences',
false,
'mw-prefsection-rendering-skin'
)->getLinkURL( 'useskin=vector&wprov=' . self::OPT_OUT_LINK_TRACKING_CODE ),
'title' => $skin->msg( 'vector-opt-out-tooltip' )->text(),
'active' => false,
];
$htmlData = [
'link' => $optOutUrl,
];
$component = new VectorComponentMainMenuAction( 'opt-out', $skin, $htmlData, [] );
return $component->getTemplateData();
}
}