You are here

public function InlineParagraphsWidget::form in Paragraphs 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/InlineParagraphsWidget.php, line 945

Class

InlineParagraphsWidget
Plugin implementation of the 'entity_reference paragraphs' widget.

Namespace

Drupal\paragraphs\Plugin\Field\FieldWidget

Code

public function form(FieldItemListInterface $items, array &$form, FormStateInterface $form_state, $get_delta = NULL) {
  $parents = $form['#parents'];

  // Identify the manage field settings default value form.
  if (in_array('default_value_input', $parents, TRUE)) {

    // Since the entity is not reusable neither cloneable, having a default
    // value is not supported.
    return [
      '#markup' => $this
        ->t('No widget available for: %label.', [
        '%label' => $items
          ->getFieldDefinition()
          ->getLabel(),
      ]),
    ];
  }
  $elements = parent::form($items, $form, $form_state, $get_delta);

  // Signal to content_translation that this field should be treated as
  // multilingual and not be hidden, see
  // \Drupal\content_translation\ContentTranslationHandler::entityFormSharedElements().
  $elements['#multilingual'] = TRUE;
  return $elements;
}