Epic #84101
closedThe core must provide configurable structures for both pages and elements out of the box
100%
Description
The successor of this Epic is described by the official structured content initiative on their official page now:
https://typo3.org/community/teams/typo3-development/initiatives/structured-content
Based on this Blueprint http://wiki.typo3.org/Blueprints/StructuredContentContainers
we created https://docs.google.com/document/d/1Wui-vM1K9fOoSYgi5n_vZMFe59v5o2Qg0-HE4fy3e7c/edit#heading=h.kcy7kg7ngpnn as a common base for Epic, Stories and Tasks.
WHY - REASONS AND MOTIVATIONS¶
There are several reasons, why people are constantly asking for structured content or content structures in the TYPO3 core for more than a decade now.
Sometimes a flexible use of multiple columns or maybe even more complex layouts to structure content is required.
Depending on the role these people got in their daily business we identified the following motivations for three different groups of users in the TYPO3 universe - editors, integrators and developers.
Editors¶
- I want to speed up daily work so I want to apply certain actions to multiple elements at once
- I need a visual structure of a flexible amount of multiple columns both in frontend and in backend that can easily be rearranged and nested on the fly
- I want an interface to be as simple and intuitive as possible
- I need to be able to make use of structures and containers in multilingual environments and workspaces or combinations of both
- I want to be able to edit content within structures on mobile devices
Integrators¶
- I want future proof concepts for upcoming and existing CSS features and HTML structures so I need to wrap content elements with certain markup in the frontend output.
- I want to be in full control of the output still I would want to be able to create structures without having to nest containers
- I want a solution that works independently from a certain frontend framework but still would be able to represent the structures of a given frontend framework as far as possible
- I want to have an option to add specific custom configurations to different parts of the structure regarding frontend and/or backend behaviour and rights management
- I want to enable people to edit content on mobile devices
Developers¶
- I want to separate concerns of structures and containers from the creation of functional containers and custom content elements
- I want an API that enables me to use structures and/or containers for my custom solutions in my own sitepackage or other TYPO3 extensions
- I want a smooth migration path and a sustainable solution that can easily be maintained in the future and reuse content provided by existing extensions as far as possible
TERMS¶
To be able to define the stories and make their goals understandable for everybody, we need to define some basic terms.
Page¶
The outermost structure with the current versions of TYPO3 of course is a page.
Each page can have a certain backend layout to seperate that page into several regions.
Backend layout¶
Each page can have a certain layout attached to it, that seperates the page into regions.
These backend layouts are used to create a basic structure for editors in the backend view.
They can be directly attached to a certain frontend output, but they don't necessarily have to represent a frontend layout at all.
Region¶
Regions have been known as columns before, but we needed to find another term here.
Since the frontend output might not always be based on rows and columns but on CSS grids or other solutions, region is the new term.
Regions will get real names instead of having just numbers, so you will be able to fetch the content from "footer" instead of "colPos 0".
Section¶
Just like a page each region of a page can be split into several parts again, which are called sections.
Basically the same functionality we already know from pages applies to these sections too.
They can have backend layouts, called section layouts for better determination, and they can hold one or more content elements.
So sections are the actual "structured content" we are aiming for.
Section layout¶
Each section can have a certain layout attached to it, that seperates the page into even smaller regions.
These section layouts are used to create a basic structure for editors in the backend view.
They can be directly attached to a certain frontend output, but they don't necessarily have to represent a frontend layout at all.
Content Element¶
This is the term for any other of the usual content elements besides the structured content elements we are going to provide as sections.
Protocolls¶
- February 13th, 2019 - 20:00 - 22:45 CET: https://docs.google.com/document/d/1CDUhpemaTJ-P5oqjV8tzNQ0RBoAzKme70qBiFUF9Ktk/
- March 13th, 2019 - 18:00 - 22:09 CET: https://docs.google.com/document/d/1KR1DCxSmPWKKcCkbrytHtGFf8HajgX2ao6sJ4uK-iw4/
- April 17th, 2019 - 18:00 - 22:00 CET: https://docs.google.com/document/d/1p1nUT2g7vO1DrVkpGZ_uG0E6-IyDtT6_tgm_WIPM-Eo/
- May 8th, 2019 - 18:00 - 20:00 CET: https://docs.google.com/document/d/1cmCW2TAGBkH85uywGlTMZ524jm1ykBnRI9s197hp05c/
- June 17th, 2019 - 18:00 - 20:00 CET: https://docs.google.com/document/d/1HKnP1J2TBSnXesEsl4w-7qvimf-CbjJVveaVuJiHMYE/
The initiative has started:¶
https://typo3.org/community/teams/typo3-development/initiatives/structured-content/
Further reports will be done as news on typo3.org or as comments / todos in this issue.
If you want to participate or know more, contact us at TYPO3 Slack #cig-structuredcontent
Updated by Lidia Demin over 6 years ago
I tried to create some stories based on the use cases following the structure: "As <persona> , I want <what?> so that <why?>". I had no experience with user stories so far, so please correct me if these do not match the requirements.
Editors
As an editor, I want to add a content structure with just two clicks so that I can place nested content inside it.
As an editor, I want to copy/move my content structure to another position so that its nested contents are copied/moved with it.
As an editor, I want to change the content within the content structure via drag & drop.
As an editor, I want to move the content within the content structure from one column/row to an other.
As an editor, I want to change the amount of rows.
As an editor, I want to change the amount of columns in a row.
As an editor, I want to change the partitions of a row's columns.
As an editor I want to move rows above or below other rows.
As an editor I want to move columns within a row.
As an editor I want to move columns across rows.
As an editor, I want to retrieve unused content elements so that I can use them again.
As an editor, I want to translate a content structure with all its nested content so that I can see the original content when editing their translations.
As an editor, I want to group content elements semantically so that they are represented as a semantic object, e.g. a section or article.
As an editor, I want to group content elements logically so that I can reference them all at one.
As an editor, I want to create functional containers such as tabs or accordions.
Developers
As a developer, I want to restrict the amount of rows and columns an editor can create.
As a developer, I want to restrict the types of content elements that can be nested into a column or container.
As a developer, I want a content element to know its parent so that I can apply logic based on that.
As a developer, I want a column to know its children.
As a developer, I want a row to know its children.
As a developer, I want a container to know its children.
Updated by Andreas Steiger over 6 years ago
- Related to Story #84349: As an editor, I want to arrange my content added
Updated by Andreas Steiger over 6 years ago
- Related to Story #84364: As editor, I want to use D'n'D and work with less as possible page reloads to be more productive added
Updated by Susanne Moog over 6 years ago
- Related to Epic #82839: Json API for implementing single-page applications added
Updated by Lidia Demin over 5 years ago
- Description updated (diff)
Update:
A working group was created to assure progress on this topic. The main communication is happening in the Slack group #cig-structuredcontent. Links to the protocolls can be found in the description of this issue.