Merge "Improve BrokenRedirects display" into REL1_43

This commit is contained in:
jenkins-bot 2025-06-03 21:44:00 +00:00 committed by Gerrit Code Review
commit 3da6713b95
2 changed files with 10 additions and 4 deletions

View file

@ -215,6 +215,7 @@ class SpecialPageFactory {
'ContentHandlerFactory',
'ConnectionProvider',
'LinkBatchFactory',
'RedirectLookup'
]
],
'Deadendpages' => [

View file

@ -22,6 +22,7 @@ namespace MediaWiki\Specials;
use MediaWiki\Cache\LinkBatchFactory;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Page\RedirectLookup;
use MediaWiki\SpecialPage\QueryPage;
use MediaWiki\Title\Title;
use Skin;
@ -40,6 +41,7 @@ use Wikimedia\Rdbms\IResultWrapper;
class SpecialBrokenRedirects extends QueryPage {
private IContentHandlerFactory $contentHandlerFactory;
private RedirectLookup $redirectLookup;
/**
* @param IContentHandlerFactory $contentHandlerFactory
@ -49,12 +51,14 @@ class SpecialBrokenRedirects extends QueryPage {
public function __construct(
IContentHandlerFactory $contentHandlerFactory,
IConnectionProvider $dbProvider,
LinkBatchFactory $linkBatchFactory
LinkBatchFactory $linkBatchFactory,
RedirectLookup $redirectLookup
) {
parent::__construct( 'BrokenRedirects' );
$this->contentHandlerFactory = $contentHandlerFactory;
$this->setDatabaseProvider( $dbProvider );
$this->setLinkBatchFactory( $linkBatchFactory );
$this->redirectLookup = $redirectLookup;
}
public function isExpensive() {
@ -129,13 +133,14 @@ class SpecialBrokenRedirects extends QueryPage {
$result->rd_fragment
);
} else {
$toObj = false;
$toObj = Title::castFromLinkTarget(
$this->redirectLookup->getRedirectTarget( $fromObj )
);
}
$linkRenderer = $this->getLinkRenderer();
// $toObj may very easily be false if the $result list is cached
if ( !is_object( $toObj ) ) {
if ( !is_object( $toObj ) || $toObj->exists() ) {
return '<del>' . $linkRenderer->makeLink( $fromObj ) . '</del>';
}