From 21df970033b7923c9d51205b1736ff9a09d72f5b Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 11:33:54 -0600 Subject: [PATCH 01/15] MatomoAnalyticsWiki: add option to pass date and support flat param --- includes/MatomoAnalyticsWiki.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 098e35e..ab6264b 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -12,6 +12,7 @@ public function __construct( $wiki ) { private function getData( string $module, + string $date = 'previous30', string $period = 'range', string $jsonLabel = 'label', string $jsonData = 'nb_visits', @@ -25,9 +26,10 @@ private function getData( [ 'module' => 'API', 'format' => 'json', - 'date' => 'previous30', + 'date' => $date, 'method' => $module, 'period' => $period, + 'flat' => (int)$flat, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) ] From 2a28b20dff620e6cdf22020f96c14eeea82d8e58 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 11:35:33 -0600 Subject: [PATCH 02/15] Fix --- includes/MatomoAnalyticsWiki.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index ab6264b..aea0c37 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -16,7 +16,8 @@ private function getData( string $period = 'range', string $jsonLabel = 'label', string $jsonData = 'nb_visits', - bool $flat = false + int $flat = 0, + bool $flatArray = false ) { $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'matomoanalytics' ); @@ -29,7 +30,7 @@ private function getData( 'date' => $date, 'method' => $module, 'period' => $period, - 'flat' => (int)$flat, + 'flat' => $flat, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) ] @@ -41,7 +42,7 @@ private function getData( $arrayOut = []; foreach ( $siteJson as $key => $val ) { - if ( $flat ) { + if ( $flatArray ) { $arrayOut[$key] = $val ?: '-'; } else { $arrayOut[$val[$jsonLabel]] = $val[$jsonData] ?: '-'; From fcc3f8ff1c386d2017d3f69a8761322388a041a9 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 11:46:15 -0600 Subject: [PATCH 03/15] Add getMostVisistedPages() --- includes/MatomoAnalyticsWiki.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index aea0c37..3e59466 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -134,4 +134,9 @@ public function getVisitDurations() { public function getVisitDaysPassed() { return $this->getData( 'VisitorInterest.getNumberOfVisitsByDaysSinceLast' ); } + + // Most visited pages + public function getMostVisistedPages() { + return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'range', 'label', 'nb_visits', 1 ); + } } From 0a5864f934b3907c0c6690431711d854d26da945 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 11:51:04 -0600 Subject: [PATCH 04/15] Fix --- includes/MatomoAnalyticsWiki.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 3e59466..619bb3e 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -137,6 +137,6 @@ public function getVisitDaysPassed() { // Most visited pages public function getMostVisistedPages() { - return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'range', 'label', 'nb_visits', 1 ); + return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', 1 ); } } From dfc91e72fcd7beae67b6732949394e663c93cd54 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:01:41 -0600 Subject: [PATCH 05/15] Add --- includes/MatomoAnalyticsViewer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/MatomoAnalyticsViewer.php b/includes/MatomoAnalyticsViewer.php index 81f732a..d06f0a9 100644 --- a/includes/MatomoAnalyticsViewer.php +++ b/includes/MatomoAnalyticsViewer.php @@ -27,6 +27,7 @@ public function getFormDescriptor( 'visitpages' => $mA->getVisitPages(), 'visitduration' => $mA->getVisitDurations(), 'visitpass' => $mA->getVisitDaysPassed(), + 'mostvisited' => $mA->getMostVisistedPages(), ]; $formDescriptor = []; From 713d8699b9e78c637f674d27ac60d6cc0e9f3034 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:04:58 -0600 Subject: [PATCH 06/15] Fix --- includes/MatomoAnalyticsWiki.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 619bb3e..58e61f7 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -16,8 +16,7 @@ private function getData( string $period = 'range', string $jsonLabel = 'label', string $jsonData = 'nb_visits', - int $flat = 0, - bool $flatArray = false + int $flat = 0 ) { $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'matomoanalytics' ); @@ -42,7 +41,7 @@ private function getData( $arrayOut = []; foreach ( $siteJson as $key => $val ) { - if ( $flatArray ) { + if ( $flat ) { $arrayOut[$key] = $val ?: '-'; } else { $arrayOut[$val[$jsonLabel]] = $val[$jsonData] ?: '-'; From c80153d6b61a1bcb3a45a7c1f89356ba7cb156c1 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:08:36 -0600 Subject: [PATCH 07/15] Fix --- includes/MatomoAnalyticsWiki.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 58e61f7..329f6f6 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -29,10 +29,9 @@ private function getData( 'date' => $date, 'method' => $module, 'period' => $period, - 'flat' => $flat, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) - ] + ] + ( $flat ? [ 'flat' => $flat ] : [] ) ) ); From 3f8164c81e8f178fe447bcb11187640db2ca85fe Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:11:00 -0600 Subject: [PATCH 08/15] Fix --- includes/MatomoAnalyticsWiki.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 329f6f6..9b192ba 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -16,7 +16,7 @@ private function getData( string $period = 'range', string $jsonLabel = 'label', string $jsonData = 'nb_visits', - int $flat = 0 + bool $flat = false ) { $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'matomoanalytics' ); @@ -31,7 +31,7 @@ private function getData( 'period' => $period, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) - ] + ( $flat ? [ 'flat' => $flat ] : [] ) + ] + ( $flat ? [ 'flat' => 1 ] : [] ) ) ); @@ -135,6 +135,6 @@ public function getVisitDaysPassed() { // Most visited pages public function getMostVisistedPages() { - return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', 1 ); + return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', true ); } } From b87a4a194cea4f275ff4f700b1824744b6795ae6 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:12:24 -0600 Subject: [PATCH 09/15] Fix --- includes/MatomoAnalyticsWiki.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 9b192ba..4ed8a06 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -23,7 +23,7 @@ private function getData( $siteReply = MediaWikiServices::getInstance()->getHttpRequestFactory()->get( wfAppendQuery( $config->get( 'MatomoAnalyticsServerURL' ), - [ + array_merge( [ 'module' => 'API', 'format' => 'json', 'date' => $date, @@ -31,7 +31,7 @@ private function getData( 'period' => $period, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) - ] + ( $flat ? [ 'flat' => 1 ] : [] ) + ], ( $flat ? [ 'flat' => 1 ] : [] ) ) ) ); From d6d4e58498671fa669dc39820ed472779b8f6c77 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:14:08 -0600 Subject: [PATCH 10/15] - --- includes/MatomoAnalyticsWiki.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 4ed8a06..8c08496 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -23,7 +23,7 @@ private function getData( $siteReply = MediaWikiServices::getInstance()->getHttpRequestFactory()->get( wfAppendQuery( $config->get( 'MatomoAnalyticsServerURL' ), - array_merge( [ + [ 'module' => 'API', 'format' => 'json', 'date' => $date, @@ -31,7 +31,7 @@ private function getData( 'period' => $period, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) - ], ( $flat ? [ 'flat' => 1 ] : [] ) ) + ] ) ); From 3a6fabbee7b32216733ff1b796315ffa2af56135 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:15:12 -0600 Subject: [PATCH 11/15] no flat --- includes/MatomoAnalyticsWiki.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 8c08496..e82affc 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -135,6 +135,6 @@ public function getVisitDaysPassed() { // Most visited pages public function getMostVisistedPages() { - return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', true ); + return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits' ); } } From 23ea50ef90abccbb8d218c7ba6ffafa8c1d51992 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:18:28 -0600 Subject: [PATCH 12/15] - --- includes/MatomoAnalyticsViewer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsViewer.php b/includes/MatomoAnalyticsViewer.php index d06f0a9..033d852 100644 --- a/includes/MatomoAnalyticsViewer.php +++ b/includes/MatomoAnalyticsViewer.php @@ -27,7 +27,7 @@ public function getFormDescriptor( 'visitpages' => $mA->getVisitPages(), 'visitduration' => $mA->getVisitDurations(), 'visitpass' => $mA->getVisitDaysPassed(), - 'mostvisited' => $mA->getMostVisistedPages(), + // 'mostvisited' => $mA->getMostVisistedPages(), ]; $formDescriptor = []; From 32246596117f3c659a6d1a1e2543fbca19cfb8e7 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:19:32 -0600 Subject: [PATCH 13/15] Readd --- includes/MatomoAnalyticsViewer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsViewer.php b/includes/MatomoAnalyticsViewer.php index 033d852..d06f0a9 100644 --- a/includes/MatomoAnalyticsViewer.php +++ b/includes/MatomoAnalyticsViewer.php @@ -27,7 +27,7 @@ public function getFormDescriptor( 'visitpages' => $mA->getVisitPages(), 'visitduration' => $mA->getVisitDurations(), 'visitpass' => $mA->getVisitDaysPassed(), - // 'mostvisited' => $mA->getMostVisistedPages(), + 'mostvisited' => $mA->getMostVisistedPages(), ]; $formDescriptor = []; From 97f58153cfe782dd96030cf4484f54f06f228f16 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Fri, 5 Apr 2024 12:21:09 -0600 Subject: [PATCH 14/15] + --- includes/MatomoAnalyticsWiki.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index e82affc..619bb3e 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -16,7 +16,8 @@ private function getData( string $period = 'range', string $jsonLabel = 'label', string $jsonData = 'nb_visits', - bool $flat = false + int $flat = 0, + bool $flatArray = false ) { $config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'matomoanalytics' ); @@ -29,6 +30,7 @@ private function getData( 'date' => $date, 'method' => $module, 'period' => $period, + 'flat' => $flat, 'idSite' => $this->siteId, 'token_auth' => $config->get( 'MatomoAnalyticsTokenAuth' ) ] @@ -40,7 +42,7 @@ private function getData( $arrayOut = []; foreach ( $siteJson as $key => $val ) { - if ( $flat ) { + if ( $flatArray ) { $arrayOut[$key] = $val ?: '-'; } else { $arrayOut[$val[$jsonLabel]] = $val[$jsonData] ?: '-'; @@ -135,6 +137,6 @@ public function getVisitDaysPassed() { // Most visited pages public function getMostVisistedPages() { - return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits' ); + return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', 1 ); } } From 9e6546480ff57dd7470437e21ac8f401e5fb0254 Mon Sep 17 00:00:00 2001 From: CosmicAlpha Date: Sat, 6 Apr 2024 12:45:37 -0600 Subject: [PATCH 15/15] Use getPageTitles --- includes/MatomoAnalyticsWiki.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/MatomoAnalyticsWiki.php b/includes/MatomoAnalyticsWiki.php index 619bb3e..3d731d4 100644 --- a/includes/MatomoAnalyticsWiki.php +++ b/includes/MatomoAnalyticsWiki.php @@ -137,6 +137,7 @@ public function getVisitDaysPassed() { // Most visited pages public function getMostVisistedPages() { - return $this->getData( 'Actions.getPageUrls', 'today', 'month', 'label', 'nb_visits', 1 ); + // We can also add support for linking to them through URLs with Actions.getPageUrls if we want + return $this->getData( 'Actions.getPageTitles', 'today', 'month', 'label', 'nb_visits', 1 ); } }