class ViewRenderer in Entity Print 8.2
Providers a renderer for Views.
Hierarchy
- class \Drupal\entity_print\Renderer\RendererBase implements EntityHandlerInterface, RendererInterface
- class \Drupal\entity_print_views\Renderer\ViewRenderer implements TrustedCallbackInterface
Expanded class hierarchy of ViewRenderer
1 file declares its use of ViewRenderer
- entity_print_views.module in modules/
entity_print_views/ entity_print_views.module - Entity Print Views module file.
File
- modules/
entity_print_views/ src/ Renderer/ ViewRenderer.php, line 14
Namespace
Drupal\entity_print_views\RendererView source
class ViewRenderer extends RendererBase implements TrustedCallbackInterface {
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($container
->get('renderer'), $container
->get('entity_print.asset_renderer'), $container
->get('entity_print.filename_generator'), $container
->get('event_dispatcher'));
}
/**
* {@inheritdoc}
*/
public function render(array $views) {
return array_map([
$this,
'renderSingle',
], $views);
}
/**
* Render a single entity.
*
* @param \Drupal\Core\Entity\EntityInterface $view
* The entity we're rendering.
*
* @return array
* A render array.
*/
protected function renderSingle(EntityInterface $view) {
/** @var \Drupal\views\Entity\View $view */
$executable = $view
->getExecutable();
$render = $executable
->render() ?: [];
// We must remove ourselves from all areas otherwise it will cause an
// infinite loop when rendering.
foreach ([
'header',
'footer',
'empty',
] as $area_type) {
$handlers =& $executable->display_handler
->getHandlers($area_type);
unset($handlers['area_entity_print_views']);
}
$render['#pre_render'][] = [
static::class,
'preRender',
];
return $render;
}
/**
* {@inheritdoc}
*/
public function getFilename(array $entities) {
return $this->filenameGenerator
->generateFilename($entities, function ($view) {
/** @var \Drupal\views\ViewEntityInterface $view */
return $view
->getExecutable()
->getTitle();
});
}
/**
* Pre render callback for the view.
*/
public static function preRender(array $element) {
// Remove the exposed filters, we don't every want them on the PDF.
$element['#exposed'] = [];
return $element;
}
/**
* {@inheritdoc}
*/
public static function trustedCallbacks() {
return [
'preRender',
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
RendererBase:: |
protected | property | The asset renderer. | |
RendererBase:: |
protected | property | The event dispatcher. | |
RendererBase:: |
protected | property | Generate filename's for a printed document. | |
RendererBase:: |
protected | property | The renderer for renderable arrays. | |
RendererBase:: |
public | function |
Generates the HTML from the renderable array of entities. Overrides RendererInterface:: |
|
RendererBase:: |
public | function | RendererBase constructor. | 1 |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. | ||
ViewRenderer:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides RendererBase:: |
|
ViewRenderer:: |
public | function |
Get the filename for the entity we're printing *without* the extension. Overrides RendererBase:: |
|
ViewRenderer:: |
public static | function | Pre render callback for the view. | |
ViewRenderer:: |
public | function |
Gets the renderable for this entity. Overrides RendererInterface:: |
|
ViewRenderer:: |
protected | function | Render a single entity. | |
ViewRenderer:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |