TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:21 +02:00
commit be71cfa708
199 changed files with 4138 additions and 0 deletions
@@ -0,0 +1,31 @@
# Bullet List:
# A single bullet list.
#
# CType: bullets
tt_content.bullets =< lib.contentElement
tt_content.bullets {
templateName = Bullets
dataProcessing {
10 = split
10 {
if {
value = 2
isLessThan.field = bullets_type
}
fieldName = bodytext
removeEmptyEntries = 1
as = bullets
}
20 = comma-separated-value
20 {
fieldName = bodytext
if {
value = 2
equals.field = bullets_type
}
fieldDelimiter = |
as = bullets
}
}
}
@@ -0,0 +1,9 @@
# Divider:
# This element inserts a visual divider, which is by default a horizontal line.
#
# CType: div
tt_content.div =< lib.contentElement
tt_content.div {
templateName = Div
}
@@ -0,0 +1,9 @@
# Header Only:
# Adds a header only.
#
# CType: header
tt_content.header =< lib.contentElement
tt_content.header {
templateName = Header
}
@@ -0,0 +1,9 @@
# Plain HTML:
# With this element you can output raw HTML code on the page.
#
# CType: html
tt_content.html =< lib.contentElement
tt_content.html {
templateName = Html
}
@@ -0,0 +1,23 @@
# Image:
# ...
#
# CType: image
tt_content.image =< lib.contentElement
tt_content.image {
templateName = Image
dataProcessing {
10 = files
10 {
references.fieldName = image
}
20 = gallery
20 {
maxGalleryWidth = {$styles.content.textmedia.maxW}
maxGalleryWidthInText = {$styles.content.textmedia.maxWInText}
columnSpacing = {$styles.content.textmedia.columnSpacing}
borderWidth = {$styles.content.textmedia.borderWidth}
borderPadding = {$styles.content.textmedia.borderPadding}
}
}
}
@@ -0,0 +1,22 @@
# Menu of subpages of selected pages including abstracts:
# ...
#
# CType: menu_abstract
tt_content.menu_abstract =< lib.contentElement
tt_content.menu_abstract {
templateName = MenuAbstract
dataProcessing {
10 = menu
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,30 @@
# Content elements for selected categories:
# ...
#
# CType: menu_categorized_content
tt_content.menu_categorized_content =< lib.contentElement
tt_content.menu_categorized_content {
templateName = MenuCategorizedContent
dataProcessing {
10 = database-query
10 {
table = tt_content
selectFields = DISTINCT {#tt_content}.*
pidInList.data = leveluid : 0
recursive = 99
join.data = field:selected_categories
join.wrap = {#sys_category_record_mm} ON uid = {#sys_category_record_mm}.{#uid_foreign} AND {#sys_category_record_mm}.{#uid_local} IN(|)
where.data = field:category_field
where.wrap = {#tablenames}='tt_content' and {#fieldname}='|'
orderBy = tt_content.sorting
as = content
dataProcessing {
10 = files
10 {
references.fieldName = image
}
}
}
}
}
@@ -0,0 +1,27 @@
# Pages for selected categories:
# ...
#
# CType: menu_categorized_pages
tt_content.menu_categorized_pages =< lib.contentElement
tt_content.menu_categorized_pages {
templateName = MenuCategorizedPages
dataProcessing {
10 = menu
10 {
special = categories
special {
value.field = selected_categories
relation.field = category_field
sorting = title
order = asc
}
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,22 @@
# Menu of selected pages:
# ...
#
# CType: menu_pages
tt_content.menu_pages =< lib.contentElement
tt_content.menu_pages {
templateName = MenuPages
dataProcessing {
10 = menu
10 {
special = list
special.value.field = pages
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,26 @@
# Recently updated pages:
# ...
#
# CType: menu_recently_updated
tt_content.menu_recently_updated =< lib.contentElement
tt_content.menu_recently_updated {
templateName = MenuRecentlyUpdated
dataProcessing {
10 = menu
10 {
special = updated
special {
value.field = pages
maxAge = 3600*24*7
excludeNoSearchPages = 1
}
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,26 @@
# Related pages (based on keywords):
# ...
#
# CType: menu_related_pages
tt_content.menu_related_pages =< lib.contentElement
tt_content.menu_related_pages {
templateName = MenuRelatedPages
dataProcessing {
10 = menu
10 {
special = keywords
special {
value.field = pages
excludeNoSearchPages = 1
}
alternativeSortingField = title
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,57 @@
# Section index (page content marked for section menus):
# ...
#
# CType: menu_section
tt_content.menu_section =< lib.contentElement
tt_content.menu_section {
templateName = MenuSection
dataProcessing {
10 = menu
10 {
// Always activate includeNotInMenu for a section menu of the current page
includeNotInMenu.override = 1
includeNotInMenu.override.if.isFalse.field = pages
special = list
special {
value {
field = pages
override {
data = page:uid
if {
isFalse.field = pages
}
// Currrent page uses content of another page
override {
data = page:content_from_pid
if {
isTrue.data = page:content_from_pid
}
}
}
}
}
dataProcessing {
10 = files
10 {
references.fieldName = media
}
20 = database-query
20 {
table = tt_content
pidInList.field = uid
as = content
where = {#sectionIndex} = 1
orderBy = sorting
dataProcessing {
10 = files
10 {
references.fieldName = image
}
}
}
}
}
}
}
@@ -0,0 +1,36 @@
# Menu of subpages of selected pages including sections:
# ...
#
# CType: menu_section_pages
tt_content.menu_section_pages =< lib.contentElement
tt_content.menu_section_pages {
templateName = MenuSectionPages
dataProcessing {
10 = menu
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = files
10 {
references.fieldName = media
}
20 = database-query
20 {
table = tt_content
pidInList.field = uid
where = {#sectionIndex} = 1
orderBy = sorting
as = content
dataProcessing {
10 = files
10 {
references.fieldName = image
}
}
}
}
}
}
}
@@ -0,0 +1,21 @@
# Sitemap:
# ...
#
# CType: menu_sitemap
tt_content.menu_sitemap =< lib.contentElement
tt_content.menu_sitemap {
templateName = MenuSitemap
dataProcessing {
10 = menu
10 {
levels = 7
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,23 @@
# Sitemaps of selected pages:
# ...
#
# CType: menu_sitemap_pages
tt_content.menu_sitemap_pages =< lib.contentElement
tt_content.menu_sitemap_pages {
templateName = MenuSitemapPages
dataProcessing {
10 = menu
10 {
special = directory
special.value.field = pages
levels = 7
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,22 @@
# Menu of subpages of selected pages:
# ...
#
# CType: menu_subpages
tt_content.menu_subpages =< lib.contentElement
tt_content.menu_subpages {
templateName = MenuSubpages
dataProcessing {
10 = menu
10 {
special = directory
special.value.field = pages
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
@@ -0,0 +1,16 @@
# Insert records:
# This element embeds other content elements.
#
# CType: shortcut
tt_content.shortcut =< lib.contentElement
tt_content.shortcut {
templateName = Shortcut
# Keep this, since the "conf" option can be used
variables.shortcuts = RECORDS
variables.shortcuts {
source.field = records
tables = {$styles.content.shortcut.tables}
}
}
@@ -0,0 +1,32 @@
# Table:
# A simple table.
#
# CType: table
tt_content.table =< lib.contentElement
tt_content.table {
templateName = Table
dataProcessing {
10 = comma-separated-value
10 {
fieldName = bodytext
fieldDelimiter.char.cObject = TEXT
fieldDelimiter.char.cObject {
field = table_delimiter
}
fieldEnclosure.char.cObject = TEXT
fieldEnclosure.char.cObject {
field = table_enclosure
}
fieldEnclosure {
if {
value = 0
equals.field = table_enclosure
negate = 1
}
}
maximumColumns.field = cols
as = table
}
}
}
@@ -0,0 +1,9 @@
# Regular Text Element:
# A regular text element with header and bodytext fields.
#
# CType: text
tt_content.text =< lib.contentElement
tt_content.text {
templateName = Text
}
@@ -0,0 +1,23 @@
# Text & Media:
# Any number of media wrapped right around a regular text element.
#
# CType: textmedia
tt_content.textmedia =< lib.contentElement
tt_content.textmedia {
templateName = Textmedia
dataProcessing {
10 = files
10 {
references.fieldName = assets
}
20 = gallery
20 {
maxGalleryWidth = {$styles.content.textmedia.maxW}
maxGalleryWidthInText = {$styles.content.textmedia.maxWInText}
columnSpacing = {$styles.content.textmedia.columnSpacing}
borderWidth = {$styles.content.textmedia.borderWidth}
borderPadding = {$styles.content.textmedia.borderPadding}
}
}
}
@@ -0,0 +1,23 @@
# Text and Images:
# Text with images.
#
# CType: textpic
tt_content.textpic =< lib.contentElement
tt_content.textpic {
templateName = Textpic
dataProcessing {
10 = files
10 {
references.fieldName = image
}
20 = gallery
20 {
maxGalleryWidth = {$styles.content.textmedia.maxW}
maxGalleryWidthInText = {$styles.content.textmedia.maxWInText}
columnSpacing = {$styles.content.textmedia.columnSpacing}
borderWidth = {$styles.content.textmedia.borderWidth}
borderPadding = {$styles.content.textmedia.borderPadding}
}
}
}
@@ -0,0 +1,18 @@
# File Links:
# Makes a list of files for download.
#
# CType: uploads
tt_content.uploads =< lib.contentElement
tt_content.uploads {
templateName = Uploads
dataProcessing {
10 = files
10 {
references.fieldName = media
collections.field = file_collections
sorting.field = filelink_sorting
sorting.direction.field = filelink_sorting_direction
}
}
}