60327f615f87e6b5c0e43514e07bc3cea95ef2ac
[yaffs-website] / RendererBase.php
1 <?php
2
3 namespace Drupal\views\Entity\Render;
4
5 use Drupal\Core\Cache\Cache;
6 use Drupal\Core\Cache\CacheableDependencyInterface;
7 use Drupal\Core\Entity\EntityTypeInterface;
8 use Drupal\Core\Language\LanguageManagerInterface;
9 use Drupal\views\Plugin\views\query\QueryPluginBase;
10 use Drupal\views\ResultRow;
11 use Drupal\views\ViewExecutable;
12
13 /**
14  * Defines a base class for entity renderers.
15  */
16 abstract class RendererBase implements CacheableDependencyInterface {
17
18   /**
19    * The view executable wrapping the view storage entity.
20    *
21    * @var \Drupal\views\ViewExecutable
22    */
23   public $view;
24
25   /**
26    * The language manager.
27    *
28    * @var \Drupal\Core\Language\LanguageManagerInterface
29    */
30   protected $languageManager;
31
32   /**
33    * The type of the entity being rendered.
34    *
35    * @var \Drupal\Core\Entity\EntityTypeInterface
36    */
37   protected $entityType;
38
39   /**
40    * Contains an array of render arrays, one for each rendered entity.
41    *
42    * @var array
43    */
44   protected $build;
45
46   /**
47    * Constructs a renderer object.
48    *
49    * @param \Drupal\views\ViewExecutable $view
50    *   The entity row being rendered.
51    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
52    *   The language manager.
53    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
54    *   The entity type.
55    */
56   public function __construct(ViewExecutable $view, LanguageManagerInterface $language_manager, EntityTypeInterface $entity_type) {
57     $this->view = $view;
58     $this->languageManager = $language_manager;
59     $this->entityType = $entity_type;
60   }
61
62   /**
63    * {@inheritdoc}
64    */
65   public function getCacheMaxAge() {
66     return Cache::PERMANENT;
67   }
68
69   /**
70    * {@inheritdoc}
71    */
72   public function getCacheContexts() {
73     return [];
74   }
75
76   /**
77    * {@inheritdoc}
78    */
79   public function getCacheTags() {
80     return [];
81   }
82
83   /**
84    * Alters the query if needed.
85    *
86    * @param \Drupal\views\Plugin\views\query\QueryPluginBase $query
87    *   The query to alter.
88    * @param string $relationship
89    *   (optional) The relationship, used by a field.
90    */
91   abstract public function query(QueryPluginBase $query, $relationship = NULL);
92
93   /**
94    * Runs before each entity is rendered.
95    *
96    * @param $result
97    *   The full array of results from the query.
98    */
99   public function preRender(array $result) {
100   }
101
102   /**
103    * Renders entity data.
104    *
105    * @param \Drupal\views\ResultRow $row
106    *   A single row of the query result.
107    *
108    * @return array
109    *   A renderable array for the entity data contained in the result row.
110    */
111   abstract public function render(ResultRow $row);
112
113 }