/** * Displays form to create wiki */ protected function _executeCreate($wgFarmer, $wiki) { global $wgOut, $wgUser, $wgRequest; if (!$wgFarmer->getActiveWiki()->isDefaultWiki()) { $wgOut->wrapWikiMsg('== $1 ==', 'farmer-notavailable'); $wgOut->addWikiMsg('farmer-notavailable-text'); return; } if (!MediaWikiFarmer::userCanCreateWiki($wgUser, $wiki)) { $wgOut->addWikiMsg('farmercantcreatewikis'); return; } $name = MediaWikiFarmer_Wiki::sanitizeName($wgRequest->getVal('wpName', $wiki)); $title = MediaWikiFarmer_Wiki::sanitizeTitle($wgRequest->getVal('wpTitle')); $description = $wgRequest->getVal('wpDescription', ''); $reason = $wgRequest->getVal('wpReason'); $action = $this->getTitle('create')->escapeLocalURL(); // if something was POST'd if ($wgRequest->wasPosted()) { // we create the wiki if the user pressed 'Confirm' if ($wgRequest->getCheck('wpConfirm')) { $wikiObj = MediaWikiFarmer_Wiki::newFromParams($name, $title, $description, $wgUser->getName()); $wikiObj->create(); $log = new LogPage('farmer'); $log->addEntry('create', $this->getTitle(), $reason, array($name)); $wgOut->wrapWikiMsg('== $1 ==', 'farmer-wikicreated'); $wgOut->addWikiMsg('farmer-wikicreated-text', $wikiObj->getUrl(wfUrlencode(wfMessage('mainpage')->inContentLanguage()->useDatabase(false)->plain()))); $wgOut->addWikiMsg('farmer-default', '[[' . $title . ':Special:Farmer|Special:Farmer]]'); return; } if ($name && $title && $description) { $wiki = new MediaWikiFarmer_Wiki($name); if ($wiki->exists() || $wiki->databaseExists()) { $wgOut->wrapWikiMsg("== \$1 ==\n\n\$2", 'farmer-wikiexists', array('farmer-wikiexists-text', $name)); return; } $url = $wiki->getUrl(''); $wgOut->wrapWikiMsg('== $1 ==', 'farmer-confirmsetting'); $wgOut->addHtml(Xml::openElement('table', array('class' => 'wikitable')) . "\n" . Xml::tags('tr', array(), Xml::tags('th', array(), wfMsgExt('farmer-confirmsetting-name', 'parseinline')) . Xml::element('td', array(), $name)) . "\n" . Xml::tags('tr', array(), Xml::tags('th', array(), wfMsgExt('farmer-confirmsetting-title', 'parseinline')) . Xml::element('td', array(), $title)) . "\n" . Xml::tags('tr', array(), Xml::tags('th', array(), wfMsgExt('farmer-confirmsetting-description', 'parseinline')) . Xml::element('td', array(), $description)) . "\n" . Xml::tags('tr', array(), Xml::tags('th', array(), wfMsgExt('farmer-confirmsetting-reason', 'parseinline')) . Xml::element('td', array(), $reason)) . "\n" . Xml::closeElement('table')); $wgOut->addWikiMsg('farmer-confirmsetting-text', $name, $title, $url); $nameaccount = htmlspecialchars($name); $nametitle = htmlspecialchars($title); $namedescript = htmlspecialchars($description); $confirmaccount = wfMsgHtml('farmer-button-confirm'); $wgOut->addHTML("\n\n<form id=\"farmercreate2\" method=\"post\" action=\"{$action}\">\n<input type=\"hidden\" name=\"wpName\" value=\"{$nameaccount}\" />\n<input type=\"hidden\" name=\"wpTitle\" value=\"{$nametitle}\" />\n<input type=\"hidden\" name=\"wpDescription\" value=\"{$namedescript}\" />\n<input type=\"hidden\" name=\"wpReason\" value=\"{$reason}\" />\n<input type=\"submit\" name=\"wpConfirm\" value=\"{$confirmaccount}\" />\n</form>"); return; } } if ($wiki && !$name) { $name = $wiki; } $wgOut->wrapWikiMsg("== \$1 ==\n\$2\n== \$3 ==\n\$4\n\$5\n\$6", 'farmer-createwiki-form-title', 'farmer-createwiki-form-text1', 'farmer-createwiki-form-help', 'farmer-createwiki-form-text2', 'farmer-createwiki-form-text3', 'farmer-createwiki-form-text4'); $formURL = wfMsgHTML('farmercreateurl'); $formSitename = wfMsgHTML('farmercreatesitename'); $formNextStep = wfMsgHTML('farmercreatenextstep'); $token = htmlspecialchars($wgUser->editToken()); $wgOut->addHTML(Xml::openElement('form', array('method' => 'post', 'action' => $action)) . "\n" . Xml::buildForm(array('farmer-createwiki-user' => Xml::element('b', array(), $wgUser->getName()), 'farmer-createwiki-name' => Xml::input('wpName', 20, $name), 'farmer-createwiki-title' => Xml::input('wpTitle', 20, $title), 'farmer-createwiki-description' => Xml::textarea('wpDescription', $description), 'farmer-createwiki-reason' => Xml::input('wpReason', 20, $reason)), 'farmer-button-submit') . "\n" . Html::Hidden('token', $token) . "\n" . Xml::closeElement('form')); }