PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.19
Admin Columns v7.0.19
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / TableScreenFactory / Aggregate.php
codepress-admin-columns / classes / TableScreenFactory Last commit date
Aggregate.php 1 month ago CommentFactory.php 1 month ago MediaFactory.php 1 month ago PostFactory.php 1 month ago UserFactory.php 1 month ago
Aggregate.php
70 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\TableScreenFactory;
6
7 use AC\TableScreen;
8 use AC\TableScreenFactory;
9 use AC\Type\TableId;
10 use InvalidArgumentException;
11 use WP_Screen;
12
13 class Aggregate implements TableScreenFactory
14 {
15
16 /**
17 * @var TableScreenFactory[]
18 */
19 private static array $factories = [];
20
21 public static function add(TableScreenFactory $factory): void
22 {
23 array_unshift(self::$factories, $factory);
24 }
25
26 public function create(TableId $id): TableScreen
27 {
28 foreach (self::$factories as $factory) {
29 if ($factory->can_create($id)) {
30 return $factory->create($id);
31 }
32 }
33
34 throw new InvalidArgumentException();
35 }
36
37 public function can_create(TableId $id): bool
38 {
39 foreach (self::$factories as $factory) {
40 if ($factory->can_create($id)) {
41 return (bool)apply_filters('ac/list_screen/key/is_active', true, (string)$id);
42 }
43 }
44
45 return false;
46 }
47
48 public function create_from_wp_screen(WP_Screen $screen): TableScreen
49 {
50 foreach (self::$factories as $factory) {
51 if ($factory->can_create_from_wp_screen($screen)) {
52 return $factory->create_from_wp_screen($screen);
53 }
54 }
55
56 throw new InvalidArgumentException();
57 }
58
59 public function can_create_from_wp_screen(WP_Screen $screen): bool
60 {
61 foreach (self::$factories as $factory) {
62 if ($factory->can_create_from_wp_screen($screen)) {
63 return (bool)apply_filters('ac/list_screen/is_active', true, $screen);
64 }
65 }
66
67 return false;
68 }
69
70 }