PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.10
Independent Analytics – WordPress Analytics Plugin v1.10
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / inc / queries / resources.php
independent-analytics / inc / queries Last commit date
geos.php 3 years ago range_query.php 3 years ago referrers.php 3 years ago resources.php 3 years ago views.php 3 years ago
resources.php
98 lines
1 <?php
2
3 namespace IAWP;
4
5 class Resources extends Range_Query
6 {
7 private $results;
8
9 public function get_resources()
10 {
11 if (is_null($this->results)) {
12 $this->results = $this->query();
13 }
14
15 return $this->results;
16 }
17
18 public function get_resources_as_csv()
19 {
20 $resources = $this->get_resources();
21 $arr = [['Title', 'Views', 'Visitors', 'URL', 'Author', 'Page Type', 'Publish Date', 'Post Category']];
22
23 foreach ($resources as $resource) {
24 $arr[] = [
25 $resource->title(),
26 $resource->views(),
27 $resource->visitors(),
28 $resource->url(),
29 $resource->author(),
30 $resource->type_label(),
31 Security::string(date(Date_Format::php(), $resource->date())),
32 $resource->category(),
33 ];
34 }
35
36 return Array_To_CSV::array2csv($arr);
37 }
38
39 private function query()
40 {
41 global $wpdb;
42 $views_table = DB::views_table();
43 $resources_table = DB::resources_table();
44
45 $query = $wpdb->prepare(
46 "
47 SELECT
48 COUNT(*) AS views,
49 COUNT(DISTINCT views.visitor_id) AS visitors,
50 resources.*
51 FROM $views_table AS views
52 LEFT JOIN $resources_table AS resources ON views.resource_id = resources.id
53 WHERE views.viewed_at BETWEEN %s AND %s
54 GROUP BY resources.id
55 ORDER BY views DESC;
56 ",
57 $this->formatted_start(),
58 $this->formatted_end()
59 );
60
61 $rows = $wpdb->get_results($query);
62
63 return $this->rows_to_pages($rows);
64 }
65
66 private function rows_to_pages($rows)
67 {
68 return array_map(function ($row) {
69 switch ($row->resource) {
70 case 'singular':
71 return new Page_Singular($row);
72 break;
73 case 'author_archive':
74 return new Page_Author_Archive($row);
75 break;
76 case 'date_archive':
77 return new Page_Date_Archive($row);
78 break;
79 case 'post_type_archive':
80 return new Page_Post_Type_Archive($row);
81 break;
82 case 'term_archive':
83 return new Page_Term_Archive($row);
84 break;
85 case 'search':
86 return new Page_Search($row);
87 break;
88 case 'home':
89 return new Page_Home($row);
90 break;
91 case '404':
92 return new Page_Not_Found($row);
93 break;
94 }
95 }, $rows);
96 }
97 }
98