/** * {@inheritdoc} */ protected function formMultipleElements(FieldItemListInterface $items, array &$form, FormStateInterface $form_state) { $elements = parent::formMultipleElements($items, $form, $form_state); // Alter #upload_validators passed to #file_upload_description. $this->alterFileUploadHelpParameters($elements['#file_upload_description']); // TODO: Why do we need this? if ($this->isDefaultValueWidget($form_state) && !empty($elements[1])) { unset($elements[1]); $elements['#file_upload_delta'] = 0; } return $elements; }
/** * Overrides \Drupal\file\Plugin\Field\FieldWidget\FileWidget::formMultipleElements(). * * Special handling for draggable multiple widgets and 'add more' button. */ protected function formMultipleElements(FieldItemListInterface $items, array &$form, FormStateInterface $form_state) { $elements = parent::formMultipleElements($items, $form, $form_state); $cardinality = $this->fieldDefinition->getFieldStorageDefinition()->getCardinality(); $file_upload_help = array('#theme' => 'file_upload_help', '#description' => '', '#upload_validators' => $elements[0]['#upload_validators'], '#cardinality' => $cardinality); if ($cardinality == 1) { // If there's only one field, return it as delta 0. if (empty($elements[0]['#default_value']['fids'])) { $file_upload_help['#description'] = field_filter_xss($this->fieldDefinition->getDescription()); $elements[0]['#description'] = drupal_render($file_upload_help); } } else { $elements['#file_upload_description'] = $file_upload_help; } return $elements; }