vitec_card: flipcard layout + card-back fields; shared-column repair
- layout_variant gains the value "flipcard" (onChange: reload) - "Card Back" palette in the Layout tab directly below layout_variant: back_headline (Text, max 100) and back_text (Textarea, richtext), displayCond-gated on the flipcard layout; serialised unconditionally - the frontend keys the back face on layout_variant, not on field presence (spec 7.7) - backend preview: flipcard badge + back-headline line - repair "[ Missing label ]" in the card selects: layout_variant / background_variant are columns SHARED with vitec_ctabanner, and the index-wise Content Blocks merge dropped four card-only values from the base item list. Overrides/tt_content.php now pins the base column to the cta-banner lists and hands vitec_card its full lists via columnsOverrides (respected by FormEngine and DataHandler; an items override can only extend, never shorten - array_replace_recursive) - spec v1.19 incl. head-matter fix (version table was stuck at 1.17) Server follow-up: database:updateschema "*.add,*.change" + cache:flush Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43519505bc
commit
6db2234851
5 files changed
+123
-3
No files matched your search
@@ -99,6 +99,8 @@ fields:
|
||||
type: Select
|
||||
renderType: selectSingle
|
||||
default: vertical
|
||||
# displayCond of the card-back fields depends on this value
|
||||
onChange: reload
|
||||
items:
|
||||
- label: Vertical (image top, content below)
|
||||
value: vertical
|
||||
@@ -116,6 +118,27 @@ fields:
|
||||
value: feature
|
||||
- label: Compact (small card, tight spacing)
|
||||
value: compact
|
||||
- label: Flip Card (front / back)
|
||||
value: flipcard
|
||||
|
||||
# Card back - only shown when layout_variant = flipcard. displayCond needs
|
||||
# the storage column (vitec_ vendor prefix); the JSON keys stay the plain
|
||||
# identifiers back_headline / back_text and are emitted on EVERY card
|
||||
# (empty when unset) - the frontend keys the back face on layout_variant.
|
||||
- identifier: card_back
|
||||
type: Palette
|
||||
label: Card Back
|
||||
description: Reverse side of the card. Only used (and only shown) when the layout variant is "Flip Card".
|
||||
fields:
|
||||
- identifier: back_headline
|
||||
type: Text
|
||||
max: 100
|
||||
displayCond: 'FIELD:vitec_layout_variant:=:flipcard'
|
||||
- type: Linebreak
|
||||
- identifier: back_text
|
||||
type: Textarea
|
||||
enableRichtext: true
|
||||
displayCond: 'FIELD:vitec_layout_variant:=:flipcard'
|
||||
|
||||
- identifier: background_variant
|
||||
type: Select
|
||||
|
||||
@@ -54,6 +54,19 @@
|
||||
<source>If set, the whole card becomes clickable. Overrides individual CTAs visually in the frontend.</source>
|
||||
</trans-unit>
|
||||
|
||||
<trans-unit id="back_headline.label">
|
||||
<source>Back Headline</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="back_headline.description">
|
||||
<source>Headline on the reverse side of the card. Only used by the Flip Card layout.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="back_text.label">
|
||||
<source>Back Text</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="back_text.description">
|
||||
<source>Text on the reverse side of the card. Only used by the Flip Card layout.</source>
|
||||
</trans-unit>
|
||||
|
||||
<!-- ============================================================== -->
|
||||
<!-- layout_variant -->
|
||||
<!-- ============================================================== -->
|
||||
@@ -84,6 +97,9 @@
|
||||
<trans-unit id="layout_variant.items.compact.label">
|
||||
<source>Compact (small card, tight spacing)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="layout_variant.items.flipcard.label">
|
||||
<source>Flip Card (front / back)</source>
|
||||
</trans-unit>
|
||||
|
||||
<!-- ============================================================== -->
|
||||
<!-- background_variant -->
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<f:case value="icon_card">✦</f:case>
|
||||
<f:case value="feature">⭐</f:case>
|
||||
<f:case value="compact">▫</f:case>
|
||||
<f:case value="flipcard">🔄</f:case>
|
||||
<f:defaultCase>▢</f:defaultCase>
|
||||
</f:switch>
|
||||
</div>
|
||||
@@ -65,6 +66,10 @@
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.back_headline}">
|
||||
<div class="vitec-preview__body-text">🔄 Back: {data.back_headline}</div>
|
||||
</f:if>
|
||||
|
||||
<div class="vitec-preview__ctas">
|
||||
<f:if condition="{data.primary_cta_label}">
|
||||
<span class="vitec-preview__cta-btn">{data.primary_cta_label} →</span>
|
||||
@@ -90,6 +95,7 @@
|
||||
<f:case value="icon_card">✦ Icon Card</f:case>
|
||||
<f:case value="feature">⭐ Feature</f:case>
|
||||
<f:case value="compact">▫ Compact</f:case>
|
||||
<f:case value="flipcard">🔄 Flip Card</f:case>
|
||||
<f:defaultCase>{data.layout_variant}</f:defaultCase>
|
||||
</f:switch>
|
||||
</span>
|
||||
|
||||
Reference in new issue
Block a user