19declare(strict_types=1);
55 DataFactory $data_factory,
87 $clone->max_file_size_in_bytes = $clone->upload_limit_resolver->getBestPossibleUploadLimitInBytes(
88 $clone->upload_handler,
102 $clone = clone $this;
115 $clone = clone $this;
116 $clone->accepted_mime_types = $mime_types;
140 $this->checkArg(
"value", $this->
isClientSideValueOk($value),
"Display value does not match input type.");
142 $clone = clone $this;
143 foreach ($value as
$data) {
144 $file_id = ($clone->hasMetadataInputs()) ?
$data[0] :
$data;
148 $clone->generated_dynamic_inputs[$file_id] = $clone->getTemplateForDynamicInputs()->withValue(
$data);
169 'invalid_mime' => $this->
language->txt(
'ui_file_input_invalid_mime'),
170 'invalid_size' => $this->
language->txt(
'ui_file_input_invalid_size'),
171 'invalid_amount' => $this->
language->txt(
'ui_file_input_invalid_amount'),
172 'general_error' => $this->
language->txt(
'ui_file_input_general_error'),
178 return static function () {
184 if ($this->requirement_constraint !==
null) {
185 return $this->requirement_constraint;
188 return $this->
refinery->custom()->constraint(
190 return (is_array($value) && count($value) > 0);
192 function (
$txt, $value) {
193 return $txt(
"msg_no_files_selected");
200 if (!is_array($value)) {
204 foreach ($value as
$data) {
222 $file_id_input = $field_factory->hidden();
224 if (
null === $metadata_input) {
225 return $file_id_input;
228 $this->has_metadata_inputs =
true;
230 return $field_factory->group([$file_id_input, $metadata_input]);
A constraint encodes some resrtictions on values.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc