Files
Oliver Rasche 5bb4e374b4 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
2026-09-11 11:44:20 +02:00

70 lines
1.9 KiB
SQL

#
# Megamenu entry - one item in the main navigation bar.
# Child of the "Megamenu" plugin element (tt_content).
#
CREATE TABLE tx_evomegamenujson_entry (
parentid int(11) DEFAULT '0' NOT NULL,
parenttable varchar(255) DEFAULT '' NOT NULL,
title varchar(255) DEFAULT '' NOT NULL,
link varchar(1024) DEFAULT '' NOT NULL,
layout varchar(30) DEFAULT 'columns' NOT NULL,
menu_columns int(11) DEFAULT '0' NOT NULL,
menu_teasers int(11) DEFAULT '0' NOT NULL,
featured_enable tinyint(1) unsigned DEFAULT '0' NOT NULL,
featured_kicker varchar(255) DEFAULT '' NOT NULL,
featured_title varchar(255) DEFAULT '' NOT NULL,
featured_text text,
featured_link varchar(1024) DEFAULT '' NOT NULL,
featured_image int(11) unsigned DEFAULT '0' NOT NULL,
KEY parent (parentid)
);
#
# Column inside an entry - a headline plus its list of items.
#
CREATE TABLE tx_evomegamenujson_column (
parentid int(11) DEFAULT '0' NOT NULL,
title varchar(255) DEFAULT '' NOT NULL,
link varchar(1024) DEFAULT '' NOT NULL,
menu_items int(11) DEFAULT '0' NOT NULL,
KEY parent (parentid)
);
#
# Item inside a column - the actual link line.
#
CREATE TABLE tx_evomegamenujson_item (
parentid int(11) DEFAULT '0' NOT NULL,
title varchar(255) DEFAULT '' NOT NULL,
link varchar(1024) DEFAULT '' NOT NULL,
teaser varchar(255) DEFAULT '' NOT NULL,
badge varchar(60) DEFAULT '' NOT NULL,
pending tinyint(1) unsigned DEFAULT '0' NOT NULL,
image int(11) unsigned DEFAULT '0' NOT NULL,
KEY parent (parentid)
);
#
# Teaser card inside an entry - used by the "teasers" layout.
#
CREATE TABLE tx_evomegamenujson_teaser (
parentid int(11) DEFAULT '0' NOT NULL,
kicker varchar(255) DEFAULT '' NOT NULL,
title varchar(255) DEFAULT '' NOT NULL,
teasertext text,
link varchar(1024) DEFAULT '' NOT NULL,
image int(11) unsigned DEFAULT '0' NOT NULL,
KEY parent (parentid)
);
#
# Plugin element holds its entries inline.
#
CREATE TABLE tt_content (
tx_evomegamenujson_entries int(11) DEFAULT '0' NOT NULL
);