Files
VITEC-website/packages/vitec/Configuration/page.tsconfig
Oliver Rasche 7bd1161abf Product text import from agency XLSX workbooks
VITEC Import module: Products tab is now a searchable/sortable product
overview. "Edit Product" opens an XLSX upload with per-field source
mapping (component + cell), old/new preview and checkbox apply via
DataHandler; the mapping and manual matches are persisted and preselect
the next workbook. Category workbooks are detected and rejected.

- new: ProductXlsxReader (PhpSpreadsheet), ProductTextImportController,
  Products/ProductTexts templates, 4 module routes
- related products: per-pair card text in new side table
  tx_vitec_product_related_text (survives MM rewrites), emitted as
  `cardtext` in the product JSON; missing MM relations added add-only
- card copy read from Body Copy (D) with fallback to CTA/Card Copy (E) -
  the workbooks fill either depending on row type
- product detail page <title> now uses seotitle with title fallback
  (provider made singleton and fed from the JSON renderer)
- per-user recent-search badges; last loaded workbook stored per product
  (tx_vitec_product_workbook), Edit Product reopens on it
- composer: add phpoffice/phpspreadsheet ^5.9
- diagnostics: migrations/check_workbook.php
2026-08-21 11:00:45 +02:00

155 lines
6.0 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
}
}
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
}
}