diff options
author | Umherirrender <umherirrender_de.wp@web.de> | 2024-07-14 22:54:38 +0200 |
---|---|---|
committer | Umherirrender <umherirrender_de.wp@web.de> | 2025-02-13 02:30:56 +0000 |
commit | 8fc35bd4da93c837c9d0788f234b6d43c08b740a (patch) | |
tree | 28e49549b18f577472237a92a80f6df02bb3b634 /includes/logging | |
parent | aba1ca4cc7d25193f059f23ed4f32c1c5715db27 (diff) | |
download | mediawikicore-8fc35bd4da93c837c9d0788f234b6d43c08b740a.tar.gz mediawikicore-8fc35bd4da93c837c9d0788f234b6d43c08b740a.zip |
logging: Use LinkTarget in LogFormatter::getPreloadTitles overrides
Also avoid null as array item,
as that is not allowed according to the return type
Change-Id: I4083c55a69d6186448a13f35f18d96bfe9ffd23c
Diffstat (limited to 'includes/logging')
-rw-r--r-- | includes/logging/BlockLogFormatter.php | 23 | ||||
-rw-r--r-- | includes/logging/MergeLogFormatter.php | 18 | ||||
-rw-r--r-- | includes/logging/MoveLogFormatter.php | 19 | ||||
-rw-r--r-- | includes/logging/NewUsersLogFormatter.php | 14 | ||||
-rw-r--r-- | includes/logging/ProtectLogFormatter.php | 17 | ||||
-rw-r--r-- | includes/logging/RenameuserLogFormatter.php | 12 |
6 files changed, 92 insertions, 11 deletions
diff --git a/includes/logging/BlockLogFormatter.php b/includes/logging/BlockLogFormatter.php index 2bcdcb92115f..fef24be56fc5 100644 --- a/includes/logging/BlockLogFormatter.php +++ b/includes/logging/BlockLogFormatter.php @@ -28,7 +28,10 @@ use MediaWiki\Linker\Linker; use MediaWiki\MainConfigNames; use MediaWiki\Message\Message; use MediaWiki\SpecialPage\SpecialPage; +use MediaWiki\Title\MalformedTitleException; +use MediaWiki\Title\NamespaceInfo; use MediaWiki\Title\Title; +use MediaWiki\Title\TitleParser; use MediaWiki\User\User; /** @@ -37,6 +40,19 @@ use MediaWiki\User\User; * @since 1.25 */ class BlockLogFormatter extends LogFormatter { + private TitleParser $titleParser; + private NamespaceInfo $namespaceInfo; + + public function __construct( + LogEntry $entry, + TitleParser $titleParser, + NamespaceInfo $namespaceInfo + ) { + parent::__construct( $entry ); + $this->titleParser = $titleParser; + $this->namespaceInfo = $namespaceInfo; + } + protected function getMessageParameters() { $params = parent::getMessageParameters(); @@ -165,13 +181,16 @@ class BlockLogFormatter extends LogFormatter { $preload = []; // Preload user page for non-autoblocks if ( substr( $title->getText(), 0, 1 ) !== '#' && $title->canExist() ) { - $preload[] = $title->getTalkPage(); + $preload[] = $this->namespaceInfo->getTalkPage( $title ); } // Preload page restriction $params = $this->extractParameters(); if ( isset( $params[6]['pages'] ) ) { foreach ( $params[6]['pages'] as $page ) { - $preload[] = Title::newFromText( $page ); + try { + $preload[] = $this->titleParser->parseTitle( $page ); + } catch ( MalformedTitleException $_ ) { + } } } return $preload; diff --git a/includes/logging/MergeLogFormatter.php b/includes/logging/MergeLogFormatter.php index 65f313acf93b..40486649febe 100644 --- a/includes/logging/MergeLogFormatter.php +++ b/includes/logging/MergeLogFormatter.php @@ -24,7 +24,9 @@ use MediaWiki\Message\Message; use MediaWiki\SpecialPage\SpecialPage; +use MediaWiki\Title\MalformedTitleException; use MediaWiki\Title\Title; +use MediaWiki\Title\TitleParser; /** * This class formats merge log entries. @@ -32,10 +34,24 @@ use MediaWiki\Title\Title; * @since 1.25 */ class MergeLogFormatter extends LogFormatter { + private TitleParser $titleParser; + + public function __construct( + LogEntry $entry, + TitleParser $titleParser + ) { + parent::__construct( $entry ); + $this->titleParser = $titleParser; + } + public function getPreloadTitles() { $params = $this->extractParameters(); - return [ Title::newFromText( $params[3] ) ]; + try { + return [ $this->titleParser->parseTitle( $params[3] ) ]; + } catch ( MalformedTitleException $_ ) { + } + return []; } protected function getMessageParameters() { diff --git a/includes/logging/MoveLogFormatter.php b/includes/logging/MoveLogFormatter.php index 71e44337b634..2b24df11e519 100644 --- a/includes/logging/MoveLogFormatter.php +++ b/includes/logging/MoveLogFormatter.php @@ -25,7 +25,9 @@ use MediaWiki\Message\Message; use MediaWiki\SpecialPage\SpecialPage; +use MediaWiki\Title\MalformedTitleException; use MediaWiki\Title\Title; +use MediaWiki\Title\TitleParser; /** * This class formats move log entries. @@ -33,13 +35,22 @@ use MediaWiki\Title\Title; * @since 1.19 */ class MoveLogFormatter extends LogFormatter { + private TitleParser $titleParser; + + public function __construct( + LogEntry $entry, + TitleParser $titleParser + ) { + parent::__construct( $entry ); + $this->titleParser = $titleParser; + } + public function getPreloadTitles() { $params = $this->extractParameters(); - $title = Title::newFromText( $params[3] ); - if ( $title !== null ) { - return [ $title ]; - } else { + try { + return [ $this->titleParser->parseTitle( $params[3] ) ]; + } catch ( MalformedTitleException $_ ) { // namespace configuration may have changed to make $params[3] invalid (T370396); // nothing to preload in this case return []; diff --git a/includes/logging/NewUsersLogFormatter.php b/includes/logging/NewUsersLogFormatter.php index ec640e77a696..306fa6b30304 100644 --- a/includes/logging/NewUsersLogFormatter.php +++ b/includes/logging/NewUsersLogFormatter.php @@ -24,7 +24,7 @@ */ use MediaWiki\Message\Message; -use MediaWiki\Title\Title; +use MediaWiki\Title\NamespaceInfo; use MediaWiki\User\User; /** @@ -33,6 +33,16 @@ use MediaWiki\User\User; * @since 1.19 */ class NewUsersLogFormatter extends LogFormatter { + private NamespaceInfo $namespaceInfo; + + public function __construct( + LogEntry $entry, + NamespaceInfo $namespaceInfo + ) { + parent::__construct( $entry ); + $this->namespaceInfo = $namespaceInfo; + } + protected function getMessageParameters() { $params = parent::getMessageParameters(); $subtype = $this->entry->getSubtype(); @@ -64,7 +74,7 @@ class NewUsersLogFormatter extends LogFormatter { $subtype = $this->entry->getSubtype(); if ( $subtype === 'create2' || $subtype === 'byemail' ) { // add the user talk to LinkBatch for the userLink - return [ Title::makeTitle( NS_USER_TALK, $this->entry->getTarget()->getText() ) ]; + return [ $this->namespaceInfo->getTalkPage( $this->entry->getTarget() ) ]; } return []; diff --git a/includes/logging/ProtectLogFormatter.php b/includes/logging/ProtectLogFormatter.php index aa71fafc265d..8680e6d41b22 100644 --- a/includes/logging/ProtectLogFormatter.php +++ b/includes/logging/ProtectLogFormatter.php @@ -23,7 +23,9 @@ */ use MediaWiki\Message\Message; +use MediaWiki\Title\MalformedTitleException; use MediaWiki\Title\Title; +use MediaWiki\Title\TitleParser; /** * This class formats protect log entries. @@ -31,11 +33,24 @@ use MediaWiki\Title\Title; * @since 1.26 */ class ProtectLogFormatter extends LogFormatter { + private TitleParser $titleParser; + + public function __construct( + LogEntry $entry, + TitleParser $titleParser + ) { + parent::__construct( $entry ); + $this->titleParser = $titleParser; + } + public function getPreloadTitles() { $subtype = $this->entry->getSubtype(); if ( $subtype === 'move_prot' ) { $params = $this->extractParameters(); - return [ Title::newFromText( $params[3] ) ]; + try { + return [ $this->titleParser->parseTitle( $params[3] ) ]; + } catch ( MalformedTitleException $_ ) { + } } return []; } diff --git a/includes/logging/RenameuserLogFormatter.php b/includes/logging/RenameuserLogFormatter.php index abc965b24e45..09c1e508f075 100644 --- a/includes/logging/RenameuserLogFormatter.php +++ b/includes/logging/RenameuserLogFormatter.php @@ -2,11 +2,21 @@ use MediaWiki\Message\Message; use MediaWiki\Title\Title; +use MediaWiki\Title\TitleParser; /** * LogFormatter for renameuser/renameuser logs */ class RenameuserLogFormatter extends LogFormatter { + private TitleParser $titleParser; + + public function __construct( + LogEntry $entry, + TitleParser $titleParser + ) { + parent::__construct( $entry ); + $this->titleParser = $titleParser; + } /** * @inheritDoc @@ -115,7 +125,7 @@ class RenameuserLogFormatter extends LogFormatter { $newUserName = $params[4]; } - $title = Title::makeTitleSafe( NS_USER, $newUserName ); + $title = $this->titleParser->makeTitleValueSafe( NS_USER, $newUserName ); if ( $title ) { return [ $title ]; } |