function showLogExtract($username, $type, &$out) { global $wgOut; # Show relevant lines from the logs: $wgOut->addHtml(Xml::element('h2', null, LogPage::logName($type)) . "\n"); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $username->getPrefixedText(), 'type' => $type)))); $logViewer->showList($out); }
/** * @param OutputPage $out * @access private */ function showLogExtract(&$out) { # Show relevant lines from the deletion log: $out->addHTML("<h2>" . htmlspecialchars(LogPage::logName('protect')) . "</h2>\n"); require_once 'SpecialLog.php'; $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $this->mTitle->getPrefixedText(), 'type' => 'protect')))); $logViewer->showList($out); }
function showLogFragment(&$out, &$title) { $out->addHtml(wfElement('h2', NULL, LogPage::logName('block'))); $request = new FauxRequest(array('page' => $title->getPrefixedText(), 'type' => 'block')); $viewer = new LogViewer(new LogReader($request)); $viewer->showList($out); }
function showHistory() { global $wgLang, $wgContLang, $wgUser, $wgOut; $sk = $wgUser->getSkin(); if ($this->mAllowed) { $wgOut->setPagetitle(wfMsg("undeletepage")); } else { $wgOut->setPagetitle(wfMsg('viewdeletedpage')); } $archive = new PageArchive($this->mTargetObj); /* $text = $archive->getLastRevisionText(); if( is_null( $text ) ) { $wgOut->addWikiMsg( "nohistory" ); return; } */ if ($this->mAllowed) { $wgOut->addWikiMsg("undeletehistory"); } else { $wgOut->addWikiMsg("undeletehistorynoadmin"); } # List all stored revisions $revisions = $archive->listRevisions(); $files = $archive->listFiles(); $haveRevisions = $revisions && $revisions->numRows() > 0; $haveFiles = $files && $files->numRows() > 0; # Batch existence check on user and talk pages if ($haveRevisions) { $batch = new LinkBatch(); while ($row = $revisions->fetchObject()) { $batch->addObj(Title::makeTitleSafe(NS_USER, $row->ar_user_text)); $batch->addObj(Title::makeTitleSafe(NS_USER_TALK, $row->ar_user_text)); } $batch->execute(); $revisions->seek(0); } if ($haveFiles) { $batch = new LinkBatch(); while ($row = $files->fetchObject()) { $batch->addObj(Title::makeTitleSafe(NS_USER, $row->fa_user_text)); $batch->addObj(Title::makeTitleSafe(NS_USER_TALK, $row->fa_user_text)); } $batch->execute(); $files->seek(0); } if ($this->mAllowed) { $titleObj = SpecialPage::getTitleFor("Undelete"); $action = $titleObj->getLocalURL("action=submit"); # Start the form here $top = Xml::openElement('form', array('method' => 'post', 'action' => $action, 'id' => 'undelete')); $wgOut->addHtml($top); } # Show relevant lines from the deletion log: $wgOut->addHTML("<h2>" . htmlspecialchars(LogPage::logName('delete')) . "</h2>\n"); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $this->mTargetObj->getPrefixedText(), 'type' => 'delete'))), LogViewer::NO_ACTION_LINK); $logViewer->showList($wgOut); if ($this->mAllowed && ($haveRevisions || $haveFiles)) { # Format the user-visible controls (comment field, submission button) # in a nice little table $align = $wgContLang->isRtl() ? 'left' : 'right'; $table = Xml::openElement('fieldset') . Xml::openElement('table') . "<tr>\n\t\t\t\t\t\t<td colspan='2'>" . wfMsgWikiHtml('undeleteextrahelp') . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='{$align}'>" . Xml::label(wfMsg('undeletecomment'), 'wpComment') . "</td>\n\t\t\t\t\t\t<td>" . Xml::input('wpComment', 50, $this->mComment) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td>" . Xml::submitButton(wfMsg('undeletebtn'), array('name' => 'restore', 'id' => 'mw-undelete-submit')) . Xml::element('input', array('type' => 'reset', 'value' => wfMsg('undeletereset'), 'id' => 'mw-undelete-reset')) . "</td>\n\t\t\t\t\t</tr>" . Xml::closeElement('table') . Xml::closeElement('fieldset'); $wgOut->addHtml($table); } $wgOut->addHTML("<h2>" . htmlspecialchars(wfMsg("history")) . "</h2>\n"); if ($haveRevisions) { # The page's stored (deleted) history: $wgOut->addHTML("<ul>"); $target = urlencode($this->mTarget); $remaining = $revisions->numRows(); $earliestLiveTime = $this->getEarliestTime($this->mTargetObj); while ($row = $revisions->fetchObject()) { $remaining--; $ts = wfTimestamp(TS_MW, $row->ar_timestamp); if ($this->mAllowed) { $checkBox = Xml::check("ts{$ts}"); $pageLink = $sk->makeKnownLinkObj($titleObj, $wgLang->timeanddate($ts, true), "target={$target}×tamp={$ts}"); if ($remaining > 0 || $earliestLiveTime && $ts > $earliestLiveTime) { $diffLink = '(' . $sk->makeKnownLinkObj($titleObj, wfMsgHtml('diff'), "target={$target}×tamp={$ts}&diff=prev") . ')'; } else { // No older revision to diff against $diffLink = ''; } } else { $checkBox = ''; $pageLink = $wgLang->timeanddate($ts, true); $diffLink = ''; } $userLink = $sk->userLink($row->ar_user, $row->ar_user_text) . $sk->userToolLinks($row->ar_user, $row->ar_user_text); $stxt = ''; if (!is_null($size = $row->ar_len)) { if ($size == 0) { $stxt = wfMsgHtml('historyempty'); } else { $stxt = wfMsgHtml('historysize', $wgLang->formatNum($size)); } } $comment = $sk->commentBlock($row->ar_comment); $wgOut->addHTML("<li>{$checkBox} {$pageLink} {$diffLink} . . {$userLink} {$stxt} {$comment}</li>\n"); } $revisions->free(); $wgOut->addHTML("</ul>"); } else { $wgOut->addWikiMsg("nohistory"); } if ($haveFiles) { $wgOut->addHtml("<h2>" . wfMsgHtml('filehist') . "</h2>\n"); $wgOut->addHtml("<ul>"); while ($row = $files->fetchObject()) { $ts = wfTimestamp(TS_MW, $row->fa_timestamp); if ($this->mAllowed && $row->fa_storage_key) { $checkBox = Xml::check("fileid" . $row->fa_id); $key = urlencode($row->fa_storage_key); $target = urlencode($this->mTarget); $pageLink = $sk->makeKnownLinkObj($titleObj, $wgLang->timeanddate($ts, true), "target={$target}&file={$key}"); } else { $checkBox = ''; $pageLink = $wgLang->timeanddate($ts, true); } $userLink = $sk->userLink($row->fa_user, $row->fa_user_text) . $sk->userToolLinks($row->fa_user, $row->fa_user_text); $data = wfMsgHtml('widthheight', $wgLang->formatNum($row->fa_width), $wgLang->formatNum($row->fa_height)) . ' (' . wfMsgHtml('nbytes', $wgLang->formatNum($row->fa_size)) . ')'; $comment = $sk->commentBlock($row->fa_description); $wgOut->addHTML("<li>{$checkBox} {$pageLink} . . {$userLink} {$data} {$comment}</li>\n"); } $files->free(); $wgOut->addHTML("</ul>"); } if ($this->mAllowed) { # Slip in the hidden controls here $misc = Xml::hidden('target', $this->mTarget); $misc .= Xml::hidden('wpEditToken', $wgUser->editToken()); $misc .= Xml::closeElement('form'); $wgOut->addHtml($misc); } return true; }
function showHistory() { global $wgLang, $wgUser, $wgOut; $sk = $wgUser->getSkin(); if ($this->mAllowed) { $wgOut->setPagetitle(wfMsg("undeletepage")); } else { $wgOut->setPagetitle(wfMsg('viewdeletedpage')); } $archive = new PageArchive($this->mTargetObj); $text = $archive->getLastRevisionText(); /* if( is_null( $text ) ) { $wgOut->addWikiText( wfMsg( "nohistory" ) ); return; } */ if ($this->mAllowed) { $wgOut->addWikiText(wfMsg("undeletehistory")); } else { $wgOut->addWikiText(wfMsg("undeletehistorynoadmin")); } # List all stored revisions $revisions = $archive->listRevisions(); $files = $archive->listFiles(); $haveRevisions = $revisions && $revisions->numRows() > 0; $haveFiles = $files && $files->numRows() > 0; # Batch existence check on user and talk pages if ($haveRevisions) { $batch = new LinkBatch(); while ($row = $revisions->fetchObject()) { $batch->addObj(Title::makeTitleSafe(NS_USER, $row->ar_user_text)); $batch->addObj(Title::makeTitleSafe(NS_USER_TALK, $row->ar_user_text)); } $batch->execute(); $revisions->seek(0); } if ($haveFiles) { $batch = new LinkBatch(); while ($row = $files->fetchObject()) { $batch->addObj(Title::makeTitleSafe(NS_USER, $row->fa_user_text)); $batch->addObj(Title::makeTitleSafe(NS_USER_TALK, $row->fa_user_text)); } $batch->execute(); $files->seek(0); } if ($this->mAllowed) { $titleObj = Title::makeTitle(NS_SPECIAL, "Undelete"); $action = $titleObj->getLocalURL("action=submit"); # Start the form here $top = wfOpenElement('form', array('method' => 'post', 'action' => $action, 'id' => 'undelete')); $wgOut->addHtml($top); } # Show relevant lines from the deletion log: $wgOut->addHTML("<h2>" . htmlspecialchars(LogPage::logName('delete')) . "</h2>\n"); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $this->mTargetObj->getPrefixedText(), 'type' => 'delete')))); $logViewer->showList($wgOut); if ($this->mAllowed && ($haveRevisions || $haveFiles)) { # Format the user-visible controls (comment field, submission button) # in a nice little table $table = '<fieldset><table><tr>'; $table .= '<td colspan="2">' . wfMsgWikiHtml('undeleteextrahelp') . '</td></tr><tr>'; $table .= '<td align="right"><strong>' . wfMsgHtml('undeletecomment') . '</strong></td>'; $table .= '<td>' . wfInput('wpComment', 50, $this->mComment) . '</td>'; $table .= '</tr><tr><td> </td><td>'; $table .= wfSubmitButton(wfMsg('undeletebtn'), array('name' => 'restore')); $table .= wfElement('input', array('type' => 'reset', 'value' => wfMsg('undeletereset'))); $table .= '</td></tr></table></fieldset>'; $wgOut->addHtml($table); } $wgOut->addHTML("<h2>" . htmlspecialchars(wfMsg("history")) . "</h2>\n"); if ($haveRevisions) { # The page's stored (deleted) history: $wgOut->addHTML("<ul>"); $target = urlencode($this->mTarget); while ($row = $revisions->fetchObject()) { $ts = wfTimestamp(TS_MW, $row->ar_timestamp); if ($this->mAllowed) { $checkBox = wfCheck("ts{$ts}"); $pageLink = $sk->makeKnownLinkObj($titleObj, $wgLang->timeanddate($ts, true), "target={$target}×tamp={$ts}"); } else { $checkBox = ''; $pageLink = $wgLang->timeanddate($ts, true); } $userLink = $sk->userLink($row->ar_user, $row->ar_user_text) . $sk->userToolLinks($row->ar_user, $row->ar_user_text); $comment = $sk->commentBlock($row->ar_comment); $wgOut->addHTML("<li>{$checkBox} {$pageLink} . . {$userLink} {$comment}</li>\n"); } $revisions->free(); $wgOut->addHTML("</ul>"); } else { $wgOut->addWikiText(wfMsg("nohistory")); } if ($haveFiles) { $wgOut->addHtml("<h2>" . wfMsgHtml('imghistory') . "</h2>\n"); $wgOut->addHtml("<ul>"); while ($row = $files->fetchObject()) { $ts = wfTimestamp(TS_MW, $row->fa_timestamp); if ($this->mAllowed && $row->fa_storage_key) { $checkBox = wfCheck("fileid" . $row->fa_id); $key = urlencode($row->fa_storage_key); $target = urlencode($this->mTarget); $pageLink = $sk->makeKnownLinkObj($titleObj, $wgLang->timeanddate($ts, true), "target={$target}&file={$key}"); } else { $checkBox = ''; $pageLink = $wgLang->timeanddate($ts, true); } $userLink = $sk->userLink($row->fa_user, $row->fa_user_text) . $sk->userToolLinks($row->fa_user, $row->fa_user_text); $data = wfMsgHtml('widthheight', $wgLang->formatNum($row->fa_width), $wgLang->formatNum($row->fa_height)) . ' (' . wfMsgHtml('nbytes', $wgLang->formatNum($row->fa_size)) . ')'; $comment = $sk->commentBlock($row->fa_description); $wgOut->addHTML("<li>{$checkBox} {$pageLink} . . {$userLink} {$data} {$comment}</li>\n"); } $files->free(); $wgOut->addHTML("</ul>"); } if ($this->mAllowed) { # Slip in the hidden controls here $misc = wfHidden('target', $this->mTarget); $misc .= wfHidden('wpEditToken', $wgUser->editToken()); $wgOut->addHtml($misc . '</form>'); } return true; }
/** * Show deletion log fragments pertaining to the current file */ private function showLogEntries() { global $wgOut; $wgOut->addHtml('<h2>' . htmlspecialchars(LogPage::logName('delete')) . "</h2>\n"); $reader = new LogViewer(new LogReader(new FauxRequest(array('type' => 'delete', 'page' => $this->title->getPrefixedText())))); $reader->showList($wgOut); }
/** * If there are rows in the deletion log for this page, show them, * along with a nice little note for the user * * @param OutputPage $out */ private function showDeletionLog($out) { $title = $this->mTitle; $reader = new LogReader(new FauxRequest(array('page' => $title->getPrefixedText(), 'type' => 'delete'))); if ($reader->hasRows()) { $out->addHtml('<div id="mw-recreate-deleted-warn">'); $out->addWikiMsg('recreate-deleted-warn'); $viewer = new LogViewer($reader); $viewer->showList($out); $out->addHtml('</div>'); } }
/** * Show a rights log fragment for the specified user * * @param User $user User to show log for * @param OutputPage $output OutputPage to use */ protected function showLogFragment($user, $output) { $viewer = new LogViewer(new LogReader(new FauxRequest(array('type' => 'rights', 'page' => $user->getUserPage()->getPrefixedText())))); $output->addHtml("<h2>" . htmlspecialchars(LogPage::logName('rights')) . "</h2>\n"); $viewer->showList($output); }
/** * Show the bot status log entries for the specified user * @param $user User to show the log for */ function showLogEntries(&$user, $logtype = 'makebot') { global $wgOut; $title = $user->getUserPage(); $wgOut->addHTML(Xml::element('h2', null, htmlspecialchars(LogPage::logName($logtype)))); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $title->getPrefixedText(), 'type' => $logtype)))); $logViewer->showList($wgOut); }
private function showHistory() { global $wgLang, $wgContLang, $wgUser, $wgOut; $this->sk = $wgUser->getSkin(); $wgOut->setPagetitle(wfMsg("mergehistory")); $this->showMergeForm(); # List all stored revisions $revisions = new MergeHistoryPager($this, array(), $this->mTargetObj, $this->mDestObj); $haveRevisions = $revisions && $revisions->getNumRows() > 0; $titleObj = SpecialPage::getTitleFor("Mergehistory"); $action = $titleObj->getLocalURL("action=submit"); # Start the form here $top = Xml::openElement('form', array('method' => 'post', 'action' => $action, 'id' => 'merge')); $wgOut->addHtml($top); if ($haveRevisions) { # Format the user-visible controls (comment field, submission button) # in a nice little table $align = $wgContLang->isRtl() ? 'left' : 'right'; $table = Xml::openElement('fieldset') . Xml::openElement('table') . "<tr>\n\t\t\t\t\t\t<td colspan='2'>" . wfMsgExt('mergehistory-merge', array('parseinline'), $this->mTargetObj->getPrefixedText(), $this->mDestObj->getPrefixedText()) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='{$align}'>" . Xml::label(wfMsg('undeletecomment'), 'wpComment') . "</td>\n\t\t\t\t\t\t<td>" . Xml::input('wpComment', 50, $this->mComment) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td>" . Xml::submitButton(wfMsg('mergehistory-submit'), array('name' => 'merge', 'id' => 'mw-merge-submit')) . "</td>\n\t\t\t\t\t</tr>" . Xml::closeElement('table') . Xml::closeElement('fieldset'); $wgOut->addHtml($table); } $wgOut->addHTML("<h2 id=\"mw-mergehistory\">" . wfMsgHtml("mergehistory-list") . "</h2>\n"); if ($haveRevisions) { $wgOut->addHTML($revisions->getNavigationBar()); $wgOut->addHTML("<ul>"); $wgOut->addHTML($revisions->getBody()); $wgOut->addHTML("</ul>"); $wgOut->addHTML($revisions->getNavigationBar()); } else { $wgOut->addWikiMsg("mergehistory-empty"); } # Show relevant lines from the deletion log: $wgOut->addHTML("<h2>" . htmlspecialchars(LogPage::logName('merge')) . "</h2>\n"); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $this->mTargetObj->getPrefixedText(), 'type' => 'merge')))); $logViewer->showList($wgOut); # Slip in the hidden controls here # When we submit, go by page ID to avoid some nasty but unlikely collisions. # Such would happen if a page was renamed after the form loaded, but before submit $misc = Xml::hidden('targetID', $this->mTargetObj->getArticleID()); $misc .= Xml::hidden('destID', $this->mDestObj->getArticleID()); $misc .= Xml::hidden('target', $this->mTarget); $misc .= Xml::hidden('dest', $this->mDest); $misc .= Xml::hidden('wpEditToken', $wgUser->editToken()); $misc .= Xml::closeElement('form'); $wgOut->addHtml($misc); return true; }
/** * Show relevant lines from the deletion log */ function showLogExtract($out) { $out->addHtml('<h2>' . htmlspecialchars(LogPage::logName('delete')) . '</h2>'); $logViewer = new LogViewer(new LogReader(new FauxRequest(array('page' => $this->mTitle->getPrefixedText(), 'type' => 'delete')))); $logViewer->showList($out); }
/** * If there are rows in the deletion log for this file, show them, * along with a nice little note for the user * * @param OutputPage $out * @param string filename */ private function showDeletionLog($out, $filename) { $reader = new LogReader(new FauxRequest(array('page' => $filename, 'type' => 'delete'))); if ($reader->hasRows()) { $out->addHtml('<div id="mw-upload-deleted-warn">'); $out->addWikiMsg('upload-wasdeleted'); $viewer = new LogViewer($reader); $viewer->showList($out); $out->addHtml('</div>'); } }