You are here

EntityViewBuilder.php in Entity API 8.0

Same filename and directory in other branches
  1. 8 src/EntityViewBuilder.php

Namespace

Drupal\entity

File

src/EntityViewBuilder.php
View source
<?php

/**
 * @file
 * Contains \Drupal\entity\EntityViewBuilder.
 */
namespace Drupal\entity;

use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityViewBuilder as CoreEntityViewBuilder;

/**
 * Provides a entity view builder with contextual links support
 */
class EntityViewBuilder extends CoreEntityViewBuilder {

  /**
   * {@inheritdoc}
   */
  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
    $entity_type_id = $entity
      ->getEntityTypeId();
    if ($entity instanceof ContentEntityInterface && $entity
      ->isDefaultRevision() || !$entity
      ->getEntityType()
      ->isRevisionable()) {
      $build['#contextual_links'][$entity_type_id] = [
        'route_parameters' => [
          $entity_type_id => $entity
            ->id(),
        ],
      ];
    }
    else {
      $build['#contextual_links'][$entity_type_id . '_revision'] = [
        'route_parameters' => [
          $entity_type_id => $entity
            ->id(),
          $entity_type_id . '_revision' => $entity
            ->getRevisionId(),
        ],
      ];
    }
  }

}

Classes

Namesort descending Description
EntityViewBuilder Provides a entity view builder with contextual links support