PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.3.2
Admin Columns v4.3.2
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 / Controller / TableListScreenSetter.php
codepress-admin-columns / classes / Controller Last commit date
ColumnRequest 5 years ago ListScreen 5 years ago Middleware 5 years ago AjaxColumnRequest.php 5 years ago AjaxColumnValue.php 5 years ago AjaxRequestCustomFieldKeys.php 5 years ago AjaxScreenOptions.php 5 years ago ColumnRequest.php 5 years ago DefaultColumns.php 5 years ago ListScreenRestoreColumns.php 5 years ago RedirectAddonStatus.php 5 years ago RestoreSettingsRequest.php 5 years ago TableListScreenSetter.php 5 years ago
TableListScreenSetter.php
78 lines
1 <?php
2
3 namespace AC\Controller;
4
5 use AC\Asset\Location\Absolute;
6 use AC\ListScreenRepository\Storage;
7 use AC\ListScreenTypes;
8 use AC\PermissionChecker;
9 use AC\Registrable;
10 use AC\Request;
11 use AC\Table;
12 use AC\Type\ListScreenId;
13 use WP_Screen;
14
15 class TableListScreenSetter implements Registrable {
16
17 /**
18 * @var Storage
19 */
20 private $storage;
21
22 /**
23 * @var PermissionChecker
24 */
25 private $permission_checker;
26
27 /**
28 * @var Absolute
29 */
30 private $location;
31
32 /**
33 * @var Table\Preference
34 */
35 private $preference;
36
37 public function __construct( Storage $storage, PermissionChecker $permission_checker, Absolute $location, Table\Preference $preference ) {
38 $this->storage = $storage;
39 $this->permission_checker = $permission_checker;
40 $this->location = $location;
41 $this->preference = $preference;
42 }
43
44 public function register() {
45 add_action( 'current_screen', [ $this, 'handle' ] );
46 }
47
48 public function handle( WP_Screen $wp_screen ) {
49 $request = new Request();
50 $request->add_middleware( new Middleware\ListScreenTable( $this->storage, $wp_screen, $this->preference ) );
51
52 $list_key = $request->get( 'list_key' );
53
54 if ( ! $list_key ) {
55 return;
56 }
57
58 $list_id = $request->get( 'list_id' );
59
60 $list_screen = ListScreenId::is_valid_id( $list_id )
61 ? $this->storage->find( new ListScreenId( $list_id ) )
62 : ListScreenTypes::instance()->get_list_screen_by_key( $list_key );
63
64 if ( ! $list_screen || ! $this->permission_checker->is_valid( $list_screen ) ) {
65 return;
66 }
67
68 if ( $list_screen->has_id() ) {
69 $this->preference->set( $list_screen->get_key(), $list_screen->get_id()->get_id() );
70 }
71
72 $table_screen = new Table\Screen( $this->location, $list_screen );
73 $table_screen->register();
74
75 do_action( 'ac/table', $table_screen );
76 }
77
78 }