EBernhardson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/230585

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, 12 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/85/230585/1

diff --git a/includes/api/ApiPageSet.php b/includes/api/ApiPageSet.php
index d67b184..12431ab 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();
@@ -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();
@@ -1239,6 +1250,7 @@
                                        continue;
                                }
                                $pageId = $pages[$dbkey];
+
                                if ( !isset( $data[$pageId] ) ) {
                                        // $pageId didn't make it into the 
result. Ignore it.
                                        continue;

-- 
To view, visit https://gerrit.wikimedia.org/r/230585
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6c1871dee517dd9a9a8a70cbd6ece0bc42dd0667
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to