PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.5.5
Admin Columns v4.5.5
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 3 years ago Ajax 3 years ago ApplyFilter 3 years ago Asset 3 years ago Autoloader 3 years ago Capabilities 3 years ago Check 3 years ago Column 3 years ago ColumnRepository 3 years ago ColumnSize 3 years ago Controller 3 years ago Deprecated 3 years ago Exception 3 years ago Form 3 years ago Helper 3 years ago Integration 3 years ago ListScreen 3 years ago ListScreenRepository 3 years ago ListTable 3 years ago Message 3 years ago Meta 3 years ago Nonce 3 years ago Plugin 3 years ago Preferences 3 years ago Promo 3 years ago Relation 3 years ago Request 3 years ago Response 3 years ago Sanitize 3 years ago Screen 3 years ago Service 3 years ago Settings 3 years ago Storage 3 years ago Table 3 years ago ThirdParty 3 years ago Transient 3 years ago Type 3 years ago AdminColumns.php 3 years ago ApplyFilter.php 3 years ago ArrayIterator.php 3 years ago Autoloader.php 3 years ago Builder.php 3 years ago Capabilities.php 3 years ago Collection.php 3 years ago Column.php 3 years ago ColumnGroups.php 3 years ago ColumnRepository.php 3 years ago Config.php 3 years ago DefaultColumnsRepository.php 3 years ago Dependencies.php 3 years ago EncodedListScreenData.php 3 years ago EncodedListScreenDataFactory.php 3 years ago Expirable.php 3 years ago Groups.php 3 years ago Helper.php 3 years ago Integration.php 3 years ago IntegrationRepository.php 3 years ago Integrations.php 3 years ago Iterator.php 3 years ago ListScreen.php 3 years ago ListScreenCollection.php 3 years ago ListScreenFactory.php 3 years ago ListScreenGroups.php 3 years ago ListScreenPost.php 3 years ago ListScreenRepository.php 3 years ago ListScreenRepositoryWritable.php 3 years ago ListScreenTypes.php 3 years ago ListScreenWP.php 3 years ago ListScreens.php 3 years ago ListTable.php 3 years ago ListTableFactory.php 3 years ago Message.php 3 years ago MetaType.php 3 years ago Middleware.php 3 years ago NoticeChecks.php 3 years ago OpCacheInvalidateTrait.php 3 years ago PermissionChecker.php 3 years ago Plugin.php 3 years ago PluginActionLinks.php 3 years ago PluginInformation.php 3 years ago PluginUpdate.php 3 years ago Preferences.php 3 years ago Promo.php 3 years ago PromoCollection.php 3 years ago Registrable.php 3 years ago Relation.php 3 years ago Renderable.php 3 years ago Request.php 3 years ago Sanitize.php 3 years ago Screen.php 3 years ago ScreenController.php 3 years ago Transient.php 3 years ago TypedArrayIterator.php 3 years ago View.php 3 years ago ViewCollection.php 3 years ago WpListTableFactory.php 3 years ago
Screen.php
158 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 Registrable {
10
11 /**
12 * @var WP_Screen
13 */
14 protected $screen;
15
16 public function register() {
17 add_action( 'current_screen', [ $this, 'init' ] );
18 }
19
20 /**
21 * @param WP_Screen $screen
22 */
23 public function init( WP_Screen $screen ) {
24 $this->set_screen( $screen );
25
26 do_action( 'ac/screen', $this, $this->screen->id );
27 }
28
29 /**
30 * @param $id
31 *
32 * @return bool
33 */
34 public function is_screen( $id ) {
35 return $this->has_screen() && $this->get_screen()->id === $id;
36 }
37
38 /**
39 * @param WP_Screen $screen
40 *
41 * @return $this
42 */
43 public function set_screen( WP_Screen $screen ) {
44 $this->screen = $screen;
45
46 return $this;
47 }
48
49 /**
50 * @return WP_Screen
51 */
52 public function get_screen() {
53 return $this->screen;
54 }
55
56 /**
57 * @return bool
58 */
59 public function has_screen() {
60 return $this->screen instanceof WP_Screen;
61 }
62
63 /**
64 * @return string
65 */
66 public function get_id() {
67 return $this->screen->id;
68 }
69
70 /**
71 * @return string
72 */
73 public function get_base() {
74 return $this->screen->base;
75 }
76
77 /**
78 * @return string
79 */
80 public function get_post_type() {
81 return $this->screen->post_type;
82 }
83
84 /**
85 * @return string|null
86 */
87 public function get_list_screen() {
88 foreach ( ListScreenTypes::instance()->get_list_screens() as $list_screen ) {
89 if ( $list_screen->is_current_screen( $this->screen ) ) {
90 return $list_screen->get_key();
91 }
92 }
93
94 return null;
95 }
96
97 /**
98 * @return bool
99 */
100 private function is_admin_network() {
101 return $this->screen->in_admin( 'network' );
102 }
103
104 /**
105 * @return bool
106 */
107 public function is_list_screen() {
108 return null !== $this->get_list_screen();
109 }
110
111 /**
112 * Check if current screen is plugins screen
113 * @return bool
114 */
115 public function is_plugin_screen() {
116 $id = 'plugins';
117
118 if ( $this->is_admin_network() ) {
119 $id .= '-network';
120 }
121
122 return $this->is_screen( $id );
123 }
124
125 /**
126 * @param string|null $slug
127 *
128 * @return bool
129 */
130 public function is_admin_screen( $slug = null ) {
131 if ( null !== $slug ) {
132 $tabs = [ $slug ];
133
134 // When the column page is requested from the setting menu the 'tab' querystring is not set.
135 if ( Columns::NAME === $slug ) {
136 $tabs[] = null;
137 }
138
139 return $this->is_main_admin_screen() && in_array( filter_input( INPUT_GET, RequestHandlerInterface::PARAM_TAB ), $tabs, true );
140 }
141
142 return $this->is_main_admin_screen();
143 }
144
145 /**
146 * @return bool
147 */
148 private function is_main_admin_screen() {
149 $id = 'settings_page_' . Admin\Admin::NAME;
150
151 if ( $this->is_admin_network() ) {
152 $id .= '-network';
153 }
154
155 return $this->is_screen( $id );
156 }
157
158 }