protected function EntityReferenceDragDropWidget::optionsToRenderableArray in Entity Reference Drag & Drop 8
Same name and namespace in other branches
- 2.x src/Plugin/Field/FieldWidget/EntityReferenceDragDropWidget.php \Drupal\entityreference_dragdrop\Plugin\Field\FieldWidget\EntityReferenceDragDropWidget::optionsToRenderableArray()
Converts list of options to renderable array.
Parameters
array $options:
$key:
$list_title:
array $classes:
array $wrapper_classes:
Return value
array
2 calls to EntityReferenceDragDropWidget::optionsToRenderableArray()
- EntityReferenceDragDropWidget::availableOptionsToRenderableArray in src/Plugin/ Field/ FieldWidget/ EntityReferenceDragDropWidget.php 
- Converts list of available options to renderable array.
- EntityReferenceDragDropWidget::selectedOptionsToRenderableArray in src/Plugin/ Field/ FieldWidget/ EntityReferenceDragDropWidget.php 
- Converts list of selected options to renderable array.
File
- src/Plugin/ Field/ FieldWidget/ EntityReferenceDragDropWidget.php, line 249 
Class
- EntityReferenceDragDropWidget
- Plugin implementation of the 'entityreference_dragdrop' widget.
Namespace
Drupal\entityreference_dragdrop\Plugin\Field\FieldWidgetCode
protected function optionsToRenderableArray(array $options, $key, $list_title, array $classes = [], array $wrapper_classes = []) {
  // view mode is of the form 'node.full_content'
  $view_mode_name = $this
    ->getSetting('view_mode');
  $view_mode_name = explode('.', $view_mode_name);
  $view_mode = end($view_mode_name);
  $target_type_id = $this->fieldDefinition
    ->getFieldStorageDefinition()
    ->getSetting('target_type');
  $items = [];
  $entities = [];
  if ($view_mode !== static::VIEW_MODE_TITLE) {
    $entities = $this->entityTypeManager
      ->getStorage($target_type_id)
      ->loadMultiple(array_keys($options));
  }
  foreach ($options as $id => $entity_title) {
    $item = [
      '#wrapper_attributes' => [
        'data-key' => $key,
        'data-id' => $id,
        'data-label' => $entity_title,
      ],
    ];
    if ($view_mode !== static::VIEW_MODE_TITLE) {
      $item += $this->entityTypeManager
        ->getViewBuilder($target_type_id)
        ->view($entities[$id], $view_mode);
    }
    else {
      $item += [
        '#markup' => $options[$id],
      ];
    }
    $items[] = $item;
  }
  return [
    '#theme' => 'entityreference_dragdrop_options_list',
    '#items' => $items,
    '#title' => $list_title,
    '#display_filter' => $this
      ->getSetting('display_filter'),
    '#attributes' => [
      'data-key' => $key,
      'class' => array_merge([
        'entityreference-dragdrop',
      ], $classes),
    ],
    '#wrapper_attributes' => [
      'class' => array_merge([
        'entityreference-dragdrop-container',
      ], $wrapper_classes),
    ],
  ];
}