Пример #1
0
/**
 *
 */
function wfSpecialSpecialpages()
{
    global $wgOut, $wgUser, $wgAvailableRights;
    $wgOut->setRobotpolicy('index,nofollow');
    $sk = $wgUser->getSkin();
    # Get listable pages, in a 2-d array with the first dimension being user right
    $pages = SpecialPage::getPages();
    /** Pages available to all */
    wfSpecialSpecialpages_gen($pages[''], 'spheading', $sk);
    /** Restricted special pages */
    $rpages = array();
    foreach ($wgAvailableRights as $right) {
        /** only show pages a user can access */
        if ($wgUser->isAllowed($right)) {
            /** some rights might not have any special page associated */
            if (isset($pages[$right])) {
                $rpages = array_merge($rpages, $pages[$right]);
            }
        }
    }
    wfSpecialSpecialpages_gen($rpages, 'restrictedpheading', $sk);
}
Пример #2
0
 /**
  * show a drop-down box of special pages
  * @TODO crash bug913. Need to be rewrote completly.
  */
 function specialPagesList()
 {
     global $wgUser, $wgOut, $wgContLang, $wgServer, $wgRedirectScript, $wgAvailableRights;
     require_once 'SpecialPage.php';
     $a = array();
     $pages = SpecialPage::getPages();
     // special pages without access restriction
     foreach ($pages[''] as $name => $page) {
         $a[$name] = $page->getDescription();
     }
     // Other special pages that are restricted.
     // Copied from SpecialSpecialpages.php
     foreach ($wgAvailableRights as $right) {
         if ($wgUser->isAllowed($right)) {
             /** Add all pages for this right */
             if (isset($pages[$right])) {
                 foreach ($pages[$right] as $name => $page) {
                     $a[$name] = $page->getDescription();
                 }
             }
         }
     }
     $go = wfMsg('go');
     $sp = wfMsg('specialpages');
     $spp = $wgContLang->specialPage('Specialpages');
     $s = '<form id="specialpages" method="get" class="inline" ' . 'action="' . htmlspecialchars("{$wgServer}{$wgRedirectScript}") . "\">\n";
     $s .= "<select name=\"wpDropdown\">\n";
     $s .= "<option value=\"{$spp}\">{$sp}</option>\n";
     foreach ($a 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;
 }