Epic #84101

The core must provide configurable structures for both pages and elements out of the box

Added by Jo Hasenau about 1 year ago. Updated 11 days ago.

Status:
New
Priority:
Could have
Assignee:
-
Category:
Backend User Interface
Start date:
2018-02-05
Due date:
2018-02-07
% Done:

0%

Sprint Focus:

Description

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

  1. February 13th, 2019 - 20:00 - 22:45 CET: https://docs.google.com/document/d/1CDUhpemaTJ-P5oqjV8tzNQ0RBoAzKme70qBiFUF9Ktk/
  2. March 13th, 2019 - 18:00 - 22:09 CET: https://docs.google.com/document/d/1KR1DCxSmPWKKcCkbrytHtGFf8HajgX2ao6sJ4uK-iw4/

Subtasks

Task #83776: Definition of goals to create the storiesNeeds Feedback

Story #84349: As an editor, I want to arrange my contentNew

Story #84352: As integrator, I want to pre define SCCs so they can be reusedNew

Story #84354: As editor, I want visibility of SCCs follow visibility in FENew

Story #84356: As an editor I want to apply certain attributes or actions to a group of elements at onceNew

Story #84357: As developer, I want own SCCs, to add extra logic while processingNew

Story #84358: As integrator/editor, I want to have SCCs with rows/cols to create multicol/row designsNew

Story #84360: As integrator/editor, I want SCCs representing grids to add content freehandNew

Story #84363: As editor, I want different arrange sets for different mediaNew

Story #84364: As editor, I want to use D'n'D and work with less as possible page reloads to be more productiveNew

Story #84480: As editor, I want references/treelevels to have content only once but use multipleNew

Story #84482: As developer, I want an API to read the structureNew

Story #84508: as an editor, I want to compose my page contents structure before editing the contents, in order to focus on the zoning when I am editing a new pageNew

Story #84509: as an editor, I want to simply "clone" a page contents structure, in order to work faster when I have to create a lot of pages with the same compositionNew


Related issues

Related to TYPO3 Core - Epic #82839: Json API for implementing single-page applications Accepted 2017-10-22

History

#1 Updated by Lidia Demin about 1 year 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.

#2 Updated by Andreas Steiger about 1 year ago

  • Related to Story #84349: As an editor, I want to arrange my content added

#3 Updated by Andreas Steiger about 1 year 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

#4 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#5 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#6 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#7 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#8 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#9 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#10 Updated by Jo Hasenau 11 months ago

  • Description updated (diff)

#11 Updated by Susanne Moog 11 months ago

  • Related to Epic #82839: Json API for implementing single-page applications added

#12 Updated by Lidia Demin 11 days 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.

Also available in: Atom PDF