diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 9d8ccf89c47..8f34e59c3f2 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -7510,6 +7510,7 @@ $wgLogActionsHandlers = [ 'contentmodel/change' => 'ContentModelLogFormatter', 'contentmodel/new' => 'ContentModelLogFormatter', 'delete/delete' => 'DeleteLogFormatter', + 'delete/delete_redir' => 'DeleteLogFormatter', 'delete/event' => 'DeleteLogFormatter', 'delete/restore' => 'DeleteLogFormatter', 'delete/revision' => 'DeleteLogFormatter', @@ -7561,6 +7562,7 @@ $wgActionFilteredLogs = [ ], 'delete' => [ 'delete' => [ 'delete' ], + 'delete_redir' => [ 'delete_redir' ], 'restore' => [ 'restore' ], 'event' => [ 'event' ], 'revision' => [ 'revision' ], diff --git a/includes/MovePage.php b/includes/MovePage.php index a8f6f8e2e67..cbb46512401 100644 --- a/includes/MovePage.php +++ b/includes/MovePage.php @@ -457,7 +457,9 @@ class MovePage { $nt->getArticleID(), /* $commit */ false, $errs, - $user + $user, + [], + 'delete_redir' ); if ( !$status->isGood() ) { diff --git a/includes/changes/RecentChange.php b/includes/changes/RecentChange.php index 1262f2cf3a9..81f64a8176a 100644 --- a/includes/changes/RecentChange.php +++ b/includes/changes/RecentChange.php @@ -762,6 +762,7 @@ class RecentChange { # # Get pageStatus for email notification switch ( $type . '-' . $action ) { case 'delete-delete': + case 'delete-delete_redir': $pageStatus = 'deleted'; break; case 'move-move': diff --git a/includes/logging/DeleteLogFormatter.php b/includes/logging/DeleteLogFormatter.php index c2056263052..dc9378fd36f 100644 --- a/includes/logging/DeleteLogFormatter.php +++ b/includes/logging/DeleteLogFormatter.php @@ -122,6 +122,7 @@ class DeleteLogFormatter extends LogFormatter { switch ( $this->entry->getSubtype() ) { case 'delete': // Show undelete link + case 'delete_redir': if ( $user->isAllowed( 'undelete' ) ) { $message = 'undeletelink'; } else { diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index a5ac78f10dc..4a81bb34e54 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -2861,7 +2861,7 @@ class WikiPage implements Page, IDBAccessObject { */ public function doDeleteArticleReal( $reason, $suppress = false, $u1 = null, $u2 = null, &$error = '', User $user = null, - $tags = [] + $tags = [], $logsubtype = 'delete' ) { global $wgUser, $wgContentHandlerUseDB; @@ -2992,7 +2992,7 @@ class WikiPage implements Page, IDBAccessObject { // Log the deletion, if the page was suppressed, put it in the suppression log instead $logtype = $suppress ? 'suppress' : 'delete'; - $logEntry = new ManualLogEntry( $logtype, 'delete' ); + $logEntry = new ManualLogEntry( $logtype, $logsubtype ); $logEntry->setPerformer( $user ); $logEntry->setTarget( $logTitle ); $logEntry->setComment( $reason ); diff --git a/languages/i18n/en.json b/languages/i18n/en.json index a033eddb699..d8913c0346f 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -3825,6 +3825,7 @@ "htmlform-user-not-valid": "$1 isn't a valid username.", "rawmessage": "$1", "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} page $3", + "logentry-delete-delete_redir": "$1 {{GENDER:$2|deleted}} redirect $3 by overwriting", "logentry-delete-restore": "$1 {{GENDER:$2|restored}} page $3", "logentry-delete-event": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a log event|$5 log events}} on $3: $4", "logentry-delete-revision": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a revision|$5 revisions}} on page $3: $4", @@ -4130,6 +4131,7 @@ "log-action-filter-contentmodel-change": "Change of Contentmodel", "log-action-filter-contentmodel-new": "Creation of page with non-standard Contentmodel", "log-action-filter-delete-delete": "Page deletion", + "log-action-filter-delete-delete_redir": "Redirect overwrite", "log-action-filter-delete-restore": "Page undeletion", "log-action-filter-delete-event": "Log deletion", "log-action-filter-delete-revision": "Revision deletion", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 8e2b441b32a..4a90c982d46 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -4009,6 +4009,7 @@ "htmlform-user-not-valid": "Error message shown if the name provided by the user isn't a valid username. $1 is the username.", "rawmessage": "{{notranslate}} Used to pass arbitrary text as a message specifier array", "logentry-delete-delete": "{{Logentry|[[Special:Log/delete]]}}", + "logentry-delete-delete_redir": "{{Logentry|[[Special:Log/delete]]}}", "logentry-delete-restore": "{{Logentry|[[Special:Log/delete]]}}", "logentry-delete-event": "{{Logentry|[[Special:Log/delete]]}}\n{{Logentryparam}}\n* $5 - count of affected log events", "logentry-delete-revision": "{{Logentry|[[Special:Log/delete]]}}\n{{Logentryparam}}\n* $5 - the number of affected revisions of the page $3", @@ -4314,6 +4315,7 @@ "log-action-filter-contentmodel-change": "{{doc-log-action-filter-action|contentmodel|change}}", "log-action-filter-contentmodel-new": "{{doc-log-action-filter-action|contentmodel|new}}", "log-action-filter-delete-delete": "{{doc-log-action-filter-action|delete|delete}}", + "log-action-filter-delete-delete_redir": "{{doc-log-action-filter-action|delete|delete_redir}}", "log-action-filter-delete-restore": "{{doc-log-action-filter-action|delete|restore}}", "log-action-filter-delete-event": "{{doc-log-action-filter-action|delete|event}}", "log-action-filter-delete-revision": "{{doc-log-action-filter-action|delete|revision}}",