From f1f90b80f09b4955be633d320e86b00e1be8248e Mon Sep 17 00:00:00 2001 From: paladox Date: Sun, 12 Apr 2026 15:10:25 +0100 Subject: [PATCH 1/4] KnowledgeGraph::articlesInCategories: Fix support for MW 1.45 --- includes/KnowledgeGraph.php | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/includes/KnowledgeGraph.php b/includes/KnowledgeGraph.php index d95cf88..b493b6e 100644 --- a/includes/KnowledgeGraph.php +++ b/includes/KnowledgeGraph.php @@ -581,18 +581,34 @@ public static function parseParameters( $parameters, $defaultParameters ) { * @return array */ public static function articlesInCategories( $category, $limit, $offset ) { - $options = [ + $options = [ 'LIMIT' => $limit, 'OFFSET' => $offset - ]; - $dbr = wfGetDB( DB_REPLICA ); - $res = $dbr->select( 'categorylinks', - [ 'pageid' => 'cl_from' ], - [ 'cl_to' => str_replace( ' ', '_', $category ) ], - __METHOD__, - $options - ); - $ret = []; + ]; + $dbr = wfGetDB( DB_REPLICA ); + + if ( version_compare( MW_VERSION, '1.45', '>=' ) ) { + $categoryKey = str_replace( ' ', '_', $category ); + $res = $dbr->select( + [ 'categorylinks', 'linktarget' ], + [ 'pageid' => 'cl_from' ], + [ + 'cl_target_id = lt_id', + 'lt_title' => $categoryKey, + 'lt_namespace' => NS_CATEGORY, + ], + __METHOD__, + $options + ); + } else { + $res = $dbr->select( 'categorylinks', + [ 'pageid' => 'cl_from' ], + [ 'cl_to' => str_replace( ' ', '_', $category ) ], + __METHOD__, + $options + ); + } + $ret = []; foreach ( $res as $row ) { $title_ = Title::newFromID( $row->pageid ); if ( $title_ ) { From a6bd2cf533506341e7b5daa756bfe9da84816594 Mon Sep 17 00:00:00 2001 From: paladox Date: Sun, 12 Apr 2026 15:12:42 +0100 Subject: [PATCH 2/4] Update KnowledgeGraph.php --- includes/KnowledgeGraph.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/includes/KnowledgeGraph.php b/includes/KnowledgeGraph.php index b493b6e..46a5bc1 100644 --- a/includes/KnowledgeGraph.php +++ b/includes/KnowledgeGraph.php @@ -593,12 +593,14 @@ public static function articlesInCategories( $category, $limit, $offset ) { [ 'categorylinks', 'linktarget' ], [ 'pageid' => 'cl_from' ], [ - 'cl_target_id = lt_id', 'lt_title' => $categoryKey, 'lt_namespace' => NS_CATEGORY, ], __METHOD__, - $options + $options, + [ + 'linktarget' => [ 'JOIN', 'cl_target_id = lt_id' ], + ] ); } else { $res = $dbr->select( 'categorylinks', From 3d17ef3b0312b2079e9ceadd879257d1464ea40e Mon Sep 17 00:00:00 2001 From: paladox Date: Sun, 12 Apr 2026 15:21:13 +0100 Subject: [PATCH 3/4] Update KnowledgeGraph.php --- includes/KnowledgeGraph.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/includes/KnowledgeGraph.php b/includes/KnowledgeGraph.php index 46a5bc1..43a12ff 100644 --- a/includes/KnowledgeGraph.php +++ b/includes/KnowledgeGraph.php @@ -588,13 +588,11 @@ public static function articlesInCategories( $category, $limit, $offset ) { $dbr = wfGetDB( DB_REPLICA ); if ( version_compare( MW_VERSION, '1.45', '>=' ) ) { - $categoryKey = str_replace( ' ', '_', $category ); $res = $dbr->select( [ 'categorylinks', 'linktarget' ], [ 'pageid' => 'cl_from' ], [ - 'lt_title' => $categoryKey, - 'lt_namespace' => NS_CATEGORY, + 'lt_title' => str_replace( ' ', '_', $category ), ], __METHOD__, $options, From 1767671acb3fb5f3ffa09ee151e1f0a22bfd3279 Mon Sep 17 00:00:00 2001 From: paladox Date: Sun, 12 Apr 2026 15:28:03 +0100 Subject: [PATCH 4/4] Update KnowledgeGraph.php --- includes/KnowledgeGraph.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/KnowledgeGraph.php b/includes/KnowledgeGraph.php index 43a12ff..3133038 100644 --- a/includes/KnowledgeGraph.php +++ b/includes/KnowledgeGraph.php @@ -593,6 +593,7 @@ public static function articlesInCategories( $category, $limit, $offset ) { [ 'pageid' => 'cl_from' ], [ 'lt_title' => str_replace( ' ', '_', $category ), + 'lt_namespace' => NS_CATEGORY, ], __METHOD__, $options,