You are here

public function MediaLibraryWidget::form in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php \Drupal\media_library\Plugin\Field\FieldWidget\MediaLibraryWidget::form()

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

core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php, line 278

Class

MediaLibraryWidget
Plugin implementation of the 'media_library_widget' widget.

Namespace

Drupal\media_library\Plugin\Field\FieldWidget

Code

public function form(FieldItemListInterface $items, array &$form, FormStateInterface $form_state, $get_delta = NULL) {

  // Load the items for form rebuilds from the field state.
  $field_state = static::getWidgetState($form['#parents'], $this->fieldDefinition
    ->getName(), $form_state);
  if (isset($field_state['items'])) {
    usort($field_state['items'], [
      SortArray::class,
      'sortByWeightElement',
    ]);
    $items
      ->setValue($field_state['items']);
  }
  return parent::form($items, $form, $form_state, $get_delta);
}