/**
  * Triggered if a user edits a Draft subpage of a template.
  * It pre-fills the content of the Draft with a converted markup.
  * @param $text
  * @param Title $title
  * @return bool
  */
 public static function onEditFormPreloadText(&$text, Title $title)
 {
     $helper = new TemplateDraftHelper();
     if ($helper->isTitleNewDraft($title) && TemplateConverter::isConversion()) {
         $parentTitleId = $helper->getParentTitle($title)->getArticleID();
         if ($parentTitleId > 0) {
             $parentContent = WikiPage::newFromID($parentTitleId)->getText();
             /**
              * TODO: Introduce a parameter to modify conversion flags
              * If you want to perform different conversions, not only the infobox one,
              * you can introduce a URL parameter to control the binary sum of flags.
              */
             $controller = new TemplateDraftController();
             $text = $controller->createDraftContent($title, $parentContent, TemplateClassificationController::TEMPLATE_INFOBOX);
         }
     }
     return true;
 }
Esempio n. 2
0
 /**
  * Overrides content of parent page with contents of draft page
  * @param Title $draftTitle Title object of sub page (draft)
  * @throws PermissionsException
  */
 private function approveDraft(Title $draftTitle)
 {
     // Get Title object of parent page
     $helper = new TemplateDraftHelper();
     $parentTitle = $helper->getParentTitle($draftTitle);
     // Check edit rights
     if (!$parentTitle->userCan('templatedraft')) {
         throw new PermissionsException('edit');
     }
     // Get contents of draft page
     $article = Article::newFromId($draftTitle->getArticleID());
     $draftContent = $article->getContent();
     // Get WikiPage object of parent page
     $page = WikiPage::newFromID($parentTitle->getArticleID());
     // Save to parent page
     $page->doEdit($draftContent, wfMessage('templatedraft-approval-summary')->inContentLanguage()->plain());
     // Remove Draft page
     $draftPage = WikiPage::newFromID($draftTitle->getArticleID());
     $draftPage->doDeleteArticle(wfMessage('templatedraft-draft-removal-summary')->inContentLanguage()->plain());
     // Show a confirmation message to a user after redirect
     BannerNotificationsController::addConfirmation(wfMessage('templatedraft-approval-success-confirmation')->escaped(), BannerNotificationsController::CONFIRMATION_CONFIRM, true);
 }