Files
VITEC-website/composer.json
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

68 lines
1.7 KiB
JSON

{
"name": "typo3/cms-base-distribution",
"description": "TYPO3 CMS Base Distribution",
"license": "GPL-2.0-or-later",
"type": "project",
"config": {
"allow-plugins": {
"b13/typo3-updater": true,
"typo3/class-alias-loader": true,
"typo3/cms-composer-installers": true
},
"platform": {
"php": "8.4.0"
},
"sort-packages": true
},
"require": {
"b13/container": "^3.1",
"b13/typo3-updater": "^1.1",
"evomedien/vitec": "^1.0.1",
"friendsoftypo3/content-blocks": "^2.4",
"friendsoftypo3/headless": "^5.0@rc",
"georgringer/news": "^14.0",
"netzbewegung/nb-headless-content-blocks": "^0.0.23",
"phpoffice/phpspreadsheet": "^5.9",
"plan2net/backend-category-hierarchy": "^14.0",
"typo3/cms-backend": "^14.3",
"typo3/cms-belog": "^14.3",
"typo3/cms-beuser": "^14.3",
"typo3/cms-core": "^14.3",
"typo3/cms-dashboard": "^14.3",
"typo3/cms-extbase": "^14.3",
"typo3/cms-extensionmanager": "^14.3",
"typo3/cms-felogin": "^14.3",
"typo3/cms-filelist": "^14.3",
"typo3/cms-fluid": "^14.3",
"typo3/cms-fluid-styled-content": "^14.3",
"typo3/cms-form": "^14.3",
"typo3/cms-frontend": "^14.3",
"typo3/cms-impexp": "^14.3",
"typo3/cms-info": "^14.3",
"typo3/cms-install": "^14.3",
"typo3/cms-reactions": "^14.3",
"typo3/cms-recycler": "^14.3",
"typo3/cms-rte-ckeditor": "^14.3",
"typo3/cms-scheduler": "^14.3",
"typo3/cms-seo": "^14.3",
"typo3/cms-sys-note": "^14.3",
"typo3/cms-tstemplate": "^14.3",
"typo3/cms-viewpage": "^14.3",
"typo3/cms-webhooks": "^14.3"
},
"repositories": [
{
"name": "t3planet",
"type": "composer",
"url": "https://composer.t3planet.cloud",
"only": [
"nitsan/ns_theme_reactbootstrap"
]
},
{
"type": "path",
"url": "./packages/*"
}
]
}