Add settings menu item for anon users

Bug: T307696
Change-Id: Ib875bae5796ef021a06310582a4bbc41abb26555
This commit is contained in:
bwang 2022-05-12 12:58:08 -05:00 committed by Jdlrobson
parent 84f16b6dfe
commit d5d94e6b6f
4 changed files with 27 additions and 0 deletions

View file

@ -61,6 +61,13 @@ final class AdvancedMainMenuBuilder implements IMainMenuBuilder {
$this->definitions = $definitions;
}
/**
* @return Group
*/
public function getSettingsGroup(): Group {
return new Group( 'pt-preferences' );
}
/**
* @inheritDoc
*/

View file

@ -96,6 +96,19 @@ final class DefaultMainMenuBuilder implements IMainMenuBuilder {
return BuilderUtil::getSiteLinks( $this->definitions );
}
/**
* Builds the anonymous settings group.
*
* @inheritDoc
*/
public function getSettingsGroup(): Group {
$group = new Group( 'pt-preferences' );
if ( $this->showMobileOptions && !$this->user->isRegistered() ) {
$this->definitions->insertMobileOptionsItem( $group );
}
return $group;
}
/**
* Builds the personal tools menu item group.
*

View file

@ -34,6 +34,11 @@ interface IMainMenuBuilder {
*/
public function getPersonalToolsGroup( array $personalTools ): Group;
/**
* @return Group
*/
public function getSettingsGroup(): Group;
/**
* @param array $navigationTools
* @return Group

View file

@ -97,11 +97,13 @@ final class MainMenuDirector {
'sitelinks' => $this->builder->getSiteLinks()->getEntries()
]
];
$groups = [
// sidebar comes from MediaWiki:Sidebar so we can't assume it doesn't exist.
$builder->getDiscoveryGroup( $sidebar['navigation'] ?? [] ),
$builder->getInteractionToolsGroup(),
$builder->getPersonalToolsGroup( $contentNavUrls['user-menu'] ),
$builder->getSettingsGroup(),
$builder->getDonateGroup(),
];
foreach ( $groups as $group ) {