Success-story migration + new plugins + JSON/UX polish
- Success Stories: full migration from old site (48/48, audited), markets n:n, quotation content block, columns content block, pretty SEO detail URLs via SuccessStoryPathRewrite middleware, list/detail split (list page 4 / story page), detailUrl/backUrl - New plugins: VITEC Locations (grid/list/map + RTE map text), VITEC Customer Logos (color/bw logic, only-show-selected), VITEC Card (one plugin for product/story/market/solution with reloading FlexForm + custom backend preview renderer) - Eventlist: layout dropdown (list/grid/teaserbar) in settings - Hero section CB: Images/Video tabs, background video + overlay - Product JSON: full category rootline (parents), fixed missing ConnectionPool import (all-products crash), category tree map - Backend preview CSS: container-query responsive (narrow columns) - Docs: ISO architecture spec, root + extension READMEs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
aafcb5dcb6
commit
eae40f4286
110 files changed
+8502
-279
No files matched your search
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<T3DataStructure>
|
||||
<meta>
|
||||
<langDisable>1</langDisable>
|
||||
</meta>
|
||||
<sheets>
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<sheetTitle>Customer Logos Settings</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.layout>
|
||||
<label>Layout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>List</label>
|
||||
<value>list</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>Grid</label>
|
||||
<value>grid</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Carousel</label>
|
||||
<value>carousel</value>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<label>Marquee (scrolling ticker)</label>
|
||||
<value>marquee</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>grid</default>
|
||||
</config>
|
||||
</settings.layout>
|
||||
|
||||
<settings.customers>
|
||||
<label>Highlighted Customers</label>
|
||||
<description>Empty = all logos black & white. Selected customers are shown in color, in front of the remaining (b/w) logos.</description>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectMultipleSideBySide</renderType>
|
||||
<foreign_table>tx_vitec_domain_model_customer</foreign_table>
|
||||
<foreign_table_where>AND tx_vitec_domain_model_customer.hidden = 0 AND tx_vitec_domain_model_customer.deleted = 0 ORDER BY tx_vitec_domain_model_customer.title</foreign_table_where>
|
||||
<size>8</size>
|
||||
<minitems>0</minitems>
|
||||
<maxitems>999</maxitems>
|
||||
</config>
|
||||
</settings.customers>
|
||||
|
||||
<settings.onlySelected>
|
||||
<label>Only show selected</label>
|
||||
<description>Show only the highlighted customers — the remaining (b/w) logos are omitted entirely.</description>
|
||||
<config>
|
||||
<type>check</type>
|
||||
<default>0</default>
|
||||
</config>
|
||||
</settings.onlySelected>
|
||||
|
||||
<settings.debug>
|
||||
<label>Allow Debug Output</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
<default>0</default>
|
||||
</config>
|
||||
</settings.debug>
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
@@ -9,6 +9,29 @@
|
||||
<sheetTitle>Event List Settings</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.layout>
|
||||
<label>Layout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>List View</label>
|
||||
<value>list</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>Grid View</label>
|
||||
<value>grid</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Teaser Bar</label>
|
||||
<value>teaserbar</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>list</default>
|
||||
</config>
|
||||
</settings.layout>
|
||||
|
||||
<settings.daysinadvance>
|
||||
<label>Days in advance (0 = no limit)</label>
|
||||
<description>Only show upcoming events starting within the next N days, e.g. 60.</description>
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<T3DataStructure>
|
||||
<meta>
|
||||
<langDisable>1</langDisable>
|
||||
</meta>
|
||||
<sheets>
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<sheetTitle>Locations Settings</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.variant>
|
||||
<label>Display Variant</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>Grid</label>
|
||||
<value>grid</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>List</label>
|
||||
<value>list</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Map</label>
|
||||
<value>map</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>grid</default>
|
||||
</config>
|
||||
</settings.variant>
|
||||
|
||||
<settings.maptext>
|
||||
<label>Map Text</label>
|
||||
<description>Rich text shown alongside the map (Map variant only).</description>
|
||||
<displayCond>FIELD:settings.variant:=:map</displayCond>
|
||||
<config>
|
||||
<type>text</type>
|
||||
<rows>8</rows>
|
||||
<enableRichtext>1</enableRichtext>
|
||||
</config>
|
||||
</settings.maptext>
|
||||
|
||||
<settings.debug>
|
||||
<label>Allow Debug Output</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
<default>0</default>
|
||||
</config>
|
||||
</settings.debug>
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<T3DataStructure>
|
||||
<meta>
|
||||
<langDisable>1</langDisable>
|
||||
</meta>
|
||||
<sheets>
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<sheetTitle>Card Settings</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.modelType>
|
||||
<label>Card Type</label>
|
||||
<onChange>reload</onChange>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>Product</label>
|
||||
<value>product</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>Success Story</label>
|
||||
<value>story</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Market</label>
|
||||
<value>market</value>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<label>Solution</label>
|
||||
<value>solution</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>product</default>
|
||||
</config>
|
||||
</settings.modelType>
|
||||
|
||||
<settings.product>
|
||||
<label>Product</label>
|
||||
<displayCond>FIELD:settings.modelType:=:product</displayCond>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>— please choose —</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>
|
||||
</config>
|
||||
</settings.product>
|
||||
|
||||
<settings.story>
|
||||
<label>Success Story</label>
|
||||
<displayCond>FIELD:settings.modelType:=:story</displayCond>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>— please choose —</label>
|
||||
<value>0</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<foreign_table>tx_vitec_domain_model_usecase</foreign_table>
|
||||
<foreign_table_where>AND tx_vitec_domain_model_usecase.hidden = 0 AND tx_vitec_domain_model_usecase.deleted = 0 ORDER BY tx_vitec_domain_model_usecase.title</foreign_table_where>
|
||||
</config>
|
||||
</settings.story>
|
||||
|
||||
<settings.market>
|
||||
<label>Market</label>
|
||||
<displayCond>FIELD:settings.modelType:=:market</displayCond>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>— please choose —</label>
|
||||
<value>0</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<foreign_table>tx_vitec_domain_model_market</foreign_table>
|
||||
<foreign_table_where>AND tx_vitec_domain_model_market.hidden = 0 AND tx_vitec_domain_model_market.deleted = 0 ORDER BY tx_vitec_domain_model_market.title</foreign_table_where>
|
||||
</config>
|
||||
</settings.market>
|
||||
|
||||
<settings.solution>
|
||||
<label>Solution</label>
|
||||
<displayCond>FIELD:settings.modelType:=:solution</displayCond>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>— please choose —</label>
|
||||
<value>0</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<foreign_table>tx_vitec_domain_model_solution</foreign_table>
|
||||
<foreign_table_where>AND tx_vitec_domain_model_solution.hidden = 0 AND tx_vitec_domain_model_solution.deleted = 0 ORDER BY tx_vitec_domain_model_solution.title</foreign_table_where>
|
||||
</config>
|
||||
</settings.solution>
|
||||
|
||||
<settings.layout>
|
||||
<label>Layout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<label>Vertical (image top)</label>
|
||||
<value>vertical</value>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<label>Horizontal (image left)</label>
|
||||
<value>horizontal</value>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<label>Image Overlay</label>
|
||||
<value>overlay</value>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<label>Compact</label>
|
||||
<value>compact</value>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>vertical</default>
|
||||
</config>
|
||||
</settings.layout>
|
||||
|
||||
<settings.debug>
|
||||
<label>Allow Debug Output</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
<default>0</default>
|
||||
</config>
|
||||
</settings.debug>
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
@@ -8,6 +8,17 @@
|
||||
</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.backPid>
|
||||
<label>Back to List View (page)</label>
|
||||
<description>Page that holds the Success Story list plugin. Used to build the back link in the JSON output.</description>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<allowed>pages</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
</config>
|
||||
</settings.backPid>
|
||||
|
||||
<settings.debug>
|
||||
<label>Allow Debug Output.</label>
|
||||
<config>
|
||||
@@ -19,20 +30,6 @@
|
||||
</items>
|
||||
</config>
|
||||
</settings.debug>
|
||||
<settings.usecase>
|
||||
<label>
|
||||
Usecase
|
||||
</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<foreign_table>tx_vitec_domain_model_usecase</foreign_table>
|
||||
<foreign_table_where>AND tx_vitec_domain_model_usecase.hidden = 0 AND tx_vitec_domain_model_usecase.deleted = 0 ORDER BY tx_vitec_domain_model_usecase.title</foreign_table_where>
|
||||
<size>1</size>
|
||||
<minitems>0</minitems>
|
||||
<maxitems>1</maxitems>
|
||||
</config>
|
||||
</settings.usecase>
|
||||
<settings.layout>
|
||||
<label>
|
||||
Layout
|
||||
|
||||
@@ -6,6 +6,17 @@
|
||||
<sheetTitle>Usecase List</sheetTitle>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.singlePid>
|
||||
<label>Single PID (detail page)</label>
|
||||
<description>Page that holds the "Show single VITEC Success Story" plugin. Used to build the detail links in the JSON output.</description>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<allowed>pages</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
</config>
|
||||
</settings.singlePid>
|
||||
|
||||
<settings.debug>
|
||||
<label>Allow Debug Output.</label>
|
||||
<config>
|
||||
|
||||
Reference in new issue
Block a user