3 namespace Drupal\views\Entity\Render;
5 use Drupal\views\Plugin\views\query\QueryPluginBase;
6 use Drupal\views\ResultRow;
9 * Defines a base class for entity translation renderers.
11 abstract class EntityTranslationRendererBase extends RendererBase {
14 * Returns the language code associated with the given row.
16 * @param \Drupal\views\ResultRow $row
22 abstract public function getLangcode(ResultRow $row);
27 public function query(QueryPluginBase $query, $relationship = NULL) {
33 public function preRender(array $result) {
34 $view_builder = $this->view->rowPlugin->entityManager->getViewBuilder($this->entityType->id());
36 /** @var \Drupal\views\ResultRow $row */
37 foreach ($result as $row) {
38 // @todo Take relationships into account.
39 // See https://www.drupal.org/node/2457999.
40 $entity = $row->_entity;
41 $entity->view = $this->view;
42 $this->build[$entity->id()] = $view_builder->view($entity, $this->view->rowPlugin->options['view_mode'], $this->getLangcode($row));
49 public function render(ResultRow $row) {
50 $entity_id = $row->_entity->id();
51 return $this->build[$entity_id];