155 lines
5.9 KiB
Plaintext
Executable File
155 lines
5.9 KiB
Plaintext
Executable File
# =============================================================================
|
||
# VITEC container content elements — self-contained JSON rendering
|
||
# Children collected via Evomedien\Vitec\DataProcessing\ContainerChildrenProcessor
|
||
# (exception-safe; returns [] on any error, never crashes the outer CE).
|
||
#
|
||
# Per-column flex settings (align/justify) live on the PARENT record
|
||
# (tx_vitec_col{1..4}_align/justify) and are attached by the processor to each
|
||
# column in `items` (items[].config.align/justify) — so they apply to ALL
|
||
# children of that column. The whole-grid gap (tx_vitec_gap) is emitted here as
|
||
# the parent-level `gap`.
|
||
# =============================================================================
|
||
|
||
tt_content.vitec_cols_50_50 = JSON
|
||
tt_content.vitec_cols_50_50 {
|
||
fields {
|
||
id = INT
|
||
id.field = uid
|
||
type = TEXT
|
||
type.field = CType
|
||
colPos = INT
|
||
colPos.field = colPos
|
||
|
||
categories = COA
|
||
categories {
|
||
10 = CONTENT
|
||
10 {
|
||
table = sys_category
|
||
select {
|
||
pidInList = root
|
||
selectFields = sys_category.title
|
||
join = sys_category_record_mm on sys_category_record_mm.uid_local = sys_category.uid
|
||
where {
|
||
field = uid
|
||
wrap = AND sys_category_record_mm.tablenames = 'tt_content' AND sys_category_record_mm.uid_foreign=|
|
||
}
|
||
}
|
||
renderObj = TEXT
|
||
renderObj {
|
||
field = title
|
||
wrap = |###BREAK###
|
||
}
|
||
}
|
||
stdWrap.split {
|
||
token = ###BREAK###
|
||
cObjNum = 1 |*|2|*| 3
|
||
1 {
|
||
current = 1
|
||
stdWrap.wrap = |
|
||
}
|
||
2 {
|
||
current = 1
|
||
stdWrap.wrap = ,|
|
||
}
|
||
3 {
|
||
current = 1
|
||
stdWrap.wrap = |
|
||
}
|
||
}
|
||
}
|
||
|
||
appearance = JSON
|
||
appearance {
|
||
fields {
|
||
layout = TEXT
|
||
layout.field = layout
|
||
frameClass = TEXT
|
||
frameClass.field = frame_class
|
||
spaceBefore = TEXT
|
||
spaceBefore.field = space_before_class
|
||
spaceAfter = TEXT
|
||
spaceAfter.field = space_after_class
|
||
}
|
||
}
|
||
|
||
header = TEXT
|
||
header.field = header
|
||
subheader = TEXT
|
||
subheader.field = subheader
|
||
headerLayout = INT
|
||
headerLayout.field = header_layout
|
||
headerPosition = TEXT
|
||
headerPosition.field = header_position
|
||
headerLink = TEXT
|
||
headerLink {
|
||
htmlSpecialChars = 1
|
||
typolink {
|
||
parameter.field = header_link
|
||
returnLast = result
|
||
}
|
||
}
|
||
tx_vitec_bg_variant = TEXT
|
||
tx_vitec_bg_variant.field = tx_vitec_bg_variant
|
||
|
||
# Parent-level: column gap scale (1–5) for the whole grid.
|
||
gap = TEXT
|
||
gap.field = tx_vitec_gap
|
||
|
||
# Columns with their children + per-column flex (align/justify) in
|
||
# items[].config — assembled by ContainerChildrenProcessor.
|
||
items = JSON
|
||
items {
|
||
dataProcessing {
|
||
10 = Evomedien\Vitec\DataProcessing\ContainerChildrenProcessor
|
||
10.as = items
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
tt_content.vitec_cols_33_33_33 < tt_content.vitec_cols_50_50
|
||
tt_content.vitec_cols_25_25_25_25 < tt_content.vitec_cols_50_50
|
||
tt_content.vitec_cols_66_33 < tt_content.vitec_cols_50_50
|
||
tt_content.vitec_cols_33_66 < tt_content.vitec_cols_50_50
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# VITEC · Container — single-column container with a custom CSS class.
|
||
# Inherits the full structure of the grid containers and adds the `cssClass`
|
||
# field, read from the element's FlexForm (settings.cssClass).
|
||
# Single column -> no grid gap.
|
||
# -----------------------------------------------------------------------------
|
||
tt_content.vitec_container < tt_content.vitec_cols_50_50
|
||
tt_content.vitec_container.fields.gap >
|
||
tt_content.vitec_container.fields.cssClass = TEXT
|
||
tt_content.vitec_container.fields.cssClass.data = flexform:pi_flexform:settings.cssClass
|
||
tt_content.vitec_container.fields.cssClass.stdWrap.ifEmpty.cObject = TEXT
|
||
tt_content.vitec_container.fields.cssClass.stdWrap.ifEmpty.cObject.value =
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# VITEC · Cards Carousel — container whose children (typically vitec_card
|
||
# elements) become the slides. Inherits the grid-container JSON structure
|
||
# (`items` via ContainerChildrenProcessor) and adds carousel settings read
|
||
# from the element's FlexForm. Single slide track -> no grid gap.
|
||
# -----------------------------------------------------------------------------
|
||
tt_content.vitec_cards_carousel < tt_content.vitec_cols_50_50
|
||
tt_content.vitec_cards_carousel.fields.gap >
|
||
tt_content.vitec_cards_carousel.fields.carousel = JSON
|
||
tt_content.vitec_cards_carousel.fields.carousel {
|
||
fields {
|
||
slidesPerView = TEXT
|
||
slidesPerView.data = flexform:pi_flexform:settings.slidesperview
|
||
showArrows = TEXT
|
||
showArrows.data = flexform:pi_flexform:settings.showarrows
|
||
showIndicators = TEXT
|
||
showIndicators.data = flexform:pi_flexform:settings.showindicators
|
||
loop = TEXT
|
||
loop.data = flexform:pi_flexform:settings.loop
|
||
autoplay = TEXT
|
||
autoplay.data = flexform:pi_flexform:settings.autoplay
|
||
autoplayInterval = TEXT
|
||
autoplayInterval.data = flexform:pi_flexform:settings.autoplayinterval
|
||
}
|
||
}
|
||
tt_content.vitec_cards_carousel.fields.cssClass = TEXT
|
||
tt_content.vitec_cards_carousel.fields.cssClass.data = flexform:pi_flexform:settings.cssClass
|