You are here

public function EntityReferenceEntityFormatter::viewInstantArticle in Facebook Instant Articles 8.2

Same name and namespace in other branches
  1. 3.x src/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php \Drupal\fb_instant_articles\Plugin\Field\FieldFormatter\EntityReferenceEntityFormatter::viewInstantArticle()

Modifies the given instant article with the contents of this field.

Parameters

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

\Facebook\InstantArticles\Elements\InstantArticle $article: Instant article object to modify, rendering the contents of this field into it.

string $region: The Instant Article region name that the contents of this field should be rendered into.

\Symfony\Component\Serializer\Normalizer\NormalizerInterface $normalizer: Normalizer in case the formatter needs to recursively normalize, eg. in the case of a entity reference field.

string $langcode: (optional) The language that should be used to render the field. Defaults to the current content language.

Overrides InstantArticleFormatterInterface::viewInstantArticle

File

src/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php, line 134

Class

EntityReferenceEntityFormatter
Instant articles field formatter for entity reference fields.

Namespace

Drupal\fb_instant_articles\Plugin\Field\FieldFormatter

Code

public function viewInstantArticle(FieldItemListInterface $items, InstantArticle $article, $region, NormalizerInterface $normalizer, $langcode = NULL) {

  // Need to call parent::prepareView() to populate the entities since it's
  // not otherwise getting called.
  $this
    ->prepareView([
    $items
      ->getEntity()
      ->id() => $items,
  ]);

  /** @var \Drupal\Core\Field\EntityReferenceFieldItemList $items */
  $view_mode = $this
    ->getSetting('view_mode');
  foreach ($this
    ->getEntitiesToView($items, $langcode) as $entity) {
    $normalizer
      ->normalize($entity, 'fbia', [
      'instant_article' => $article,
      'view_mode' => $view_mode,
    ]);
  }
}