Skip to content

Instantly share code, notes, and snippets.

@matason
Last active February 14, 2021 15:13
Show Gist options
  • Save matason/1798129cdbe469f4a678b1d647d1c219 to your computer and use it in GitHub Desktop.
Save matason/1798129cdbe469f4a678b1d647d1c219 to your computer and use it in GitHub Desktop.
<?php
$variables['blog_post']['teaser_image'] = [];
$variables['blog_post']['thumb_image'] = [];
/** @var NodeInterface $node */
if ($node->hasField('field_hero_image')) {
/** @var \Drupal\Core\TypedData\ListInterface $fieldHeroImage */
$fieldHeroImage = $node->get('field_hero_image');
if (!$fieldHeroImage->isEmpty()) {
try {
/** @var \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem||NULL $entityReferenceItem */
$entityReferenceItem = $fieldHeroImage->first();
if ($entityReferenceItem !== NULL) {
/** @var \Drupal\Core\Entity\Plugin\DataType\EntityReference $entityReference */
$entityReference = $entityReferenceItem->get('entity');
/** @var \Drupal\Core\Entity\Plugin\DataType\EntityAdapter $entityAdapter */
$entityAdapter = $entityReference->getTarget();
/** @var \Drupal\media\MediaInterface $entity */
$entity = $entityAdapter->getEntity();
if ($entity->hasField('field_media_image')) {
/** @var \Drupal\file\Plugin\Field\FieldType\FileFieldItemList $fileFieldItemList */
$fileFieldItemList = $entity->get('field_media_image');
/** @var \Drupal\image\Plugin\Field\FieldType\ImageItem $imageItem */
$imageItem = $fileFieldItemList->first();
if ($imageItem !== NULL) {
$variables['blog_post']['teaser_image'] = $imageItem->view('teaser');
$variables['blog_post']['thumb_image'] = $imageItem->view('thumbnail');
}
}
}
}
catch (MissingDataException | \InvalidArgumentException $exception) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment