PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.14.6
Independent Analytics – WordPress Analytics Plugin v2.14.6
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 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 All 120 releases
independent-analytics / IAWP / Tables / Groups / Groups.php
Groups.php
60 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Tables\Groups;
4
5 /** @internal */
6 class Groups
7 {
8 private $groups;
9 /**
10 * @param Group[] $groups
11 */
12 public function __construct(array $groups = [])
13 {
14 $this->groups = $groups;
15 }
16 public function add(\IAWP\Tables\Groups\Group $group) : void
17 {
18 $this->groups[] = $group;
19 }
20 public function find_by_id(?string $id = null) : \IAWP\Tables\Groups\Group
21 {
22 if (\is_null($id)) {
23 return $this->default_group();
24 }
25 $array = \array_filter($this->groups(), function ($group) use($id) {
26 return $group->id() === $id;
27 });
28 $match = \reset($array);
29 return $match === \false ? $this->default_group() : $match;
30 }
31 /**
32 * Return an array of groups representing buttons one can select
33 *
34 * @return Group[]
35 */
36 public function buttons() : array
37 {
38 if ($this->has_grouping_options()) {
39 return [];
40 } else {
41 return $this->groups();
42 }
43 }
44 public function has_grouping_options() : bool
45 {
46 return \count($this->groups()) > 1;
47 }
48 /**
49 * @return Group[]
50 */
51 public function groups() : array
52 {
53 return $this->groups;
54 }
55 private function default_group() : \IAWP\Tables\Groups\Group
56 {
57 return $this->groups()[0];
58 }
59 }
60