You are here

public function FileWidget::form in PlUPload File Widget 8

Creates a form element for a field.

If the entity associated with the form is new (i.e., $entity->isNew() is TRUE), the 'default value', if any, is pre-populated. Also allows other modules to alter the form element by implementing their own hooks.

Parameters

\Drupal\Core\Field\FieldItemListInterface $items: An array of the field values. When creating a new entity this may be NULL or an empty array to use default values.

array $form: An array representing the form that the editing element will be attached to.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

int $get_delta: Used to get only a specific delta value of a multiple value field.

Return value

array The form element array created for this field.

Overrides WidgetBase::form

File

src/Plugin/Field/FieldWidget/FileWidget.php, line 106

Class

FileWidget
Plugin annotation @FieldWidget( id = "plupload_file_widget", label = @Translation("PLupload widget"), field_types = { "file" } )

Namespace

Drupal\plupload_widget\Plugin\Field\FieldWidget

Code

public function form(FieldItemListInterface $items, array &$form, FormStateInterface $form_state, $get_delta = NULL) {
  $element = parent::form($items, $form, $form_state, $get_delta);
  $field_definition = $this->fieldDefinition
    ->getFieldStorageDefinition();

  // Store these seetings once for the whole widget.
  $config = new UploadConfiguration();
  $config->cardinality = $field_definition
    ->getCardinality();
  $config->upload_location = $items[0]
    ->getUploadLocation();
  $config->validators = $items[0]
    ->getUploadValidators();
  $config->chunk_size = $this
    ->getChunkSize();
  $config->max_size = $this
    ->getMaxFileSize();
  $element['#upload_configuration'] = serialize($config);
  return $element;
}