PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.9.0
GiveWP – Donation Plugin and Fundraising Platform v4.9.0
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 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / FieldsAPI / File.php
give / src / Framework / FieldsAPI Last commit date
Actions 2 years ago Concerns 9 months ago Contracts 3 years ago Exceptions 2 years ago Facades 4 years ago LegacyNodes 3 years ago Properties 1 year ago ValueObjects 2 years ago Amount.php 2 years ago Authentication.php 1 year ago BillingAddress.php 2 years ago Checkbox.php 2 years ago Consent.php 2 years ago Date.php 1 year ago DonationAmount.php 2 years ago DonationForm.php 2 years ago DonationSummary.php 2 years ago Element.php 3 years ago Email.php 2 years ago Factory.php 4 years ago Field.php 2 years ago File.php 1 year ago Form.php 3 years ago Group.php 3 years ago Hidden.php 3 years ago Honeypot.php 1 year ago Html.php 3 years ago MultiSelect.php 1 year ago Name.php 2 years ago Option.php 2 years ago Paragraph.php 2 years ago Password.php 2 years ago PaymentGateways.php 2 years ago Phone.php 1 year ago Radio.php 2 years ago Section.php 2 years ago SecurityChallenge.php 1 year ago Select.php 2 years ago Text.php 2 years ago Textarea.php 2 years ago Types.php 2 years ago Url.php 2 years ago
File.php
182 lines
1 <?php
2
3 namespace Give\Framework\FieldsAPI;
4
5 use Give\Framework\ValidationRules\Rules\AllowedTypes;
6 use Give\Framework\ValidationRules\Rules\File as FileRule;
7 use Give\Vendors\StellarWP\Validation\Rules\Max;
8
9 /**
10 * A file upload field.
11 *
12 * @since 4.3.0 Added maxUploadSize property.
13 * @since 2.32.0 Updated to use the new Validation File Rule; added description
14 * @since 2.12.0
15 * @since 2.23.1 Moved default rule values inline since inherited constructor is final.
16 */
17 class File extends Field
18 {
19 use Concerns\AllowMultiple;
20 use Concerns\HasEmailTag;
21 use Concerns\HasHelpText;
22 use Concerns\HasLabel;
23 use Concerns\HasDescription;
24
25 const TYPE = 'file';
26
27 protected $allowedMimeTypes = [];
28 protected $maxUploadSize = null;
29
30 /**
31 * Set the maximum file size.
32 *
33 * @deprecated use maxUploadSize() instead
34 *
35 * @param int $maxSize
36 *
37 * @return $this
38 */
39 public function maxSize($maxSize)
40 {
41 if ($this->hasRule('max')) {
42 /** @var Max $rule */
43 $rule = $this->getRule('max');
44 $rule->size($maxSize);
45 }
46
47 $this->rules("max:$maxSize");
48
49 return $this;
50 }
51
52 /**
53 * Access the maximum file size.
54 *
55 * @deprecated use getMaxUploadSize() instead
56 */
57 public function getMaxSize(): int
58 {
59 if ( ! $this->hasRule('max')) {
60 return wp_max_upload_size();
61 }
62
63 return $this->getRule('max')->getSize();
64 }
65
66 /**
67 * Set the maximum file upload size.
68 *
69 * @since 4.3.0 Set the field's maxUploadSize property.
70 * @since 2.32.0
71 */
72 public function maxUploadSize(int $maxUploadSize): File
73 {
74 if ($this->hasRule(FileRule::id())) {
75 /** @var FileRule $rule */
76 $rule = $this->getRule(FileRule::id());
77 $rule->maxSize($maxUploadSize);
78 }
79
80 $this->rules((new FileRule())->maxSize($maxUploadSize));
81 $this->maxUploadSize = $maxUploadSize;
82
83 return $this;
84 }
85
86 /**
87 * Access the maximum file upload size.
88 *
89 * @since 2.32.0
90 */
91 public function getMaxUploadSize(): int
92 {
93 if (!$this->hasRule(FileRule::id())) {
94 return wp_max_upload_size();
95 }
96
97 /** @var FileRule $rule */
98 $rule = $this->getRule(FileRule::id());
99
100 return $rule->getMaxSize();
101 }
102
103 /**
104 * Set the allowed mime types.
105 *
106 * @since 2.32.0
107 *
108 * @param string[] $allowedMimeTypes
109 */
110 public function allowedMimeTypes(array $allowedMimeTypes): File
111 {
112 if ($this->hasRule(FileRule::id())) {
113 /** @var FileRule $rule */
114 $rule = $this->getRule(FileRule::id());
115
116 $rule->allowedMimeTypes($allowedMimeTypes);
117 } else {
118 $this->rules((new FileRule())->allowedMimeTypes($allowedMimeTypes));
119 }
120
121 $this->allowedMimeTypes = $allowedMimeTypes;
122
123 return $this;
124 }
125
126 /**
127 * Access the allowed mime types.
128 *
129 * @return string[]
130 */
131 public function getAllowedMimeTypes(): array
132 {
133 if (!$this->hasRule(FileRule::id())) {
134 return get_allowed_mime_types();
135 }
136
137 /** @var FileRule $rule */
138 $rule = $this->getRule(FileRule::id());
139
140 return $rule->getAllowedMimeTypes();
141 }
142
143 /**
144 * Set the allowed file types.
145 *
146 * @deprecated use allowedMimeTypes() instead
147 *
148 * @param string[] $allowedTypes
149 */
150 public function allowedTypes(array $allowedTypes): File
151 {
152 if ($this->hasRule('allowedTypes')) {
153 /** @var AllowedTypes $rule */
154 $rule = $this->getRule('allowedTypes');
155 $rule->setAllowedtypes($allowedTypes);
156 }
157
158 $this->rules('allowedTypes:' . implode(',', $allowedTypes));
159
160 return $this;
161 }
162
163 /**
164 * Access the allowed file types.
165 *
166 * @deprecated use getAllowedMimeTypes() instead
167 *
168 * @return string[]
169 */
170 public function getAllowedTypes(): array
171 {
172 if ( ! $this->hasRule('allowedTypes')) {
173 return get_allowed_mime_types();
174 }
175
176 /** @var AllowedTypes $rule */
177 $rule = $this->getRule('allowedTypes');
178
179 return $rule->getAllowedTypes();
180 }
181 }
182