PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.19
Admin Columns v7.0.19
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 / Storage / Encoder / BaseEncoder.php
codepress-admin-columns / classes / Storage / Encoder Last commit date
BaseEncoder.php 1 month ago
BaseEncoder.php
88 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Storage\Encoder;
6
7 use AC;
8 use AC\ListScreen;
9 use AC\Plugin\Version;
10 use AC\Setting\ComponentCollection;
11
12 class BaseEncoder implements AC\Storage\Encoder
13 {
14
15 private Version $version;
16
17 private ?ListScreen $list_screen = null;
18
19 public function __construct(Version $version)
20 {
21 $this->version = $version;
22 }
23
24 public function set_list_screen(ListScreen $list_screen): self
25 {
26 $this->list_screen = $list_screen;
27
28 return $this;
29 }
30
31 public function encode(): array
32 {
33 $encoded_data = [
34 'version' => (string)$this->version,
35 ];
36
37 if ($this->list_screen instanceof ListScreen) {
38 $encoded_data['list_screen'] = [
39 'title' => $this->list_screen->get_title(),
40 'type' => (string)$this->list_screen->get_table_id(),
41 'id' => (string)$this->list_screen->get_id(),
42 'status' => (string)$this->list_screen->get_status(),
43 'updated' => $this->list_screen->get_updated()->getTimestamp(),
44 'columns' => $this->encode_columns(),
45 'settings' => $this->get_preferences(),
46 ];
47 }
48
49 return $encoded_data;
50 }
51
52 protected function get_preferences(): array
53 {
54 return $this->list_screen->get_preferences();
55 }
56
57 private function encode_settings(ComponentCollection $settings, array $encoded = []): array
58 {
59 foreach ($settings as $setting) {
60 if ($setting->has_input()) {
61 $encoded[$setting->get_input()->get_name()] = $setting->get_input()->get_value();
62 }
63
64 if ($setting->has_children()) {
65 $encoded = $this->encode_settings($setting->get_children()->get_iterator(), $encoded);
66 }
67 }
68
69 return $encoded;
70 }
71
72 private function encode_columns(): array
73 {
74 $encode = [];
75
76 /**
77 * @var AC\Column $column
78 */
79 foreach ($this->list_screen->get_columns() as $column) {
80 $data = $this->encode_settings($column->get_settings());
81 $data['type'] = $column->get_type();
82
83 $encode[] = $data;
84 }
85
86 return $encode;
87 }
88 }