PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.2.2
Admin Columns v4.2.2
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 / ColumnRequest.php
codepress-admin-columns / classes / Controller Last commit date
ColumnRequest 5 years ago ListScreen 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 ListScreenRequest.php 5 years ago ListScreenRestoreColumns.php 5 years ago RedirectAddonStatus.php 5 years ago RestoreSettingsRequest.php 5 years ago
ColumnRequest.php
72 lines
1 <?php
2
3 namespace AC\Controller;
4
5 use AC;
6 use AC\Column\Placeholder;
7 use AC\View;
8
9 abstract class ColumnRequest {
10
11 /**
12 * @return AC\Column
13 */
14 abstract protected function get_column( AC\Request $request, AC\ListScreen $list_screen );
15
16 public function request( AC\Request $request ) {
17 parse_str( $request->get( 'data' ), $formdata );
18
19 $list_screen = AC\ListScreenTypes::instance()->get_list_screen_by_key( $formdata['list_screen'] );
20
21 if ( ! $list_screen ) {
22 wp_die();
23 }
24
25 $column = $this->get_column( $request, $list_screen );
26
27 if ( ! $column ) {
28 wp_send_json_error( [
29 'type' => 'message',
30 'error' => sprintf( __( 'Please visit the %s screen once to load all available columns', 'codepress-admin-columns' ), ac_helper()->html->link( $list_screen->get_screen_link(), $list_screen->get_label() ) ),
31 ] );
32 }
33
34 $current_original_columns = (array) $request->get( 'current_original_columns', [] );
35
36 // Not cloneable message
37 if ( in_array( $column->get_type(), $current_original_columns ) ) {
38 wp_send_json_error( [
39 'type' => 'message',
40 'error' => sprintf(
41 __( '%s column is already present and can not be duplicated.', 'codepress-admin-columns' ),
42 '<strong>' . $column->get_label() . '</strong>' ),
43 ] );
44 }
45
46 // Placeholder message
47 if ( $column instanceof Placeholder ) {
48 wp_send_json_error( [
49 'type' => 'message',
50 'error' => $column->get_message(),
51 ] );
52 }
53
54 wp_send_json_success( $this->render_column( $column ) );
55 }
56
57 /**
58 * @param AC\Column $column
59 *
60 * @return string
61 */
62 private function render_column( AC\Column $column ) {
63 $view = new View( [
64 'column' => $column,
65 ] );
66
67 $view->set_template( 'admin/edit-column' );
68
69 return $view->render();
70 }
71
72 }