PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.7.7
Admin Columns v4.7.7
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 2 years ago Ajax 2 years ago ApplyFilter 2 years ago Asset 2 years ago Capabilities 2 years ago Check 2 years ago Column 2 years ago ColumnRepository 2 years ago ColumnSize 2 years ago Controller 2 years ago Deprecated 2 years ago Entity 2 years ago Exception 2 years ago Form 2 years ago Helper 2 years ago Integration 2 years ago ListScreen 2 years ago ListScreenFactory 2 years ago ListScreenRepository 2 years ago ListTable 2 years ago Message 2 years ago Meta 2 years ago Nonce 2 years ago Plugin 2 years ago Preferences 2 years ago Promo 2 years ago Relation 2 years ago Request 2 years ago RequestHandler 2 years ago Response 2 years ago Sanitize 2 years ago Screen 2 years ago Service 2 years ago Settings 2 years ago Storage 2 years ago Table 2 years ago ThirdParty 2 years ago Transient 2 years ago Type 2 years ago View 2 years ago AdminColumns.php 2 years ago ArrayIterator.php 2 years ago Capabilities.php 2 years ago Collection.php 2 years ago Column.php 2 years ago ColumnGroups.php 2 years ago ColumnRepository.php 2 years ago Config.php 2 years ago Container.php 2 years ago DefaultColumnsRepository.php 2 years ago Dependencies.php 2 years ago Expirable.php 2 years ago Groups.php 2 years ago Helper.php 2 years ago Integration.php 2 years ago IntegrationRepository.php 2 years ago Integrations.php 2 years ago Iterator.php 2 years ago ListScreen.php 2 years ago ListScreenCollection.php 2 years ago ListScreenFactory.php 2 years ago ListScreenGroupsFactory.php 2 years ago ListScreenPost.php 2 years ago ListScreenRepository.php 2 years ago ListScreenRepositoryWritable.php 2 years ago ListTable.php 2 years ago ListTableFactory.php 2 years ago Message.php 2 years ago MetaType.php 2 years ago Middleware.php 2 years ago OpCacheInvalidateTrait.php 2 years ago PluginActionLinks.php 2 years ago PluginActionUpgrade.php 2 years ago PluginUpdate.php 2 years ago PostType.php 2 years ago PostTypeRepository.php 2 years ago Preferences.php 2 years ago Promo.php 2 years ago PromoCollection.php 2 years ago Registerable.php 2 years ago Relation.php 2 years ago Renderable.php 2 years ago Request.php 2 years ago RequestAjaxHandler.php 2 years ago RequestAjaxHandlers.php 2 years ago RequestAjaxParser.php 2 years ago Sanitize.php 2 years ago Screen.php 2 years ago ScreenController.php 2 years ago Services.php 2 years ago Stringable.php 2 years ago Transient.php 2 years ago TypedArrayIterator.php 2 years ago View.php 2 years ago ViewCollection.php 2 years ago WpListTableFactory.php 2 years 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 }