- comparison report migrations/check_product_downloads.php (kept, read-only): download records vs. the delivered product workbooks - 34 of 74 workbook products have a datasheet, the entire Datapath line has none in the pool (import came from vitec.com; queued for Joe), ~35 orphan datasheets belong to products without records; a vitec:link-product-downloads re-run added seven clean links (Artio x2, Diamond-H, the three TOUGH records, X-View) - RTE resolution fixed at the root: ContentElementResolver and ContainerChildrenProcessor passed bodytext RAW into the payload, so t3:// links leaked unresolved; both now run RTE columns (bodytext, vitec_quote) through RteResolver::html() - the imported "Download Success Story" RTE buttons carried the wrong link identifier (tx_vitec_download -> download, one-time migration fix_download_record_links.php) AND old-site uids - missing here or, worse, accidentally pointing at foreign PDFs. New vitec:convert-story-download-buttons replaces them with real vitec_downloadcard plugins: the download is resolved by STORY title (manual map for ISR / "Okada Manilla", exact-title fallback for suffixless PDFs like "Lord's Cricket Ground"); 29 converted, 4 stories without a delivered PDF have their button hidden. New FlexForm layout "Success Story Download" (story_download) applied everywhere; the FE renders it as the previous centered button - the ADIB "Featured Products" text section (the only one site-wide, verified by scan_story_headers.php) is now ONE vitec_productlist with hand-picked products via old-name aliases and the new FlexForm layout "Success Story Products" (story_products); the four text elements are deleted. vitec:convert-story-product-sections stays re-runnable for future imports - the productlist envelope additionally carries "columns" (= number of products, capped at 4) so the story grid renders as many columns as it has products - additive key, available to every product list; and hand-picked lists now ship successStories as an empty array (the empty category selection used to aggregate stories over the WHOLE tree, leaking story cards into the section) - the story downloadcards carry header "Downloads" (set on convert and backfilled): the front end builds the story anchor nav from element headers, so the section now appears there - diagnosis scripts kept: check_download_record, check_story_elements, scan_story_headers; verified live on the ADIB payload (structured download object, productlist [5,18,6], texts 10 -> 5) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
111 lines
4.9 KiB
XML
Executable File
111 lines
4.9 KiB
XML
Executable File
<?xml version="1.0" encoding="utf-8"?>
|
|
<T3DataStructure>
|
|
<sheets>
|
|
<sDEF>
|
|
<ROOT>
|
|
<TCEforms>
|
|
<sheetTitle>General Settings</sheetTitle>
|
|
</TCEforms>
|
|
<type>array</type>
|
|
<el>
|
|
<settings.product>
|
|
<label>Select Product</label>
|
|
<config>
|
|
<type>select</type>
|
|
<renderType>selectSingle</renderType>
|
|
<items>
|
|
<numIndex index="0">
|
|
<label>None</label>
|
|
<value>0</value>
|
|
</numIndex>
|
|
</items>
|
|
<foreign_table>tx_vitec_domain_model_product</foreign_table>
|
|
<foreign_table_where>AND (tx_vitec_domain_model_product.hidden = 0 AND tx_vitec_domain_model_product.deleted = 0) ORDER BY tx_vitec_domain_model_product.title</foreign_table_where>
|
|
<size>1</size>
|
|
<minitems>0</minitems>
|
|
<maxitems>99</maxitems>
|
|
</config>
|
|
</settings.product>
|
|
<settings.download>
|
|
<label>Select Download</label>
|
|
<config>
|
|
<type>select</type>
|
|
<renderType>selectSingle</renderType>
|
|
<items>
|
|
<numIndex index="0">
|
|
<label>None</label>
|
|
<value>0</value>
|
|
</numIndex>
|
|
</items>
|
|
<foreign_table>tx_vitec_domain_model_download</foreign_table>
|
|
<foreign_table_where>AND (tx_vitec_domain_model_download.hidden = 0 AND tx_vitec_domain_model_download.deleted = 0) ORDER BY tx_vitec_domain_model_download.title</foreign_table_where>
|
|
<size>1</size>
|
|
<minitems>0</minitems>
|
|
<maxitems>99</maxitems>
|
|
</config>
|
|
</settings.download>
|
|
<settings.layout>
|
|
<label>Layout</label>
|
|
<config>
|
|
<type>select</type>
|
|
<renderType>selectSingle</renderType>
|
|
<items>
|
|
<numIndex index="0">
|
|
<label>Datasheet Layout</label>
|
|
<value>datasheet</value>
|
|
</numIndex>
|
|
<numIndex index="1">
|
|
<label>Brochure Layout</label>
|
|
<value>brochure</value>
|
|
</numIndex>
|
|
<numIndex index="2">
|
|
<label>Neutral Layout</label>
|
|
<value>neutral</value>
|
|
</numIndex>
|
|
<numIndex index="3">
|
|
<label>Success Story Download</label>
|
|
<value>story_download</value>
|
|
</numIndex>
|
|
</items>
|
|
</config>
|
|
</settings.layout>
|
|
<settings.magstyle>
|
|
<label>Magazine Style layout</label>
|
|
<config>
|
|
<type>check</type>
|
|
<default>0</default>
|
|
</config>
|
|
</settings.magstyle>
|
|
<settings.adddetaillink>
|
|
<label>Add Button to Detail View</label>
|
|
<config>
|
|
<type>check</type>
|
|
<default>0</default>
|
|
</config>
|
|
</settings.adddetaillink>
|
|
<settings.magheader>
|
|
<label>Header Text for Magazine Layout</label>
|
|
<config>
|
|
<type>input</type>
|
|
<size>30</size>
|
|
</config>
|
|
</settings.magheader>
|
|
<settings.magtext>
|
|
<label>A short Text for Magazine Layout</label>
|
|
<config>
|
|
<type>input</type>
|
|
<size>30</size>
|
|
</config>
|
|
</settings.magtext>
|
|
<settings.maglink>
|
|
<label>Link for Magazine Layout</label>
|
|
<config>
|
|
<type>input</type>
|
|
<size>30</size>
|
|
</config>
|
|
</settings.maglink>
|
|
</el>
|
|
</ROOT>
|
|
</sDEF>
|
|
</sheets>
|
|
</T3DataStructure> |