You are here

public function ToggleEditableFormatter::viewElements in Toggle Editable fields 8

Builds a renderable array for a field value.

Parameters

\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.

string $langcode: The language that should be used to render the field.

Return value

array A renderable array for $items, as an array of child elements keyed by consecutive numeric indexes starting from 0.

Overrides FormatterInterface::viewElements

File

src/Plugin/Field/FieldFormatter/ToggleEditableFormatter.php, line 232

Class

ToggleEditableFormatter
Plugin implementation of the 'ranking' formatter.

Namespace

Drupal\toggle_editable_fields\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $elements = [];
  foreach ($items as $delta => $item) {

    // We create an instance of element form to edit field first and,
    // initialize Form object with item definition to make a form id dynamic.
    $form_object = $this->classResolver
      ->getInstanceFromDefinition(AjaxToggleForm::class);
    $form_object
      ->setFieldItem($item, $this
      ->getSettings());
    $form_state = new FormState();
    $elements[$delta] = $this->formBuilder
      ->buildForm($form_object, $form_state);
  }
  return $elements;
}