protected function FileUploadForm::buildInputElement in Drupal 10
Same name and namespace in other branches
- 8 core/modules/media_library/src/Form/FileUploadForm.php \Drupal\media_library\Form\FileUploadForm::buildInputElement()
- 9 core/modules/media_library/src/Form/FileUploadForm.php \Drupal\media_library\Form\FileUploadForm::buildInputElement()
File
- core/modules/media_library/src/Form/FileUploadForm.php, line 143
Class
- FileUploadForm
- Creates a form to create media entities from uploaded files.
Namespace
Drupal\media_library\Form
Code
protected function buildInputElement(array $form, FormStateInterface $form_state) {
$media_type = $this
->getMediaType($form_state);
$item = $this
->createFileItem($media_type);
$state = $this
->getMediaLibraryState($form_state);
if (!$state
->hasSlotsAvailable()) {
return $form;
}
$slots = $state
->getAvailableSlots();
$form['container'] = [
'#type' => 'container',
];
$process = (array) $this->elementInfo
->getInfoProperty('managed_file', '#process', []);
$form['container']['upload'] = [
'#type' => 'managed_file',
'#title' => $this
->formatPlural($slots, 'Add file', 'Add files'),
'#process' => array_merge([
'::validateUploadElement',
], $process, [
'::processUploadElement',
]),
'#upload_validators' => $item
->getUploadValidators(),
'#multiple' => $slots > 1 || $slots === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
'#cardinality' => $slots,
'#remaining_slots' => $slots,
];
$file_upload_help = [
'#theme' => 'file_upload_help',
'#upload_validators' => $form['container']['upload']['#upload_validators'],
'#cardinality' => $slots,
];
$form['container']['upload']['#description'] = $this->renderer
->renderPlain($file_upload_help);
return $form;
}