Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Add preview renderer #833

Merged
merged 8 commits into from
Oct 28, 2023
Merged
91 changes: 46 additions & 45 deletions Documentation/Ctrl/Properties/Index.rst
Original file line number Diff line number Diff line change
@@ -1,51 +1,52 @@
.. include:: /Includes.rst.txt
.. _ctrl-reference:
.. include:: /Includes.rst.txt
.. _ctrl-reference:

==========
Properties
==========

.. toctree::
.. toctree::

AdminOnly
Container
CopyAfterDuplFields
Crdate
DefaultSortby
Delete
DescriptionColumn
Editlock
Enablecolumns
Ext
FormattedLabelUserFunc
FormattedLabelUserFuncOptions
GroupName
HideAtCopy
HideTable
Iconfile
IsStatic
Label
LabelAlt
LabelAltForce
LabelUserfunc
LanguageField
OrigUid
PrependAtCopy
ReadOnly
RootLevel
SearchFields
Security
SeliconField
ShadowColumnsForNewPlaceholders
Sortby
Title
TranslationSource
TransOrigDiffSourceField
TransOrigPointerField
Tstamp
Type
TypeiconClasses
TypeiconColumn
UseColumnsForDefaultValues
VersioningWS
VersioningWSAlwaysAllowLiveEdit
AdminOnly
Container
brotkrueml marked this conversation as resolved.
Show resolved Hide resolved
CopyAfterDuplFields
Crdate
DefaultSortby
Delete
DescriptionColumn
Editlock
Enablecolumns
Ext
FormattedLabelUserFunc
FormattedLabelUserFuncOptions
GroupName
HideAtCopy
HideTable
Iconfile
IsStatic
Label
LabelAlt
LabelAltForce
LabelUserfunc
LanguageField
OrigUid
PrependAtCopy
PreviewRenderer
ReadOnly
RootLevel
SearchFields
Security
SeliconField
ShadowColumnsForNewPlaceholders
Sortby
Title
TranslationSource
TransOrigDiffSourceField
TransOrigPointerField
Tstamp
Type
TypeiconClasses
TypeiconColumn
UseColumnsForDefaultValues
VersioningWS
VersioningWSAlwaysAllowLiveEdit
58 changes: 58 additions & 0 deletions Documentation/Ctrl/Properties/PreviewRenderer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
.. include:: /Includes.rst.txt
.. _ctrl-reference-previewrenderer:

===============
previewRenderer
===============

.. confval:: previewRenderer

:Path: $GLOBALS['TCA'][$table]['ctrl']
:type: string
:Scope: Display

Configure a backend preview for a content element.
brotkrueml marked this conversation as resolved.
Show resolved Hide resolved

Examples
========

Have also a look at :ref:`t3coreapi:ConfigureCE-Preview` for more details.

Use for any record in a table
-----------------------------

This specifies the preview renderer to be used for any record in :sql:`my_table`:
brotkrueml marked this conversation as resolved.
Show resolved Hide resolved

.. code-block:: php

brotkrueml marked this conversation as resolved.
Show resolved Hide resolved
$GLOBALS['TCA']['my_table']['ctrl']['previewRenderer']
= \MyVendor\MyExtension\Preview\PreviewRenderer::class;


Table has a "type" field/attribute
brotkrueml marked this conversation as resolved.
Show resolved Hide resolved
----------------------------------

This specifies the preview renderer only for records of type :php:`$type` as
determined by the type field of your table.

.. code-block:: php

$GLOBALS['TCA']['my_table']['types'][$type]['previewRenderer']
= \MyVendor\MyExtension\Preview\PreviewRenderer::class;

Table has a "subtype_value_field" setting
-----------------------------------------

If your table and field have a :php:`subtype_value_field` TCA setting (like
brotkrueml marked this conversation as resolved.
Show resolved Hide resolved
:sql:`tt_content.list_type`) and you want to register a preview renderer that
applies only when that value is selected (for example, when a certain plugin
type is selected and you can not match it with the "type" of the record alone):

.. code-block:: php

$GLOBALS['TCA'][$table]['types'][$type]['previewRenderer'][$subType]
= \MyVendor\MyExtension\Preview\PreviewRenderer::class;

Where :php:`$type` is for example :php:`list` (indicating a plugin) and
:php:`$subType` is the value of the :php:`list_type` field when the
type of plugin you want to target is selected as plugin type.
Loading