Feature #94617
openIntroduce generic record preview / listing
0%
Description
Ideas by Benni Mack:
TYPO3 Backend uses various places where records are shown, in different ways. There are lots of issues with the rendering, as it is completely re-built on most places of TYPO3 Backend.
Some current places:
- Content Elements in Page Module
- There is a standard renderer, and a possibility to also use custom renderers
- Everybody needs to built their own renderer to e.g. resolve connected File References
- Somehow it allows to link to the FormEngine, but only if the user has access to
- Record Listing
- As known from the List module, this enables to show a record with flexible column view, but is not useful for e.g. tt_content because it does not respect the CType and relevant fields for each type. Same goes for pages and fields like "shortcut_mode" or "url" which are only relevant for a specific type
- Element Browser
- The list is also used in a limited rendering in the Element Browser, but for e.g. tt_content records, it shows the infamous "[no title]" when dealing with e.g. plugins. It is not possible to modify the listing properly, especially for specific types.
- Workspaces Module
- The list module shows sub-records (e.g. Inline Element), which DB list does not show, but at the same is not configurable at all.
- BE Users / Redirects
- A custom listing is added, where functionality like listing / grouping needs to be re-implemented over and over again.
- Files
- The DB list is sometimes used, but on the Filelist module it is not always in use.
This approach aims to unify the different renderings in various ways, allowing to standardize the output while starting to use Web Components / Custom Elements, which could / should be re-defined on a per-record and per-record-subtype basis.
Registration:
$GLOBALS['TCA']['tt_content']['types']['textpic']['display'] = [ 'small' => ['header'], 'medium' => ['header', 'bodytext', 'asset'] 'large' => ['header', 'bodytext', 'asset'], 'full' => ? 'renderer' => MyRenderer::class ]; class RecordDisplayInterface { public function resolveColumns(string $table, array $row, string $displayMode): array // @todo: deal with JS includes public function render(string $table, array $row, string $displayMode): string }
Display Modes:
- small
- medium
- large
- list
Actions:
- select checkbox (Multiselection)
- delete/hide
- link to edit
Updated by Gerrit Code Review over 3 years ago
- Status changed from New to Under Review
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/68499
Updated by Gerrit Code Review over 3 years ago
Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/68499