unset( $params['5::mergepoint'] );
}
break;
+ case 'delete':
+ if ( $action === 'event' || $action === 'revision' ) {
+ // replace the named parameter with numbered for backward compatibility
+ if ( $action === 'event' ) {
+ $idsKey = '4::ids';
+ $ofieldKey = '5::ofield';
+ $nfieldKey = '6::nfield';
+ } else {
+ if ( isset( $params['4::type'] ) ) {
+ $params[] = $params['4::type'];
+ unset( $params['4::type'] );
+ }
+ $idsKey = '5::ids';
+ $ofieldKey = '6::ofield';
+ $nfieldKey = '7::nfield';
+ }
+ if ( isset( $params[$idsKey] ) ) {
+ $params[] = implode( ',', $params[$idsKey] );
+ unset( $params[$idsKey] );
+ }
+ if ( isset( $params[$ofieldKey] ) ) {
+ $params[] = $params[$ofieldKey];
+ unset( $params[$ofieldKey] );
+ }
+ if ( isset( $params[$nfieldKey] ) ) {
+ $params[] = $params[$nfieldKey];
+ unset( $params[$nfieldKey] );
+ }
+ }
+ break;
}
if ( !is_null( $params ) ) {
$logParams = array();
$newParams = array_slice( $params, 0, 3 );
$newParams[3] = $changeText;
- $count = count( explode( ',', $params[$paramStart] ) );
- $newParams[4] = $this->context->getLanguage()->formatNum( $count );
+ $ids = is_array( $params[$paramStart] )
+ ? $params[$paramStart]
+ : explode( ',', $params[$paramStart] );
+ $newParams[4] = $this->context->getLanguage()->formatNum( count( $ids ) );
$this->parsedParametersDeleteLog = $newParams;
return $this->parsedParametersDeleteLog;
// Different revision types use different URL params...
$key = $params[3];
- // This is a CSV of the IDs
- $ids = explode( ',', $params[4] );
+ // This is a array or CSV of the IDs
+ $ids = is_array( $params[4] )
+ ? $params[4]
+ : explode( ',', $params[4] );
$links = array();
// Add params for affected page and ids
$logParams = $this->getLogParams( $params );
// Actually add the deletion log entry
- $log = new LogPage( $logType );
- $logid = $log->addEntry( $this->getLogAction(), $params['title'],
- $params['comment'], $logParams, $this->getUser() );
+ $logEntry = new ManualLogEntry( $logType, $this->getLogAction() );
+ $logEntry->setTarget( $params['title'] );
+ $logEntry->setComment( $params['comment'] );
+ $logEntry->setParameters( $logParams );
+ $logEntry->setPerformer( $this->getUser() );
// Allow for easy searching of deletion log items for revision/log items
- $log->addRelations( $field, $params['ids'], $logid );
- $log->addRelations( 'target_author_id', $params['authorIds'], $logid );
- $log->addRelations( 'target_author_ip', $params['authorIPs'], $logid );
+ $logEntry->setRelations( array(
+ $field => $params['ids'],
+ 'target_author_id' => $params['authorIds'],
+ 'target_author_ip' => $params['authorIPs'],
+ ) );
+ $logId = $logEntry->insert();
+ $logEntry->publish( $logId );
}
/**
*/
public function getLogParams( $params ) {
return array(
- $this->getType(),
- implode( ',', $params['ids'] ),
- "ofield={$params['oldBits']}",
- "nfield={$params['newBits']}"
+ '4::type' => $this->getType(),
+ '5::ids' => $params['ids'],
+ '6::ofield' => $params['oldBits'],
+ '7::nfield' => $params['newBits'],
);
}
public function getLogParams( $params ) {
return array(
- implode( ',', $params['ids'] ),
- "ofield={$params['oldBits']}",
- "nfield={$params['newBits']}"
+ '4::ids' => $params['ids'],
+ '5::ofield' => $params['oldBits'],
+ '6::nfield' => $params['newBits'],
);
}
}