/** * Getter for $aNavigationSites array * @param boolean $bForceReload * @return array */ public static function getNavigationSites($bForceReload = false) { if (!$bForceReload && !is_null(self::$aNavigationSites)) { return self::$aNavigationSites; } self::$aNavigationSites = array(); $oTopBarMenuTitle = Title::makeTitle(NS_MEDIAWIKI, 'TopBarMenu'); if (is_null($oTopBarMenuTitle) || !$oTopBarMenuTitle->exists()) { return self::$aNavigationSites; } $sContent = BsPageContentProvider::getInstance()->getContentFromTitle($oTopBarMenuTitle); $aLines = explode("\n", trim($sContent)); $iMaxMainEntries = BsConfig::get('MW::TopMenuBarCustomizer::NumberOfMainEntries'); $iMaxSubEntries = BsConfig::get('MW::TopMenuBarCustomizer::NumberOfSubEntries'); $iAllowedLevels = BsConfig::get('MW::TopMenuBarCustomizer::NuberOfLevels'); self::$aNavigationSites = self::parseArticleContentLines($aLines, $iAllowedLevels, $iMaxMainEntries, $iMaxSubEntries); return self::$aNavigationSites; }
/** * Hook-Handle for MW hook EditFormPreloadText * @param string $sText * @param Title $oTitle * @return boolean - always true */ public function onEditFormPreloadText(&$sText, $oTitle) { $oTopBarMenuTitle = Title::makeTitle(NS_MEDIAWIKI, 'TopBarMenu'); if (!$oTopBarMenuTitle || !$oTitle->equals($oTopBarMenuTitle)) { return true; } $aNavigationSites = self::getNavigationSites(); if (empty($aNavigationSites)) { return true; } $sText = TopMenuBarCustomizerParser::toWikiText($aNavigationSites, $sText); return true; }