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:
1 parent
8adbe8cc90
commit
46049bf30d
5 files changed
+42
-12
No files matched your search
@@ -23,13 +23,13 @@ return [
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
'1' => ['showitem' => 'title, subtitle, slug, teaser, description, description2, applications, capabilities, highlights, contentelement, contentelementcta, portfolio, showdatapath, textrelatedproducts, relatedprodukt, related_texts, solutions,
|
||||
--div--;Resources, resources, datasheets, downloads,
|
||||
'1' => ['showitem' => 'title, subtitle, slug, teaser, description, description2, applications, highlights, contentelement, contentelementcta, portfolio, showdatapath, textrelatedproducts, relatedprodukt, related_texts, solutions,
|
||||
--div--;Resources, resources, resources_layout,
|
||||
--div--;SEO, seotitle, urltitle, seometa, keywords, structureddata,
|
||||
--div--;Images and Videos, heroimage, productimage, ogimage, video, videofile,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, categories,
|
||||
--div--;Visibility, hideonapp, hideonwebsite, hideondatasheets, hideonproducts, shortcut, shortcutpid,
|
||||
--div--;Misc, legacy, supportproduct, subproduct,
|
||||
--div--;Misc, capabilities, datasheets, downloads, legacy, supportproduct, subproduct,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, hidden, starttime, endtime'],
|
||||
],
|
||||
'columns' => [
|
||||
@@ -465,6 +465,23 @@ return [
|
||||
'enableMultiSelectFilterTextfield' => true,
|
||||
],
|
||||
],
|
||||
// Resources band layout (customer CR 2026-10-26): the detail page pairs
|
||||
// the Technical Highlights with the resource cards; capabilities left the
|
||||
// band (field parked in the Misc tab, still in the JSON for now).
|
||||
'resources_layout' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Resources Section Layout',
|
||||
'description' => 'How the detail page arranges the Technical Highlights / Resources band. Layout 1 (default): Technical Highlights on the left, resource cards on the right (50/50). Layout 2: Technical Highlights spread over two columns, resource cards in the third (33/33/33).',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'default' => '50-50',
|
||||
'items' => [
|
||||
['label' => 'Layout 1 - 50/50 (Technical Highlights left, Resources right)', 'value' => '50-50'],
|
||||
['label' => 'Layout 2 - 33/33/33 (Technical Highlights in two columns, Resources in the third)', 'value' => '33-33-33'],
|
||||
],
|
||||
],
|
||||
],
|
||||
'resources' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Resources',
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
/**
|
||||
* Resource cards on the product's Resources tab (decision 2026-09-24):
|
||||
* documentation / support entries, several per type, each an editable card
|
||||
* (title, text, icon) around one link. Datasheets are NOT an option here -
|
||||
* they are the `datasheets` MM selection of download records next to this
|
||||
* list and join the same JSON envelope as ready-made cards. Child table of
|
||||
* documentation / support / datasheet / brochure entries, several per type,
|
||||
* each an editable card (title, text, icon) around one link. A manual
|
||||
* datasheet card links the download record directly - the download route
|
||||
* always serves the newest file, so the card never goes stale. The old
|
||||
* `datasheets` MM selection next to this list still joins the same JSON
|
||||
* envelope but is parked in the Misc tab (CR 2026-10-26). Child table of
|
||||
* tx_vitec_domain_model_product via the `resources` inline field - edited
|
||||
* only there (hideTable), no Extbase model on purpose: the headless
|
||||
* renderers query the rows directly, the Extbase path never touches them.
|
||||
@@ -61,6 +63,8 @@ return [
|
||||
'items' => [
|
||||
['label' => 'Product Documentation', 'value' => 'documentation'],
|
||||
['label' => 'Technical Support', 'value' => 'support'],
|
||||
['label' => 'Datasheet', 'value' => 'datasheet'],
|
||||
['label' => 'Brochure', 'value' => 'brochure'],
|
||||
],
|
||||
'default' => 'documentation',
|
||||
],
|
||||
@@ -98,6 +102,8 @@ return [
|
||||
'items' => [
|
||||
['label' => 'Document', 'value' => 'document'],
|
||||
['label' => 'Support', 'value' => 'support'],
|
||||
['label' => 'Datasheet', 'value' => 'datasheet'],
|
||||
['label' => 'Brochure', 'value' => 'brochure'],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user