PluginProbe
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.3.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.3.3
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 All 83 releases
matomo / classes / WpMatomo / WpStatistics / DataConverters / PagesUrlConverter.php
PagesUrlConverter.php
53 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WpMatomo\WpStatistics\DataConverters;
4
5 use Piwik\DataTable;
6 use Piwik\Metrics;
7 use Piwik\Plugins\Actions\ArchivingHelper;
8 use Piwik\Tracker\Action;
9 use Piwik\Tracker\PageUrl;
10
11 /**
12 * @package WpMatomo
13 * @subpackage WpStatisticsImport
14 */
15 class PagesUrlConverter extends NumberConverter implements DataConverterInterface {
16
17 public static function convert( array $wp_statistics_data ) {
18 $first_page = reset( $wp_statistics_data );
19 $key = isset( $first_page['uri'] ) ? 'uri' : 'str_url';
20
21 $rows = self::aggregate_by_key( $wp_statistics_data, $key );
22 $main_url_without_slash = site_url();
23 $main_url_without_slash = rtrim( $main_url_without_slash, '/' );
24 $data_tables = [
25 Action::TYPE_PAGE_URL => new DataTable(),
26 ];
27 ArchivingHelper::reloadConfig();
28 foreach ( $rows as $row ) {
29 $whole_url = $main_url_without_slash . '/' . ltrim( $row->getColumn( 'label' ), '/' );
30 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
31 $row_label = str_replace( array_keys( PageUrl::$urlPrefixMap ), '', $whole_url );
32 $row->setColumn( Metrics::INDEX_PAGE_NB_HITS, $row['nb_visits'] );
33 $row->setColumn( Metrics::INDEX_NB_VISITS, $row['nb_visits'] );
34 $row->setColumn( Metrics::INDEX_NB_UNIQ_VISITORS, $row['nb_visits'] );
35 $row->deleteColumn( 'nb_visits' );
36 $row->deleteColumn( 'nb_uniq_visitors' );
37
38 $action_row = ArchivingHelper::getActionRow( $row_label, Action::TYPE_PAGE_URL, '', $data_tables );
39
40 $row->deleteColumn( 'label' );
41
42 $action_row->sumRow( $row, $copy_metadata = false );
43
44 if ( $action_row->getColumn( 'label' ) !== DataTable::LABEL_SUMMARY_ROW ) {
45 $action_row->setMetadata( 'url', $whole_url );
46 }
47 }
48 // to aggregate the subtable data
49 ArchivingHelper::deleteInvalidSummedColumnsFromDataTable( $data_tables[ Action::TYPE_PAGE_URL ] );
50 return $data_tables[ Action::TYPE_PAGE_URL ];
51 }
52 }
53