PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
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 / Interval / Ten_Second_Interval.php
independent-analytics / IAWP / Interval Last commit date
Interval.php 2 years ago Minute_Interval.php 2 years ago Ten_Second_Interval.php 2 years ago
Ten_Second_Interval.php
41 lines
1 <?php
2
3 namespace IAWP\Interval;
4
5 use IAWP\Date_Range\Date_Range;
6 use IAWP\Illuminate_Builder;
7 use IAWP\Query;
8 use IAWPSCOPED\Illuminate\Database\Query\JoinClause;
9 /** @internal */
10 class Ten_Second_Interval extends \IAWP\Interval\Interval
11 {
12 public function fetch(Date_Range $date_range) : array
13 {
14 $views_table = Query::get_table_name(Query::VIEWS);
15 $sessions_table = Query::get_table_name(Query::SESSIONS);
16 return Illuminate_Builder::get_builder()->from($views_table, 'views')->selectRaw('COUNT(DISTINCT (sessions.visitor_id)) AS visitors')->selectRaw('COUNT(*) AS views')->selectRaw("ABS(CEILING(TIMESTAMPDIFF(SECOND, '{$date_range->iso_end()}', views.viewed_at) / 10)) AS interval_ago")->leftJoin("{$sessions_table} AS sessions", function (JoinClause $join) {
17 $join->on('views.session_id', '=', 'sessions.session_id');
18 })->whereBetween('viewed_at', [$date_range->iso_start(), $date_range->iso_end()])->groupBy('interval_ago')->get()->all();
19 }
20 public function get_date_interval() : \DateInterval
21 {
22 return new \DateInterval('PT10S');
23 }
24 public function short_label() : string
25 {
26 return \__('sec');
27 }
28 public function long_label_singular() : string
29 {
30 return \__('second ago');
31 }
32 public function long_label_plural() : string
33 {
34 return \__('seconds ago');
35 }
36 public function interval_multiplier() : int
37 {
38 return 10;
39 }
40 }
41