コード例 #1
0
 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;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 /**
  * @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;
 }
コード例 #4
0
 /**
  * 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()));
 }
コード例 #5
0
ファイル: SpecialPage.php プロジェクト: seedbank/old-repo
 /**
  * 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);
 }
コード例 #6
0
ファイル: SpecialPage.php プロジェクト: eFFemeer/seizamcore
 /**
  * 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();
 }
コード例 #7
0
ファイル: SkinLegacy.php プロジェクト: eFFemeer/seizamcore
 /**
  * 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;
 }