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 / DefaultColumns.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
DefaultColumns.php
67 lines
1 <?php
2
3 namespace AC\Controller;
4
5 use AC;
6 use AC\DefaultColumnsRepository;
7 use AC\ListScreen;
8 use AC\Registrable;
9 use AC\Request;
10
11 class DefaultColumns implements Registrable {
12
13 const ACTION_KEY = 'save-default-headings';
14 const LISTSCREEN_KEY = 'list_screen';
15
16 /** @var ListScreen */
17 private $list_screen;
18
19 /** @var Request */
20 private $request;
21
22 /** @var DefaultColumns */
23 private $default_columns;
24
25 public function __construct( Request $request, DefaultColumnsRepository $default_columns ) {
26 $this->request = $request;
27 $this->default_columns = $default_columns;
28 }
29
30 public function register() {
31 add_action( 'admin_init', [ $this, 'handle_request' ] );
32 }
33
34 public function handle_request() {
35 if ( '1' !== $this->request->get( self::ACTION_KEY ) ) {
36 return;
37 }
38
39 if ( ! current_user_can( AC\Capabilities::MANAGE ) ) {
40 return;
41 }
42
43 $this->list_screen = AC\ListScreenTypes::instance()->get_list_screen_by_key( $this->request->get( self::LISTSCREEN_KEY ) );
44
45 if ( null === $this->list_screen ) {
46 return;
47 }
48
49 // Save an empty array in case the hook does not run properly.
50 $this->default_columns->update( $this->list_screen->get_key(), [] );
51
52 // Our custom columns are set at priority 200. Before they are added we need to store the default column headings.
53 add_filter( $this->list_screen->get_heading_hookname(), [ $this, 'save_headings' ], 199 );
54
55 // no render needed
56 ob_start();
57 }
58
59 public function save_headings( $columns ) {
60 ob_end_clean();
61
62 $this->default_columns->update( $this->list_screen->get_key(), $columns && is_array( $columns ) ? $columns : [] );
63
64 exit( 'ac_success' );
65 }
66
67 }