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 / ColumnRepository / EncodedData.php
codepress-admin-columns / classes / ColumnRepository Last commit date
Filter 1 day ago Sort 1 day ago EncodedData.php 1 day ago Filter.php 1 day ago Sort.php 1 day ago
EncodedData.php
80 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\ColumnRepository;
6
7 use AC\Collection\ColumnFactories;
8 use AC\Column;
9 use AC\ColumnCollection;
10 use AC\ColumnRepository;
11 use AC\Setting\Config;
12 use AC\Setting\ConfigCollection;
13 use AC\Storage\Repository\OriginalColumnsRepository;
14 use AC\TableScreen;
15
16 class EncodedData implements ColumnRepository
17 {
18 private ColumnFactories $factories;
19
20 private ConfigCollection $configs;
21
22 private OriginalColumnsRepository $original_columns_repository;
23
24 private TableScreen $table_screen;
25
26 public function __construct(
27 ColumnFactories $factories,
28 ConfigCollection $configs,
29 OriginalColumnsRepository $original_columns_repository,
30 TableScreen $table_screen
31 ) {
32 $this->configs = $configs;
33 $this->factories = $factories;
34 $this->original_columns_repository = $original_columns_repository;
35 $this->table_screen = $table_screen;
36 }
37
38 public function find_all(): ColumnCollection
39 {
40 $columns = new ColumnCollection();
41
42 foreach ($this->configs as $config) {
43 $config = $this->modify_config($config);
44
45 $column = $this->find((string)$config->get('type'), $config);
46
47 if ($column) {
48 $columns->add($column);
49 }
50 }
51
52 return $columns;
53 }
54
55 private function modify_config(Config $config): Config
56 {
57 // In some rare cases the stored 'name' can have a mismatch with it's 'type' for original columns
58 if ($this->original_columns_repository->find($this->table_screen->get_id(), (string)$config->get('type'))) {
59 $data = $config->all();
60 $data['name'] = $data['type'];
61
62 return new Config($data);
63 }
64
65 return $config;
66 }
67
68 private function find(string $type, Config $config): ?Column
69 {
70 foreach ($this->factories as $factory) {
71 if ($type === $factory->get_column_type()) {
72 return $factory->create($config);
73 }
74 }
75
76 return null;
77 }
78
79 }
80