You are here

public function PrivateMessageViewBuilder::view in Private Message 8.2

Same name and namespace in other branches
  1. 8 src/Entity/Builder/PrivateMessageViewBuilder.php \Drupal\private_message\Entity\Builder\PrivateMessageViewBuilder::view()

Builds the render array for the provided entity.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity to render.

string $view_mode: (optional) The view mode that should be used to render the entity.

string $langcode: (optional) For which language the entity should be rendered, defaults to the current content language.

Return value

array A render array for the entity.

Throws

\InvalidArgumentException Can be thrown when the set of parameters is inconsistent, like when trying to view a Comment and passing a Node which is not the one the comment belongs to, or not passing one, and having the comment node not be available for loading.

Overrides EntityViewBuilder::view

File

src/Entity/Builder/PrivateMessageViewBuilder.php, line 74

Class

PrivateMessageViewBuilder
Build handler for rpivate messages.

Namespace

Drupal\private_message\Entity\Builder

Code

public function view(EntityInterface $entity, $viewMode = 'default', $langcode = NULL) {
  $message = parent::view($entity, $viewMode, $langcode);
  $classes = [
    'private-message',
  ];
  $classes[] = 'private-message-' . $viewMode;
  $classes[] = 'private-message-author-' . ($this->currentUser
    ->id() == $entity
    ->getOwnerId() ? 'self' : 'other');
  $id = 'private-message-' . $entity
    ->id();
  $build['wrapper'] = [
    '#type' => 'container',
    '#attributes' => [
      'id' => $id,
      'data-message-id' => $entity
        ->id(),
      'class' => $classes,
    ],
  ];
  $build['wrapper']['message'] = $message;
  $this
    ->moduleHandler()
    ->alter('private_message_view', $build, $entity, $viewMode);
  return $build;
}