PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.0
GiveWP – Donation Plugin and Fundraising Platform v3.0.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 2 years ago Contracts 3 years ago Exceptions 2 years ago Facades 4 years ago LegacyNodes 3 years ago Properties 2 years ago ValueObjects 2 years ago Amount.php 2 years ago Authentication.php 2 years ago BillingAddress.php 2 years ago Checkbox.php 2 years ago Consent.php 2 years ago Date.php 2 years 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 2 years ago Form.php 3 years ago Group.php 3 years ago Hidden.php 3 years ago Html.php 3 years ago MultiSelect.php 2 years ago Name.php 2 years ago Option.php 3 years ago Paragraph.php 2 years ago Password.php 2 years ago PaymentGateways.php 2 years ago Phone.php 2 years ago Radio.php 2 years ago Section.php 2 years 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
178 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 2.32.0 Updated to use the new Validation File Rule; added description
13 * @since 2.12.0
14 * @since 2.23.1 Moved default rule values inline since inherited constructor is final.
15 */
16 class File extends Field
17 {
18 use Concerns\AllowMultiple;
19 use Concerns\HasEmailTag;
20 use Concerns\HasHelpText;
21 use Concerns\HasLabel;
22 use Concerns\HasDescription;
23
24 const TYPE = 'file';
25
26 protected $allowedMimeTypes = [];
27
28 /**
29 * Set the maximum file size.
30 *
31 * @deprecated use maxUploadSize() instead
32 *
33 * @param int $maxSize
34 *
35 * @return $this
36 */
37 public function maxSize($maxSize)
38 {
39 if ($this->hasRule('max')) {
40 /** @var Max $rule */
41 $rule = $this->getRule('max');
42 $rule->size($maxSize);
43 }
44
45 $this->rules("max:$maxSize");
46
47 return $this;
48 }
49
50 /**
51 * Access the maximum file size.
52 *
53 * @deprecated use getMaxUploadSize() instead
54 */
55 public function getMaxSize(): int
56 {
57 if ( ! $this->hasRule('max')) {
58 return wp_max_upload_size();
59 }
60
61 return $this->getRule('max')->getSize();
62 }
63
64 /**
65 * Set the maximum file upload size.
66 *
67 * @since 2.32.0
68 */
69 public function maxUploadSize(int $maxUploadSize): File
70 {
71 if ($this->hasRule(FileRule::id())) {
72 /** @var FileRule $rule */
73 $rule = $this->getRule(FileRule::id());
74 $rule->maxSize($maxUploadSize);
75 }
76
77 $this->rules((new FileRule())->maxSize($maxUploadSize));
78
79 return $this;
80 }
81
82 /**
83 * Access the maximum file upload size.
84 *
85 * @since 2.32.0
86 */
87 public function getMaxUploadSize(): int
88 {
89 if (!$this->hasRule(FileRule::id())) {
90 return wp_max_upload_size();
91 }
92
93 /** @var FileRule $rule */
94 $rule = $this->getRule(FileRule::id());
95
96 return $rule->getMaxSize();
97 }
98
99 /**
100 * Set the allowed mime types.
101 *
102 * @since 2.32.0
103 *
104 * @param string[] $allowedMimeTypes
105 */
106 public function allowedMimeTypes(array $allowedMimeTypes): File
107 {
108 if ($this->hasRule(FileRule::id())) {
109 /** @var FileRule $rule */
110 $rule = $this->getRule(FileRule::id());
111
112 $rule->allowedMimeTypes($allowedMimeTypes);
113 } else {
114 $this->rules((new FileRule())->allowedMimeTypes($allowedMimeTypes));
115 }
116
117 $this->allowedMimeTypes = $allowedMimeTypes;
118
119 return $this;
120 }
121
122 /**
123 * Access the allowed mime types.
124 *
125 * @return string[]
126 */
127 public function getAllowedMimeTypes(): array
128 {
129 if (!$this->hasRule(FileRule::id())) {
130 return get_allowed_mime_types();
131 }
132
133 /** @var FileRule $rule */
134 $rule = $this->getRule(FileRule::id());
135
136 return $rule->getAllowedMimeTypes();
137 }
138
139 /**
140 * Set the allowed file types.
141 *
142 * @deprecated use allowedMimeTypes() instead
143 *
144 * @param string[] $allowedTypes
145 */
146 public function allowedTypes(array $allowedTypes): File
147 {
148 if ($this->hasRule('allowedTypes')) {
149 /** @var AllowedTypes $rule */
150 $rule = $this->getRule('allowedTypes');
151 $rule->setAllowedtypes($allowedTypes);
152 }
153
154 $this->rules('allowedTypes:' . implode(',', $allowedTypes));
155
156 return $this;
157 }
158
159 /**
160 * Access the allowed file types.
161 *
162 * @deprecated use getAllowedMimeTypes() instead
163 *
164 * @return string[]
165 */
166 public function getAllowedTypes(): array
167 {
168 if ( ! $this->hasRule('allowedTypes')) {
169 return get_allowed_mime_types();
170 }
171
172 /** @var AllowedTypes $rule */
173 $rule = $this->getRule('allowedTypes');
174
175 return $rule->getAllowedTypes();
176 }
177 }
178