# Mailadmin – Email Template System (R17 modular) Stand: 2026-01-17 ## Kurzuebersicht - Admin UI fuer Templates, Sections und Snippets - GrapesJS Editor lokal eingebunden (kein CDN) - Modularer Bridge-Core fuer Blöcke, Kategorien und Editor-Erweiterungen - JSON API mit Dual-DB und Prefix-Support ## Struktur mailadmin/ inc/ config.example.php # Deine echte config.php kommt hierhin (NICHT in public/) public/ index.php # Admin UI (helles Design) api.php # JSON API (Dual-DB + Prefix) tools/ config-doctor.php # Prüft inc/config.php db-doctor.php # Prüft DB-Verbindung assets/ css/toast.css js/ toast.js app.js # entry (type=module) api.js # API wrapper ui-tabs.js # Tabs ui-list.js # Liste + Vorschau + Löschen + Editor öffnen ui-create.js # „Neu …“ dialog ui-editor.js # Editor-Dialog + Handshake editor/ editor-core.php # LÄDT NUR LOKAL (kein CDN) bridge-core.js # Loader + Guards + Editor-Orchestrierung config.js # Bibliothek in Block-Leiste public/assets/js/bridge/ rte-editor.js # RichText-Editor (Modal) table-builder.js # Table Builder (Modal) blocks-*.js # Block-Definitionen ## Vendor (lokal bereitstellen) Lege die GrapesJS-Dateien lokal ab (kein CDN): - mailadmin/public/vendor/grapesjs/grapes.min.css - mailadmin/public/vendor/grapesjs/grapes.min.js - mailadmin/public/vendor/grapesjs-preset-newsletter/grapesjs-preset-newsletter.min.js ## Datenbank Nutze `schema.sql` (inkl. *NULL‑fähiger* Fremdschlüssel & ON DELETE SET NULL). Prefix standardmäßig: `emailtemplate_`. ## Editor-Flags (window.BridgeParts) - ENABLE_EDITOR_EXTENSIONS - ENABLE_EDITOR_BEHAVIOR - ENABLE_PLACEHOLDERS - ENABLE_TABLE_BUILDER - ENABLE_RTE ## Schnellstart 1) `mailadmin/inc/config.php` anlegen (siehe `config.example.php`). 2) `schema.sql` in deiner Templates-Datenbank ausführen. 3) Vendor-Dateien in `public/vendor/...` kopieren. 4) `public/tools/config-doctor.php` & `public/api.php?action=health` prüfen. 5) `public/index.php` öffnen → „Neu …“, „Vorschau“, „Im E‑Mail‑Editor öffnen“ etc.