Files
VITEC-website/packages/vitec/Configuration/page.tsconfig
T
orasche 90ae6803a4 Backend of the sub-market template (spec agreed section by section with
the customer workflow in mind: the customer fills one XLSX per sub-market,
an importer builds the page).

- Frontend layout 21 'Sub-Market Page' in the existing
  BackendLayoutDataProvider: six zones, one per Figma section, emitted as
  colPos110..colPos160 - the JSON groups plus appearance.layout are the
  front-end contract (spec clause 7.17). A first attempt via page-TSconfig
  BackendLayouts was the wrong mechanism next to the provider and was
  removed again
- New Content Blocks vitec_markethero, vitec_marketintro,
  vitec_marketinsights (field bags, serialized unprefixed under data);
  the workflow section reuses intro-paragraph + vitec_card flip cards
- Stories gained quote/quote_person/quote_role (Testimonial tab),
  maintained once per story, emitted on every story card; usecaselist
  gained the layout value 'testimonials'
- New plugin vitec_productfeature: one referenced product as a full
  product card, serialisation shared with the product list (cObj made
  protected for the subclass)
- vitec_productlist gained hand-picked product selection: exactly the
  chosen products in the editor's order, category filter ignored,
  visibility filters kept - closes the long-standing single-select gap
- New CLI vitec:generate-submarket-workbooks: one protected customer
  XLSX per sub-market (9 main markets, 25 sub-markets from the Market
  category tree) - dropdowns filled live from the database, named ranges
  as the importer contract, hidden Meta sheet pinning submarket/group/
  record uid, soft character-limit warnings, asset URL fields

Verified end to end on Broadcast & Media: layout-21 payload with colPos110
carrying the hero element and its subline. Spec raised to v1.20.
2026-10-02 10:18:36 +02:00

171 lines
6.7 KiB
Plaintext
Executable File

# =============================================================
# VITEC Extension — page.tsconfig
# =============================================================
mod {
wizards.newContentElement.wizardItems.vitec {
header = VITEC
show = *
elements {
# -------- Extbase Plugins --------
productlist {
iconIdentifier = vitec-plugin-productlist
title = List of VITEC Products
description = LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_productlist.description
tt_content_defValues {
CType = vitec_productlist
}
}
productfeature {
iconIdentifier = vitec-plugin-productlist
title = Featured Product Card
description = One product as the big featured card (sub-market template). All copy comes from the record.
tt_content_defValues {
CType = vitec_productfeature
}
}
productfinder {
iconIdentifier = vitec-plugin-productlist
title = Product Finder (filter data)
description = Delivers the product category hierarchy for the filter selects. Place once above the product lists - it renders no products itself.
tt_content_defValues {
CType = vitec_productfinder
}
}
productshow {
iconIdentifier = vitec-plugin-productshow
title = Show single VITEC Product
description = Either show a single product coming from a list, OR select a specific product in flexform
tt_content_defValues {
CType = vitec_productshow
}
}
usecaseshow {
iconIdentifier = vitec-plugin-usecaseshow
title = Show single VITEC Success Story
description = Shows a selected Success Story in a Card with different layouts
tt_content_defValues {
CType = vitec_usecaseshow
}
}
marketshow {
iconIdentifier = vitec-plugin-marketshow
title = Show single VITEC Market
description = Shows a selected Market in a Card with different layouts
tt_content_defValues {
CType = vitec_marketshow
}
}
solutionshow {
iconIdentifier = vitec-plugin-solutionshow
title = Show single VITEC Solution
description = Shows a selected Solution in a Card with different layouts
tt_content_defValues {
CType = vitec_solutionshow
}
}
usecaselist {
iconIdentifier = vitec-plugin-usecaselist
title = Show all VITEC Success Stories
description = LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_usecaselist.description
tt_content_defValues {
CType = vitec_usecaselist
}
}
downloadcard {
iconIdentifier = vitec-plugin-downloadcard
title = Downloadcard for single Download
description = LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_usecaselist.description
tt_content_defValues {
CType = vitec_downloadcard
}
}
downloadcardcollection {
iconIdentifier = vitec-plugin-downloadcardcollection
title = Downloadcard Collection
description = Multiple Downloads in one Card
tt_content_defValues {
CType = vitec_downloadcardcollection
}
}
datasheets {
iconIdentifier = vitec-plugin-datasheets
title = VITEC Datasheets
description = Interactive datasheets with filtering and download functionality
tt_content_defValues {
CType = vitec_datasheets
}
}
eventlist {
iconIdentifier = vitec-plugin-eventlist
title = VITEC Event List
description = Upcoming VITEC events (trade shows) with date, venue, booth and links
tt_content_defValues {
CType = vitec_eventlist
}
}
simplecard {
iconIdentifier = vitec-plugin-simplecard
title = Simple Card
description = Simple Card (Image, Title, Text, Link)
tt_content_defValues {
CType = vitec_simplecard
}
}
}
}
wizards.newContentElement.wizardItems.vitec_custom_components {
header = Custom Components
show = *
}
}
tx_news.templateLayouts {
1 = Compact List
2 = Featured Story
3 = Editorial Grid
4 = Detail Spotlight
}
############################################################
# Backend Previews für klassische Plugins (list_type)
############################################################
mod.web_layout.tt_content.preview {
simplecard = EXT:vitec/Resources/Private/Templates/Simplecard/Backendpreview.html
vitec_downloadcard = EXT:vitec/Resources/Private/Templates/Downloadcard/Backendpreview.html
vitec_downloadcardcollection = EXT:vitec/Resources/Private/Templates/Downloadcardcollection/Backendpreview.html
# vitec_usecaseshow = EXT:vitec/Resources/Private/Templates/Usecaseshow/Backendpreview.html
# ^ Pfad anpassen wenn das Template existiert, dann Kommentar entfernen
}
# Hinweis: Content-Blocks-Previews werden automatisch aus
# packages/vitec/ContentBlocks/ContentElements/<n>/templates/backend-preview.html geladen.
# Keine separate Registrierung nötig.
############################################################
# Link browser: record links to VITEC domain models.
# Stored as t3://record?identifier=download|product&uid=N -
# frontend resolution lives in setup.typoscript (config.recordLinks).
############################################################
TCEMAIN.linkHandler {
download {
handler = TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler
label = Download
configuration {
table = tx_vitec_domain_model_download
}
displayAfter = file
}
product {
handler = TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler
label = Product
configuration {
table = tx_vitec_domain_model_product
}
displayAfter = download
}
}