From f2c04b311f5e92d1b9020ed3d0b807cc04664cd8 Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Mon, 9 Nov 2026 08:02:38 +0100 Subject: [PATCH] Add business type, location and logo to the structured data Three optional settings extend LocalBusiness: a subtype from a fixed list, coordinates as a pair, and a logo from the media library. Without them the output stays as it was, and stored settings need no migration. Co-Authored-By: Claude Opus 5.5 --- docs/ARCHITECTURE.md | 8 ++++ public/assets/admin.css | 1 + public/assets/logo-field.js | 41 +++++++++++++++++ src/Content/SiteSettings.php | 64 ++++++++++++++++++++++++++- src/Controller/SettingsController.php | 1 + templates/admin/settings.html.twig | 28 +++++++++++- tests/CmsTest.php | 47 ++++++++++++++++++++ 7 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 public/assets/logo-field.js diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 1fa5608..d28f771 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -2,6 +2,14 @@ Stand: 27.10.2026. Arbeitstitel KantSites; Produktname offen. +## ADR 126 – Unternehmensart, Standort und Logo in den strukturierten Daten (09.11.2026) + +**Kontext:** Bei Luximmo fiel auf, dass LocalBusiness immer der allgemeine Typ war und weder Logo noch Koordinaten kannte. + +**Entscheidung:** Drei Einstellungen unter „Einstellungen“: `businessType` aus einer festen Liste von LocalBusiness-Unterarten, `latitude`/`longitude` als Paar, `organisationLogoMediaId` aus der Mediathek. Das Logo ist bewusst getrennt vom sichtbaren Logo im Kopfbereich: Das kann eingebettetes SVG sein und hat dann keine eigene Adresse. Die Liste ist fest, damit kein Tippfehler einen ungültigen Typ erzeugt. + +**Folgen:** Keine Migration: Die Werte liegen im JSON der Einstellungen, fehlende Schlüssel fallen auf die Standardwerte, ausgegeben wird dann genau das Bisherige. Typ und Koordinaten gelten nur für ein lokales Unternehmen mit Anschrift, das Logo auch für eine Organisation. Eine Installation älter als diese Fassung ignoriert die Werte aus einem Inhaltspaket und gibt sie nicht aus. + ## ADR 125 – Videos: eigene Bibliothek, Baustein und Sektionshintergrund (Dokumentschema v28, 04.11.2026) **Kontext:** Der Hero von kant-it.de soll ein Video im Hintergrund bekommen. Die Mediathek nahm nur Bilder und PDFs, die Alpaka-Videos von Hüfner und die Drews-Videos blieben deshalb draußen. Ein `