Product detail CR: resources band layout select, fields parked in Misc

- customer change request (2026-10-26): Resources = Downloads, the
  detail band is simplified - capabilities leave the section, Technical
  Highlights move left, the resource cards into the right column
  (frontend already built on dev.vitec.com)
- TCA: capabilities, datasheets and downloads moved to the Misc tab -
  parked, not removed; their JSON keys are unchanged. The planned
  automatic newest-datasheet/documentation cards stay deferred by
  request (the download route already serves the newest file per
  Collateral convention, so the foundation is there)
- new resources_layout select on the Resources tab, English label and
  description: Layout 1 = 50-50 (default, highlights left / cards
  right), Layout 2 = 33-33-33 (highlights over two columns, cards in
  the third); ext_tables.sql column added
- the manual resource card restype vocabulary gains Datasheet and
  Brochure (select items plus icon picker seeds, no code change - the
  renderer passes restype through as type): an editor can pin a single
  datasheet card by linking the download record, which stays current
  because the download route always serves the newest file
- ProductShowJsonRenderer: the resources envelope gains sectionLayout
  ('50-50'|'33-33-33'); verified live - Diamond-H delivers 33-33-33,
  untouched products the 50-50 default, layout/items unchanged
- spec bumped to v1.26 (additive revision row, field table 7.15.1),
  mirrored; frontend briefing notes the new key

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
orascheandClaude Fable 5 committed 2026-10-26 19:36:18 +01:00
1 parent 8adbe8cc90
commit 46049bf30d
5 files changed
+42 -12

No files matched your search

@@ -255,7 +255,12 @@ class ProductShowJsonRenderer
'solutions' => $this->getProductSolutions($uid),
// Detail-only like heroimage: resource cards are detail-page
// furniture a list never shows.
'resources' => $this->getProductResources($uid),
'resources' => array_merge(
$this->getProductResources($uid),
// Section layout (customer CR 2026-10-26): how the front end
// arranges the Technical Highlights / Resources band.
['sectionLayout' => (string)(($product['resources_layout'] ?? '') ?: '50-50')]
),
];
// schema.org JSON-LD (Product + optional VideoObject) as a ready-to-emit