PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 2.23.0
GiveWP – Donation Plugin and Fundraising Platform v2.23.0
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 All 253 releases
give / src / FormAPI / Form / Field.php
Field.php
163 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\FormAPI\Form;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6
7 abstract class Field
8 {
9
10 /**
11 * Field id
12 *
13 * @since 2.7.0
14 * @var string
15 */
16 public $id;
17
18 /**
19 * Field name
20 *
21 * @since 2.7.0
22 * @var string
23 */
24 public $name;
25
26 /**
27 * Field description
28 *
29 * @since 2.7.0
30 * @var string
31 */
32 public $desc = '';
33
34 /**
35 * Field type
36 *
37 * @since 2.7.0
38 * @var string
39 */
40 public $type;
41
42 /**
43 * Field style
44 *
45 * @since 2.7.0
46 * @var string
47 */
48 public $style = '';
49
50 /**
51 * Field wrapper class.
52 *
53 * @since 2.7.0
54 * @var string
55 */
56 public $wrapperClass = '';
57
58 /**
59 * Field value.
60 *
61 * @since 2.7.0
62 * @var string
63 */
64 public $value = null;
65
66 /**
67 * Field default value.
68 *
69 * @since 2.7.0
70 * @var string
71 */
72 public $defaultValue = null;
73
74 /**
75 * Field attributes.
76 *
77 * @since 2.7.0
78 * @var string
79 */
80 public $attributes = [];
81
82 /**
83 * Parse field arguments
84 *
85 * @since 2.7.0
86 *
87 * @param array $array
88 *
89 * @return mixed
90 */
91 public function parse($array)
92 {
93 $this->id = $array['id'];
94 $this->name = $array['name'];
95 $this->type = $array['type'];
96 $this->desc = isset($array['desc']) ? $array['desc'] : '';
97 $this->style = isset($array['style']) ? $array['style'] : '';
98 $this->wrapperClass = isset($array['wrapper_class']) ? $array['wrapper_class'] : '';
99 $this->defaultValue = isset($array['default']) ? $array['default'] : null;
100 $this->value = isset($array['value']) ? $array['value'] : null;
101 $this->attributes = isset($array['attributes']) ? $array['attributes'] : [];
102 }
103
104 /**
105 * Get Field object.
106 *
107 * @since 2.7.0
108 *
109 * @param array $array
110 *
111 * @return static
112 */
113 public static function fromArray($array)
114 {
115 $field = new static();
116
117 $field->validate($array);
118 $field->parse($array);
119
120 return $field;
121 }
122
123 /**
124 * Validate field arguments
125 *
126 * @since 2.7.0
127 *
128 * @param $array
129 */
130 public function validate($array)
131 {
132 $required = ['id', 'name', 'type'];
133 $array = array_filter($array); // Remove empty values.
134
135 if (array_diff($required, array_keys($array))) {
136 throw new InvalidArgumentException(
137 __('To create a TextField object, please provide valid id, name and type.', 'give')
138 );
139 }
140 }
141
142 /**
143 * Convert field object to array.
144 *
145 * @since 2.7.0
146 * @return array
147 */
148 public function toArray()
149 {
150 return [
151 'id' => $this->id,
152 'name' => $this->name,
153 'type' => $this->type,
154 'desc' => $this->desc,
155 'style' => $this->style,
156 'wrapper_class' => $this->wrapperClass,
157 'value' => $this->value,
158 'default' => $this->defaultValue,
159 'attributes' => $this->attributes,
160 ];
161 }
162 }
163