Feature #90444
closedNested grids in content elements are possible after Fluid-based rewrite of page layout module
0%
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.
Updated by Claus Due almost 5 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).
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Gerrit Code Review over 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
Updated by Benni Mack over 4 years ago
- Target version changed from 10 LTS to next-patchlevel
Updated by Benni Mack over 4 years ago
- Target version changed from next-patchlevel to Candidate for Major Version
Updated by Oliver Hader over 3 years ago
- Status changed from Under Review to New
Updated by Georg Ringer 5 months ago
- Status changed from New to Closed
hey claus,
to cleanup forge I am closing this issue for now - of course such feature can still be created - just create a new issue and reference that one!