Reference: Content elements
Every element in content. is rendered through lib.;
the shipped CType definitions add their fields under content. Frontends
can rely on the outer shape and switch on type.
Base shape
{
"id": 12,
"type": "text",
"colPos": 0,
"appearance": {
"layout": "default",
"frameClass": "default",
"spaceBefore": "",
"spaceAfter": ""
}
}
id,type,col—Pos uid,CTypeandcolof the record.Pos appearance—lib.:appearance layoutisdefaultorlayout-to1 layout-;3 frame,Class spaceandBefore spaceare the rawAfter frame_,class space_andbefore_ class space_values.after_ class content— not part oflib.; added by each CType with element-specific fields, see the table. Elements based oncontent Element lib.start with the header block:content Element With Header
{
"header": "Headline",
"subheader": "",
"headerLayout": 0,
"headerPosition": "",
"headerLink": ""
}
header is a typolink result: an empty string without a link, otherwise
an object with href, target, class, title, link and
additional.
Shipped content elements
"Menu items" below means the MenuProcessor
item shape. Where append is set, every item also keeps the page
record under data, and file fields (media, images) hold
FilesProcessor output.
type |
Keys in content |
|---|---|
text | header block, bodytext (RTE, lib.). |
textpic | header block, bodytext, enlarge
(bool), gallery from the image field. |
textmedia | Like textpic, gallery from the assets field. |
image | header block, enlarge, gallery. |
bullets | header block, bullets (int), bodytext as
array: one entry per line, for bullets
one [term, description] row per line. |
table | header block, bodytext as array of rows (cells
split by table_/table_),
table, cols (int), table
(int), table, table. |
uploads | header block, media (files from the media field
and the selected file collections, sorted by
filelink_), target,
display, display,
display. |
html | header, bodytext (raw, unprocessed HTML). |
div | header. |
header | header block only. |
shortcut | shortcut: array of the referenced content
elements, each rendered with its own definition
(lib.). |
menu_ | header block, menu: menu items of the selected
pages. |
menu_ | header block, menu: menu items of the subpages of
the selected pages. |
menu_ | header block, menu: subpages with abstract and
media on every item, append. |
menu_ | header block, menu: pages with media and a
content array (uid, header, media) of their
section-index elements, append. |
menu_ | header block, menu: subpages with media and a
content array of all their elements,
append. |
menu_ | header block, menu: pages of the selected
categories with media, append. |
menu_ | header block, menu: content elements (uid,
header, media) of the selected categories. |
menu_ | header block, menu: pages changed in the last
seven days with media, append. |
menu_ | header block, menu: pages sharing keywords with
media, append. |
menu_ | header block, menu: page tree of the current
site, seven levels, images per item,
append. |
menu_ | header block, menu: page tree below the selected
pages, seven levels, images per item,
append. |
felogin_ | header block, data: the login JSON, see
EXT:felogin. |
form_ | link (submit URL), form (uncached form
definition), see EXT:form. |
list | header block; type carries list_. Kept for
4.x compatibility, list_ plugins no longer
exist in TYPO3 v14. |
A CType without a definition renders through tt_:
content. contains
Content Element with uid "<uid>" and type "<CType>" has no rendering definition!.
Define tt_ as shown in Custom content & plugin output.
The legacy set adds a categories string to every element after
appearance; see Content element categories for re-adding it on the
default set.