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 / Setting / Encoder.php
codepress-admin-columns / classes / Setting Last commit date
ComponentFactory 1 month ago Control 1 month ago Type 1 month ago AttributeCollection.php 1 month ago AttributeFactory.php 1 month ago Children.php 1 month ago Component.php 1 month ago ComponentBuilder.php 1 month ago ComponentCollection.php 1 month ago ComponentFactory.php 1 month ago ConditionalComponentFactory.php 1 month ago ConditionalComponentFactoryCollection.php 1 month ago Config.php 1 month ago ConfigCollection.php 1 month ago ConfigFactory.php 1 month ago Context.php 1 month ago Control.php 1 month ago DefaultSettingsBuilder.php 1 month ago Encoder.php 1 month ago Formatter.php 1 month ago FormatterCollection.php 1 month ago
Encoder.php
131 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Setting;
6
7 use AC\Setting\Control\Input\Custom;
8 use AC\Setting\Control\Input\Number;
9 use AC\Setting\Control\Input\Open;
10 use AC\Setting\Control\Input\Option;
11 use AC\Setting\Control\OptionCollection;
12
13 final class Encoder
14 {
15
16 private ComponentCollection $settings;
17
18 public function __construct(ComponentCollection $settings)
19 {
20 $this->settings = $settings;
21 }
22
23 public function encode(): array
24 {
25 $encoded = [];
26
27 foreach ($this->settings as $setting) {
28 $encoded[] = $this->encode_setting($setting);
29 }
30
31 return $encoded;
32 }
33
34 private function encode_setting(Component $component): array
35 {
36 $encoded = [
37 'type' => $component->get_type(),
38 'label' => $component->has_label() ? $component->get_label() : '',
39 ];
40
41 if ($component->has_description()) {
42 $encoded['description'] = $component->get_description();
43 }
44
45 foreach ($component->get_attributes() as $attribute) {
46 $encoded['attributes'][$attribute->get_name()] = $attribute->get_value();
47 }
48
49 if ($component->has_input()) {
50 $input = $component->get_input();
51
52 $encoded['conditions'] = $component->get_conditions()->export();
53
54 $encoded['input'] = [
55 'type' => $input->get_type(),
56 'name' => $input->get_name(),
57 ];
58
59 if ($input->has_placeholder()) {
60 $encoded['input']['placeholder'] = $input->get_placeholder();
61 }
62
63 foreach ($input->get_attributes() as $attribute) {
64 $encoded['input']['attributes'][$attribute->get_name()] = $attribute->get_value();
65 }
66
67 if ($input->has_value()) {
68 $encoded['input']['default'] = $input->get_value();
69 }
70
71 if ($input instanceof Open && $input->has_append()) {
72 $encoded['input']['append'] = $input->get_append();
73 }
74
75 if ($input instanceof Option) {
76 $encoded['input'] += [
77 'options' => $this->encode_options($input->get_options()),
78 ];
79
80 if ($input->is_multiple()) {
81 $encoded['input']['type'] = 'select_multiple';
82 }
83 }
84
85 if ($input instanceof Number) {
86 if ($input->has_min()) {
87 $encoded['input']['min'] = $input->get_min();
88 }
89
90 if ($input->has_max()) {
91 $encoded['input']['max'] = $input->get_max();
92 }
93
94 if ($input->has_step()) {
95 $encoded['input']['step'] = $input->get_step();
96 }
97 }
98
99 if ($input instanceof Custom) {
100 $encoded['input']['data'] = $input->get_data();
101 }
102 }
103
104 if ($component->has_children()) {
105 $encoded['is_parent'] = $component->get_children()->is_parent();
106 $encoded['children'] = [];
107
108 foreach ($component->get_children()->get_iterator() as $item) {
109 $encoded['children'][] = $this->encode_setting($item);
110 }
111 }
112
113 return $encoded;
114 }
115
116 private function encode_options(OptionCollection $options): array
117 {
118 $encoded = [];
119
120 foreach ($options as $option) {
121 $encoded[] = [
122 'value' => $option->get_value(),
123 'label' => $option->get_label(),
124 'group' => $option->get_group(),
125 ];
126 }
127
128 return $encoded;
129 }
130
131 }