entity_generic-8.x-3.x-dev/src/GenericViewBuilder.php
src/GenericViewBuilder.php
<?php
namespace Drupal\entity_generic;
use Drupal\Core\Entity\EntityViewBuilder;
use Drupal\Core\Entity\EntityInterface;
/**
* Render controller for entities.
*/
class GenericViewBuilder extends EntityViewBuilder {
/**
* {@inheritdoc}
*/
public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
if (empty($entities)) {
return;
}
parent::buildComponents($build, $entities, $displays, $view_mode);
foreach ($entities as $id => $entity) {
$bundle = $entity->bundle();
$display = $displays[$bundle];
// Add Language field text element to entity render array.
if ($display->getComponent('langcode')) {
$build[$id]['langcode'] = array(
'#type' => 'item',
'#title' => t('Language'),
'#markup' => $entity->language()->getName(),
'#prefix' => '<div id="field-language-display">',
'#suffix' => '</div>',
);
}
}
}
/**
* Provides entity-specific defaults to the build process.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity for which the defaults should be provided.
* @param string $view_mode
* The view mode that should be used.
*
* @return array
* Build array.
*/
protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
$build = parent::getBuildDefaults($entity, $view_mode);
$build['#theme'] = 'entity_generic';
return $build;
}
}
