public function EntityListTrait::view in Formatter Suite 8
File
- src/Plugin/ Field/ FieldFormatter/ EntityListTrait.php, line 234 
Class
- EntityListTrait
- Formats multiple fields as a list.
Namespace
Drupal\formatter_suite\Plugin\Field\FieldFormatterCode
public function view(FieldItemListInterface $items, $langcode = NULL) {
  if ($items
    ->isEmpty() === TRUE) {
    return [];
  }
  // Let the parent class set up a render array for all items.
  $this
    ->sanitizeListSettings();
  $build = parent::view($items, $langcode);
  if (empty($build) === TRUE) {
    return [];
  }
  // Replace the 'field' theme with ours, which supports lists.
  $build['#theme'] = 'formatter_suite_field_list';
  // Set the list style.
  $build['#list_style'] = $this
    ->getSetting('listStyle');
  // Set the list separator.
  //
  // Security: The list separator is entered by an administrator.
  // It may legitimately include HTML entities and minor HTML, but
  // it should not include dangerous HTML.
  //
  // Because it may include HTML, we cannot pass it directly to t()
  // or let a TWIG template use {{ }}, both of which will process
  // the text and corrupt any entered HTML or HTML entities.
  //
  // We therefore use an Xss filter to remove any egreggious HTML
  // (such as scripts), and then FormattableMarkup() to mark the
  // resulting text as safe.
  $listSeparator = Xss::filterAdmin($this
    ->getSetting('listSeparator'));
  $build['#list_separator'] = new FormattableMarkup($listSeparator, []);
  return $build;
}