PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
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 / Rows / Filter.php
independent-analytics / IAWP / Rows Last commit date
Campaigns.php 2 years ago Cities.php 2 years ago Countries.php 2 years ago Device_Browsers.php 2 years ago Device_OSS.php 2 years ago Device_Types.php 2 years ago Filter.php 2 years ago Pages.php 2 years ago Referrers.php 2 years ago Rows.php 2 years ago
Filter.php
79 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Rows;
4
5 /** @internal */
6 class Filter
7 {
8 private $filter;
9 public function __construct(array $filter)
10 {
11 $this->filter = $filter;
12 }
13 public function filter() : array
14 {
15 return $this->filter;
16 }
17 public function method() : string
18 {
19 if ($this->filter['column'] === $this->filter['database_column']) {
20 return 'having';
21 } else {
22 return 'where';
23 }
24 }
25 public function column() : string
26 {
27 return $this->filter['database_column'];
28 }
29 public function operator() : string
30 {
31 $operator = $this->filter['operator'];
32 $result = '';
33 if ($operator === 'equal' || $operator === 'is' || $operator === 'exact' || $operator === 'on') {
34 $result = '=';
35 }
36 if ($operator === 'contains') {
37 $result = 'like';
38 }
39 if ($operator === 'isnt') {
40 $result = '!=';
41 }
42 if ($operator === 'greater' || $operator === 'after') {
43 $result = '>';
44 }
45 if ($operator === 'lesser' || $operator === 'before') {
46 $result = '<';
47 }
48 if ($this->filter['inclusion'] === 'exclude') {
49 if ($result === '=') {
50 return '!=';
51 } elseif ($result === '!=') {
52 return '=';
53 } elseif ($result === '>') {
54 return '<=';
55 } elseif ($result === '<') {
56 return '>=';
57 } elseif ($result === 'like') {
58 return 'not like';
59 }
60 }
61 return $result;
62 }
63 public function value() : string
64 {
65 if ($this->filter['operator'] === 'contains') {
66 return '%' . $this->filter['operand'] . '%';
67 }
68 if ($this->filter['database_column'] === 'cached_date') {
69 try {
70 $date = \DateTime::createFromFormat('U', $this->filter['operand']);
71 } catch (\Throwable $e) {
72 $date = new \DateTime();
73 }
74 return $date->format('Y-m-d');
75 }
76 return $this->filter['operand'];
77 }
78 }
79