$logEntry->setComment( $logComment );
$logid = $logEntry->insert();
$logEntry->publish( $logid );
+
+ $status->value = $logid;
}
} else {
$status = Status::newFatal( 'cannotdelete',
$page = WikiPage::factory( $title );
$dbw = wfGetDB( DB_MASTER );
try {
+ $dbw->startAtomic( __METHOD__ );
// delete the associated article first
$error = '';
$deleteStatus = $page->doDeleteArticleReal( $reason, $suppress, 0, false, $error, $user );
if ( $deleteStatus->isOK() ) {
$status = $file->delete( $reason, $suppress, $user );
if ( $status->isOK() ) {
- $dbw->commit( __METHOD__ );
+ $status->value = $deleteStatus->value; // log id
+ $dbw->endAtomic( __METHOD__ );
} else {
+ // Page deleted but file still there? rollback page delete
$dbw->rollback( __METHOD__ );
}
+ } else {
+ // Done; nothing changed
+ $dbw->endAtomic( __METHOD__ );
}
} catch ( Exception $e ) {
// Rollback before returning to prevent UI from displaying