Fix Title::getRedirectsHere to respect interwiki prefix
authorumherirrender <umherirrender_de.wp@web.de>
Sat, 8 Sep 2012 04:57:10 +0000 (06:57 +0200)
committerumherirrender <umherirrender_de.wp@web.de>
Sat, 8 Sep 2012 04:57:10 +0000 (06:57 +0200)
Respecting rd_interwiki is needed to act the same way than
Special:Whatlinkshere. For local redirects it is needed to also check
for NULL, not only the empty string

Change-Id: I4f3f242d69054dcbb3c7a02441991196ba140986

includes/Title.php
includes/specials/SpecialWhatlinkshere.php

index f9c7bdf..cd9eb94 100644 (file)
@@ -4433,6 +4433,11 @@ class Title {
                        'rd_title' => $this->getDBkey(),
                        'rd_from = page_id'
                );
+               if ( $this->isExternal() ) {
+                       $where['rd_interwiki'] = $this->getInterwiki();
+               } else {
+                       $where[] = 'rd_interwiki = ' . $dbr->addQuotes( '' ) . ' OR rd_interwiki IS NULL';
+               }
                if ( !is_null( $ns ) ) {
                        $where['page_namespace'] = $ns;
                }
index 5d6a112..f135649 100644 (file)
@@ -163,7 +163,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                        'rd_from = page_id',
                        'rd_namespace' => $target->getNamespace(),
                        'rd_title' => $target->getDBkey(),
-                       '(rd_interwiki is NULL) or (rd_interwiki = \'\')'
+                       'rd_interwiki = ' . $dbr->addQuotes( '' ) . ' OR rd_interwiki IS NULL'
                )));
 
                if( $fetchlinks ) {