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
This commit is contained in:
1 parent
12eb40614b
commit
7bd1161abf
28 files changed
+2594
-39
No files matched your search
@@ -252,3 +252,29 @@ tt_content {
|
||||
# =============================================================================
|
||||
page.10.fields.jsonLd = USER
|
||||
page.10.fields.jsonLd.userFunc = Evomedien\Vitec\UserFunc\PageJsonLdRenderer->render
|
||||
|
||||
############################################################
|
||||
# Frontend resolution for the record links from the link
|
||||
# browser (page.tsconfig TCEMAIN.linkHandler):
|
||||
# download -> forced download endpoint (DownloadFileMiddleware)
|
||||
# product -> detail view, same /product/<slug> convention as
|
||||
# the `link` field in the product JSON (page 10)
|
||||
# A hidden or deleted target makes the typolink fail -> null.
|
||||
############################################################
|
||||
|
||||
config.recordLinks {
|
||||
download {
|
||||
forceLink = 1
|
||||
typolink {
|
||||
parameter.cObject = TEXT
|
||||
parameter.cObject.dataWrap = /download/file/{field:uid}
|
||||
}
|
||||
}
|
||||
product {
|
||||
forceLink = 1
|
||||
typolink {
|
||||
parameter.cObject = TEXT
|
||||
parameter.cObject.dataWrap = /product/{field:slug}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user