VITEC headless v14: 5-bug fix unifies plugin renderers + cleanup

Resolves a cascade of TYPO3 v14 breaking changes that left every VITEC
plugin's JSON output silently empty:

1. `list_type` column dropped — all renderer page-discovery queries now
   filter by `CType = 'vitec_X'`.
2. `#[AsAllowedCallable]` attribute added to every public render() —
   without it v14 throws AllowedCallableException, which headless
   silently filters via its "Oops, an error occurred!" guard.
3. `$GLOBALS['TSFE']->id` is null inside JSON cObj context — page id
   now read from the `frontend.page.information` request attribute
   (TSFE fallback kept for legacy entry points).
4. page.tsconfig wizard items migrated to `CType = vitec_X` directly
   (legacy `CType=list, list_type=...` no longer exists in v14).
5. ContainerChildrenProcessor + ContentElementResolver dispatch the
   PLUGIN_RENDERERS map by CType (primary) with list_type fallback.

Beyond the bug fix this commit also contains:
- Datasheets renderer rewritten to "products with newest datasheet"
  semantics (filtered via Download.hideondatasheets).
- New vitec/card content block — multi-purpose card with backend
  preview and layout/background/aspect/alignment/border/shadow options.
- New vitec_container CType (b13 single-column container, FlexForm
  cssClass propagated into the JSON envelope).
- ContentElementResolver service for contentelement/contentelementcta
  link resolution; ContainerChildrenProcessor for nested plugin
  resolution inside b13 containers.
- Vitecset setup.typoscript: ContentElement import moved to top so
  lib.contentElement is defined before VITEC's tt_content blocks.
- Cleanup: 98 .bak.<timestamp> debugging backups removed; *.bak.* and
  /public/_assets_install/ added to .gitignore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
o-rasche
2026-06-15 14:29:17 +02:00
parent 64ea55d29d
commit 3aaf8fdad5
98 changed files with 5650 additions and 10154 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "typo3/cms-base-distribution",
"description" : "TYPO3 CMS Base Distribution",
"description": "TYPO3 CMS Base Distribution",
"license": "GPL-2.0-or-later",
"type": "project",
"config": {
@@ -17,47 +17,44 @@
"require": {
"b13/container": "^3.1",
"b13/typo3-updater": "^1.1",
"co-stack/logs": "^5.3",
"evomedien/vitec": "^1.0.1",
"friendsoftypo3/content-blocks": "^1.3",
"friendsoftypo3/headless": "^4.2",
"itplusx/headless-container": "^3.0",
"netzbewegung/nb-headless-content-blocks": "^0.0.21",
"nitsan/ns-license": "^13.0",
"typo3/cms-backend": "^13.4",
"typo3/cms-belog": "^13.4",
"typo3/cms-beuser": "^13.4",
"typo3/cms-core": "^13.4",
"typo3/cms-dashboard": "^13.4",
"typo3/cms-extbase": "^13.4",
"typo3/cms-extensionmanager": "^13.4",
"typo3/cms-felogin": "^13.4",
"typo3/cms-filelist": "^13.4",
"typo3/cms-fluid": "^13.4",
"typo3/cms-fluid-styled-content": "^13.4",
"typo3/cms-form": "^13.4",
"typo3/cms-frontend": "^13.4",
"typo3/cms-impexp": "^13.4",
"typo3/cms-info": "^13.4",
"typo3/cms-install": "^13.4",
"typo3/cms-reactions": "^13.4",
"typo3/cms-recycler": "^13.4",
"typo3/cms-rte-ckeditor": "^13.4",
"typo3/cms-scheduler": "^13.4",
"typo3/cms-seo": "^13.4",
"typo3/cms-setup": "^13.4",
"typo3/cms-sys-note": "^13.4",
"typo3/cms-tstemplate": "^13.4",
"typo3/cms-viewpage": "^13.4",
"typo3/cms-webhooks": "^13.4",
"w3code/w3c-categorymanager": "^13.4"
"friendsoftypo3/content-blocks": "^2.4",
"friendsoftypo3/headless": "^5.0@rc",
"netzbewegung/nb-headless-content-blocks": "^0.0.23",
"typo3/cms-backend": "^14.3",
"typo3/cms-belog": "^14.3",
"typo3/cms-beuser": "^14.3",
"typo3/cms-core": "^14.3",
"typo3/cms-dashboard": "^14.3",
"typo3/cms-extbase": "^14.3",
"typo3/cms-extensionmanager": "^14.3",
"typo3/cms-felogin": "^14.3",
"typo3/cms-filelist": "^14.3",
"typo3/cms-fluid": "^14.3",
"typo3/cms-fluid-styled-content": "^14.3",
"typo3/cms-form": "^14.3",
"typo3/cms-frontend": "^14.3",
"typo3/cms-impexp": "^14.3",
"typo3/cms-info": "^14.3",
"typo3/cms-install": "^14.3",
"typo3/cms-reactions": "^14.3",
"typo3/cms-recycler": "^14.3",
"typo3/cms-rte-ckeditor": "^14.3",
"typo3/cms-scheduler": "^14.3",
"typo3/cms-seo": "^14.3",
"typo3/cms-sys-note": "^14.3",
"typo3/cms-tstemplate": "^14.3",
"typo3/cms-viewpage": "^14.3",
"typo3/cms-webhooks": "^14.3"
},
"repositories": [
{
"name": "t3planet",
"type": "composer",
"url": "https://composer.t3planet.cloud",
"only": ["nitsan/ns_theme_reactbootstrap"]
"only": [
"nitsan/ns_theme_reactbootstrap"
]
},
{
"type": "path",