abstract class RendererBase in Entity Print 8.2
Same name and namespace in other branches
- 8 src/Renderer/RendererBase.php \Drupal\entity_print\Renderer\RendererBase
The RendererBase class.
Hierarchy
- class \Drupal\entity_print\Renderer\RendererBase implements EntityHandlerInterface, RendererInterface
Expanded class hierarchy of RendererBase
1 file declares its use of RendererBase
- ViewRenderer.php in modules/
entity_print_views/ src/ Renderer/ ViewRenderer.php
File
- src/
Renderer/ RendererBase.php, line 19
Namespace
Drupal\entity_print\RendererView source
abstract class RendererBase implements RendererInterface, EntityHandlerInterface {
/**
* The renderer for renderable arrays.
*
* @var \Drupal\Core\Render\RendererInterface
*/
protected $renderer;
/**
* The asset renderer.
*
* @var \Drupal\entity_print\Asset\AssetRendererInterface
*/
protected $assetRenderer;
/**
* Generate filename's for a printed document.
*
* @var \Drupal\entity_print\FilenameGeneratorInterface
*/
protected $filenameGenerator;
/**
* The event dispatcher.
*
* @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
*/
protected $dispatcher;
/**
* RendererBase constructor.
*
* @param \Drupal\Core\Render\RendererInterface $renderer
* Cores renderer.
* @param \Drupal\entity_print\Asset\AssetRendererInterface $asset_renderer
* The asset renderer.
* @param \Drupal\entity_print\FilenameGeneratorInterface $filename_generator
* Filename generator.
* @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
* The event dispatcher.
*/
public function __construct(CoreRendererInterface $renderer, AssetRendererInterface $asset_renderer, FilenameGeneratorInterface $filename_generator, EventDispatcherInterface $event_dispatcher) {
$this->renderer = $renderer;
$this->assetRenderer = $asset_renderer;
$this->filenameGenerator = $filename_generator;
$this->dispatcher = $event_dispatcher;
}
/**
* {@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 generateHtml(array $entities, array $render, $use_default_css, $optimize_css) {
$rendered_css = $this->assetRenderer
->render($entities, $use_default_css, $optimize_css);
$render['#entity_print_css'] = $this->renderer
->executeInRenderContext(new RenderContext(), function () use (&$rendered_css) {
return $this->renderer
->render($rendered_css);
});
$html = (string) $this->renderer
->executeInRenderContext(new RenderContext(), function () use (&$render) {
return $this->renderer
->render($render);
});
// Allow other modules to alter the generated HTML.
$this->dispatcher
->dispatch(PrintEvents::POST_RENDER, new PrintHtmlAlterEvent($html, $entities));
return $html;
}
/**
* {@inheritdoc}
*/
public function getFilename(array $entities) {
return $this->filenameGenerator
->generateFilename($entities);
}
}
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 static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
2 |
RendererBase:: |
public | function |
Generates the HTML from the renderable array of entities. Overrides RendererInterface:: |
|
RendererBase:: |
public | function |
Get the filename for the entity we're printing *without* the extension. Overrides RendererInterface:: |
1 |
RendererBase:: |
public | function | RendererBase constructor. | 1 |
RendererInterface:: |
public | function | Gets the renderable for this entity. | 2 |