ContentEntityRenderer.php in Entity Print 8.2
File
src/Renderer/ContentEntityRenderer.php
View source
<?php
namespace Drupal\entity_print\Renderer;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Render\RendererInterface as CoreRendererInterface;
use Drupal\entity_print\Asset\AssetRendererInterface;
use Drupal\entity_print\FilenameGeneratorInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class ContentEntityRenderer extends RendererBase {
protected $entityTypeManager;
public function __construct(CoreRendererInterface $renderer, AssetRendererInterface $asset_renderer, FilenameGeneratorInterface $filename_generator, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager) {
parent::__construct($renderer, $asset_renderer, $filename_generator, $event_dispatcher);
$this->entityTypeManager = $entity_type_manager;
}
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'), $container
->get('entity_type.manager'));
}
public function render(array $entities) {
$build = [];
foreach ($entities as $entity) {
$render_controller = $this->entityTypeManager
->getViewBuilder($entity
->getEntityTypeId());
$build[] = $render_controller
->view($entity, $this
->getViewMode($entity));
}
return $build;
}
protected function getViewMode(EntityInterface $entity) {
$view_mode = 'pdf';
if (!$this->entityTypeManager
->getStorage('entity_view_display')
->load($entity
->getEntityTypeId() . '.' . $entity
->bundle() . '.' . $view_mode)) {
$view_mode = 'full';
}
return $view_mode;
}
}