* @param array $timestamps Pass an empty array to restore all revisions, otherwise list the ones to undelete.
* @param string $comment
* @param array $fileVersions
- * @param bool $Unsuppress
+ * @param bool $unsuppress
*
* @return array(number of file revisions restored, number of image revisions restored, log message)
* on success, false on failure
*/
- function undelete( $timestamps, $comment = '', $fileVersions = array(), $Unsuppress = false ) {
+ function undelete( $timestamps, $comment = '', $fileVersions = array(), $unsuppress = false ) {
// If both the set of text revisions and file revisions are empty,
// restore everything. Otherwise, just restore the requested items.
$restoreAll = empty( $timestamps ) && empty( $fileVersions );
if( $restoreFiles && $this->title->getNamespace() == NS_IMAGE ) {
$img = wfLocalFile( $this->title );
- $this->fileStatus = $img->restore( $fileVersions, $Unsuppress );
+ $this->fileStatus = $img->restore( $fileVersions, $unsuppress );
$filesRestored = $this->fileStatus->successCount;
} else {
$filesRestored = 0;
}
if( $restoreText ) {
- $textRestored = $this->undeleteRevisions( $timestamps, $Unsuppress );
+ $textRestored = $this->undeleteRevisions( $timestamps, $unsuppress );
if($textRestored === false) // It must be one of UNDELETE_*
return false;
} else {
* @param array $timestamps Pass an empty array to restore all revisions, otherwise list the ones to undelete.
* @param string $comment
* @param array $fileVersions
- * @param bool $Unsuppress, remove all ar_deleted/fa_deleted restrictions of seletected revs
+ * @param bool $unsuppress, remove all ar_deleted/fa_deleted restrictions of seletected revs
*
* @return mixed number of revisions restored or false on failure
*/
- private function undeleteRevisions( $timestamps, $Unsuppress = false ) {
+ private function undeleteRevisions( $timestamps, $unsuppress = false ) {
if ( wfReadOnly() )
return false;
$restoreAll = empty( $timestamps );
$ret->seek( $rev_count - 1 );
$last = $ret->fetchObject();
// We don't handle well changing the top revision's settings
- if( !$Unsuppress && $last->ar_deleted && $last->ar_timestamp > $previousTimestamp ) {
+ if( !$unsuppress && $last->ar_deleted && $last->ar_timestamp > $previousTimestamp ) {
wfDebug( __METHOD__.": restoration would result in a deleted top revision\n" );
return false;
}
'timestamp' => $row->ar_timestamp,
'minor_edit' => $row->ar_minor_edit,
'text_id' => $row->ar_text_id,
- 'deleted' => $Unsuppress ? 0 : $row->ar_deleted,
+ 'deleted' => $unsuppress ? 0 : $row->ar_deleted,
'len' => $row->ar_len
) );
$revision->insertOn( $dbw );
$wgOut->addHTML( "<ul>\n" );
while( $row = $result->fetchObject() ) {
$title = Title::makeTitleSafe( $row->ar_namespace, $row->ar_title );
- $link = $sk->makeKnownLinkObj( $undelete, htmlspecialchars( $title->getPrefixedText() ), 'target=' . $title->getPrefixedUrl() );
+ $link = $sk->makeKnownLinkObj( $undelete, htmlspecialchars( $title->getPrefixedText() ),
+ 'target=' . $title->getPrefixedUrl() );
#$revs = wfMsgHtml( 'undeleterevisions', $wgLang->formatNum( $row->count ) );
$revs = wfMsgExt( 'undeleterevisions',
array( 'parseinline' ),
while( $row = $revisions->fetchObject() ) {
$remaining--;
- $wgOut->addHTML( $this->formatRevisionRow( $row , $sk ) );
+ $wgOut->addHTML( $this->formatRevisionRow( $row, $earliestLiveTime, $remaining, $sk ) );
}
$revisions->free();
$wgOut->addHTML("</ul>");
return true;
}
- private function formatRevisionRow( $row, $sk ) {
+ private function formatRevisionRow( $row, $earliestLiveTime, $remaining, $sk ) {
global $wgUser, $wgLang;
$rev = new Revision( array(
'timestamp' => $row->ar_timestamp,
'minor_edit' => $row->ar_minor_edit,
'deleted' => $row->ar_deleted,
- 'len' => $row->ar_len) );
+ 'len' => $row->ar_len ) );
$stxt = '';
-
+ $ts = wfTimestamp( TS_MW, $row->ar_timestamp );
if( $this->mAllowed ) {
- $ts = wfTimestamp( TS_MW, $row->ar_timestamp );
$checkBox = Xml::check( "ts$ts" );
$titleObj = SpecialPage::getTitleFor( "Undelete" );
$pageLink = $this->getPageLink( $rev, $titleObj, $ts, $sk );
# Last link
if( !$rev->userCan( Revision::DELETED_TEXT ) ) {
$last = wfMsgHtml('diff');
- } else {
+ } else if( $remaining > 0 || ($earliestLiveTime && $ts > $earliestLiveTime) ) {
$last = $sk->makeKnownLinkObj( $titleObj, wfMsgHtml('diff'),
- "target=" . $this->mTarget . "×tamp=" . $row->ar_timestamp . "&diff=prev" );
+ "target=" . $this->mTargetObj->getPrefixedUrl() . "×tamp=$ts&diff=prev" );
+ } else {
+ $last = wfMsgHtml('diff');
}
} else {
$checkBox = '';
$pageLink = $wgLang->timeanddate( $ts, true );
+ $last = wfMsgHtml('diff');
}
$userLink = $sk->revUserTools( $rev );
// If revision was hidden from sysops
$del = wfMsgHtml('rev-delundel');
} else {
+ $ts = wfTimestamp( TS_MW, $row->ar_timestamp );
$del = $sk->makeKnownLinkObj( $revdel,
wfMsgHtml('rev-delundel'),
- 'target=' . urlencode( $this->mTarget ) .
- '&artimestamp=' . urlencode( $row->ar_timestamp ) );
+ 'target=' . $this->mTargetObj->getPrefixedUrl() . "&artimestamp=$ts" );
// Bolden oversighted content
if( $rev->isDeleted( Revision::DELETED_RESTRICTED ) )
$del = "<strong>$del</strong>";
} else {
$del = $sk->makeKnownLinkObj( $revdel,
wfMsgHtml('rev-delundel'),
- 'target=' . urlencode( $this->mTarget ) .
- '&fileid=' . urlencode( $row->fa_id ) );
+ 'target=' . $this->mTargetObj->getPrefixedUrl() .
+ '&fileid=' . $row->fa_id );
// Bolden oversighted content
if( $file->isDeleted( File::DELETED_RESTRICTED ) )
$del = "<strong>$del</strong>";
if( !$rev->userCan(Revision::DELETED_TEXT) ) {
return '<span class="history-deleted">' . $wgLang->timeanddate( $ts, true ) . '</span>';
} else {
- $link = $sk->makeKnownLinkObj( $titleObj, $wgLang->timeanddate( $ts, true ), "target={$this->mTarget}×tamp=$ts" );
+ $link = $sk->makeKnownLinkObj( $titleObj, $wgLang->timeanddate( $ts, true ),
+ "target=".$this->mTargetObj->getPrefixedUrl()."×tamp=$ts" );
if( $rev->isDeleted(Revision::DELETED_TEXT) )
$link = '<span class="history-deleted">' . $link . '</span>';
return $link;
if( !$file->userCan(File::DELETED_FILE) ) {
return '<span class="history-deleted">' . $wgLang->timeanddate( $ts, true ) . '</span>';
} else {
- $link = $sk->makeKnownLinkObj( $titleObj, $wgLang->timeanddate( $ts, true ), "target={$this->mTarget}&file=$key" );
+ $link = $sk->makeKnownLinkObj( $titleObj, $wgLang->timeanddate( $ts, true ),
+ "target=".$this->mTargetObj->getPrefixedUrl()."&file=$key" );
if( $file->isDeleted(File::DELETED_FILE) )
$link = '<span class="history-deleted">' . $link . '</span>';
return $link;