diff core/modules/views/src/Entity/Render/RendererBase.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/views/src/Entity/Render/RendererBase.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,113 @@
+<?php
+
+namespace Drupal\views\Entity\Render;
+
+use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheableDependencyInterface;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
+use Drupal\views\Plugin\views\query\QueryPluginBase;
+use Drupal\views\ResultRow;
+use Drupal\views\ViewExecutable;
+
+/**
+ * Defines a base class for entity renderers.
+ */
+abstract class RendererBase implements CacheableDependencyInterface {
+
+  /**
+   * The view executable wrapping the view storage entity.
+   *
+   * @var \Drupal\views\ViewExecutable
+   */
+  public $view;
+
+  /**
+   * The language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
+   * The type of the entity being rendered.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeInterface
+   */
+  protected $entityType;
+
+  /**
+   * Contains an array of render arrays, one for each rendered entity.
+   *
+   * @var array
+   */
+  protected $build;
+
+  /**
+   * Constructs a renderer object.
+   *
+   * @param \Drupal\views\ViewExecutable $view
+   *   The entity row being rendered.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   The entity type.
+   */
+  public function __construct(ViewExecutable $view, LanguageManagerInterface $language_manager, EntityTypeInterface $entity_type) {
+    $this->view = $view;
+    $this->languageManager = $language_manager;
+    $this->entityType = $entity_type;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCacheMaxAge() {
+    return Cache::PERMANENT;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCacheContexts() {
+    return [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCacheTags() {
+    return [];
+  }
+
+  /**
+   * Alters the query if needed.
+   *
+   * @param \Drupal\views\Plugin\views\query\QueryPluginBase $query
+   *   The query to alter.
+   * @param string $relationship
+   *   (optional) The relationship, used by a field.
+   */
+  abstract public function query(QueryPluginBase $query, $relationship = NULL);
+
+  /**
+   * Runs before each entity is rendered.
+   *
+   * @param $result
+   *   The full array of results from the query.
+   */
+  public function preRender(array $result) {
+  }
+
+  /**
+   * Renders entity data.
+   *
+   * @param \Drupal\views\ResultRow $row
+   *   A single row of the query result.
+   *
+   * @return array
+   *   A renderable array for the entity data contained in the result row.
+   */
+  abstract public function render(ResultRow $row);
+
+}