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 / Overview / Modules / Quick_Stats_Module.php
independent-analytics / IAWP / Overview / Modules Last commit date
Busiest_Day_Of_Week_Module.php 5 months ago Busiest_Time_Of_Day_Module.php 1 year ago Line_Chart_Module.php 9 months ago Map_Module.php 9 months ago Module.php 5 months ago New_Sessions_Module.php 1 year ago Pie_Chart_Module.php 9 months ago Quick_Stats_Module.php 9 months ago Recent_Conversions_Module.php 5 months ago Recent_Views_Module.php 5 months ago Top_Ten_Module.php 9 months ago
Quick_Stats_Module.php
72 lines
1 <?php
2
3 namespace IAWP\Overview\Modules;
4
5 use IAWP\Date_Range\Relative_Date_Range;
6 use IAWP\Env;
7 use IAWP\Overview\Form_Field_Option;
8 use IAWP\Statistics\Intervals\Intervals;
9 use IAWP\Statistics\Statistic;
10 use IAWP\Statistics\Statistics;
11 use IAWP\Tables\Table;
12 use IAWPSCOPED\Illuminate\Support\Collection;
13 /** @internal */
14 class Quick_Stats_Module extends \IAWP\Overview\Modules\Module
15 {
16 public function module_type() : string
17 {
18 return 'quick-stats';
19 }
20 public function module_name() : string
21 {
22 return \__('Quick Stats', 'independent-analytics');
23 }
24 public function calculate_dataset()
25 {
26 $date_range = Relative_Date_Range::range_by_id($this->attributes['date_range'] ?? null);
27 $chart_interval = Intervals::default_for($date_range->number_of_days());
28 $table_class = Env::get_table($this->report()->type());
29 /** @var Table $table */
30 $table = new $table_class($this->report()->group_name(), \true);
31 $rows_class = $table->group()->rows_class();
32 if ($this->report()->has_filters()) {
33 $filters = $table->sanitize_filters($this->report()->filters());
34 } else {
35 $filters = null;
36 }
37 $rows_query = new $rows_class($date_range, $table->sanitize_sort_parameters(), null, $filters);
38 // $rows = $rows_query->rows();
39 $statistics_class = $table->group()->statistics_class();
40 /** @var Statistics $statistics */
41 $statistics = new $statistics_class($date_range, $this->report()->has_filters() ? $rows_query : null, $chart_interval);
42 return Collection::make($this->attributes['statistics'] ?? [])->map(function (string $statistic_id) use($statistics) {
43 return $statistics->get_statistic($statistic_id);
44 })->filter(function (?Statistic $statistic) {
45 return !\is_null($statistic) && $statistic->is_enabled() && $statistic->is_group_plugin_enabled();
46 })->map(function (Statistic $statistic) {
47 return ['id' => $statistic->id(), 'name' => $statistic->name(), 'formatted_value' => $statistic->formatted_value(), 'formatted_unfiltered_value' => $statistic->formatted_unfiltered_value(), 'growth' => $statistic->growth(), 'formatted_growth' => $statistic->formatted_growth(), 'growth_html_class' => $statistic->growth_html_class(), 'icon' => $statistic->icon(), 'is_visible' => \true];
48 })->all();
49 }
50 /**
51 * Used to determine which stats to show in the loading screen
52 *
53 * @return array
54 */
55 public function selected_stats() : array
56 {
57 $form_field = $this->get_form_field('statistics');
58 return Collection::make($this->attributes['statistics'] ?? [])->filter(function (string $statistic_id) use($form_field) {
59 return $form_field->is_a_supported_value($statistic_id);
60 })->map(function (string $statistic_id) use($form_field) {
61 $form_field_option = Collection::make($form_field->supported_values())->first(function (Form_Field_Option $form_field_option) use($statistic_id) {
62 return $form_field_option->id() === $statistic_id;
63 });
64 return ['id' => $form_field_option->id(), 'name' => $form_field_option->name()];
65 })->all();
66 }
67 protected function module_fields() : array
68 {
69 return ['report', 'statistics', 'date_range'];
70 }
71 }
72