/**
  * Main execution function
  * @param $par Parameters passed to the page
  */
 function execute($par)
 {
     global $wgOut, $wgUser;
     wfLoadExtensionMessages('Gadgets');
     $skin = $wgUser->getSkin();
     $this->setHeaders();
     $wgOut->setPagetitle(wfMsg("gadgets-title"));
     $wgOut->addWikiText(wfMsg("gadgets-pagetext"));
     $gadgets = wfLoadGadgetsStructured();
     if (!$gadgets) {
         return;
     }
     $listOpen = false;
     $msgOpt = array('parseinline', 'parsemag');
     foreach ($gadgets as $section => $entries) {
         if ($section !== false && $section !== '') {
             $t = Title::makeTitleSafe(NS_MEDIAWIKI, "Gadget-section-{$section}");
             $lnk = $t ? $skin->makeLinkObj($t, wfMsgHTML("edit")) : htmlspecialchars($section);
             $ttext = wfMsgExt("gadget-section-{$section}", $msgOpt);
             if ($listOpen) {
                 $wgOut->addHTML('</ul>');
                 $listOpen = false;
             }
             $wgOut->addHTML("\n<h2>{$ttext} &nbsp; &nbsp; [{$lnk}]</h2>\n");
         }
         foreach ($entries as $gname => $code) {
             $t = Title::makeTitleSafe(NS_MEDIAWIKI, "Gadget-{$gname}");
             if (!$t) {
                 continue;
             }
             $lnk = $skin->makeLinkObj($t, wfMsgHTML("edit"));
             $ttext = wfMsgExt("gadget-{$gname}", $msgOpt);
             if (!$listOpen) {
                 $listOpen = true;
                 $wgOut->addHTML('<ul>');
             }
             $wgOut->addHTML("<li>");
             $wgOut->addHTML("{$ttext} &nbsp; &nbsp; [{$lnk}]<br/>");
             $wgOut->addHTML(wfMsgHTML("gadgets-uses") . ": ");
             $first = true;
             foreach ($code as $codePage) {
                 $t = Title::makeTitleSafe(NS_MEDIAWIKI, "Gadget-{$codePage}");
                 if (!$t) {
                     continue;
                 }
                 if ($first) {
                     $first = false;
                 } else {
                     $wgOut->addHTML(", ");
                 }
                 $lnk = $skin->makeLinkObj($t, htmlspecialchars($t->getText()));
                 $wgOut->addHTML($lnk);
             }
             $wgOut->addHtml("</li>");
         }
     }
     if ($listOpen) {
         $wgOut->addHTML('</ul>');
     }
 }
예제 #2
0
function wfGadgetsRenderPreferencesForm(&$prefs, &$out)
{
    $gadgets = wfLoadGadgetsStructured();
    if (!$gadgets) {
        return true;
    }
    wfLoadExtensionMessages('Gadgets');
    $out->addHtml("\n<fieldset>\n<legend>" . wfMsgHtml('gadgets-prefs') . "</legend>\n");
    $out->addHtml("<p>" . wfMsgWikiHtml('gadgets-prefstext') . "</p>\n");
    $msgOpt = array('parseinline', 'parsemag');
    foreach ($gadgets as $section => $entries) {
        if ($section !== false && $section !== '') {
            $ttext = wfMsgExt("gadget-section-{$section}", $msgOpt);
            $out->addHtml("\n<h2>" . $ttext . "</h2>\n");
        }
        foreach ($entries as $gname => $code) {
            $tname = "gadget-{$gname}";
            $ttext = wfMsgExt($tname, $msgOpt);
            $checked = @$prefs->mToggles[$tname] == 1 ? ' checked="checked"' : '';
            $disabled = '';
            # NOTE: No label for checkmarks as this causes the checks to toggle
            # when clicking a link in the describing text.
            $out->addHtml("<div class='toggle'><input type='checkbox' value='1' " . "id=\"{$tname}\" name=\"wpOp{$tname}\"{$checked}{$disabled} />" . " <span class='toggletext'>{$ttext}</span></div>\n");
        }
    }
    $out->addHtml("</fieldset>\n\n");
    return true;
}