Unify list plugins, add solution list and per-story detail page

- vitec_usecaselist: layout + record selection like marketlist
- new plugin vitec_solutionlist (spec 7.13.3, key "solutions")
- tx_vitec_domain_model_usecase: detail_page -> resolved detailUrl
  (also gives story cards in vitec_modelcard a link for the first time)
- "Show Toolbar" checkbox on product/market/solution/usecase lists
- spec bumped to v1.9

BREAKING: vitec_productlist and vitec_usecaselist now emit an object
instead of a bare array. Consumers must read products.products and
usecases.usecases. Also found: productlist had a configurable layout
that was never serialised; it is emitted now, but keeps its own 0-3
vocabulary instead of grid/list/carousel.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
orascheandClaude Opus 5 committed 2026-08-17 16:29:06 +02:00
1 parent 4ef3ad0026
commit 12eb40614b
23 files changed
+559 -28

No files matched your search

@@ -18,7 +18,7 @@ use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
* UserFunc: render all VITEC markets as JSON (headless).
*
* Output under content.markets:
* { "layout": "grid|list|carousel", "markets": [ … ] }
* { "layout": "grid|list|carousel|50-50", "markets": [ … ] }
*
* Selection semantics (FlexForm `settings.markets`):
* - nothing selected -> ALL visible markets, alphabetical by title
@@ -152,6 +152,7 @@ class MarketListJsonRenderer
$response = [
'layout' => $layout,
'showToolbar' => (bool)($settings['showtoolbar'] ?? false),
'markets' => $markets,
];