X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2FFileDeleteForm.php;h=8c843c4438d5afee9ef329cfbf2ab4dc91440ffd;hp=f284d924a06e4e395dd84f7b0bade6bdc3d82508;hb=e7720b8f8e09287384ddee271641d1b1721318bb;hpb=ef1f66b2351ce726ba8da21c3c7db290c31e0b37 diff --git a/includes/FileDeleteForm.php b/includes/FileDeleteForm.php index f284d924a0..8c843c4438 100644 --- a/includes/FileDeleteForm.php +++ b/includes/FileDeleteForm.php @@ -47,8 +47,6 @@ class FileDeleteForm { private $oldimage = ''; /** - * Constructor - * * @param File $file File object we're deleting */ public function __construct( $file ) { @@ -145,9 +143,9 @@ class FileDeleteForm { /** * Really delete the file * - * @param Title $title - * @param File $file - * @param string $oldimage Archive name + * @param Title &$title + * @param File &$file + * @param string &$oldimage Archive name * @param string $reason Reason of the deletion * @param bool $suppress Whether to mark all deleted versions as restricted * @param User $user User object performing the request @@ -202,7 +200,27 @@ class FileDeleteForm { if ( $deleteStatus->isOK() ) { $status = $file->delete( $reason, $suppress, $user ); if ( $status->isOK() ) { - $status->value = $deleteStatus->value; // log id + if ( $deleteStatus->value === null ) { + // No log ID from doDeleteArticleReal(), probably + // because the page/revision didn't exist, so create + // one here. + $logtype = $suppress ? 'suppress' : 'delete'; + $logEntry = new ManualLogEntry( $logtype, 'delete' ); + $logEntry->setPerformer( $user ); + $logEntry->setTarget( clone $title ); + $logEntry->setComment( $reason ); + $logEntry->setTags( $tags ); + $logid = $logEntry->insert(); + $dbw->onTransactionPreCommitOrIdle( + function () use ( $dbw, $logEntry, $logid ) { + $logEntry->publish( $logid ); + }, + __METHOD__ + ); + $status->value = $logid; + } else { + $status->value = $deleteStatus->value; // log id + } $dbw->endAtomic( __METHOD__ ); } else { // Page deleted but file still there? rollback page delete @@ -380,8 +398,8 @@ class FileDeleteForm { * value was provided, does it correspond to an * existing, local, old version of this file? * - * @param File $file - * @param File $oldfile + * @param File &$file + * @param File &$oldfile * @param File $oldimage * @return bool */