You are here

public function EntityqueueDragtableWidget::form in Entityqueue 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/EntityqueueDragtableWidget.php, line 88

Class

EntityqueueDragtableWidget
Plugin implementation of the 'entityqueue_dragtable' widget.

Namespace

Drupal\entityqueue\Plugin\Field\FieldWidget

Code

public function form(FieldItemListInterface $items, array &$form, FormStateInterface $form_state, $get_delta = NULL) {
  if ($this->fieldDefinition
    ->getTargetEntityTypeId() === 'entity_subqueue' && $this->fieldDefinition
    ->getName() === 'items') {

    // Restrict the cardinality of the 'items' field if the queue has defined
    // a maximum number of items and it is not configured to act as a queue.

    /** @var \Drupal\entityqueue\EntityQueueInterface $queue */
    $queue = $items
      ->getEntity()
      ->getQueue();
    if (($max_size = $queue
      ->getMaximumSize()) && !$queue
      ->getActAsQueue()) {
      $this->fieldDefinition
        ->getFieldStorageDefinition()
        ->setCardinality($max_size);
    }
  }
  return parent::form($items, $form, $form_state, $get_delta);
}