66 bool $deleteTalk =
false
71 $status =
$file->deleteOldFile( $oldimage, $reason, $user, $suppress );
72 if ( $status->isOK() ) {
74 $logComment =
wfMessage(
'deletedrevision', $oldimage )->inContentLanguage()->text();
75 if ( trim( $reason ) !==
'' ) {
76 $logComment .=
wfMessage(
'colon-separator' )
77 ->inContentLanguage()->text() . $reason;
80 $logtype = $suppress ?
'suppress' :
'delete';
83 $logEntry->setPerformer( $user );
84 $logEntry->setTarget(
$title );
85 $logEntry->setComment( $logComment );
86 $logEntry->addTags( $tags );
87 $logid = $logEntry->insert();
88 $logEntry->publish( $logid );
90 $status->value = $logid;
96 $page = $services->getWikiPageFactory()->newFromTitle(
$title );
97 '@phan-var \WikiFilePage $page';
98 $deleter = $services->getUserFactory()->newFromUserIdentity( $user );
99 $deletePage = $services->getDeletePageFactory()->newDeletePage( $page, $deleter );
101 $checkStatus = $deletePage->canProbablyDeleteAssociatedTalk();
102 if ( !$checkStatus->isGood() ) {
105 $deletePage->setDeleteAssociatedTalk(
true );
108 $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE );
110 $deleteStatus = $deletePage
111 ->setSuppress( $suppress )
112 ->setTags( $tags ?: [] )
113 ->deleteIfAllowed( $reason );
117 if ( $deleteStatus->isOK() ) {
118 $status =
$file->deleteFile( $reason, $user, $suppress );
119 if ( $status->isOK() ) {
121 $status->value =
false;
124 if ( $deletedID !==
null ) {
125 $status->value = $deletedID;
128 $logtype = $suppress ?
'suppress' :
'delete';
130 $logEntry->setPerformer( $user );
131 $logEntry->setTarget(
$title );
132 $logEntry->setComment( $reason );
133 $logEntry->addTags( $tags );
134 $logid = $logEntry->insert();
135 $dbw->onTransactionPreCommitOrIdle(
136 static function () use ( $logEntry, $logid ) {
137 $logEntry->publish( $logid );
141 $status->value = $logid;
144 $dbw->endAtomic( __METHOD__ );
147 $dbw->cancelAtomic( __METHOD__ );
150 $dbw->endAtomic( __METHOD__ );
154 if ( $status->isOK() ) {
155 $legacyUser = $services->getUserFactory()
156 ->newFromUserIdentity( $user );
157 (
new HookRunner( $services->getHookContainer() ) )
158 ->onFileDeleteComplete(
$file, $oldimage, $page, $legacyUser, $reason );
171 return strlen( $oldimage ) >= 16
172 && strpos( $oldimage,
'/' ) ===
false
173 && strpos( $oldimage,
'\\' ) ===
false;
177 class_alias( FileDeleteForm::class,
'FileDeleteForm' );
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
wfEscapeWikiText( $text)
Escapes the given text so that it may be output using addWikiText() without any linking,...
Title string false $title
Local file in the wiki's own database.
Class for creating new log entries and inserting them into the database.
Backend logic for performing a page delete action.
const PAGE_BASE
Constants used for the return value of getSuccessfulDeletionsIDs() and deletionsWereScheduled()
File deletion user interface.
static doDelete(Title $title, LocalFile $file, ?string $oldimage, $reason, $suppress, UserIdentity $user, $tags=[], bool $deleteTalk=false)
Really delete the file.
static isValidOldSpec( $oldimage)
Is the provided oldimage value valid?
static newFatal( $message,... $parameters)
Factory function for fatal errors.
Generic operation result class Has warning/error list, boolean status and arbitrary value.
static wrap( $sv)
Succinct helper method to wrap a StatusValue.
if(PHP_SAPI !='cli-server') if(!isset( $_SERVER['SCRIPT_FILENAME'])) $file
Item class for a filearchive table row.