jenkins-bot has submitted this change and it was merged.
Change subject: Include generated metadata for redirects
......................................................................
Include generated metadata for redirects
If a page is returned but is resolved as a redirect the generated
data, such as the position of the result in search, is lost. Retain
that data by including it in under the 'redirects' key.
Bug: T92796
Change-Id: I6c1871dee517dd9a9a8a70cbd6ece0bc42dd0667
---
M includes/api/ApiPageSet.php
1 file changed, 15 insertions(+), 2 deletions(-)
Approvals:
Anomie: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/api/ApiPageSet.php b/includes/api/ApiPageSet.php
index d67b184..1415b79 100644
--- a/includes/api/ApiPageSet.php
+++ b/includes/api/ApiPageSet.php
@@ -66,6 +66,7 @@
private $mInterwikiTitles = array();
/** @var Title[] */
private $mPendingRedirectIDs = array();
+ private $mResolvedRedirectTitles = array();
private $mConvertedTitles = array();
private $mGoodRevIDs = array();
private $mLiveRevIDs = array();
@@ -434,7 +435,7 @@
/**
* Get a list of redirect resolutions - maps a title to its redirect
- * target.
+ * target. Includes generator data for redirect source when available.
* @param ApiResult $result
* @return array Array of prefixed_title (string) => Title object
* @since 1.21
@@ -452,6 +453,15 @@
if ( $titleTo->isExternal() ) {
$r['tointerwiki'] = $titleTo->getInterwiki();
}
+ if ( isset(
$this->mResolvedRedirectTitles[$titleStrFrom] ) ) {
+ $titleFrom =
$this->mResolvedRedirectTitles[$titleStrFrom];
+ $ns = $titleFrom->getNamespace();
+ $dbkey = $titleFrom->getDBkey();
+ if ( isset( $this->mGeneratorData[$ns][$dbkey]
) ) {
+ $r = array_merge(
$this->mGeneratorData[$ns][$dbkey], $r );
+ }
+ }
+
$values[] = $r;
}
if ( !empty( $values ) && $result ) {
@@ -1030,6 +1040,7 @@
$row->rd_fragment,
$row->rd_interwiki
);
+ $this->mResolvedRedirectTitles[$from] =
$this->mPendingRedirectIDs[$rdfrom];
unset( $this->mPendingRedirectIDs[$rdfrom] );
if ( $to->isExternal() ) {
$this->mInterwikiTitles[$to->getPrefixedText()]
= $to->getInterwiki();
@@ -1050,7 +1061,9 @@
continue;
}
$lb->addObj( $rt );
-
$this->mRedirectTitles[$title->getPrefixedText()] = $rt;
+ $from = $title->getPrefixedText();
+ $this->mResolvedRedirectTitles[$from] = $title;
+ $this->mRedirectTitles[$from] = $rt;
unset( $this->mPendingRedirectIDs[$id] );
}
}
--
To view, visit https://gerrit.wikimedia.org/r/230585
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6c1871dee517dd9a9a8a70cbd6ece0bc42dd0667
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: DCausse <[email protected]>
Gerrit-Reviewer: Deskana <[email protected]>
Gerrit-Reviewer: Yurik <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits