MessageViewBuilder.php in Message 8
File
src/MessageViewBuilder.php
View source
<?php
namespace Drupal\message;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityViewBuilder;
class MessageViewBuilder extends EntityViewBuilder {
public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
$build = parent::view($entity, $view_mode, $langcode);
$partials = $entity
->getText($langcode);
$extra_fields = EntityViewDisplay::load('message.' . $entity
->bundle() . '.' . $view_mode);
if (!$extra_fields instanceof EntityViewDisplayInterface) {
$extra_fields = EntityViewDisplay::create([
'targetEntityType' => 'message',
'bundle' => $entity
->bundle(),
'mode' => $view_mode,
'status' => TRUE,
]);
}
foreach ($extra_fields
->getComponents() as $field_name => $settings) {
if (strpos($field_name, 'partial_') === 0) {
list(, $delta) = explode('_', $field_name);
if (isset($partials[$delta])) {
$build[$field_name]['#markup'] = $partials[$delta];
}
}
else {
$display = $this
->getSingleFieldDisplay($entity, $field_name, $settings);
$build += $display
->build($entity);
}
}
return $build;
}
}