showMobileOptions = $showMobileOptions; $this->user = $user; $this->definitions = $definitions; } /** * @inheritDoc * @return Group[] * @throws FatalError * @throws MWException */ public function getGroups(): array { return [ BuilderUtil::getDiscoveryTools( $this->definitions ), $this->getSiteTools(), BuilderUtil::getConfigurationTools( $this->definitions, $this->showMobileOptions ), ]; } /** * @inheritDoc * @throws FatalError * @throws MWException */ public function getSiteLinks(): Group { return BuilderUtil::getSiteLinks( $this->definitions ); } /** * Prepares a list of links that have the purpose of discovery in the main navigation menu * @return Group * @throws FatalError * @throws MWException */ private function getSiteTools(): Group { $group = new Group(); $this->definitions->insertRecentChanges( $group ); $this->definitions->insertSpecialPages( $group ); $this->definitions->insertCommunityPortal( $group ); // Allow other extensions to add or override tools Hooks::run( 'MobileMenu', [ 'sitetools', &$group ] ); return $group; } }