private function getPageGroups() { $pages = SpecialPageFactory::getUsablePages($this->getUser()); if (!count($pages)) { # Yeah, that was pointless. Thanks for coming. return false; } /** Put them into a sortable array */ $groups = []; /** @var SpecialPage $page */ foreach ($pages as $page) { if ($page->isListed()) { $group = $page->getFinalGroupName(); if (!isset($groups[$group])) { $groups[$group] = []; } $groups[$group][$page->getDescription()] = [$page->getPageTitle(), $page->isRestricted(), $page->isCached()]; } } /** Sort */ 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; }
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; }
/** * Show a drop-down box of special pages * @return string */ function specialPagesList() { global $wgScript; $select = new XmlSelect('title'); $pages = SpecialPageFactory::getUsablePages(); array_unshift($pages, SpecialPageFactory::getPage('SpecialPages')); foreach ($pages as $obj) { $select->addOption($obj->getDescription(), $obj->getTitle()->getPrefixedDBkey()); } return Html::rawElement('form', array('id' => 'specialpages', 'method' => 'get', 'action' => $wgScript), $select->getHTML() . Xml::submitButton(wfMessage('go')->text())); }
/** * Return categorised listable special pages which are available * for the current user, and everyone. * * @param $user User object to check permissions, $wgUser will be used * if not provided * @return array Associative array mapping page's name to its SpecialPage object * @deprecated since 1.18 call SpecialPageFactory method directly */ static function getUsablePages(User $user = null) { wfDeprecated(__METHOD__, '1.18'); return SpecialPageFactory::getUsablePages($user); }
/** * Return categorised listable special pages which are available * for the current user, and everyone. * * @return Associative array mapping page's name to its SpecialPage object * @deprecated since 1.18 call SpecialPageFactory method directly */ static function getUsablePages() { return SpecialPageFactory::getUsablePages(); }
/** * Show a drop-down box of special pages */ function specialPagesList() { global $wgContLang, $wgServer, $wgRedirectScript; $pages = SpecialPageFactory::getUsablePages(); foreach ($pages as $name => $page) { $pages[$name] = $page->getDescription(); } $go = wfMsg('go'); $sp = wfMsg('specialpages'); $spp = $wgContLang->specialPage('Specialpages'); $s = '<form id="specialpages" method="get" ' . 'action="' . htmlspecialchars("{$wgServer}{$wgRedirectScript}") . "\">\n"; $s .= "<select name=\"wpDropdown\">\n"; $s .= "<option value=\"{$spp}\">{$sp}</option>\n"; foreach ($pages as $name => $desc) { $p = $wgContLang->specialPage($name); $s .= "<option value=\"{$p}\">{$desc}</option>\n"; } $s .= "</select>\n"; $s .= "<input type='submit' value=\"{$go}\" name='redirect' />\n"; $s .= "</form>\n"; return $s; }
/** * Prepares list of documents to be indexed for wikis. * @return int Number of documents to be indexed. */ public function crawl() { $this->oDocumentsDb = SpecialPageFactory::getUsablePages(RequestContext::getMain()->getUser()); $this->totalNoDocumentsCrawled = count($this->oDocumentsDb); return $this->totalNoDocumentsCrawled; }