/**
  * @dataProvider provideIsValidMove
  * @covers MovePage::isValidMove
  * @covers MovePage::isValidFileMove
  */
 public function testIsValidMove($old, $new, $error)
 {
     $this->setMwGlobals('wgContentHandlerUseDB', false);
     $mp = new MovePage(Title::newFromText($old), Title::newFromText($new));
     $status = $mp->isValidMove();
     if ($error === true) {
         $this->assertTrue($status->isGood());
     } else {
         $this->assertTrue($status->hasMessage($error));
     }
 }
 protected function movePage(Title $oldPage, Title $newPage)
 {
     $mp = new MovePage($oldPage, $newPage);
     $valid = $mp->isValidMove();
     if (!$valid->isOK()) {
         wfDebugLog('CentralAuthRename', "Invalid page move: {$oldPage->getPrefixedText()} -> {$newPage->getPrefixedText()}");
         return;
     }
     $msg = wfMessage('centralauth-rename-movelog')->params($this->params['from'], $this->params['to'])->inContentLanguage()->text();
     $status = $mp->move($this->user, $msg, !$this->params['suppressredirects']);
     if (!$status->isOK()) {
         wfDebugLog('CentralAuthRename', "Page move failed: {$oldPage->getPrefixedText()} -> {$newPage->getPrefixedText()}");
     }
 }
Beispiel #3
0
 protected function processRow($row)
 {
     global $wgContLang;
     $current = Title::makeTitle($row->page_namespace, $row->page_title);
     $display = $current->getPrefixedText();
     $upper = $row->page_title;
     $lower = $wgContLang->lcfirst($row->page_title);
     if ($upper == $lower) {
         $this->output("\"{$display}\" already lowercase.\n");
         return $this->progress(0);
     }
     $target = Title::makeTitle($row->page_namespace, $lower);
     $targetDisplay = $target->getPrefixedText();
     if ($target->exists()) {
         $this->output("\"{$display}\" skipped; \"{$targetDisplay}\" already exists\n");
         return $this->progress(0);
     }
     if ($this->dryrun) {
         $this->output("\"{$display}\" -> \"{$targetDisplay}\": DRY RUN, NOT MOVED\n");
         $ok = true;
     } else {
         $mp = new MovePage($current, $target);
         $status = $mp->move($this->user, 'Converting page titles to lowercase', true);
         $ok = $status->isOK() ? 'OK' : $status->getWikiText(false, false, 'en');
         $this->output("\"{$display}\" -> \"{$targetDisplay}\": {$ok}\n");
     }
     if ($ok === true) {
         $this->progress(1);
         if ($row->page_namespace == $this->namespace) {
             $talk = $target->getTalkPage();
             $row->page_namespace = $talk->getNamespace();
             if ($talk->exists()) {
                 return $this->processRow($row);
             }
         }
     }
     return $this->progress(0);
 }
 public function execute()
 {
     global $wgUser;
     # Change to current working directory
     $oldCwd = getcwd();
     chdir($oldCwd);
     # Options processing
     $user = $this->getOption('u', false);
     $reason = $this->getOption('r', '');
     $interval = $this->getOption('i', 0);
     $noredirects = $this->getOption('noredirects', false);
     if ($this->hasArg()) {
         $file = fopen($this->getArg(), 'r');
     } else {
         $file = $this->getStdin();
     }
     # Setup
     if (!$file) {
         $this->error("Unable to read file, exiting", true);
     }
     if ($user === false) {
         $wgUser = User::newSystemUser('Move page script', array('steal' => true));
     } else {
         $wgUser = User::newFromName($user);
     }
     if (!$wgUser) {
         $this->error("Invalid username", true);
     }
     # Setup complete, now start
     $dbw = $this->getDB(DB_MASTER);
     // @codingStandardsIgnoreStart Ignore avoid function calls in a FOR loop test part warning
     for ($linenum = 1; !feof($file); $linenum++) {
         // @codingStandardsIgnoreEnd
         $line = fgets($file);
         if ($line === false) {
             break;
         }
         $parts = array_map('trim', explode('|', $line));
         if (count($parts) != 2) {
             $this->error("Error on line {$linenum}, no pipe character");
             continue;
         }
         $source = Title::newFromText($parts[0]);
         $dest = Title::newFromText($parts[1]);
         if (is_null($source) || is_null($dest)) {
             $this->error("Invalid title on line {$linenum}");
             continue;
         }
         $this->output($source->getPrefixedText() . ' --> ' . $dest->getPrefixedText());
         $this->beginTransaction($dbw, __METHOD__);
         $mp = new MovePage($source, $dest);
         $status = $mp->move($wgUser, $reason, !$noredirects);
         if (!$status->isOK()) {
             $this->output("\nFAILED: " . $status->getWikiText());
         }
         $this->commitTransaction($dbw, __METHOD__);
         $this->output("\n");
         if ($interval) {
             sleep($interval);
         }
         wfWaitForSlaves();
     }
 }
Beispiel #5
0
 /**
  * Move a title to a new location
  *
  * @deprecated since 1.25, use the MovePage class instead
  * @param Title $nt The new title
  * @param bool $auth Indicates whether $wgUser's permissions
  *  should be checked
  * @param string $reason The reason for the move
  * @param bool $createRedirect Whether to create a redirect from the old title to the new title.
  *  Ignored if the user doesn't have the suppressredirect right.
  * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
  */
 public function moveTo(&$nt, $auth = true, $reason = '', $createRedirect = true)
 {
     global $wgUser;
     $err = $this->isValidMoveOperation($nt, $auth, $reason);
     if (is_array($err)) {
         // Auto-block user's IP if the account was "hard" blocked
         $wgUser->spreadAnyEditBlock();
         return $err;
     }
     // Check suppressredirect permission
     if ($auth && !$wgUser->isAllowed('suppressredirect')) {
         $createRedirect = true;
     }
     $mp = new MovePage($this, $nt);
     $status = $mp->move($wgUser, $reason, $createRedirect);
     if ($status->isOK()) {
         return true;
     } else {
         return $status->getErrorsArray();
     }
 }
 /**
  * @param Title $from
  * @param Title $to
  * @param string $reason
  * @param bool $createRedirect
  * @return Status
  */
 protected function movePage(Title $from, Title $to, $reason, $createRedirect)
 {
     $mp = new MovePage($from, $to);
     $valid = $mp->isValidMove();
     if (!$valid->isOK()) {
         return $valid;
     }
     $permStatus = $mp->checkPermissions($this->getUser(), $reason);
     if (!$permStatus->isOK()) {
         return $permStatus;
     }
     // Check suppressredirect permission
     if (!$this->getUser()->isAllowed('suppressredirect')) {
         $createRedirect = true;
     }
     return $mp->move($this->getUser(), $reason, $createRedirect);
 }
 function doSubmit()
 {
     $user = $this->getUser();
     if ($user->pingLimiter('move')) {
         throw new ThrottledError();
     }
     $ot = $this->oldTitle;
     $nt = $this->newTitle;
     # don't allow moving to pages with # in
     if (!$nt || $nt->hasFragment()) {
         $this->showForm(array(array('badtitletext')));
         return;
     }
     # Show a warning if the target file exists on a shared repo
     if ($nt->getNamespace() == NS_FILE && !($this->moveOverShared && $user->isAllowed('reupload-shared')) && !RepoGroup::singleton()->getLocalRepo()->findFile($nt) && wfFindFile($nt)) {
         $this->showForm(array(array('file-exists-sharedrepo')));
         return;
     }
     # Delete to make way if requested
     if ($this->deleteAndMove) {
         $permErrors = $nt->getUserPermissionsErrors('delete', $user);
         if (count($permErrors)) {
             # Only show the first error
             $this->showForm($permErrors);
             return;
         }
         $reason = $this->msg('delete_and_move_reason', $ot)->inContentLanguage()->text();
         // Delete an associated image if there is
         if ($nt->getNamespace() == NS_FILE) {
             $file = wfLocalFile($nt);
             $file->load(File::READ_LATEST);
             if ($file->exists()) {
                 $file->delete($reason, false, $user);
             }
         }
         $error = '';
         // passed by ref
         $page = WikiPage::factory($nt);
         $deleteStatus = $page->doDeleteArticleReal($reason, false, 0, true, $error, $user);
         if (!$deleteStatus->isGood()) {
             $this->showForm($deleteStatus->getErrorsArray());
             return;
         }
     }
     $handler = ContentHandler::getForTitle($ot);
     if (!$handler->supportsRedirects()) {
         $createRedirect = false;
     } elseif ($user->isAllowed('suppressredirect')) {
         $createRedirect = $this->leaveRedirect;
     } else {
         $createRedirect = true;
     }
     # Do the actual move.
     $mp = new MovePage($ot, $nt);
     $valid = $mp->isValidMove();
     if (!$valid->isOK()) {
         $this->showForm($valid->getErrorsArray());
         return;
     }
     $permStatus = $mp->checkPermissions($user, $this->reason);
     if (!$permStatus->isOK()) {
         $this->showForm($permStatus->getErrorsArray());
         return;
     }
     $status = $mp->move($user, $this->reason, $createRedirect);
     if (!$status->isOK()) {
         $this->showForm($status->getErrorsArray());
         return;
     }
     if ($this->getConfig()->get('FixDoubleRedirects') && $this->fixRedirects) {
         DoubleRedirectJob::fixRedirects('move', $ot, $nt);
     }
     $out = $this->getOutput();
     $out->setPageTitle($this->msg('pagemovedsub'));
     $oldLink = Linker::link($ot, null, array('id' => 'movepage-oldlink'), array('redirect' => 'no'));
     $newLink = Linker::linkKnown($nt, null, array('id' => 'movepage-newlink'));
     $oldText = $ot->getPrefixedText();
     $newText = $nt->getPrefixedText();
     if ($ot->exists()) {
         // NOTE: we assume that if the old title exists, it's because it was re-created as
         // a redirect to the new title. This is not safe, but what we did before was
         // even worse: we just determined whether a redirect should have been created,
         // and reported that it was created if it should have, without any checks.
         // Also note that isRedirect() is unreliable because of bug 37209.
         $msgName = 'movepage-moved-redirect';
     } else {
         $msgName = 'movepage-moved-noredirect';
     }
     $out->addHTML($this->msg('movepage-moved')->rawParams($oldLink, $newLink)->params($oldText, $newText)->parseAsBlock());
     $out->addWikiMsg($msgName);
     Hooks::run('SpecialMovepageAfterMove', array(&$this, &$ot, &$nt));
     # Now we move extra pages we've been asked to move: subpages and talk
     # pages.  First, if the old page or the new page is a talk page, we
     # can't move any talk pages: cancel that.
     if ($ot->isTalkPage() || $nt->isTalkPage()) {
         $this->moveTalk = false;
     }
     if (count($ot->getUserPermissionsErrors('move-subpages', $user))) {
         $this->moveSubpages = false;
     }
     # Next make a list of id's.  This might be marginally less efficient
     # than a more direct method, but this is not a highly performance-cri-
     # tical code path and readable code is more important here.
     #
     # Note: this query works nicely on MySQL 5, but the optimizer in MySQL
     # 4 might get confused.  If so, consider rewriting as a UNION.
     #
     # If the target namespace doesn't allow subpages, moving with subpages
     # would mean that you couldn't move them back in one operation, which
     # is bad.
     # @todo FIXME: A specific error message should be given in this case.
     // @todo FIXME: Use Title::moveSubpages() here
     $dbr = wfGetDB(DB_MASTER);
     if ($this->moveSubpages && (MWNamespace::hasSubpages($nt->getNamespace()) || $this->moveTalk && MWNamespace::hasSubpages($nt->getTalkPage()->getNamespace()))) {
         $conds = array('page_title' . $dbr->buildLike($ot->getDBkey() . '/', $dbr->anyString()) . ' OR page_title = ' . $dbr->addQuotes($ot->getDBkey()));
         $conds['page_namespace'] = array();
         if (MWNamespace::hasSubpages($nt->getNamespace())) {
             $conds['page_namespace'][] = $ot->getNamespace();
         }
         if ($this->moveTalk && MWNamespace::hasSubpages($nt->getTalkPage()->getNamespace())) {
             $conds['page_namespace'][] = $ot->getTalkPage()->getNamespace();
         }
     } elseif ($this->moveTalk) {
         $conds = array('page_namespace' => $ot->getTalkPage()->getNamespace(), 'page_title' => $ot->getDBkey());
     } else {
         # Skip the query
         $conds = null;
     }
     $extraPages = array();
     if (!is_null($conds)) {
         $extraPages = TitleArray::newFromResult($dbr->select('page', array('page_id', 'page_namespace', 'page_title'), $conds, __METHOD__));
     }
     $extraOutput = array();
     $count = 1;
     foreach ($extraPages as $oldSubpage) {
         if ($ot->equals($oldSubpage) || $nt->equals($oldSubpage)) {
             # Already did this one.
             continue;
         }
         $newPageName = preg_replace('#^' . preg_quote($ot->getDBkey(), '#') . '#', StringUtils::escapeRegexReplacement($nt->getDBkey()), $oldSubpage->getDBkey());
         if ($oldSubpage->isSubpage() && ($ot->isTalkPage() xor $nt->isTalkPage())) {
             // Moving a subpage from a subject namespace to a talk namespace or vice-versa
             $newNs = $nt->getNamespace();
         } elseif ($oldSubpage->isTalkPage()) {
             $newNs = $nt->getTalkPage()->getNamespace();
         } else {
             $newNs = $nt->getSubjectPage()->getNamespace();
         }
         # Bug 14385: we need makeTitleSafe because the new page names may
         # be longer than 255 characters.
         $newSubpage = Title::makeTitleSafe($newNs, $newPageName);
         if (!$newSubpage) {
             $oldLink = Linker::linkKnown($oldSubpage);
             $extraOutput[] = $this->msg('movepage-page-unmoved')->rawParams($oldLink)->params(Title::makeName($newNs, $newPageName))->escaped();
             continue;
         }
         # This was copy-pasted from Renameuser, bleh.
         if ($newSubpage->exists() && !$oldSubpage->isValidMoveTarget($newSubpage)) {
             $link = Linker::linkKnown($newSubpage);
             $extraOutput[] = $this->msg('movepage-page-exists')->rawParams($link)->escaped();
         } else {
             $success = $oldSubpage->moveTo($newSubpage, true, $this->reason, $createRedirect);
             if ($success === true) {
                 if ($this->fixRedirects) {
                     DoubleRedirectJob::fixRedirects('move', $oldSubpage, $newSubpage);
                 }
                 $oldLink = Linker::link($oldSubpage, null, array(), array('redirect' => 'no'));
                 $newLink = Linker::linkKnown($newSubpage);
                 $extraOutput[] = $this->msg('movepage-page-moved')->rawParams($oldLink, $newLink)->escaped();
                 ++$count;
                 $maximumMovedPages = $this->getConfig()->get('MaximumMovedPages');
                 if ($count >= $maximumMovedPages) {
                     $extraOutput[] = $this->msg('movepage-max-pages')->numParams($maximumMovedPages)->escaped();
                     break;
                 }
             } else {
                 $oldLink = Linker::linkKnown($oldSubpage);
                 $newLink = Linker::link($newSubpage);
                 $extraOutput[] = $this->msg('movepage-page-unmoved')->rawParams($oldLink, $newLink)->escaped();
             }
         }
     }
     if ($extraOutput !== array()) {
         $out->addHTML("<ul>\n<li>" . implode("</li>\n<li>", $extraOutput) . "</li>\n</ul>");
     }
     # Deal with watches (we don't watch subpages)
     WatchAction::doWatchOrUnwatch($this->watch, $ot, $user);
     WatchAction::doWatchOrUnwatch($this->watch, $nt, $user);
 }
    function execute($par)
    {
        if (!$this->userCanExecute($this->getUser())) {
            $this->displayRestrictionError();
            return;
        }
        $output = $this->getOutput();
        $this->setHeaders();
        $output->addModules('ext.createteams.SpecialPage');
        $report = '';
        $e = '';
        $log = '';
        $preview = '';
        $this->getTemplates();
        # Get request data from, e.g.
        # Do stuff
        # ...
        //$wgOut->setPageTitle( "create team templates" );
        $output->addWikiText('==' . wfMessage('createteams-create-teams-heading')->inContentLanguage()->text() . '==');
        $output->addWikiText(wfMessage('createteams-create-teams-desc')->inContentLanguage()->text());
        global $wgUser, $wgUploadNavigationUrl;
        if ($wgUploadNavigationUrl) {
            $uploadMessage = wfMessage('createteams-create-teams-image-helper-remote')->params($wgUploadNavigationUrl)->inContentLanguage()->parse();
        } else {
            $uploadMessage = wfMessage('createteams-create-teams-image-helper')->inContentLanguage()->parse();
        }
        $request = $this->getRequest();
        $reqTeam = $request->getText('team');
        $reqTeamslug = $request->getText('teamslug');
        $reqPagetitle = $request->getText('pagetitle');
        $reqImage = $request->getText('image');
        $reqTeamshort = $request->getText('teamshort');
        $reqOverwrite = $request->getBool('overwrite');
        $output->addHTML('<form name="createform" id="createform" method="post">
<table>
	<tr>
		<td class="input-label"><label for="team">' . wfMessage('createteams-create-teams-team-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="team" id="team" value="' . $reqTeam . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-team-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="team">' . wfMessage('createteams-create-teams-team-slug-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="teamslug" id="teamslug" value="' . $reqTeamslug . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-team-slug-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="pagetitle">' . wfMessage('createteams-create-teams-pagetitle-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="pagetitle" id="pagetitle" value="' . $reqPagetitle . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-pagetitle-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="teamshort">' . wfMessage('createteams-create-teams-teamshort-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="teamshort" id="teamshort" value="' . $reqTeamshort . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-teamshort-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="image">' . wfMessage('createteams-create-teams-image-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="image" id="image" value="' . $reqImage . '"></td>
		<td class="input-helper">' . $uploadMessage . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="overwrite">' . wfMessage('createteams-create-teams-overwrite-label')->inContentLanguage()->parse() . '</label></td>
		<td><input type="checkbox" name="overwrite" id="overwrite"' . ($reqOverwrite ? ' checked=""' : '') . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-overwrite-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td> </td>
		<td colspan="2">
			<input type="submit" name="createbutton" value="' . wfMessage('createteams-create-teams-create-button')->inContentLanguage()->text() . '"> 
			<input type="submit" name="createpreviewbutton" value="' . wfMessage('createteams-create-teams-preview-button')->inContentLanguage()->text() . '">
		</td>
	</tr>
</table>
</form>');
        if ($request->getBool('createbutton') || $request->getBool('createpreviewbutton')) {
            if ($reqImage == '') {
                $reqImage = $reqTeam . 'logo std.png';
            }
            $wikiimage = 'File:' . $reqImage;
            $imagetitle = Title::newFromText($wikiimage);
            $imagewikipage = new WikiFilePage($imagetitle);
            $imagefile = $imagewikipage->getFile();
            $test = $imagefile->exists();
            if ($reqTeam == '') {
                $e = wfMessage('createteams-create-teams-error-team-name-empty')->inContentLanguage()->text();
            } else {
                if (preg_match('/[a-z]*:\\/\\//', $reqTeam) == 1) {
                    $e = wfMessage('createteams-create-teams-error-team-name-url')->inContentLanguage()->text();
                } else {
                    if ($imagefile->exists() == false) {
                        $e = wfMessage('createteams-create-teams-error-image-not-found')->inContentLanguage()->text();
                    } else {
                        $lcname = strtolower($reqTeam);
                        $lcslug = strtolower($reqTeamslug);
                        if ($lcslug != '') {
                            $lcname = $lcslug;
                        }
                        $vars = array('name' => $reqTeam, 'shortname' => $reqTeamshort, 'link' => '', 'namewithlink' => '', 'image' => $reqImage);
                        if ($reqPagetitle != $reqTeam && $reqPagetitle != '') {
                            $vars['namewithlink'] = '[[' . $reqPagetitle . '|' . $reqTeam . ']]';
                            $vars['link'] = $reqPagetitle;
                        } else {
                            $vars['namewithlink'] = '[[' . $reqTeam . ']]';
                            $vars['link'] = $reqTeam;
                        }
                        if ($vars['image'] == '') {
                            $vars['image'] = $reqTeam . 'logo_std.png';
                        }
                        foreach ($this->templates as $prefix => $template) {
                            $contents["Template:{$prefix}/{$lcname}"] = self::makeTeamTemplate($template, $vars);
                        }
                        $preview = '{| class="createteams-preview"' . "\n";
                        foreach ($contents as $key => $value) {
                            $title = Title::newFromText($key);
                            $page = WikiPage::factory($title);
                            $content = \ContentHandler::makeContent($value, $page->getTitle(), CONTENT_MODEL_WIKITEXT);
                            if ($request->getBool('createpreviewbutton')) {
                                $preview .= '|-' . "\n" . '![[' . $key . ']]' . "\n" . '|' . $value . "\n";
                            } else {
                                $errors = $title->getUserPermissionsErrors('edit', $wgUser);
                                if (!$title->exists()) {
                                    $errors = array_merge($errors, $title->getUserPermissionsErrors('create', $wgUser));
                                }
                                if (count($errors)) {
                                    $e .= '*' . wfMessage('createteams-create-error-permission')->params($key)->inContentLanguage()->text() . "\n";
                                } else {
                                    if ($title->exists()) {
                                        if ($reqOverwrite) {
                                            $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-edit')->inContentLanguage()->text(), EDIT_UPDATE, false, $wgUser, null);
                                            if ($status->isOK()) {
                                                $log .= '*' . wfMessage('createteams-create-log-edit-success')->params($key)->inContentLanguage()->text() . "\n";
                                            } else {
                                                $e .= '*' . wfMessage('createteams-create-error-edit')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                            }
                                        } else {
                                            $e .= '*' . wfMessage('createteams-create-error-edit-already-exists')->params($key)->inContentLanguage()->text() . "\n";
                                        }
                                    } else {
                                        $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-creation')->inContentLanguage()->text(), EDIT_NEW, false, $wgUser, null);
                                        if ($status->isOK()) {
                                            $log .= '*' . wfMessage('createteams-create-log-create-success')->params($key)->inContentLanguage()->text() . "\n";
                                        } else {
                                            $e .= '*' . wfMessage('createteams-create-error-create')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                        }
                                    }
                                }
                            }
                        }
                        $preview .= '|}';
                    }
                }
            }
            if ($e == '') {
                $report = wfMessage('createteams-create-teams-report-success')->params(htmlspecialchars($reqTeam))->inContentLanguage()->text();
            } else {
                $report = $e;
            }
            $report .= '<div class="log">' . "\n" . $log . '</div>';
            if ($request->getBool('createpreviewbutton')) {
                $output->addWikiText('===' . wfMessage('createteams-preview-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($preview);
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            } else {
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            }
        }
        $reqHistoricaltemplate = $request->getText('historicaltemplate');
        $reqHistoricalteam = $request->getArray('historicalteam');
        $reqHistoricaltime = $request->getArray('historicaltime');
        if (is_array($reqHistoricalteam)) {
            foreach ($reqHistoricalteam as $index => $value) {
                if ($value == '') {
                    unset($reqHistoricalteam[$index]);
                }
            }
            $reqHistoricalteam = array_values($reqHistoricalteam);
        }
        if (is_array($reqHistoricaltime)) {
            foreach ($reqHistoricaltime as $index => $value) {
                if ($value == '') {
                    unset($reqHistoricaltime[$index]);
                }
            }
            $reqHistoricaltime = array_values($reqHistoricaltime);
        }
        $reqHistoricalteamlength = count($reqHistoricalteam);
        $reqHistoricaltimelength = count($reqHistoricaltime);
        $reqHistoricaloverwrite = $request->getBool('historicaloverwrite');
        $output->addWikiText('==' . wfMessage('createteams-create-historicalteam-heading')->inContentLanguage()->text() . '==');
        $historicalteamform = '<form name="createhistoricalform" id="createhistoricalform" method="post">
<table>
	<tr>
		<td> </td>
		<td colspan="2" class="input-helper">' . wfMessage('createteams-create-teams-historicaltemplate-info')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="historicaltemplate">' . wfMessage('createteams-create-teams-historicaltemplate-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="historicaltemplate" id="historicaltemplate" value="' . $reqHistoricaltemplate . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-historicaltemplate-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="historicalteam">' . wfMessage('createteams-create-teams-historicalteam-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="historicalteam[]" value="' . $reqHistoricalteam[0] . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-historicalteam-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="historicaltime">' . wfMessage('createteams-create-teams-historicaltime-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="historicaltime[]" value="' . $reqHistoricaltime[0] . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-historicaltime-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="historicalteam">' . wfMessage('createteams-create-teams-historicalteam-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="historicalteam[]" value="' . $reqHistoricalteam[1] . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-historicalteam-helper')->inContentLanguage()->parse() . '</td>
	</tr>';
        if ($reqHistoricalteamlength > 2) {
            for ($i = 2; $i < $reqHistoricalteamlength; $i++) {
                if ($reqHistoricaltime[$i - 1] != '' || $reqHistoricalteam[$i] != '') {
                    $historicalteamform .= '<tr>
						<td class="input-label"><label for="historicaltime">' . wfMessage('createteams-create-teams-historicaltime-label')->inContentLanguage()->parse() . '</label></td>
						<td class="input-container"><input type="text" name="historicaltime[]" value="' . $reqHistoricaltime[$i - 1] . '"></td>
						<td class="input-helper">' . wfMessage('createteams-create-teams-historicaltime-helper')->inContentLanguage()->parse() . '</td>
					</tr>
					<tr>
						<td class="input-label"><label for="historicalteam">' . wfMessage('createteams-create-teams-historicalteam-label')->inContentLanguage()->parse() . '</label></td>
						<td class="input-container"><input type="text" name="historicalteam[]" value="' . strtolower($reqHistoricalteam[$i]) . '"></td>
						<td class="input-helper">' . wfMessage('createteams-create-teams-historicalteam-helper')->inContentLanguage()->parse() . '</td>
					</tr>';
                }
            }
        }
        $historicalteamform .= '<tr id="historicaloverwriteline">
		<td class="input-label"><label for="historicaloverwrite">' . wfMessage('createteams-create-teams-historicaloverwrite-label')->inContentLanguage()->parse() . '</label></td>
		<td><input type="checkbox" name="historicaloverwrite" id="historicaloverwrite"' . ($reqHistoricaloverwrite ? ' checked=""' : '') . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-teams-historicaloverwrite-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td> </td>
		<td colspan="2">
			<input type="button" name="createhistoricaladd" id="createhistoricaladd" value="' . wfMessage('createteams-create-teams-historicaladd-button')->inContentLanguage()->text() . '"> 
			<input type="submit" name="createhistoricalbutton" value="' . wfMessage('createteams-create-teams-historicalcreate-button')->inContentLanguage()->text() . '"> 
			<input type="submit" name="createhistoricalpreviewbutton" value="' . wfMessage('createteams-create-teams-historicalpreview-button')->inContentLanguage()->text() . '">
		</td>
	</tr>
</table>
</form>';
        $output->addHTML($historicalteamform);
        if ($request->getBool('createhistoricalbutton') || $request->getBool('createhistoricalpreviewbutton')) {
            if ($reqHistoricalteamlength == $reqHistoricaltimelength + 1) {
                if ($reqHistoricaltemplate == '') {
                    $e = wfMessage('createteams-create-teams-error-team-name-empty')->inContentLanguage()->text();
                } else {
                    if (preg_match('/[a-z]*:\\/\\//', $reqHistoricaltemplate) == 1) {
                        $e = wfMessage('createteams-create-teams-error-team-name-url')->inContentLanguage()->text();
                    } else {
                        $lcname = strtolower($reqHistoricaltemplate);
                        foreach ($this->templates as $prefix => $template) {
                            $contents["Template:{$prefix}/{$lcname}"] = self::makeHistoricalTeamTemplate($prefix, $lcname, $reqHistoricalteam, $reqHistoricaltime, $reqHistoricalteamlength, $reqHistoricaltimelength);
                        }
                        $preview = '{| class="createteams-preview"' . "\n";
                        foreach ($contents as $key => $value) {
                            $title = Title::newFromText($key);
                            $page = WikiPage::factory($title);
                            $content = \ContentHandler::makeContent($value, $page->getTitle(), CONTENT_MODEL_WIKITEXT);
                            if ($request->getBool('createhistoricalpreviewbutton')) {
                                $preview .= '|-' . "\n" . '![[' . $key . ']]' . "\n" . '|' . $value . "\n";
                            } else {
                                $errors = $title->getUserPermissionsErrors('edit', $wgUser);
                                if (!$title->exists()) {
                                    $errors = array_merge($errors, $title->getUserPermissionsErrors('create', $wgUser));
                                }
                                if (count($errors)) {
                                    $e .= '*' . wfMessage('createteams-create-error-permission')->params($key)->inContentLanguage()->text() . "\n";
                                } else {
                                    if ($title->exists()) {
                                        if ($reqHistoricaloverwrite) {
                                            $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-edit')->inContentLanguage()->text(), EDIT_UPDATE, false, $wgUser, null);
                                            if ($status->isOK()) {
                                                $log .= '*' . wfMessage('createteams-create-log-edit-success')->params($key)->inContentLanguage()->text() . "\n";
                                            } else {
                                                $e .= '*' . wfMessage('createteams-create-error-edit')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                            }
                                        } else {
                                            $e .= '*' . wfMessage('createteams-create-error-edit-already-exists')->params($key)->inContentLanguage()->text() . "\n";
                                        }
                                    } else {
                                        $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-creation')->inContentLanguage()->text(), EDIT_NEW, false, $wgUser, null);
                                        if ($status->isOK()) {
                                            $log .= '*' . wfMessage('createteams-create-log-create-success')->params($key)->inContentLanguage()->text() . "\n";
                                        } else {
                                            $e .= '*' . wfMessage('createteams-create-error-create')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                $preview .= '|}';
            } else {
                $e .= '*' . wfMessage('createteams-create-error-historical-number-error')->inContentLanguage()->text() . "\n";
            }
            if ($e == '') {
                $report = wfMessage('createteams-create-teams-report-success')->params(htmlspecialchars($reqHistoricaltemplate))->inContentLanguage()->text();
            } else {
                $report = $e;
            }
            $report .= '<div class="log">' . "\n" . $log . '</div>';
            if ($request->getBool('createhistoricalpreviewbutton')) {
                $output->addWikiText('===' . wfMessage('createteams-preview-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($preview);
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            } else {
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            }
        }
        // Redirects
        $reqRedirect = $request->getText('redirect');
        $reqRedirectteam = $request->getText('redirectteam');
        $reqRedirectoverwrite = $request->getText('redirectoverwrite');
        $output->addWikiText('==' . wfMessage('createteams-create-redirects-heading')->inContentLanguage()->text() . '==');
        $redirectform = '<form name="redirectform" method="post">
<table>
	<tr>
		<td class="input-label"><label for="redirect">' . wfMessage('createteams-create-redirects-redirect-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="redirect" id="redirect" value="' . $reqRedirect . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-redirects-redirect-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="redirectteam">' . wfMessage('createteams-create-redirects-redirectteam-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="redirectteam" id="redirectteam" value="' . $reqRedirectteam . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-redirects-redirectteam-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="redirectoverwrite">' . wfMessage('createteams-create-redirects-redirectoverwrite-label')->inContentLanguage()->parse() . '</label></td>
		<td><input type="checkbox" name="redirectoverwrite" id="redirectoverwrite"' . ($reqRedirectoverwrite ? ' checked=""' : '') . '"></td>
		<td class="input-helper">' . wfMessage('createteams-create-redirects-redirectoverwrite-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td> </td>
		<td colspan="2">
			<input type="submit" name="redirectbutton" value="' . wfMessage('createteams-create-redirects-create-button')->inContentLanguage()->text() . '"> 
			<input type="submit" name="redirectpreviewbutton" value="' . wfMessage('createteams-create-redirects-preview-button')->inContentLanguage()->text() . '">
		</td>
	</tr>
</table>
</form>';
        $output->addHTML($redirectform);
        if ($request->getBool('redirectbutton') || $request->getBool('redirectpreviewbutton')) {
            if ($reqRedirect == '' || $reqRedirectteam == '') {
                $e = wfMessage('createteams-create-redirects-error-source-or-destination-empty')->inContentLanguage()->text();
            } else {
                foreach (array_keys($this->templates) as $prefix) {
                    $contents["Template:{$prefix}/" . strtolower($reqRedirect)] = "#REDIRECT [[Template:{$prefix}/" . strtolower($reqRedirectteam) . "]]";
                }
                $preview = '{| class="createteams-preview"' . "\n";
                foreach ($contents as $key => $value) {
                    $title = Title::newFromText($key);
                    $page = WikiPage::factory($title);
                    $content = \ContentHandler::makeContent($value, $page->getTitle(), CONTENT_MODEL_WIKITEXT);
                    if ($request->getBool('redirectpreviewbutton')) {
                        $preview .= '|-' . "\n" . '![[' . $key . ']]' . "\n" . '|<nowiki>' . $value . '</nowiki>' . "\n";
                    } else {
                        $errors = $title->getUserPermissionsErrors('edit', $wgUser);
                        if (!$title->exists()) {
                            $errors = array_merge($errors, $title->getUserPermissionsErrors('create', $wgUser));
                        }
                        if (count($errors)) {
                            $e .= '*' . wfMessage('createteams-create-error-permission')->params($key)->inContentLanguage()->text() . "\n";
                        } else {
                            if ($title->exists()) {
                                if ($reqRedirectoverwrite) {
                                    $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-edit')->inContentLanguage()->text(), EDIT_UPDATE, false, $wgUser, null);
                                    if ($status->isOK()) {
                                        $log .= '*' . wfMessage('createteams-create-log-edit-success')->params($key)->inContentLanguage()->text() . "\n";
                                    } else {
                                        $e .= '*' . wfMessage('createteams-create-error-edit')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                    }
                                } else {
                                    $e .= '*' . wfMessage('createteams-create-error-edit-already-exists')->params($key)->inContentLanguage()->text() . "\n";
                                }
                            } else {
                                $status = $page->doeditcontent($content, wfMessage('createteams-create-summary-creation')->inContentLanguage()->text(), EDIT_NEW, false, $wgUser, null);
                                if ($status->isOK()) {
                                    $log .= '*' . wfMessage('createteams-create-log-create-success')->params($key)->inContentLanguage()->text() . "\n";
                                } else {
                                    $e .= '*' . wfMessage('createteams-create-error-create')->params($key)->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                }
                            }
                        }
                    }
                }
                $preview .= '|}';
            }
            if ($e == '') {
                $report = wfMessage('createteams-create-redirects-report-success')->params(array(htmlspecialchars($reqRedirect), htmlspecialchars($reqRedirectteam)))->inContentLanguage()->text();
            } else {
                $report = $e;
            }
            $report .= '<div class="log">' . "\n" . $log . '</div>';
            if ($request->getBool('redirectpreviewbutton')) {
                $output->addWikiText('===' . wfMessage('createteams-preview-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($preview);
            } else {
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            }
        }
        // Moves
        $reqMove = $request->getText('move');
        $reqMoveto = $request->getText('moveto');
        $output->addWikiText('==' . wfMessage('createteams-move-heading')->inContentLanguage()->text() . '==');
        $moveform = '<form name="moveform" method="post">
<table>
	<tr>
		<td class="input-label"><label for="move">' . wfMessage('createteams-move-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="move" id="move" value="' . $reqMove . '"></td>
		<td class="input-helper">' . wfMessage('createteams-move-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td class="input-label"><label for="moveto">' . wfMessage('createteams-move-moveto-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container"><input type="text" name="moveto" id="moveto" value="' . $reqMoveto . '"></td>
		<td class="input-helper">' . wfMessage('createteams-move-moveto-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td> </td>
		<td colspan="2">
			<input type="submit" name="movebutton" value="' . wfMessage('createteams-move-button')->inContentLanguage()->text() . '"> 
			<input type="submit" name="movepreviewbutton" value="' . wfMessage('createteams-move-preview-button')->inContentLanguage()->text() . '">
		</td>
	</tr>
</table>
</form>';
        $output->addHTML($moveform);
        if ($request->getBool('movebutton') || $request->getBool('movepreviewbutton')) {
            if ($reqMove == '' || $reqMoveto == '') {
                $e = wfMessage('createteams-move-error-source-or-destination-empty')->inContentLanguage()->text();
            } else {
                $preview = '{| class="createteams-preview"' . "\n";
                foreach (array_keys($this->templates) as $prefix) {
                    $oldTitle = Title::newFromText("Template:{$prefix}/" . strtolower($reqMove));
                    $newTitle = Title::newFromText("Template:{$prefix}/" . strtolower($reqMoveto));
                    if ($request->getBool('movepreviewbutton')) {
                        $preview .= '|-' . "\n" . "![[Template:{$prefix}/" . strtolower($reqMove) . ']]' . "\n" . '|&rarr;' . "\n" . "|[[Template:{$prefix}/" . strtolower($reqMoveto) . ']]' . "\n";
                    } else {
                        $errors = $oldTitle->getUserPermissionsErrors('move', $wgUser);
                        if (!$oldTitle->exists() || !$newTitle->exists()) {
                            $errors = array_merge($errors, $oldTitle->getUserPermissionsErrors('create', $wgUser));
                        }
                        if (count($errors)) {
                            $e .= '*' . wfMessage('createteams-move-error-permission')->params("Template:{$prefix}/" . strtolower($reqMove))->inContentLanguage()->text() . "\n";
                        } else {
                            if (!$oldTitle->exists()) {
                                $e .= '*' . wfMessage('createteams-move-error-source-does-not-exists')->params("Template:{$prefix}/" . strtolower($reqMove))->inContentLanguage()->text() . "\n";
                            } elseif ($newTitle->exists()) {
                                $e .= '*' . wfMessage('createteams-move-error-target-already-exists')->params("Template:{$prefix}/" . strtolower($reqMoveto))->inContentLanguage()->text() . "\n";
                            } else {
                                $movePage = new MovePage($oldTitle, $newTitle);
                                $status = $movePage->move($wgUser, wfMessage('createteams-move-summary')->inContentLanguage()->text(), false);
                                if ($status->isOK()) {
                                    $log .= '*' . wfMessage('createteams-move-log-create-success')->params("Template:{$prefix}/" . strtolower($reqMove), "Template:{$prefix}/" . strtolower($reqMoveto))->inContentLanguage()->text() . "\n";
                                } else {
                                    $e .= '*' . wfMessage('createteams-move-error-move')->params("Template:{$prefix}/" . strtolower($reqMove))->inContentLanguage()->text() . $status->getWikiText() . "\n";
                                }
                            }
                        }
                    }
                }
                $preview .= '|}';
            }
            if ($e == '') {
                $report = wfMessage('createteams-move-report-success')->params(array(htmlspecialchars($reqMove), htmlspecialchars($reqMoveto)))->inContentLanguage()->text();
            } else {
                $report = $e;
            }
            $report .= '<div class="log">' . "\n" . $log . '</div>';
            if ($request->getBool('movepreviewbutton')) {
                $output->addWikiText('===' . wfMessage('createteams-preview-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($preview);
            } else {
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            }
        }
        // Deletions
        if ($wgUser->isAllowed('delete')) {
            // stuff only admins are allowed to see
            $reqDeletepreviewteam = $request->getText('deletepreviewteam');
            $reqDeleteteam = $request->getText('deleteteam');
            $output->addWikiText('==' . wfMessage('createteams-delete-teams-heading')->inContentLanguage()->text() . '==');
            $deleteForm = '<form name="delete-form" method="post">
<table>
	<tr>
		<td class="input-label"><label for="deletepreviewteam">' . wfMessage('createteams-delete-teams-deletepreviewteam-label')->inContentLanguage()->parse() . '</label></td>
		<td class="input-container">
			<input type="text" name="deletepreviewteam" id="deletepreviewteam" value="' . $reqDeletepreviewteam . '">
		</td>
		<td class="input-helper">' . wfMessage('createteams-delete-teams-deletepreviewteam-helper')->inContentLanguage()->parse() . '</td>
	</tr>
	<tr>
		<td> </td>
		<td>
			<input type="submit" name="deletepreviewbutton" value="' . wfMessage('createteams-delete-teams-preview-button')->inContentLanguage()->text() . '">
		</td>
		<td class="input-helper">' . wfMessage('createteams-delete-teams-deletebutton-helper')->inContentLanguage()->parse() . '</td>
	</tr>
</table>
</form>';
            $output->addHTML($deleteForm);
            if ($request->getBool('deletebutton')) {
                if ($reqDeleteteam == '') {
                    $e = wfMessage('createteams-delete-teams-error-team-name-empty')->inContentLanguage()->text();
                } else {
                    foreach (array_keys($this->templates) as $prefix) {
                        $deltemplate[$prefix] = "Template:{$prefix}/" . strtolower($reqDeleteteam);
                    }
                    foreach ($deltemplate as $value) {
                        $title = Title::newFromText($value);
                        $page = WikiPage::factory($title);
                        $id = $page->getId();
                        $errors = $title->getUserPermissionsErrors('delete', $wgUser);
                        if (count($errors)) {
                            $e .= '*' . wfMessage('createteams-delete-error-permission')->params($value)->inContentLanguage()->text() . "\n";
                        } else {
                            if (!$title->exists()) {
                                $e .= '*' . wfMessage('createteams-delete-error-does-not-exist')->params($value)->inContentLanguage()->text() . "\n";
                            } else {
                                if ($page->doDeleteArticle(wfMessage('createteams-delete-summary-deletion')->inContentLanguage()->text(), false, $id, '', $wgUser)) {
                                    $log .= '*' . wfMessage('createteams-delete-log-deletion-success')->params($value)->inContentLanguage()->text() . "\n";
                                } else {
                                    $e .= '*' . wfMessage('createteams-delete-error-deletion')->params($value)->inContentLanguage()->text() . "\n";
                                }
                            }
                        }
                    }
                }
                if ($e == '') {
                    $report = $report = wfMessage('createteams-delete-teams-report-success')->params(htmlspecialchars($reqDeleteteam))->inContentLanguage()->text();
                } else {
                    $report = $e;
                }
                $report .= '<div class="log">' . "\n" . $log . '</div>';
                $output->addWikiText('===' . wfMessage('createteams-report-heading')->inContentLanguage()->text() . '===');
                $output->addWikiText($report);
            } else {
                if ($request->getBool('deletepreviewbutton')) {
                    if ($reqDeletepreviewteam == '') {
                        $preview = wfMessage('createteams-delete-teams-error-team-name-empty')->inContentLanguage()->text();
                    } else {
                        foreach (array_keys($this->templates) as $prefix) {
                            $deltemplate[$prefix] = "Template:{$prefix}/" . strtolower($reqDeletepreviewteam);
                        }
                        foreach ($deltemplate as $value) {
                            $title = Title::newFromText($value);
                            $page = WikiPage::factory($title);
                            $id = $page->getId();
                            $errors = $title->getUserPermissionsErrors('delete', $wgUser);
                            if (count($errors)) {
                                $preview .= '*' . wfMessage('createteams-delete-error-permission')->params($value)->inContentLanguage()->text() . "\n";
                            } else {
                                if (!$title->exists()) {
                                    $preview .= '*' . wfMessage('createteams-delete-error-does-not-exist')->params($value)->inContentLanguage()->text() . "\n";
                                } else {
                                    $preview .= '*' . wfMessage('createteams-delete-teams-preview-deletion')->params($value)->inContentLanguage()->text() . "\n";
                                }
                            }
                        }
                    }
                    $output->addWikiText('===' . wfMessage('createteams-preview-heading')->inContentLanguage()->text() . '===');
                    $output->addWikiText($preview);
                    if ($reqDeletepreviewteam != '') {
                        $deleteConfirmForm = '<form name="delete-confirm-form" method="post">
	<input type="text" name="deleteteam" value="' . $reqDeletepreviewteam . '" readonly>
	<input type="submit" name="deletebutton" value="' . wfMessage('createteams-delete-teams-delete-button')->inContentLanguage()->text() . '">
	<p class="warning">' . wfMessage('createteams-delete-teams-warning-deletion')->params($value)->inContentLanguage()->text() . '</p>
</form>';
                        $output->addWikiText('===' . wfMessage('createteams-delete-teams-confirm-deletion-heading')->inContentLanguage()->text() . '===');
                        $output->addHTML($deleteConfirmForm);
                    }
                }
            }
        }
    }
Beispiel #9
0
 /**
  * @param Title $current
  * @param Title $target
  * @param string $reason
  * @param bool $createRedirect
  * @return bool Success
  */
 private function movePage(Title $current, Title $target, $reason, $createRedirect)
 {
     $display = $current->getPrefixedText();
     $targetDisplay = $target->getPrefixedText();
     if ($this->dryrun) {
         $this->output("\"{$display}\" -> \"{$targetDisplay}\": DRY RUN, NOT MOVED\n");
         $ok = 'OK';
     } else {
         $mp = new MovePage($current, $target);
         $status = $mp->move($this->user, $reason, $createRedirect);
         $ok = $status->isOK() ? 'OK' : $status->getWikiText(false, false, 'en');
         $this->output("\"{$display}\" -> \"{$targetDisplay}\": {$ok}\n");
     }
     return $ok === 'OK';
 }