From d85b883f45efeb8826cfe213a352e154c5ad36a0 Mon Sep 17 00:00:00 2001 From: Robin van der Wiel Date: Wed, 14 Aug 2024 16:40:17 +0200 Subject: [PATCH 1/2] Add version_compare check --- .../UserEditCountPerNsPropertyAnnotator.php | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php b/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php index 1a0e690..7a5004f 100755 --- a/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php +++ b/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php @@ -2,6 +2,7 @@ namespace SESP\PropertyAnnotators; +use MediaWiki\MediaWikiServices; use SESP\AppFactory; use SESP\PropertyAnnotator; use SMW\DIProperty; @@ -115,9 +116,25 @@ public static function container( DIWikiPage $subject, $ns, $edits ): DIContaine */ private function getEditsPerNs( $id, $ip ): array { $db = $this->appFactory->getConnection(); + + if ( version_compare( MW_VERSION, "1.39", ">=" ) ) { + $queryTables = [ 'revision', 'actor', 'page' ]; + $joinConditions = [ + 'page' => [ 'INNER JOIN', ['page.page_id=revision.rev_page'] ], + 'actor' => [ 'INNER JOIN', ['actor.actor_id=revision.rev_actor'] ] + ]; + } else { + $queryTables = [ 'revision', 'revision_actor_temp', 'actor', 'page' ]; + $joinConditions = [ + 'page' => [ 'INNER JOIN', [ 'page.page_id=revision.rev_page' ] ], + 'revision_actor_temp' => [ 'INNER JOIN', [ 'revision_actor_temp.revactor_rev=revision.rev_id' ] ], + 'actor' => [ 'INNER JOIN', [ 'actor.actor_id=revision_actor_temp.revactor_actor' ] ] + ]; + } + $result = $db->select( - // FROM. - [ 'revision', 'revision_actor_temp', 'actor', 'page' ], + // FROM. + $queryTables, // SELECT. [ 'ns' => 'page.page_namespace', 'edits' => 'COUNT(revision.rev_id)' ], // WHERE. @@ -126,11 +143,7 @@ private function getEditsPerNs( $id, $ip ): array { // GROUP BY. [ 'GROUP BY' => [ 'page.page_namespace' ] ], // JOIN conditions. - [ - 'page' => [ 'INNER JOIN', [ 'page.page_id=revision.rev_page' ] ], - 'revision_actor_temp' => [ 'INNER JOIN', [ 'revision_actor_temp.revactor_rev=revision.rev_id' ] ], - 'actor' => [ 'INNER JOIN', [ 'actor.actor_id=revision_actor_temp.revactor_actor' ] ] - ] + $joinConditions ); $records = []; foreach ( $result as $row ) { From 9f6a9efd01b865b3ea7a78140aee51859773c74a Mon Sep 17 00:00:00 2001 From: Robin van der Wiel Date: Wed, 14 Aug 2024 16:51:48 +0200 Subject: [PATCH 2/2] Fix sniffs --- .../UserEditCountPerNsPropertyAnnotator.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php b/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php index 7a5004f..98656a5 100755 --- a/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php +++ b/src/PropertyAnnotators/UserEditCountPerNsPropertyAnnotator.php @@ -2,7 +2,6 @@ namespace SESP\PropertyAnnotators; -use MediaWiki\MediaWikiServices; use SESP\AppFactory; use SESP\PropertyAnnotator; use SMW\DIProperty; @@ -120,8 +119,8 @@ private function getEditsPerNs( $id, $ip ): array { if ( version_compare( MW_VERSION, "1.39", ">=" ) ) { $queryTables = [ 'revision', 'actor', 'page' ]; $joinConditions = [ - 'page' => [ 'INNER JOIN', ['page.page_id=revision.rev_page'] ], - 'actor' => [ 'INNER JOIN', ['actor.actor_id=revision.rev_actor'] ] + 'page' => [ 'INNER JOIN', [ 'page.page_id=revision.rev_page' ] ], + 'actor' => [ 'INNER JOIN', [ 'actor.actor_id=revision.rev_actor' ] ] ]; } else { $queryTables = [ 'revision', 'revision_actor_temp', 'actor', 'page' ];