From 48e67c573267a0452c13fba425629f1465a3df15 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Sat, 7 Jan 2006 14:25:58 +0000 Subject: [PATCH] Use the new templatelinks table. The special page assume that the template to mark disambiguation page is in the template namespace. --- includes/SpecialDisambiguations.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/includes/SpecialDisambiguations.php b/includes/SpecialDisambiguations.php index c926ae6005..16dcfb0823 100644 --- a/includes/SpecialDisambiguations.php +++ b/includes/SpecialDisambiguations.php @@ -29,25 +29,31 @@ class DisambiguationsPage extends PageQueryPage { $sk = $wgUser->getSkin(); #FIXME : probably need to add a backlink to the maintenance page. - return '

'.wfMsg("disambiguationstext", $sk->makeKnownLink(wfMsgForContent('disambiguationspage')) )."


\n"; + return '

'.wfMsg('disambiguationstext', $sk->makeKnownLink(wfMsgForContent('disambiguationspage')) )."


\n"; } function getSQL() { $dbr =& wfGetDB( DB_SLAVE ); - extract( $dbr->tableNames( 'page', 'pagelinks' ) ); + extract( $dbr->tableNames( 'page', 'pagelinks', 'templatelinks' ) ); - $dp = Title::newFromText(wfMsgForContent("disambiguationspage")); + $dp = Title::newFromText(wfMsgForContent('disambiguationspage')); $id = $dp->getArticleId(); $dns = $dp->getNamespace(); $dtitle = $dbr->addQuotes( $dp->getDBkey() ); - $sql = "SELECT 'Disambiguations' AS type, pa.page_namespace AS namespace," + if($dns != NS_TEMPLATE) { + # FIXME we assume the disambiguation message is a template but + # the page can potentially be from another namespace :/ + wfDebug("Mediawiki:disambiguationspage message does not refer to a template!\n"); + } + + $sql = "SELECT 'Disambiguations' AS 'type', pa.page_namespace AS namespace," ." pa.page_title AS title, la.pl_from AS value" - ." FROM {$pagelinks} AS lb, {$page} AS pa, {$pagelinks} AS la" - ." WHERE lb.pl_namespace = $dns AND lb.pl_title = $dtitle" # disambiguation template - ." AND pa.page_id = lb.pl_from" - ." AND pa.page_namespace = la.pl_namespace" - ." AND pa.page_title = la.pl_title"; + ." FROM {$templatelinks} AS lb, {$page} AS pa, {$pagelinks} AS la" + ." WHERE lb.tl_namespace = $dns AND lb.tl_title = $dtitle" # disambiguation template + .' AND pa.page_id = lb.tl_from' + .' AND pa.page_namespace = la.pl_namespace' + .' AND pa.page_title = la.pl_title'; return $sql; } -- 2.20.1