PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.2
Independent Analytics – WordPress Analytics Plugin v2.14.2
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 / IAWP / Email_Reports / Email_Chart.php
independent-analytics / IAWP / Email_Reports Last commit date
Email_Chart.php 5 months ago Email_Reports.php 5 months ago Interval.php 5 months ago Interval_Factory.php 2 years ago
Email_Chart.php
69 lines
1 <?php
2
3 namespace IAWP\Email_Reports;
4
5 use IAWP\Statistics\Statistics;
6 use IAWP\Utils\Format;
7 use IAWPSCOPED\Proper\Number;
8 /** @internal */
9 class Email_Chart
10 {
11 public $views;
12 public $most_views;
13 public $y_labels;
14 public $x_labels;
15 private $statistics;
16 public function __construct(Statistics $statistics)
17 {
18 $this->statistics = $statistics;
19 $this->views = self::views();
20 $this->most_views = self::most_views();
21 $this->y_labels = self::y_labels();
22 $this->x_labels = self::x_labels();
23 }
24 public function views()
25 {
26 return \array_map(function ($day) {
27 return $day[1];
28 }, $this->statistics->get_statistic('views')->statistic_over_time());
29 }
30 public function most_views()
31 {
32 return \round(\max($this->views) * 1.1);
33 }
34 public function y_labels()
35 {
36 return [Number::abbreviate($this->most_views), Number::abbreviate($this->most_views / 2), 0];
37 }
38 public function x_labels()
39 {
40 $interval = \IAWPSCOPED\iawp()->get_option('iawp_email_report_interval', 'monthly');
41 $format = 'M j';
42 if ($interval == 'weekly') {
43 $format = 'D';
44 } elseif ($interval == 'daily') {
45 $format = Format::time();
46 }
47 $all_x_labels = \array_map(function ($day) use($format) {
48 return $day[0]->format($format);
49 }, $this->statistics->get_statistic('views')->statistic_over_time());
50 $x_labels = [];
51 if ($interval == 'monthly') {
52 for ($x = 0; $x < \count($all_x_labels); $x++) {
53 if (($x + 5) % 5 == 0) {
54 $x_labels[] = $all_x_labels[$x];
55 }
56 }
57 } elseif ($interval == 'weekly') {
58 $x_labels = $all_x_labels;
59 } elseif ($interval == 'daily') {
60 for ($x = 0; $x < \count($all_x_labels); $x++) {
61 if (($x + 6) % 6 == 0) {
62 $x_labels[] = $all_x_labels[$x];
63 }
64 }
65 }
66 return $x_labels;
67 }
68 }
69