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,36 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:asset.css identifier="vitec-backend-preview" href="EXT:vitec/Resources/Public/Css/backend-preview.css"/>
|
||||
|
||||
<div class="vitec-preview">
|
||||
<f:if condition="{imageUrl}">
|
||||
<f:then>
|
||||
<img src="{imageUrl}" class="vitec-preview__thumb" width="200" alt="Card preview"/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="vitec-preview__thumb-placeholder">▢</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<div class="vitec-preview__body">
|
||||
<div class="vitec-preview__label">VITEC · Card — {typeLabel}</div>
|
||||
<h3 class="vitec-preview__headline">
|
||||
<f:if condition="{title}">
|
||||
<f:then>{title}</f:then>
|
||||
<f:else><em style="color:#c00;">⚠ No {typeLabel} selected</em></f:else>
|
||||
</f:if>
|
||||
</h3>
|
||||
<f:if condition="{subtitle}">
|
||||
<div class="vitec-preview__subline">{subtitle -> f:format.crop(maxCharacters: 90)}</div>
|
||||
</f:if>
|
||||
</div>
|
||||
|
||||
<div class="vitec-preview__settings">
|
||||
<span class="vitec-badge">{typeLabel}</span>
|
||||
<span class="vitec-badge">Layout: {layout}</span>
|
||||
<f:if condition="{recordUid} == 0">
|
||||
<span class="vitec-badge vitec-badge--warning">⚠ nothing selected</span>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
@@ -204,4 +204,44 @@
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Small monitors: drop the body text — label, headline and badges stay. */
|
||||
@media (max-width: 1400px) {
|
||||
.vitec-preview__body-text {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Real fix: react to the PREVIEW COLUMN width, not the monitor width.
|
||||
The page-module body of a CE containing a vitec preview becomes a size
|
||||
container (e.g. inside narrow b13 container columns). */
|
||||
.t3-page-ce-body:has(.vitec-preview) {
|
||||
container-type: inline-size;
|
||||
}
|
||||
|
||||
/* Narrow column: stack the grid, drop the body text, badges in a row. */
|
||||
@container (max-width: 700px) {
|
||||
.vitec-preview {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.vitec-preview__body-text {
|
||||
display: none;
|
||||
}
|
||||
.vitec-preview__settings {
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.vitec-preview__thumb,
|
||||
.vitec-preview__thumb-placeholder {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* Very narrow column: only label, headline and badges survive. */
|
||||
@container (max-width: 420px) {
|
||||
.vitec-preview__subline {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
||||
<rect x="3" y="7" width="12" height="8" rx="1.5" fill="#ff6a00"/>
|
||||
<rect x="17" y="7" width="12" height="8" rx="1.5" fill="#9aa2ab"/>
|
||||
<rect x="3" y="17" width="12" height="8" rx="1.5" fill="#9aa2ab"/>
|
||||
<rect x="17" y="17" width="12" height="8" rx="1.5" fill="#9aa2ab"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 367 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
||||
<path d="M16 3c-5 0-9 4-9 9 0 6.6 9 17 9 17s9-10.4 9-17c0-5-4-9-9-9z" fill="#ff6a00"/>
|
||||
<circle cx="16" cy="12" r="4" fill="#fff"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 226 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
||||
<rect x="5" y="4" width="22" height="24" rx="2" fill="#0a3d62"/>
|
||||
<rect x="8" y="7" width="16" height="9" rx="1" fill="#ff6a00"/>
|
||||
<rect x="8" y="19" width="16" height="2.5" rx="1" fill="#fff"/>
|
||||
<rect x="8" y="23" width="10" height="2.5" rx="1" fill="#9aa2ab"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 359 B |
Reference in new issue
Block a user