Open Journal Systems  3.3.0
OJSUsageStatsReportPlugin.inc.php
1 <?php
2 
17 import('plugins.generic.usageStats.PKPUsageStatsReportPlugin');
18 
19 define('OJS_METRIC_TYPE_COUNTER', 'ojs::counter');
20 
22 
26  function getMetrics($metricType = null, $columns = null, $filters = null, $orderBy = null, $range = null) {
27  // Validate the metric type.
28  if (!(is_scalar($metricType) || count($metricType) === 1)) return null;
29  if (is_array($metricType)) $metricType = array_pop($metricType);
30  if ($metricType !== OJS_METRIC_TYPE_COUNTER) return null;
31 
32  return parent::getMetrics($metricType, $columns, $filters, $orderBy, $range);
33  }
34 
38  function getMetricTypes() {
39  return array(OJS_METRIC_TYPE_COUNTER);
40  }
41 
45  function getMetricDisplayType($metricType) {
46  if ($metricType !== OJS_METRIC_TYPE_COUNTER) return null;
47  return parent::getMetricDisplayType($metricType);
48  }
49 
53  function getMetricFullName($metricType) {
54  if ($metricType !== OJS_METRIC_TYPE_COUNTER) return null;
55  return parent::getMetricDisplayType($metricType);
56  }
57 
61  function getColumns($metricType) {
62  if ($metricType !== OJS_METRIC_TYPE_COUNTER) return array();
63  return array(
64  STATISTICS_DIMENSION_ASSOC_ID,
65  STATISTICS_DIMENSION_ASSOC_TYPE,
66  STATISTICS_DIMENSION_FILE_TYPE,
67  STATISTICS_DIMENSION_REPRESENTATION_ID,
68  STATISTICS_DIMENSION_SUBMISSION_ID,
69  STATISTICS_DIMENSION_ISSUE_ID,
70  STATISTICS_DIMENSION_CONTEXT_ID,
71  STATISTICS_DIMENSION_CITY,
72  STATISTICS_DIMENSION_REGION,
73  STATISTICS_DIMENSION_COUNTRY,
74  STATISTICS_DIMENSION_DAY,
75  STATISTICS_DIMENSION_MONTH,
76  STATISTICS_METRIC
77  );
78  }
79 
83  function getObjectTypes($metricType) {
84  if ($metricType !== OJS_METRIC_TYPE_COUNTER) return array();
85  return array(
86  ASSOC_TYPE_JOURNAL,
87  ASSOC_TYPE_ISSUE,
88  ASSOC_TYPE_ISSUE_GALLEY,
89  ASSOC_TYPE_SUBMISSION,
90  ASSOC_TYPE_SUBMISSION_FILE
91  );
92  }
93 
97  function getDefaultReportTemplates($metricTypes = null) {
98  $reports = parent::getDefaultReportTemplates($metricTypes);
99  // Define the press report template.
100  $reports[0]['nameLocaleKey'] = 'manager.statistics.reports.defaultReport.journalIndexPageViews';
101 
102  $contextReportTemplate = current($reports);
103  $metricType = $contextReportTemplate['metricType'];
104  $aggregationColumns = $this->getAggregationColumns();
105 
106  // Article file downloads.
107  $columns = array(STATISTICS_DIMENSION_ASSOC_TYPE,
108  STATISTICS_DIMENSION_ASSOC_ID,
109  STATISTICS_DIMENSION_ISSUE_ID,
110  STATISTICS_DIMENSION_SUBMISSION_ID,
111  STATISTICS_DIMENSION_MONTH,
112  STATISTICS_DIMENSION_COUNTRY);
113  $filter = array(STATISTICS_DIMENSION_ASSOC_TYPE => ASSOC_TYPE_SUBMISSION_FILE);
114  array_unshift($reports, array('nameLocaleKey' => 'manager.statistics.reports.defaultReport.articleDownloads',
115  'metricType' => $metricType, 'columns' => $columns, 'filter' => $filter,
116  'aggregationColumns' => $aggregationColumns));
117 
118  // Article abstract views.
119  $filter = array(STATISTICS_DIMENSION_ASSOC_TYPE => ASSOC_TYPE_SUBMISSION);
120  array_unshift($reports, array('nameLocaleKey' => 'manager.statistics.reports.defaultReport.articleAbstract',
121  'metricType' => $metricType, 'columns' => $columns, 'filter' => $filter,
122  'aggregationColumns' => $aggregationColumns));
123 
124  // Issue main page views.
125  $columns = array(STATISTICS_DIMENSION_ASSOC_TYPE,
126  STATISTICS_DIMENSION_MONTH,
127  STATISTICS_DIMENSION_COUNTRY);
128  $filter = array(STATISTICS_DIMENSION_ASSOC_TYPE => ASSOC_TYPE_ISSUE);
129  array_unshift($reports, array('nameLocaleKey' => 'manager.statistics.reports.defaultReport.issuePageViews',
130  'metricType' => $metricType, 'columns' => $columns, 'filter' => $filter,
131  'aggregationColumns' => $aggregationColumns));
132 
133  return $reports;
134  }
135 }
136 
PKPUsageStatsReportPlugin\getAggregationColumns
getAggregationColumns()
Definition: PKPUsageStatsReportPlugin.inc.php:149
PKPUsageStatsReportPlugin
OJS default statistics report plugin (and metrics provider)
Definition: PKPUsageStatsReportPlugin.inc.php:19
OJSUsageStatsReportPlugin\getMetrics
getMetrics($metricType=null, $columns=null, $filters=null, $orderBy=null, $range=null)
Definition: OJSUsageStatsReportPlugin.inc.php:26
OJSUsageStatsReportPlugin\getColumns
getColumns($metricType)
Definition: OJSUsageStatsReportPlugin.inc.php:61
OJSUsageStatsReportPlugin
Definition: OJSUsageStatsReportPlugin.inc.php:21
OJSUsageStatsReportPlugin\getMetricDisplayType
getMetricDisplayType($metricType)
Definition: OJSUsageStatsReportPlugin.inc.php:45
OJSUsageStatsReportPlugin\getObjectTypes
getObjectTypes($metricType)
Definition: OJSUsageStatsReportPlugin.inc.php:83
OJSUsageStatsReportPlugin\getMetricFullName
getMetricFullName($metricType)
Definition: OJSUsageStatsReportPlugin.inc.php:53
OJSUsageStatsReportPlugin\getMetricTypes
getMetricTypes()
Definition: OJSUsageStatsReportPlugin.inc.php:38
OJSUsageStatsReportPlugin\getDefaultReportTemplates
getDefaultReportTemplates($metricTypes=null)
Definition: OJSUsageStatsReportPlugin.inc.php:97