PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.3
Independent Analytics – WordPress Analytics Plugin v1.3
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
86 lines
1 <?php
2
3 if (!class_exists('IAWP_Resources')) {
4 class IAWP_Resources extends IAWP_Range_Query
5 {
6 private $results;
7
8 public function get_resources()
9 {
10 if (is_null($this->results)) {
11 $this->results = $this->query();
12 }
13
14 return $this->results;
15 }
16
17 public function get_resources_as_csv()
18 {
19 $resources = $this->get_resources();
20 $resources = IAWP_Page::ignore_page_nums_and_merge($resources);
21 $arr = [['Title', 'Views', 'URL', 'Author', 'Page Type', 'Publish Date']];
22
23 foreach ($resources as $resource) {
24 $arr[] = [
25 $resource->title(),
26 $resource->views(),
27 $resource->url(),
28 $resource->author(),
29 $resource->type_label(),
30 $resource->date(),
31 ];
32 }
33
34 return IAWP_Array2CSV::array2csv($arr);
35 }
36
37 private function query()
38 {
39 global $wpdb;
40 $views_table = IAWP_DB::views_table();
41 $resources_table = IAWP_DB::resources_table();
42
43 $query = $wpdb->prepare(
44 "SELECT DISTINCT resource_id, COUNT(*) as views, $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",
45 $this->formatted_start(),
46 $this->formatted_end()
47 );
48 $rows = $wpdb->get_results($query);
49
50 return $this->rows_to_pages($rows);
51 }
52
53 private function rows_to_pages($rows)
54 {
55 return array_map(function ($row) {
56 switch ($row->resource) {
57 case 'singular':
58 return new IAWP_Page_Singular($row);
59 break;
60 case 'author_archive':
61 return new IAWP_Page_Author_Archive($row);
62 break;
63 case 'date_archive':
64 return new IAWP_Page_Date_Archive($row);
65 break;
66 case 'post_type_archive':
67 return new IAWP_Page_Post_Type_Archive($row);
68 break;
69 case 'term_archive':
70 return new IAWP_Page_Term_Archive($row);
71 break;
72 case 'search':
73 return new IAWP_Page_Search($row);
74 break;
75 case 'home':
76 return new IAWP_Page_Home($row);
77 break;
78 case '404':
79 return new IAWP_Page_Not_Found($row);
80 break;
81 }
82 }, $rows);
83 }
84 }
85 }
86