Eranroz has uploaded a new change for review.

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

Change subject: setting redirect to disambig as disambig
......................................................................

setting redirect to disambig as disambig

Change-Id: I6ddd0471d1d0041eb73dd63e1a3fa0eeb2da3b2f
---
M Disambiguator.hooks.php
1 file changed, 31 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Disambiguator 
refs/changes/03/268703/1

diff --git a/Disambiguator.hooks.php b/Disambiguator.hooks.php
index 7f0e75f..76489fe 100644
--- a/Disambiguator.hooks.php
+++ b/Disambiguator.hooks.php
@@ -99,15 +99,39 @@
                $output = array();
                if ( $pageIds ) {
                        $dbr = wfGetDB( DB_SLAVE );
+
+                       // resolve redirects
+                       $res = $dbr->select(
+                               array ('page', 'redirect'),
+                               array( 'page_id', 'rd_from' ),
+                               array( 'rd_from' => $pageIds ),
+                               __METHOD__,
+                               array(),
+                               array( 'page' => array( 'INNER JOIN', array(
+                                       'rd_namespace=page_namespace',
+                                       'rd_title=page_title'
+                               ) ) )
+                       );
+                       $redirects = array();
+                       foreach ( $res as $row ) {
+                               $redirects[$row->page_id] = $row->rd_from;
+                       }
+
+                       $pageIdsWithRedirects = array_keys( $redirects ) + 
array_diff( $pageIds, array_values( $redirects ) );
                        $res = $dbr->select(
                                'page_props',
                                'pp_page',
-                               array( 'pp_page' => $pageIds, 'pp_propname' => 
'disambiguation' ),
+                               array( 'pp_page' => $pageIdsWithRedirects, 
'pp_propname' => 'disambiguation' ),
                                __METHOD__
                        );
 
                        foreach ( $res as $row ) {
-                               $output[] = $row->pp_page;
+                               if ( array_key_exists( $row->pp_page, 
$redirects ) ) {
+                                       $output[] = $redirects[$row->pp_page];
+                               }
+                               if ( in_array( $row->pp_page, $pageIds ) ){
+                                       $output[] = $row->pp_page;
+                               }
                        }
                }
 
@@ -128,7 +152,11 @@
 
                $pageIds = static::filterDisambiguationPageIds( array_keys( 
$pageIdToDbKey ) );
                foreach ( $pageIds as $pageId ) {
-                       $colours[ $pageIdToDbKey[$pageId] ] = 'mw-disambig';
+                       if ( $colours[ $pageIdToDbKey[$pageId] ] ) {
+                               $colours[ $pageIdToDbKey[$pageId] ] .= " 
mw-disambig";
+                       } else {
+                               $colours[ $pageIdToDbKey[$pageId] ] = 
'mw-disambig';
+                       }
                }
                return true;
        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ddd0471d1d0041eb73dd63e1a3fa0eeb2da3b2f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Disambiguator
Gerrit-Branch: master
Gerrit-Owner: Eranroz <[email protected]>

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

Reply via email to