ViewRenderer.php in Entity Print 8.2
File
modules/entity_print_views/src/Renderer/ViewRenderer.php
View source
<?php
namespace Drupal\entity_print_views\Renderer;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Security\TrustedCallbackInterface;
use Drupal\entity_print\Renderer\RendererBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
class ViewRenderer extends RendererBase implements TrustedCallbackInterface {
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'));
}
public function render(array $views) {
return array_map([
$this,
'renderSingle',
], $views);
}
protected function renderSingle(EntityInterface $view) {
$executable = $view
->getExecutable();
$render = $executable
->render() ?: [];
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;
}
public function getFilename(array $entities) {
return $this->filenameGenerator
->generateFilename($entities, function ($view) {
return $view
->getExecutable()
->getTitle();
});
}
public static function preRender(array $element) {
$element['#exposed'] = [];
return $element;
}
public static function trustedCallbacks() {
return [
'preRender',
];
}
}