Campaigns.php
3 years ago
City_Statistics.php
3 years ago
Country_Statistics.php
3 years ago
Current_Traffic_Finder.php
3 years ago
Interval.php
3 years ago
Minute_Interval.php
3 years ago
Range_Query.php
3 years ago
Referrers.php
3 years ago
Reset_Database.php
3 years ago
Resources.php
3 years ago
Ten_Second_Interval.php
3 years ago
View.php
3 years ago
Views.php
3 years ago
Visitors_Over_Time_Finder.php
3 years ago
Interval.php
45 lines
| 1 | <?php |
| 2 | |
| 3 | namespace IAWP\Queries; |
| 4 | |
| 5 | abstract class Interval |
| 6 | { |
| 7 | abstract public function get_query_name(): string; |
| 8 | |
| 9 | abstract public function get_date_interval(): \DateInterval; |
| 10 | |
| 11 | abstract public function short_label(): string; |
| 12 | |
| 13 | abstract public function long_label_singular(): string; |
| 14 | |
| 15 | abstract public function long_label_plural(): string; |
| 16 | |
| 17 | abstract public function interval_multiplier(): int; |
| 18 | |
| 19 | public function get_short_labels(array $intervals): array |
| 20 | { |
| 21 | return array_map(function ($interval) { |
| 22 | $interval = $interval * $this->interval_multiplier(); |
| 23 | |
| 24 | if ($interval === 0) { |
| 25 | return esc_html__('now', 'iawp'); |
| 26 | } else { |
| 27 | return '-' . $interval . ' ' . $this->short_label(); |
| 28 | } |
| 29 | }, $intervals); |
| 30 | } |
| 31 | |
| 32 | public function get_full_labels($intervals): array |
| 33 | { |
| 34 | return array_map(function ($interval) { |
| 35 | $interval = $interval * $this->interval_multiplier(); |
| 36 | |
| 37 | if ($interval === 1) { |
| 38 | return $interval . ' ' . $this->long_label_singular(); |
| 39 | } else { |
| 40 | return $interval . ' ' . $this->long_label_plural(); |
| 41 | } |
| 42 | }, $intervals); |
| 43 | } |
| 44 | } |
| 45 |