/**
  * Handles page to manage extensions
  */
 protected function _executeManageExtensions($wgFarmer)
 {
     global $wgOut, $wgUser, $wgRequest;
     if (!wfRunHooks('FarmerManageExtensions', array($wgFarmer))) {
         return;
     }
     // quick security check
     if (!MediaWikiFarmer::userIsFarmerAdmin($wgUser)) {
         $wgOut->wrapWikiMsg('== $1 ==', 'farmer-permissiondenied');
         $wgOut->addWikiMsg('farmer-extensions-extension-denied');
         return;
     }
     // look and see if a new extension was registered
     if ($wgRequest->wasPosted()) {
         $name = $wgRequest->getVal('name');
         $description = $wgRequest->getVal('description');
         $include = $wgRequest->getVal('include');
         $extension = new MediaWikiFarmer_Extension($name, $description, $include);
         if (!$extension->isValid()) {
             $wgOut->wrapWikiMsg('== $1 ==', 'farmer-extensions-invalid');
             $wgOut->addWikiMsg('farmer-extensions-invalid-text');
         } else {
             $wgFarmer->registerExtension($extension);
         }
     }
     $wgOut->wrapWikiMsg('== $1 ==', 'farmer-extensions-available');
     $extensions = $wgFarmer->getExtensions();
     if (count($extensions) === 0) {
         $wgOut->addWikiMsg('farmer-extensions-noavailable');
     } else {
         foreach ($wgFarmer->getExtensions() as $extension) {
             $wgOut->addWikiText('; ' . htmlspecialchars($extension->name) . ' : ' . htmlspecialchars($extension->description));
         }
     }
     $wgOut->wrapWikiMsg('== $1 ==', 'farmer-extensions-register');
     $wgOut->addWikiMsg('farmer-extensions-register-text1');
     $wgOut->addWikiMsg('farmer-extensions-register-text2');
     $wgOut->addWikiMsg('farmer-extensions-register-text3');
     $wgOut->addWikiMsg('farmer-extensions-register-text4');
     foreach (explode(PATH_SEPARATOR, get_include_path()) as $path) {
         $wgOut->addWikiText('*' . $path);
     }
     $wgOut->addHTML("\n<form id=\"registerExtension\" method=\"post\">\n\t<table>\n\t\t<tr>\n\t\t\t<td align=\"right\">" . wfMsgHtml('farmer-extensions-register-name') . "</td>\n\t\t\t<td align=\"left\"><input type=\"text\" size=\"20\" name=\"name\" value=\"\" /></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td align=\"right\">" . wfMsgHtml('farmer-description') . "</td>\n\t\t\t<td align=\"left\"><input type=\"text\" size=\"50\" name=\"description\" value=\"\" /></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td align=\"right\">" . wfMsgHtml('farmer-extensions-register-includefile') . "</td>\n\t\t\t<td align=\"left\"><input type=\"text\" size=\"50\" name=\"include\" value=\"\" /></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>&#160;</td>\n\t\t\t<td align=\"right\"><input type=\"submit\" name=\"submit\" value=\"" . wfMsgHtml('farmer-button-submit') . "\" /></td>\n\t\t</tr>\n\t</table>\n</form>");
 }