private function getPageGroups() { global $wgSortSpecialPages; $pages = SpecialPageFactory::getUsablePages($this->getUser()); if (!count($pages)) { # Yeah, that was pointless. Thanks for coming. return false; } /** Put them into a sortable array */ $groups = array(); foreach ($pages as $page) { if ($page->isListed()) { $group = SpecialPageFactory::getGroup($page); if (!isset($groups[$group])) { $groups[$group] = array(); } $groups[$group][$page->getDescription()] = array($page->getTitle(), $page->isRestricted(), $page->isExpensive()); } } /** Sort */ if ($wgSortSpecialPages) { foreach ($groups as $group => $sortedPages) { ksort($groups[$group]); } } /** Always move "other" to end */ if (array_key_exists('other', $groups)) { $other = $groups['other']; unset($groups['other']); $groups['other'] = $other; } return $groups; }
/** * @brief Copied and pasted code from wfSpecialSpecialpages() that have been modified and refactored. Also removes some special pages from list. * */ public function getAdvancedSection() { if (!$this->wg->User->isAllowed('admindashboard')) { $this->displayRestrictionError(); return false; // skip rendering } $this->sk = $this->wg->User->getSkin(); $pages = SpecialPageFactory::getUsablePages(); if (count($pages) == 0) { return; } /** Put them into a sortable array */ $groups = array(); foreach ($pages as $pagename => $page) { if (!AdminDashboardLogic::isGeneralApp($pagename) && $page->isListed()) { $group = SpecialPageFactory::getGroup($page); if (!isset($groups[$group])) { $groups[$group] = array(); } $groups[$group][$page->getDescription()] = array($page->getTitle(), $page->isRestricted()); } } /** Sort */ if ($this->wg->SortSpecialPages) { foreach ($groups as $group => $sortedPages) { ksort($groups[$group]); } } /** Always move "other" to end */ if (array_key_exists('other', $groups)) { $other = $groups['other']; unset($groups['other']); $groups['other'] = $other; } $this->groups = $groups; }
/** * Get the group that the special page belongs in on Special:SpecialPage * * @param $page SpecialPage * @return string * @deprecated since 1.18 call SpecialPageFactory method directly */ static function getGroup(&$page) { wfDeprecated(__METHOD__, '1.18'); return SpecialPageFactory::getGroup($page); }
/** * Get the group that the special page belongs in on Special:SpecialPage * * @param $page SpecialPage * @return null * @deprecated since 1.18 call SpecialPageFactory method directly */ static function getGroup(&$page) { return SpecialPageFactory::getGroup($page); }