Add evo_megamenu_json extension and seed the megamenu

- new project-neutral extension evo_megamenu_json (Evomedien): a Megamenu
  plugin holding entries, columns, items, teaser cards and a featured slot
  as nested records; presentation settings travel with the payload so the
  front end reads behaviour instead of hard-coding it; published as
  page.10.fields.megaMenu, driven by the site settings megamenu.contentUid
  and megamenu.storagePid
- vitec:seed-megamenu fills one element from the live structure: 5 entries,
  26 columns, 95 items, 4 story cards; items without a page yet are flagged
  pending so the front end falls back to the column link
- vitec:debug-sets prints the resolved site set order
- read-only diagnostics: check_megamenu_schema.php, check_typoscript_templates.php
- docs: schema updates run via extension:setup (database:updateschema no
  longer exists in v14), and a JSON Accept header activates headless-mixed,
  which strips every set-added page field
This commit is contained in:
orasche committed 2026-09-11 11:44:20 +02:00
1 parent e9eaa62d89
commit 5bb4e374b4
31 files changed
+2251 -4

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
{
"name": "evomedien/evo-megamenu-json",
"type": "typo3-cms-extension",
"description": "Editable megamenu for headless TYPO3 - one plugin fills columns, teaser cards and a featured slot, delivered as JSON",
"version": "1.0.0",
"authors": [],
"license": "GPL-2.0-or-later",
"require": {
"typo3/cms-core": "^13.4 || ^14.0"
},
"suggest": {
"friendsoftypo3/headless": "Renders the plugin inside the headless JSON envelope and exposes the menu at page level"
},
"autoload": {
"psr-4": {
"Evomedien\\EvoMegamenuJson\\": "Classes"
}
},
"extra": {
"typo3/cms": {
"extension-key": "evo_megamenu_json"
}
}
}