Files
VITEC-website/packages/vitec/ContentBlocks/ContentElements/market-insights/config.yaml
T
orasche 8b175211ea vitec:generate-submarket-workbooks builds one protected customer workbook
per sub-market (25, grouped by the 9 main markets): VITEC-styled Read me,
a Page-layout sheet embedding the Figma design with section markers,
DB-live dropdowns, soft character limits, a hidden Meta sheet and named
input cells. Names must NOT start with a cell-reference token - Excel
silently strips s1_-style names as repairs.

vitec:import-submarket-workbooks (dry-run default, idempotent) finds or
creates the page below its main market (hidden, layout 21), fills the six
colPos slots updating in place and never deleting, links detail_page on
the market record, downloads asset URLs into fileadmin/submarket_import/
for editorial review and writes the flexforms as DataHandler arrays.
Reading is three-layered after a bruising day of real-world Excel: named
ranges first, then a label scan over the locked column A with section
tracking - a customer save stripped ALL defined names and shifted rows,
so fixed addresses are not a contract.

Learned and fixed along the way: DuplicationBehavior moved to
Resource\Enum in v14; sys_file_reference rows via DataHandler need
pid/tablenames/uid_foreign or are dropped silently; handing DataHandler a
fresh NEW reference per run STACKS live references on re-import (caught
by a double-run test), so attachments are now content-idempotent - the
existing live reference is reused or retargeted and surplus duplicates
are deleted via cmdmap; RequestFactory replaces GeneralUtility::getUrl so
download failures carry their reason - which surfaced that the dev basic
auth blocked the server itself (server IP + loopback now allowlisted,
which a future SSR needs anyway) and that the core resource-consistency
check rightly rejects HTML masquerading as PNG.

Verified end to end on Broadcast & Media from a clean slate, twice in a
row: 12 elements in colPos 110-160, layout-21 payload, both images
attached exactly once with publicUrl in the JSON; second run reports
nothing but unchanged.
2026-10-02 13:24:54 +02:00

51 lines
1.1 KiB
YAML

# Sub-market template section 6 (spec 2026-10-01).
name: vitec/market-insights
group: vitec_custom_components
prefixFields: true
prefixType: vendor
fields:
- identifier: text1
type: Textarea
rows: 4
- identifier: text2
type: Textarea
rows: 4
- identifier: insights_cta_section
type: Palette
label: CTA (optional)
fields:
- identifier: cta_label
type: Text
max: 40
- identifier: cta_target
type: Text
max: 500
- identifier: insights_video_section
type: Palette
label: Video card (optional - empty url hides the card)
fields:
- identifier: video_person
type: Text
max: 80
- identifier: video_role
type: Text
max: 120
- type: Linebreak
- identifier: video_title
type: Text
max: 120
- type: Linebreak
- identifier: video_url
type: Text
max: 500
- type: Linebreak
- identifier: video_cover
type: File
minitems: 0
maxitems: 1
allowed: common-image-types