PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
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 / RequestHandler / Ajax / ListScreenAddColumn.php
codepress-admin-columns / classes / RequestHandler / Ajax Last commit date
AdminGeneralOptionsGet.php 2 days ago AdminGeneralOptionsPersist.php 2 days ago CustomFieldKeys.php 2 days ago EditorMenuFavorites.php 2 days ago EditorMenuStatus.php 2 days ago ExtendedValue.php 2 days ago IntegrationToggle.php 2 days ago Integrations.php 2 days ago ListScreenAddColumn.php 2 days ago ListScreenDelete.php 2 days ago ListScreenOriginalColumns.php 2 days ago ListScreenSave.php 2 days ago ListScreenSelectColumn.php 2 days ago ListScreenSettings.php 2 days ago NetworkPostStati.php 2 days ago NumberFormat.php 2 days ago RestoreSettingsRequest.php 2 days ago ScreenOptions.php 2 days ago
ListScreenAddColumn.php
69 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\Json;
13 use AC\Response\JsonColumnFactory;
14 use AC\TableScreenFactory\Aggregate;
15 use AC\Type\TableId;
16
17 class ListScreenAddColumn implements RequestAjaxHandler
18 {
19 private Aggregate $table_screen_factory;
20
21 private JsonColumnFactory $json_response_factory;
22
23 private ColumnTypeRepository $repository;
24
25 public function __construct(
26 Aggregate $table_screen_factory,
27 ColumnTypeRepository $repository,
28 JsonColumnFactory $json_response_factory
29 ) {
30 $this->table_screen_factory = $table_screen_factory;
31 $this->repository = $repository;
32 $this->json_response_factory = $json_response_factory;
33 }
34
35 public function handle(): void
36 {
37 if (! current_user_can(Capabilities::MANAGE)) {
38 return;
39 }
40
41 $request = new Request();
42 $response = new Json();
43
44 if (! (new Nonce\Ajax())->verify($request)) {
45 $response->error();
46 }
47
48 $list_key = new TableId((string)$request->get('list_screen'));
49
50 if (! $this->table_screen_factory->can_create($list_key)) {
51 $response->error();
52 }
53
54 $column = $this->repository->find(
55 $this->table_screen_factory->create($list_key),
56 (string)$request->get('column_type')
57 );
58
59 if (! $column) {
60 $response->error();
61 }
62
63 $this->json_response_factory
64 ->create_by_column($column)
65 ->success();
66 }
67
68 }
69