PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.4.1
Admin Columns v4.4.1
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 / ColumnRequest.php
codepress-admin-columns / classes / Controller Last commit date
ColumnRequest 4 years ago ListScreen 4 years ago Middleware 4 years ago AjaxColumnRequest.php 4 years ago AjaxColumnValue.php 4 years ago AjaxGeneralOptions.php 4 years ago AjaxRequestCustomFieldKeys.php 4 years ago AjaxScreenOptions.php 4 years ago ColumnRequest.php 4 years ago DefaultColumns.php 4 years ago ListScreenRestoreColumns.php 4 years ago RestoreSettingsRequest.php 4 years ago TableListScreenSetter.php 4 years ago
ColumnRequest.php
70 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 $list_screen = AC\ListScreenTypes::instance()->get_list_screen_by_key( $request->get( 'list_screen' ) );
18
19 if ( ! $list_screen ) {
20 exit;
21 }
22
23 $column = $this->get_column( $request, $list_screen );
24
25 if ( ! $column ) {
26 wp_send_json_error( [
27 'type' => 'message',
28 '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() ) ),
29 ] );
30 }
31
32 $current_original_columns = (array) json_decode( $request->get( 'current_original_columns', '' ), true );
33
34 // Not cloneable message
35 if ( in_array( $column->get_type(), $current_original_columns ) ) {
36 wp_send_json_error( [
37 'type' => 'message',
38 'error' => sprintf(
39 __( '%s column is already present and can not be duplicated.', 'codepress-admin-columns' ),
40 '<strong>' . $column->get_label() . '</strong>' ),
41 ] );
42 }
43
44 // Placeholder message
45 if ( $column instanceof Placeholder ) {
46 wp_send_json_error( [
47 'type' => 'message',
48 'error' => $column->get_message(),
49 ] );
50 }
51
52 wp_send_json_success( $this->render_column( $column ) );
53 }
54
55 /**
56 * @param AC\Column $column
57 *
58 * @return string
59 */
60 private function render_column( AC\Column $column ) {
61 $view = new View( [
62 'column' => $column,
63 ] );
64
65 $view->set_template( 'admin/edit-column' );
66
67 return $view->render();
68 }
69
70 }