PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.7
Independent Analytics – WordPress Analytics Plugin v1.7
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
range_query.php 4 years ago referrers.php 4 years ago resources.php 4 years ago views.php 4 years ago
resources.php
88 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 $resources = Page::ignore_page_nums_and_merge($resources);
22 $arr = [['Title', 'Views', 'Visitors', 'URL', 'Author', 'Page Type', 'Publish Date', 'Post Category']];
23
24 foreach ($resources as $resource) {
25 $arr[] = [
26 $resource->title(),
27 $resource->views(),
28 $resource->visitors(),
29 $resource->url(),
30 $resource->author(),
31 $resource->type_label(),
32 Security::string(date(Date_Format::php(), $resource->date())),
33 $resource->category(),
34 ];
35 }
36
37 return Array_To_CSV::array2csv($arr);
38 }
39
40 private function query()
41 {
42 global $wpdb;
43 $views_table = DB::views_table();
44 $resources_table = DB::resources_table();
45
46 $query = $wpdb->prepare(
47 "SELECT DISTINCT resource_id, COUNT(*) as views, COUNT(DISTINCT visitor_id) as visitors, $resources_table.* FROM $views_table LEFT JOIN $resources_table ON $views_table.resource_id = $resources_table.id WHERE viewed_at BETWEEN %s AND %s GROUP BY resource_id ORDER BY views DESC",
48 $this->formatted_start(),
49 $this->formatted_end()
50 );
51 $rows = $wpdb->get_results($query);
52
53 return $this->rows_to_pages($rows);
54 }
55
56 private function rows_to_pages($rows)
57 {
58 return array_map(function ($row) {
59 switch ($row->resource) {
60 case 'singular':
61 return new Page_Singular($row);
62 break;
63 case 'author_archive':
64 return new Page_Author_Archive($row);
65 break;
66 case 'date_archive':
67 return new Page_Date_Archive($row);
68 break;
69 case 'post_type_archive':
70 return new Page_Post_Type_Archive($row);
71 break;
72 case 'term_archive':
73 return new Page_Term_Archive($row);
74 break;
75 case 'search':
76 return new Page_Search($row);
77 break;
78 case 'home':
79 return new Page_Home($row);
80 break;
81 case '404':
82 return new Page_Not_Found($row);
83 break;
84 }
85 }, $rows);
86 }
87 }
88