You are here

public function FieldCollectionViewsFormatter::viewElements in Field Collection Views 8.5

Same name and namespace in other branches
  1. 6.x src/Plugin/Field/FieldFormatter/FieldCollectionViewsFormatter.php \Drupal\field_collection_views\Plugin\Field\FieldFormatter\FieldCollectionViewsFormatter::viewElements()

File

src/Plugin/Field/FieldFormatter/FieldCollectionViewsFormatter.php, line 65

Class

FieldCollectionViewsFormatter
Plugin implementation of the 'views_field_collection_items' formatter.

Namespace

Drupal\field_collection_views\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $element = [];
  $args = '';
  $i = 1;
  foreach ($items as $item) {
    if ($i == 1) {
      $args .= $item->value;
    }
    else {
      $args .= ',' . $item->value;
    }
    $i++;
  }
  $view_name = !empty($this
    ->getSetting('name')) ? $this
    ->getSetting('name') : 'field_collection_view';
  $display_id = !empty($this
    ->getSetting('display_id')) ? $this
    ->getSetting('display_id') : 'default';
  $content = views_embed_view($view_name, $display_id, $args);
  $render = \Drupal::service('renderer')
    ->renderPlain($content)
    ->__toString();
  $element[0] = [
    '#type' => 'markup',
    '#markup' => $render,
  ];
  return $element;
}