/** * EditPage::showEditForm:initial hook * Load draft... */ public static function loadForm($editpage) { global $wgUser, $wgRequest, $wgOut, $wgTitle, $wgLang; // Check permissions if ($wgUser->isAllowed('edit') && $wgUser->isLoggedIn()) { // Get draft $draft = Draft::newFromID($wgRequest->getIntOrNull('draft')); // Load form values if ($draft->exists()) { // Override initial values in the form with draft data $editpage->textbox1 = $draft->getText(); $editpage->summary = $draft->getSummary(); $editpage->scrolltop = $draft->getScrollTop(); $editpage->minoredit = $draft->getMinorEdit() ? true : false; } // Save draft on non-save submission if ($wgRequest->getVal('action') == 'submit' && $wgUser->editToken() == $wgRequest->getText('wpEditToken') && is_null($wgRequest->getText('wpDraftTitle'))) { // If the draft wasn't specified in the url, try using a // form-submitted one if (!$draft->exists()) { $draft = Draft::newFromID($wgRequest->getIntOrNull('wpDraftID')); } // Load draft with info $draft->setTitle(Title::newFromText($wgRequest->getText('wpDraftTitle'))); $draft->setSection($wgRequest->getInt('wpSection')); $draft->setStartTime($wgRequest->getText('wpStarttime')); $draft->setEditTime($wgRequest->getText('wpEdittime')); $draft->setSaveTime(wfTimestampNow()); $draft->setScrollTop($wgRequest->getInt('wpScrolltop')); $draft->setText($wgRequest->getText('wpTextbox1')); $draft->setSummary($wgRequest->getText('wpSummary')); $draft->setMinorEdit($wgRequest->getInt('wpMinoredit', 0)); // Save draft $draft->save(); // Use the new draft id $wgRequest->setVal('draft', $draft->getID()); } } // Internationalization $numDrafts = Drafts::num($wgTitle); // Show list of drafts if ($numDrafts > 0) { if ($wgRequest->getText('action') !== 'submit') { $wgOut->addHTML(Xml::openElement('div', array('id' => 'drafts-list-box'))); $wgOut->addHTML(Xml::element('h3', null, wfMsg('drafts-view-existing'))); Drafts::display($wgTitle); $wgOut->addHTML(Xml::closeElement('div')); } else { $jsWarn = "if( !wgAjaxSaveDraft.insync ) return confirm('" . Xml::escapeJsString(wfMsgHTML('drafts-view-warn')) . "')"; $link = Xml::element('a', array('href' => $wgTitle->getFullURL('action=edit'), 'onclick' => $jsWarn), wfMsgExt('drafts-view-notice-link', array('parsemag'), $wgLang->formatNum($numDrafts))); $wgOut->addHTML(wfMsgHTML('drafts-view-notice', $link)); } } // Continue return true; }
/** * EditPage::showEditForm:initial hook * Load draft... */ public static function loadForm(EditPage $editpage) { global $wgRequest; $context = $editpage->getArticle()->getContext(); $user = $context->getUser(); if (!$user->getOption('extensionDrafts_enable', 'true')) { return true; } //XXCHANGED $isGuidedEditor = isset($editpage->mGuided) && $editpage->mGuided; $adv = $isGuidedEditor ? "" : "&advanced=true"; $wgRequest->setVal("guidededitor", $isGuidedEditor); // Check permissions $request = $context->getRequest(); if ($user->isAllowed('edit') && $user->isLoggedIn()) { // Get draft $draft = Draft::newFromID($request->getIntOrNull('draft')); // Load form values if ($draft->exists()) { // Override initial values in the form with draft data $editpage->textbox1 = $draft->getText(); $editpage->summary = $draft->getSummary(); $editpage->scrolltop = $draft->getScrollTop(); $editpage->minoredit = $draft->getMinorEdit() ? true : false; } // Save draft on non-save submission if ($request->getVal('action') == 'submit' && $user->getEditToken() == $request->getText('wpEditToken') && is_null($request->getText('wpDraftTitle'))) { // If the draft wasn't specified in the url, try using a // form-submitted one if (!$draft->exists()) { $draft = Draft::newFromID($request->getIntOrNull('wpDraftID')); } // Load draft with info $draft->setTitle(Title::newFromText($request->getText('wpDraftTitle'))); $draft->setSection($request->getInt('wpSection')); $draft->setStartTime($request->getText('wpStarttime')); $draft->setEditTime($request->getText('wpEdittime')); $draft->setSaveTime(wfTimestampNow()); $draft->setScrollTop($request->getInt('wpScrolltop')); $draft->setText($request->getText('wpTextbox1')); $draft->setSummary($request->getText('wpSummary')); $draft->setMinorEdit($request->getInt('wpMinoredit', 0)); // Save draft $draft->save(); // Use the new draft id $request->setVal('draft', $draft->getID()); } } $out = $context->getOutput(); $numDrafts = Drafts::num($context->getTitle()); // Show list of drafts if ($numDrafts > 0) { if ($request->getText('action') !== 'submit') { $out->addHTML(Xml::openElement('div', array('id' => 'drafts-list-box', 'class' => 'minor_section'))); $out->addHTML(Xml::element('h3', null, $context->msg('drafts-view-existing')->text())); Drafts::display($context->getTitle()); $out->addHTML(Xml::closeElement('div')); } else { $jsWarn = "if( !wgAjaxSaveDraft.insync ) return confirm('" . Xml::escapeJsString($context->msg('drafts-view-warn')->escaped()) . "')"; $link = Xml::element('a', array('href' => $context->getTitle()->getFullURL('action=edit'), 'onclick' => $jsWarn), $context->msg('drafts-view-notice-link')->numParams($numDrafts)->text()); $out->addHTML($context->msg('drafts-view-notice')->rawParams($link)->escaped()); } } // Continue return true; }