PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
4.16.9 4.16.8.1 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 All 255 releases
give / src / FormAPI / Form / Field.php

Field.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.9, at src/FormAPI/Form/Field.php

167 lines 3.2 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 final public function __construct()
83 {
84 }
85
86 /**
87 * Parse field arguments
88 *
89 * @since 2.7.0
90 *
91 * @param array $array
92 *
93 * @return mixed
94 */
95 public function parse($array)
96 {
97 $this->id = $array['id'];
98 $this->name = $array['name'];
99 $this->type = $array['type'];
100 $this->desc = isset($array['desc']) ? $array['desc'] : '';
101 $this->style = isset($array['style']) ? $array['style'] : '';
102 $this->wrapperClass = isset($array['wrapper_class']) ? $array['wrapper_class'] : '';
103 $this->defaultValue = isset($array['default']) ? $array['default'] : null;
104 $this->value = isset($array['value']) ? $array['value'] : null;
105 $this->attributes = isset($array['attributes']) ? $array['attributes'] : [];
106 }
107
108 /**
109 * Get Field object.
110 *
111 * @since 2.7.0
112 *
113 * @param array $array
114 *
115 * @return static
116 */
117 public static function fromArray($array)
118 {
119 $field = new static();
120
121 $field->validate($array);
122 $field->parse($array);
123
124 return $field;
125 }
126
127 /**
128 * Validate field arguments
129 *
130 * @since 2.7.0
131 *
132 * @param $array
133 */
134 public function validate($array)
135 {
136 $required = ['id', 'name', 'type'];
137 $array = array_filter($array); // Remove empty values.
138
139 if (array_diff($required, array_keys($array))) {
140 throw new InvalidArgumentException(
141 __('To create a TextField object, please provide valid id, name and type.', 'give')
142 );
143 }
144 }
145
146 /**
147 * Convert field object to array.
148 *
149 * @since 2.7.0
150 * @return array
151 */
152 public function toArray()
153 {
154 return [
155 'id' => $this->id,
156 'name' => $this->name,
157 'type' => $this->type,
158 'desc' => $this->desc,
159 'style' => $this->style,
160 'wrapper_class' => $this->wrapperClass,
161 'value' => $this->value,
162 'default' => $this->defaultValue,
163 'attributes' => $this->attributes,
164 ];
165 }
166 }
167