function EntityTestHooks::entityPrepareView

Implements hook_entity_prepare_view().

Attributes

#[Hook('entity_prepare_view')]

File

core/modules/system/tests/modules/entity_test/src/Hook/EntityTestHooks.php, line 584

Class

EntityTestHooks
Hook implementations for entity_test.

Namespace

Drupal\entity_test\Hook

Code

public function entityPrepareView($entity_type, array $entities, array $displays) : void {
  if ($entity_type == 'entity_test') {
    foreach ($entities as $entity) {
      /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
      // Add field item attributes on field_test_text if it exists.
      // See \Drupal\Tests\system\Functional\Entity\EntityViewControllerTest::testFieldItemAttributes().
      if ($entity->hasField('field_test_text') && $displays[$entity->bundle()]
        ->getComponent('field_test_text')) {
        foreach ($entity->get('field_test_text') as $item) {
          $item->_attributes += [
            'data-field-item-attr' => 'foobar',
            'property' => 'schema:text',
          ];
        }
      }
      // Add an item attribute on daterange fields if they exist.
      $fields = $entity->getFieldDefinitions();
      foreach ($fields as $field) {
        if ($field->getType() === 'daterange') {
          $item = $entity->get($field->getName());
          $item->_attributes += [
            'data-field-item-attr' => 'foobar',
          ];
        }
      }
    }
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.