mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2025-01-05 09:15:24 +00:00
132a2ab7e8
Make it behave just like the normal page actions menu, taking its data from the core toolbox definition. This will allow it to be extensible by extensions who declare an icon field for their menu item. Follow up to Ifd10da690a33e7fc5790a7b444b62fbfd1b95d98 Depends-On: I6881785676e2909434991b633ac181d05a272352 Bug: T335603 Change-Id: I88ac38acf22fbce0c3e0a4f4c6efcaef4ca49907
83 lines
2.3 KiB
PHP
83 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
namespace MediaWiki\Minerva\Menu\PageActions;
|
|
|
|
use MediaWiki\Minerva\LanguagesHelper;
|
|
use MediaWiki\Minerva\Menu\Entries\LanguageSelectorEntry;
|
|
use MediaWiki\Minerva\Menu\Group;
|
|
use MediaWiki\Minerva\Permissions\IMinervaPagePermissions;
|
|
use MessageLocalizer;
|
|
use MWException;
|
|
use Title;
|
|
|
|
class UserNamespaceOverflowBuilder extends DefaultOverflowBuilder {
|
|
|
|
/**
|
|
* @var Title
|
|
*/
|
|
private $title;
|
|
|
|
/**
|
|
* @var LanguagesHelper
|
|
*/
|
|
private $languagesHelper;
|
|
|
|
/**
|
|
* Initialize the overflow menu visible on the User namespace
|
|
* @param Title $title
|
|
* @param MessageLocalizer $msgLocalizer
|
|
* @param IMinervaPagePermissions $permissions
|
|
* @param LanguagesHelper $languagesHelper
|
|
*/
|
|
public function __construct(
|
|
Title $title,
|
|
MessageLocalizer $msgLocalizer,
|
|
IMinervaPagePermissions $permissions,
|
|
LanguagesHelper $languagesHelper
|
|
) {
|
|
$this->title = $title;
|
|
$this->languagesHelper = $languagesHelper;
|
|
parent::__construct( $msgLocalizer, $permissions );
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
* @throws MWException
|
|
*/
|
|
public function getGroup( array $toolbox, array $actions ): Group {
|
|
$group = parent::getGroup( $toolbox, $actions );
|
|
|
|
if ( $this->isAllowed( IMinervaPagePermissions::SWITCH_LANGUAGE ) ) {
|
|
$group->prependEntry( new LanguageSelectorEntry(
|
|
$this->title,
|
|
$this->languagesHelper->doesTitleHasLanguagesOrVariants( $this->title ),
|
|
$this->getMessageLocalizer(),
|
|
false,
|
|
// no additional classes
|
|
'',
|
|
'minerva-page-actions-language-switcher'
|
|
) );
|
|
}
|
|
|
|
return $group;
|
|
}
|
|
}
|