PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 / RequestHandler / Ajax / ListScreenOriginalColumns.php
codepress-admin-columns / classes / RequestHandler / Ajax Last commit date
AdminGeneralOptionsGet.php 3 months ago AdminGeneralOptionsPersist.php 3 months ago CustomFieldKeys.php 3 months ago EditorMenuFavorites.php 3 months ago EditorMenuStatus.php 3 months ago ExtendedValue.php 3 months ago IntegrationToggle.php 3 months ago Integrations.php 3 months ago ListScreenAddColumn.php 3 months ago ListScreenDelete.php 3 months ago ListScreenOriginalColumns.php 3 months ago ListScreenSave.php 3 months ago ListScreenSelectColumn.php 3 months ago ListScreenSettings.php 3 months ago NetworkPostStati.php 3 months ago NumberFormat.php 3 months ago RestoreSettingsRequest.php 3 months ago ScreenOptions.php 3 months ago
ListScreenOriginalColumns.php
85 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\RequestHandler\Ajax;
6
7 use AC\Capabilities;
8 use AC\ColumnTypeRepository;
9 use AC\Nonce;
10 use AC\Request;
11 use AC\RequestAjaxHandler;
12 use AC\Response;
13 use AC\Setting\Encoder;
14 use AC\TableScreen;
15 use AC\TableScreenFactory\Aggregate;
16 use AC\Type\TableId;
17
18 class ListScreenOriginalColumns implements RequestAjaxHandler
19 {
20
21 private Aggregate $table_screen_factory;
22
23 private ColumnTypeRepository $column_type_repository;
24
25 public function __construct(
26 Aggregate $table_screen_factory,
27 ColumnTypeRepository $column_type_repository
28 ) {
29 $this->table_screen_factory = $table_screen_factory;
30 $this->column_type_repository = $column_type_repository;
31 }
32
33 public function handle(): void
34 {
35 if ( ! current_user_can(Capabilities::MANAGE)) {
36 return;
37 }
38
39 $request = new Request();
40 $response = new Response\Json();
41
42 if ( ! (new Nonce\Ajax())->verify($request)) {
43 $response->error();
44 }
45
46 $list_key = new TableId($request->get('list_key'));
47
48 if ( ! $this->table_screen_factory->can_create($list_key)) {
49 $response->error();
50 }
51
52 $table_screen = $this->table_screen_factory->create($list_key);
53
54 $response->set_parameter('columns', $this->get_columns($table_screen));
55 $response->set_parameter('config', $this->get_config($table_screen));
56 $response->success();
57 }
58
59 private function get_config(TableScreen $table_screen): array
60 {
61 $settings = [];
62
63 foreach ($this->column_type_repository->find_all_by_original($table_screen) as $column) {
64 $settings[$column->get_type()] = (new Encoder($column->get_settings()))->encode();
65 }
66
67 return $settings;
68 }
69
70 private function get_columns(TableScreen $table_screen): array
71 {
72 $columns = [];
73
74 foreach ($this->column_type_repository->find_all_by_original($table_screen) as $column) {
75 $columns[] = [
76 'type' => $column->get_type(),
77 'label' => $column->get_label(),
78 'name' => $column->get_type(),
79 ];
80 }
81
82 return $columns;
83 }
84
85 }