TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-61800:
|
||||
|
||||
============================================================
|
||||
Feature: #61800 - Registry for adding file rendering classes
|
||||
============================================================
|
||||
|
||||
See :issue:`61800`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To be able to render all kinds of media files a file rendering registry is needed where you can register
|
||||
a "renderer" class that can generate the needed HTML output.
|
||||
|
||||
Every renderer has a priority between 1 and 100, 100 is more important than 1.
|
||||
When the rendererRegistry is asked for a renderer that fits a given file all registered renderer classes are "asked",
|
||||
in order of priority, if they are able to render the file. The first renderer class that can render the file an
|
||||
instance is returned by the rendererRegistry.
|
||||
|
||||
Every registered renderer class needs to implement the FileRendererInterface. This makes sure the class has a
|
||||
getPriority(), canRender() and render() method.
|
||||
|
||||
- getPriority() returns integer between 1 and 100
|
||||
- canRender() gets a file(Reference) object as parameter and returns TRUE if the class is able to render the file
|
||||
It checks on mime-type but also storage type etc. can be performed to determine if creating the correct output
|
||||
is possible
|
||||
- render() also gets the file(Reference) object as parameter together with width, height and an optional options array
|
||||
the return value is the HTML output
|
||||
|
||||
A AudioTagRenderer and VideoTagRenderer have already been added.
|
||||
|
||||
It is possible to register your own renderer classes in the ext_localconf.php of an extension.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$rendererRegistry = \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance();
|
||||
$rendererRegistry->registerRendererClass(
|
||||
'MyCompany\\MySpecialMediaFile\\Rendering\\MySpecialMediaFileRenderer'
|
||||
);
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The registry on its own doesn't do anything. Some followup patches are needed to use this registry
|
||||
to find the correct renderer class for rendering videos and other media files in BE preview and FE.
|
||||
|
||||
|
||||
.. index:: PHP-API, FAL, Backend
|
||||
Reference in New Issue
Block a user