PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.7.19
Admin Columns v4.7.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 / Screen.php
codepress-admin-columns / classes Last commit date
Admin 6 months ago Ajax 6 months ago ApplyFilter 6 months ago Asset 6 months ago Capabilities 6 months ago Check 6 months ago Column 6 months ago ColumnRepository 6 months ago ColumnSize 6 months ago Controller 6 months ago Deprecated 6 months ago Entity 6 months ago Exception 6 months ago Form 6 months ago Helper 6 months ago Integration 6 months ago ListScreen 6 months ago ListScreenFactory 6 months ago ListScreenRepository 6 months ago ListTable 6 months ago Message 6 months ago Meta 6 months ago Nonce 6 months ago Plugin 6 months ago Preferences 6 months ago Promo 6 months ago Relation 6 months ago Request 6 months ago RequestHandler 6 months ago Response 6 months ago Sanitize 6 months ago Screen 6 months ago Service 6 months ago Settings 6 months ago Storage 6 months ago Table 6 months ago ThirdParty 6 months ago Transient 6 months ago Type 6 months ago View 6 months ago AdminColumns.php 6 months ago ArrayIterator.php 6 months ago Capabilities.php 6 months ago Collection.php 6 months ago Column.php 6 months ago ColumnGroups.php 6 months ago ColumnRepository.php 6 months ago Config.php 6 months ago Container.php 6 months ago DefaultColumnsRepository.php 6 months ago Dependencies.php 6 months ago Expirable.php 6 months ago Groups.php 6 months ago Helper.php 6 months ago Integration.php 6 months ago IntegrationRepository.php 6 months ago Integrations.php 6 months ago Iterator.php 6 months ago ListScreen.php 6 months ago ListScreenCollection.php 6 months ago ListScreenFactory.php 6 months ago ListScreenGroupsFactory.php 6 months ago ListScreenPost.php 6 months ago ListScreenRepository.php 6 months ago ListScreenRepositoryWritable.php 6 months ago ListTable.php 6 months ago ListTableFactory.php 6 months ago Message.php 6 months ago MetaType.php 6 months ago Middleware.php 6 months ago OpCacheInvalidateTrait.php 6 months ago PluginActionLinks.php 6 months ago PluginActionUpgrade.php 6 months ago PluginUpdate.php 6 months ago PostType.php 6 months ago PostTypeRepository.php 6 months ago Preferences.php 6 months ago Promo.php 6 months ago PromoCollection.php 6 months ago Registerable.php 6 months ago Relation.php 6 months ago Renderable.php 6 months ago Request.php 6 months ago RequestAjaxHandler.php 6 months ago RequestAjaxHandlers.php 6 months ago RequestAjaxParser.php 6 months ago Sanitize.php 6 months ago Screen.php 6 months ago ScreenController.php 6 months ago Services.php 6 months ago Stringable.php 6 months ago Transient.php 6 months ago TypedArrayIterator.php 6 months ago View.php 6 months ago ViewCollection.php 6 months ago WpListTableFactory.php 6 months ago
Screen.php
123 lines
1 <?php
2
3 namespace AC;
4
5 use AC\Admin\Page\Columns;
6 use AC\Admin\RequestHandlerInterface;
7 use WP_Screen;
8
9 class Screen implements Registerable
10 {
11
12 private $list_screen_factory;
13
14 /**
15 * @var WP_Screen
16 */
17 protected $screen;
18
19 public function __construct(ListScreenFactory $list_screen_factory)
20 {
21 $this->list_screen_factory = $list_screen_factory;
22 }
23
24 public function register(): void
25 {
26 add_action('current_screen', [$this, 'init']);
27 }
28
29 public function init(WP_Screen $screen): void
30 {
31 $this->set_screen($screen);
32
33 do_action('ac/screen', $this, $this->screen->id);
34 }
35
36 public function is_screen(string $id): bool
37 {
38 return $this->has_screen() && $this->get_screen()->id === $id;
39 }
40
41 public function set_screen(WP_Screen $screen): self
42 {
43 $this->screen = $screen;
44
45 return $this;
46 }
47
48 public function get_screen(): WP_Screen
49 {
50 return $this->screen;
51 }
52
53 public function has_screen(): bool
54 {
55 return $this->screen instanceof WP_Screen;
56 }
57
58 public function get_id(): string
59 {
60 return $this->screen->id;
61 }
62
63 public function get_base(): string
64 {
65 return $this->screen->base;
66 }
67
68 public function get_post_type(): string
69 {
70 return $this->screen->post_type;
71 }
72
73 private function is_admin_network(): bool
74 {
75 return $this->screen->in_admin('network');
76 }
77
78 public function is_list_screen(): bool
79 {
80 return $this->list_screen_factory->can_create_from_wp_screen($this->screen);
81 }
82
83 public function is_plugin_screen(): bool
84 {
85 $screen = $this->is_admin_network()
86 ? 'plugins-network'
87 : 'plugins';
88
89 return $this->is_screen($screen);
90 }
91
92 public function is_admin_screen(string $slug = null): bool
93 {
94 if (null !== $slug) {
95 $tabs = [$slug];
96
97 // When the column page is requested from the setting menu the 'tab' querystring is not set.
98 if (Columns::NAME === $slug) {
99 $tabs[] = null;
100 }
101
102 return $this->is_main_admin_screen() && in_array(
103 filter_input(INPUT_GET, RequestHandlerInterface::PARAM_TAB),
104 $tabs,
105 true
106 );
107 }
108
109 return $this->is_main_admin_screen();
110 }
111
112 private function is_main_admin_screen(): bool
113 {
114 $id = 'settings_page_' . Admin\Admin::NAME;
115
116 if ($this->is_admin_network()) {
117 $id .= '-network';
118 }
119
120 return $this->is_screen($id);
121 }
122
123 }