$revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
// Different revision types use different URL params...
$key = $paramArray[0];
- // Link to each hidden object ID, $paramArray[1] is the url param
+ // $paramArray[1] is a CVS of the IDs
$Ids = explode( ',', $paramArray[1] );
- $revParams = '';
- foreach( $Ids as $n => $id ) {
- $revParams .= '&' . urlencode($key) . '[]=' . urlencode($id);
- }
+ $query = urlencode($paramArray[1]);
$revert = array();
// Diff link for single rev deletions
if( $key === 'oldid' && count($Ids) == 1 ) {
'diff='.intval($Ids[0])."&unhide=1&token=$token" );
}
// View/modify link...
- $revert[] = $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'],
- 'target=' . $title->getPrefixedUrl() . $revParams );
+ $revert[] = $this->skin->makeKnownLinkObj( $revdel,
+ $this->message['revdel-restore'], "$key=$query" );
+ // Pipe links
$revert = '(' . implode(' | ',$revert) . ')';
}
// Hidden log items, give review link
} else if( self::typeAction($row,array('delete','suppress'),'event','deleterevision') ) {
if( count($paramArray) == 1 ) {
$revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
+ // $paramArray[1] is a CVS of the IDs
$Ids = explode( ',', $paramArray[0] );
+ $query = urlencode($paramArray[0]);
// Link to each hidden object ID, $paramArray[1] is the url param
- $logParams = '';
- foreach( $Ids as $n => $id ) {
- $logParams .= '&logid[]=' . intval($id);
- }
$revert = '(' . $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'],
- 'target=' . $title->getPrefixedUrl() . $logParams ) . ')';
+ 'target='.$title->getPrefixedUrl()."&logid=$query" ) . ')';
}
// Self-created users
} else if( self::typeAction($row,'newusers','create2') ) {
} else {
$target = SpecialPage::getTitleFor( 'Log', $row->log_type );
$query = array( 'target' => $target->getPrefixedDBkey(),
- 'logid[]' => $row->log_id
+ 'logid' => $row->log_id
);
$del = $this->skin->revDeleteLink( $query, self::isDeleted( $row, LogPage::DELETED_RESTRICTED ) );
}
return;
}
$this->skin =& $wgUser->getSkin();
- # Set title and such
$this->setHeaders();
$this->outputHeader();
$this->wasPosted = $wgRequest->wasPosted();
- # Handle our many different possible input types
+ # Set title and such
$this->target = $wgRequest->getText( 'target' );
- $this->oldids = $wgRequest->getArray( 'oldid' );
- $this->artimestamps = $wgRequest->getArray( 'artimestamp' );
- $this->logids = $wgRequest->getArray( 'logid' );
- $this->oldimgs = $wgRequest->getArray( 'oldimage' );
- $this->fileids = $wgRequest->getArray( 'fileid' );
+ # Handle our many different possible input types.
+ # Use CVS, since the cgi handling will break on arrays.
+ $this->oldids = array_filter( explode( ',', $wgRequest->getVal('oldid') ) );
+ $this->artimestamps = array_filter( explode( ',', $wgRequest->getVal('artimestamp') ) );
+ $this->logids = array_filter( explode( ',', $wgRequest->getVal('logid') ) );
+ $this->oldimgs = array_filter( explode( ',', $wgRequest->getVal('oldimage') ) );
+ $this->fileids = array_filter( explode( ',', $wgRequest->getVal('fileid') ) );
# For reviewing deleted files...
$this->file = $wgRequest->getVal( 'file' );
# Only one target set at a time please!
} else if( $this->deleteKey == 'logid' ) {
$this->showLogItems();
}
- # Show relevant lines from the deletion log. This will show even if said ID
- # does not exist...might be helpful
+ # Show relevant lines from the deletion log
$wgOut->addHTML( "<h2>" . htmlspecialchars( LogPage::logName( 'delete' ) ) . "</h2>\n" );
LogEventsList::showLogExtract( $wgOut, 'delete', $this->page->getPrefixedText() );
- if( $wgUser->isAllowed( 'suppressionlog' ) ){
+ # Show relevant lines from the suppression log
+ if( $wgUser->isAllowed( 'suppressionlog' ) ) {
$wgOut->addHTML( "<h2>" . htmlspecialchars( LogPage::logName( 'suppress' ) ) . "</h2>\n" );
LogEventsList::showLogExtract( $wgOut, 'suppress', $this->page->getPrefixedText() );
}
array( 'revdelete-hide-user', 'wpHideUser', Revision::DELETED_USER )
);
if( $wgUser->isAllowed('suppressrevision') ) {
- $this->checks[] = array( 'revdelete-hide-restricted', 'wpHideRestricted', Revision::DELETED_RESTRICTED );
+ $this->checks[] = array( 'revdelete-hide-restricted',
+ 'wpHideRestricted', Revision::DELETED_RESTRICTED );
}
}
Xml::hidden( 'type', $this->deleteKey )
);
if( $this->deleteKey=='oldid' ) {
- foreach( $revObjs as $rev )
- $hidden[] = Xml::hidden( 'oldid[]', $rev->getId() );
+ $hidden[] = Xml::hidden( 'oldid', implode(',',$this->oldids) );
} else {
- foreach( $revObjs as $rev )
- $hidden[] = Xml::hidden( 'artimestamp[]', $rev->getTimestamp() );
+ $hidden[] = Xml::hidden( 'artimestamp', implode(',',$this->artimestamps) );
}
$special = SpecialPage::getTitleFor( 'Revisiondelete' );
$wgOut->addHTML(
- Xml::openElement( 'form', array( 'method' => 'post', 'action' => $special->getLocalUrl( 'action=submit' ),
+ Xml::openElement( 'form', array( 'method' => 'post',
+ 'action' => $special->getLocalUrl( 'action=submit' ),
'id' => 'mw-revdel-form-revisions' ) ) .
Xml::openElement( 'fieldset' ) .
xml::element( 'legend', null, wfMsg( 'revdelete-legend' ) )
Xml::hidden( 'type', $this->deleteKey )
);
if( $this->deleteKey=='oldimage' ) {
- foreach( $this->ofiles as $filename )
- $hidden[] = Xml::hidden( 'oldimage[]', $filename );
+ $hidden[] = Xml::hidden( 'oldimage', implode(',',$this->oldimgs) );
} else {
- foreach( $this->afiles as $fileid )
- $hidden[] = Xml::hidden( 'fileid[]', $fileid );
+ $hidden[] = Xml::hidden( 'fileid', implode(',',$this->fileids) );
}
$special = SpecialPage::getTitleFor( 'Revisiondelete' );
$wgOut->addHTML(
- Xml::openElement( 'form', array( 'method' => 'post', 'action' => $special->getLocalUrl( 'action=submit' ),
- 'id' => 'mw-revdel-form-filerevisions' ) ) .
+ Xml::openElement( 'form', array( 'method' => 'post',
+ 'action' => $special->getLocalUrl( 'action=submit' ),
+ 'id' => 'mw-revdel-form-filerevisions' )
+ ) .
Xml::fieldset( wfMsg( 'revdelete-legend' ) )
);
$hidden = array(
Xml::hidden( 'wpEditToken', $wgUser->editToken() ),
Xml::hidden( 'target', $this->page->getPrefixedText() ),
- Xml::hidden( 'type', $this->deleteKey ) );
- foreach( $this->events as $logid ) {
- $hidden[] = Xml::hidden( 'logid[]', $logid );
- }
+ Xml::hidden( 'type', $this->deleteKey ),
+ Xml::hidden( 'logid', implode(',',$this->logids) )
+ );
$special = SpecialPage::getTitleFor( 'Revisiondelete' );
$wgOut->addHTML(
- Xml::openElement( 'form', array( 'method' => 'post', 'action' => $special->getLocalUrl( 'action=submit' ),
- 'id' => 'mw-revdel-form-logs' ) ) .
+ Xml::openElement( 'form', array( 'method' => 'post',
+ 'action' => $special->getLocalUrl( 'action=submit' ), 'id' => 'mw-revdel-form-logs' ) ) .
Xml::fieldset( wfMsg( 'revdelete-legend' ) )
);