Project

General

Profile

Actions

Feature #90444

open

Nested grids in content elements are possible after Fluid-based rewrite of page layout module

Added by Claus Due about 4 years ago. Updated almost 3 years ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Backend User Interface
Start date:
2020-02-19
Due date:
% Done:

0%

Estimated time:
PHP Version:
Tags:
Complexity:
Sprint Focus:

Description

After the page layout module has been rewritten and based on Fluid it has become feasible to provide a nested grid feature for content elements, allowing other content elements to be placed inside a grid below a parent content element.

The structure and relationships can be implemented as follows:

  • First of all, a feature flag can be used which is disabled by default, requiring the site administrator to enable the feature to use it.
  • Table backend_layout can have a toggle which defines that a layout is (also) valid for use with content elements.
  • Table backend_layout can have a field which allows selecting CTypes that can use the backend_layout as nested grid.
  • PageTSconfig can have the same two settings so the backend_layout TS array can define the same two options except through pageTSconfig.
  • Table tt_content can have a field that allows selecting a backend_layout identifier (either from records or pageTSconfig), the field only showing layouts 1) marked for use with content and 2) allowed for the current record's CType.
  • Class BackendLayoutView can allow resolving a backend_layout (record or TS config or third party) for a record fitting the above criteria.

Then the feature for backend UI can be implemented as follows:

  • The new GridColumnItem class can resolve a backend_layout for a record through BackendLayoutView.
  • If resolved, the BackendLayout can provide a Grid instance.
  • That Grid instance which holds GridRows GridColumns contains the colPos values (0-99) that apply to each column.
  • When resolved for a record the colPos values can be adjusted (by multiplying the parent element UID by 100 and adding the original colPos value to that, creating colPos values like 12301 for colPos 1 inside element with uid 123).
  • The grid is then rendered with dropzones and new content buttons like any other backend_layout.
  • The page-level backend layout ContentFetcher already selects content by pid and therefore stores all elements that should be rendered; the sub-columns can fetch from ContentFetcher without additional queries.

This together allows editing the page layout module to insert child content.

Then a DataHandler modification can be implemented as follows:

  • Simple commands (delete, undelete, localize) can be performed by simply cascading the same command to all child records by selecting content based on columns of the parent record, when a parent record is deleted, undeleted or localized.
  • A move command can be cascaded as well but may require adjusting the pid and has to happen in the special section dealing with "move" commands.
  • A copy command is the most complex and must be handled by cascading copy commands and overriding certain values (colPos needs to be adjusted to UID of copied parent record when child records are copied).

Put together this creates the entire "nested content grids" feature.

Actions #1

Updated by Claus Due about 4 years ago

Frontend implementation:

  • A DataProcessor can be written which reads and renders content elements grouped by original colPos of the backend_layout used by a record.
  • This DataProcessor can assign the grouped and rendered content elements to a Fluid template (when using FLUIDTEMPLATE).
  • The DataProcessor can also assign the Grid instance which allows a Fluid template to iterate over rows and columns (and allows dynamic rendering if the backend_layout is dynamic, implying it is delivered by a third party - core does not provide dynamic backend_layouts).
  • For controllers, the BackendLayout can be resolved via BackendLayoutView and this instance can return the Grid which contains the structure and content records belonging to each column. Rendering can then be done any way the developer prefers (for example, using CONTENT cObj or using f:cObject and feeding it each content record).
Actions #2

Updated by Gerrit Code Review about 4 years ago

  • Status changed from New to Under Review

Patch set 1 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/+/63354

Actions #3

Updated by Gerrit Code Review about 4 years ago

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/+/63354

Actions #4

Updated by Gerrit Code Review about 4 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/+/63354

Actions #5

Updated by Gerrit Code Review about 4 years ago

Patch set 4 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/+/63354

Actions #6

Updated by Gerrit Code Review about 4 years ago

Patch set 5 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/+/63354

Actions #7

Updated by Gerrit Code Review about 4 years ago

Patch set 6 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/+/63354

Actions #8

Updated by Gerrit Code Review about 4 years ago

Patch set 7 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/+/63354

Actions #9

Updated by Gerrit Code Review about 4 years ago

Patch set 8 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/+/63354

Actions #10

Updated by Gerrit Code Review about 4 years ago

Patch set 9 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/+/63354

Actions #11

Updated by Gerrit Code Review about 4 years ago

Patch set 10 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/+/63354

Actions #12

Updated by Gerrit Code Review about 4 years ago

Patch set 11 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/+/63354

Actions #13

Updated by Gerrit Code Review about 4 years ago

Patch set 12 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/+/63354

Actions #14

Updated by Gerrit Code Review about 4 years ago

Patch set 13 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/+/63354

Actions #15

Updated by Gerrit Code Review about 4 years ago

Patch set 14 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/+/63354

Actions #16

Updated by Gerrit Code Review about 4 years ago

Patch set 15 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/+/63354

Actions #17

Updated by Gerrit Code Review about 4 years ago

Patch set 16 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/+/63354

Actions #18

Updated by Gerrit Code Review about 4 years ago

Patch set 17 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/+/63354

Actions #19

Updated by Gerrit Code Review about 4 years ago

Patch set 18 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/+/63354

Actions #20

Updated by Gerrit Code Review about 4 years ago

Patch set 19 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/+/63354

Actions #21

Updated by Gerrit Code Review about 4 years ago

Patch set 20 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/+/63354

Actions #22

Updated by Gerrit Code Review about 4 years ago

Patch set 21 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/+/63354

Actions #23

Updated by Gerrit Code Review about 4 years ago

Patch set 22 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/+/63354

Actions #24

Updated by Gerrit Code Review about 4 years ago

Patch set 23 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/+/63354

Actions #25

Updated by Gerrit Code Review about 4 years ago

Patch set 24 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/+/63354

Actions #26

Updated by Gerrit Code Review about 4 years ago

Patch set 25 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/+/63354

Actions #27

Updated by Gerrit Code Review about 4 years ago

Patch set 26 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/+/63354

Actions #28

Updated by Gerrit Code Review about 4 years ago

Patch set 27 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/+/63354

Actions #29

Updated by Gerrit Code Review about 4 years ago

Patch set 28 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/+/63354

Actions #30

Updated by Gerrit Code Review about 4 years ago

Patch set 29 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/+/63354

Actions #31

Updated by Gerrit Code Review about 4 years ago

Patch set 30 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/+/63354

Actions #32

Updated by Georg Ringer about 4 years ago

  • Target version set to 10 LTS
Actions #33

Updated by Gerrit Code Review about 4 years ago

Patch set 31 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/+/63354

Actions #34

Updated by Gerrit Code Review about 4 years ago

Patch set 32 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/+/63354

Actions #35

Updated by Gerrit Code Review about 4 years ago

Patch set 33 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/+/63354

Actions #36

Updated by Gerrit Code Review about 4 years ago

Patch set 34 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/+/63354

Actions #37

Updated by Gerrit Code Review about 4 years ago

Patch set 35 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/+/63354

Actions #38

Updated by Gerrit Code Review about 4 years ago

Patch set 36 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/+/63354

Actions #39

Updated by Gerrit Code Review about 4 years ago

Patch set 37 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/+/63354

Actions #40

Updated by Benni Mack about 4 years ago

  • Target version changed from 10 LTS to next-patchlevel
Actions #41

Updated by Benni Mack about 4 years ago

  • Target version changed from next-patchlevel to Candidate for Major Version
Actions #42

Updated by Oliver Hader almost 3 years ago

  • Status changed from Under Review to New
Actions

Also available in: Atom PDF