if( is_null( $this->mRevision ) ) {
// FIXME: This would be a nice place to load the 'no such page' text.
} else {
- $this->setOldSubtitle( isset($this->mOldId) ? $this->mOldId : $oldid );
+ $this->setOldSubtitle( $oldid );
# Allow admins to see deleted content if explicitly requested
if( $this->mRevision->isDeleted( Revision::DELETED_TEXT ) ) {
- if( !$unhide || !$this->mRevision->userCan(Revision::DELETED_TEXT) ) {
- $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1</div>\n", 'rev-deleted-text-permission' );
+ // If the user is not allowed to see it...
+ if( !$this->mRevision->userCan(Revision::DELETED_TEXT) ) {
+ $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1</div>\n",
+ 'rev-deleted-text-permission' );
$wgOut->setPageTitle( $this->mTitle->getPrefixedText() );
wfProfileOut( __METHOD__ );
return;
+ // If the user needs to confirm that they want to see it...
+ } else if( !$unhide ) {
+ # Give explanation and add a link to view the revision...
+ $link = $this->mTitle->getFullUrl( "oldid={$oldid}".
+ '&unhide=1&token='.urlencode( $wgUser->editToken($oldid) ) );
+ $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1</div>\n",
+ array('rev-deleted-text-unhide',$link) );
+ $wgOut->setPageTitle( $this->mTitle->getPrefixedText() );
+ wfProfileOut( __METHOD__ );
+ return;
+ // We are allowed to see...
} else {
- $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1</div>\n", 'rev-deleted-text-view' );
- // and we are allowed to see...
+ $wgOut->wrapWikiMsg( "<div class='mw-warning plainlinks'>\n$1</div>\n",
+ 'rev-deleted-text-view' );
}
}
// Is this the current revision and otherwise cacheable? Try the parser cache...
* @param bool $firstInList Whether this row corresponds to the first displayed on this history page.
* @return string HTML output for the row
*/
- function historyLine( $row, $next, $counter = '', $notificationtimestamp = false, $latest = false, $firstInList = false ) {
+ function historyLine( $row, $next, $counter = '', $notificationtimestamp = false,
+ $latest = false, $firstInList = false )
+ {
global $wgUser, $wgLang;
$rev = new Revision( $row );
$rev->setTitle( $this->mTitle );
if( $wgUser->isAllowed( 'deleterevision' ) ) {
if( $latest ) {
// We don't currently handle well changing the top revision's settings
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.$this->message['rev-delundel'].')' );
+ $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.
+ $this->message['rev-delundel'].')' );
} else if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
// If revision was hidden from sysops
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.$this->message['rev-delundel'].')' );
+ $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.
+ $this->message['rev-delundel'].')' );
} else {
$query = array( 'target' => $this->mTitle->getPrefixedDbkey(),
'oldid' => $rev->getId()
function revLink( $rev ) {
global $wgLang;
$date = $wgLang->timeanddate( wfTimestamp(TS_MW, $rev->getTimestamp()), true );
- if( !$rev->isDeleted( Revision::DELETED_TEXT ) ) {
+ if( $rev->userCan( Revision::DELETED_TEXT ) ) {
$link = $this->mSkin->makeKnownLinkObj( $this->mTitle, $date, "oldid=" . $rev->getId() );
} else {
- $link = '<span class="history-deleted">' . $date . '</span>';
+ $link = $date;
+ }
+ if( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+ $link = "<span class=\"history-deleted\">$link</span>";
}
return $link;
}
*/
function curLink( $rev, $latest ) {
$cur = $this->message['cur'];
- if( $latest || $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+ if( $latest || !$rev->userCan( Revision::DELETED_TEXT ) ) {
return $cur;
} else {
return $this->mSkin->makeKnownLinkObj( $this->mTitle, $cur,
# Next row probably exists but is unknown, use an oldid=prev link
return $this->mSkin->makeKnownLinkObj( $this->mTitle, $last,
"diff=" . $prevRev->getId() . "&oldid=prev" );
- } elseif( $prevRev->isDeleted(Revision::DELETED_TEXT) || $nextRev->isDeleted(Revision::DELETED_TEXT) ) {
+ } elseif( !$prevRev->userCan(Revision::DELETED_TEXT) || !$nextRev->userCan(Revision::DELETED_TEXT) ) {
return $last;
} else {
return $this->mSkin->makeKnownLinkObj( $this->mTitle, $last,
$checkmark = array( 'checked' => 'checked' );
} else {
# Check visibility of old revisions
- if( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+ if( !$rev->userCan( Revision::DELETED_TEXT ) ) {
$radio['disabled'] = 'disabled';
$checkmark = array(); // We will check the next possible one
} else if( $counter == 2 || !$this->mOldIdChecked ) {
'rev-deleted-event' => '(log action removed)',
'rev-deleted-text-permission' => "This page revision has been '''removed from the public archives'''.
There may be details in the [{{fullurl:Special:Log/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+'rev-deleted-text-unhide' => "This page revision has been '''removed from the public archives'''.
+There may be details in the [{{fullurl:Special:Log/delete|page={{FULLPAGENAMEE}}}} deletion log].
+As an administrator you can still [$1 view this revision] if you wish to proceed.",
'rev-deleted-text-view' => "This page revision has been '''removed from the public archives'''.
As an administrator you can view it; there may be details in the [{{fullurl:Special:Log/delete|page={{FULLPAGENAMEE}}}} deletion log].",
'rev-deleted-no-diff' => "You cannot view this diff because one of the revisions has been '''removed from the public archives'''.