PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 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 / Type / TableScreenContext.php
codepress-admin-columns / classes / Type Last commit date
Url 2 days ago ColumnFactoryDefinition.php 2 days ago ColumnId.php 2 days ago ColumnWidth.php 2 days ago DateRange.php 2 days ago EditorUrlFactory.php 2 days ago FileSize.php 2 days ago Group.php 2 days ago Groups.php 2 days ago Integration.php 2 days ago Integrations.php 2 days ago KeyGenerator.php 2 days ago Labels.php 2 days ago Link.php 2 days ago ListScreenId.php 2 days ago ListScreenIdGenerator.php 2 days ago ListScreenStatus.php 2 days ago OriginalColumn.php 2 days ago OriginalColumns.php 2 days ago PostTypeSlug.php 2 days ago Promo.php 2 days ago PromoCollection.php 2 days ago StartingPrice.php 2 days ago TableId.php 2 days ago TableIdCollection.php 2 days ago TableScreenContext.php 2 days ago TaxonomySlug.php 2 days ago ToggleOptions.php 2 days ago Uri.php 2 days ago Url.php 2 days ago UserId.php 2 days ago UserRole.php 2 days ago UserRoles.php 2 days ago Value.php 2 days ago ValueCollection.php 2 days ago
TableScreenContext.php
85 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Type;
6
7 use AC;
8 use AC\MetaType;
9 use AC\TableScreen;
10 use ACA;
11 use LogicException;
12
13 final class TableScreenContext
14 {
15 private MetaType $meta_type;
16
17 private ?PostTypeSlug $post_type;
18
19 private ?TaxonomySlug $taxonomy;
20
21 public function __construct(
22 MetaType $meta_type,
23 ?PostTypeSlug $post_type = null,
24 ?TaxonomySlug $taxonomy = null
25 ) {
26 $this->meta_type = $meta_type;
27 $this->post_type = $post_type;
28 $this->taxonomy = $taxonomy;
29 }
30
31 public static function from_table_screen(TableScreen $screen): ?self
32 {
33 if ($screen instanceof ACA\WC\TableScreen\Order) {
34 return new TableScreenContext(
35 MetaType::create_post_meta(),
36 new PostTypeSlug('shop_order')
37 );
38 }
39
40 if (! $screen instanceof TableScreen\MetaType) {
41 return null;
42 }
43
44 return new self(
45 $screen->get_meta_type(),
46 $screen instanceof AC\PostType ? $screen->get_post_type() : null,
47 $screen instanceof AC\Taxonomy ? $screen->get_taxonomy() : null
48 );
49 }
50
51 public function get_meta_type(): MetaType
52 {
53 return $this->meta_type;
54 }
55
56 public function has_post_type(): bool
57 {
58 return null !== $this->post_type;
59 }
60
61 public function get_post_type(): PostTypeSlug
62 {
63 if (null === $this->post_type) {
64 throw new LogicException('No post type defined.');
65 }
66
67 return $this->post_type;
68 }
69
70 public function has_taxonomy(): bool
71 {
72 return null !== $this->taxonomy;
73 }
74
75 public function get_taxonomy(): TaxonomySlug
76 {
77 if (null === $this->taxonomy) {
78 throw new LogicException('No taxonomy defined.');
79 }
80
81 return $this->taxonomy;
82 }
83
84 }
85