function undelete() { if ($this->getConfig()->get('UploadMaintenance') && $this->mTargetObj->getNamespace() == NS_FILE) { throw new ErrorPageError('undelete-error', 'filedelete-maintenance'); } $this->checkReadOnly(); $out = $this->getOutput(); $archive = new PageArchive($this->mTargetObj, $this->getConfig()); Hooks::run('UndeleteForm::undelete', array(&$archive, $this->mTargetObj)); $ok = $archive->undelete($this->mTargetTimestamp, $this->mComment, $this->mFileVersions, $this->mUnsuppress, $this->getUser()); if (is_array($ok)) { if ($ok[1]) { // Undeleted file count Hooks::run('FileUndeleteComplete', array($this->mTargetObj, $this->mFileVersions, $this->getUser(), $this->mComment)); } $link = Linker::linkKnown($this->mTargetObj); $out->addHTML($this->msg('undeletedpage')->rawParams($link)->parse()); } else { $out->setPageTitle($this->msg('undelete-error')); } // Show revision undeletion warnings and errors $status = $archive->getRevisionStatus(); if ($status && !$status->isGood()) { $out->addWikiText('<div class="error">' . $status->getWikiText('cannotundelete', 'cannotundelete') . '</div>'); } // Show file undeletion warnings and errors $status = $archive->getFileStatus(); if ($status && !$status->isGood()) { $out->addWikiText('<div class="error">' . $status->getWikiText('undelete-error-short', 'undelete-error-long') . '</div>'); } }