Umsetzung von AP0-AP6 aus dev/2026-08-28/entwicklungsplan.md sowie der vorab gefundenen Befunde T1 und B1-B13. Befunde - CmsContentSeeder überschrieb bei jedem Lauf alle redaktionellen Inhalte; jetzt Redaktionsschutz plus gezielter Relaunch-Seeder (B1) - Magazin-CMS war nicht ans Frontend angebunden, Artikel jetzt über Slugs mit 301 von den alten numerischen URLs (B2) - Vier veröffentlichte Display-Playlists zeigten auf b2in.test und wären live nicht ladbar gewesen (B13) - Info-Tablet speicherte geleerte Öffnungszeiten nicht (T1) - /service und /portfolio lieferten seit Februar 500 (B12) Website - Startseite neu strukturiert und umgetextet, eigene Seite /marken mit Detailseite je Kernmarke, /netzwerk und Altrouten leiten dorthin - Galerie je Marke, getrennt nach realisierten Projekten und Visualisierungen; ohne gesetzte Kategorie gilt ein Bild als Entwurf - Seite /referenzen, gespeist aus den Markengalerien - Showroom-Display im 9:16-Rahmen über eine schreibgeschützte Embed-Route ohne Preview-Token - Terminanfrage-Widget auf allen Seiten, Markenauswahl aus dem CMS, WhatsApp per Klick-zum-Chat-Link mit vorbereitetem Text - FAQ, Über-uns, Kontakt und Magazin inhaltlich auf Interior umgestellt Sonstiges - Vorschau-Instanzen liefern noindex und verlinken sich bei unbekanntem Host auf sich selbst statt auf eine fremde Domain - Seeder-Zugangsdaten aus dem Code in die Konfiguration (B8) - Ablauf für die Vorschau: dev/2026-08-28/preview-deployment.md 833 Tests grün (3084 Assertions), Pint sauber. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
108 lines
4.9 KiB
PHP
108 lines
4.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* Theme-Section-Schlüssel (wie in b2in.themes.{theme}.*) → [CMS-Gruppe, CMS-Key].
|
|
*
|
|
* Wird von cms_theme_section() und CmsContentSeeder verwendet.
|
|
*/
|
|
return [
|
|
'lang_keys' => [
|
|
'card_section' => 'partner_card_section',
|
|
],
|
|
|
|
'sections' => [
|
|
'announcement_bar' => ['global', 'announcement_bar'],
|
|
'header' => ['global', 'header'],
|
|
'footer' => ['global', 'footer'],
|
|
'cta_section' => ['global', 'cta_section'],
|
|
'appointment_widget' => ['global', 'appointment_widget'],
|
|
'cta_section_portfolio' => ['global', 'cta_section_portfolio'],
|
|
|
|
'hero' => ['home', 'hero'],
|
|
'audience_switch' => ['home', 'audience_switch'],
|
|
'core_brands' => ['home', 'core_brands'],
|
|
|
|
'marken_hero' => ['marken', 'hero'],
|
|
'marken_network' => ['marken', 'network'],
|
|
'marken_growth' => ['marken', 'growth'],
|
|
'marken_cta' => ['marken', 'cta'],
|
|
|
|
'referenzen_hero' => ['referenzen', 'hero'],
|
|
'reference_projects' => ['referenzen', 'projects'],
|
|
'display_feed' => ['referenzen', 'display_feed'],
|
|
'sponsoring' => ['home', 'sponsoring'],
|
|
'immobilien_teaser' => ['home', 'immobilien_teaser'],
|
|
'founder_bar' => ['home', 'founder_bar'],
|
|
'synergie_section' => ['home', 'synergie_section'],
|
|
'ecosystem_core' => ['home', 'ecosystem_core'],
|
|
'vision_section' => ['home', 'vision_section'],
|
|
'brand_worlds' => ['home', 'brand_worlds'],
|
|
'integriertes_modell_b2in' => ['home', 'integriertes_modell_b2in'],
|
|
|
|
'immobilien_hero' => ['immobilien', 'hero'],
|
|
'immobilien_hero_v2' => ['immobilien', 'hero_v2'],
|
|
'immobilien_projects' => ['immobilien', 'projects_meta'],
|
|
'immobilien_moebel_vorteil' => ['immobilien', 'moebel_vorteil'],
|
|
'immobilien_trust' => ['immobilien', 'trust'],
|
|
'immobilien_warum_dubai' => ['immobilien', 'warum_dubai'],
|
|
'immobilien_image_break' => ['immobilien', 'image_break'],
|
|
'immobilien_kaufprozess' => ['immobilien', 'kaufprozess'],
|
|
'immobilien_bruecke' => ['immobilien', 'bruecke'],
|
|
'immobilien_mindset' => ['immobilien', 'mindset'],
|
|
'portfolio' => ['immobilien', 'portfolio'],
|
|
|
|
'netzwerk_hero' => ['netzwerk', 'hero'],
|
|
'netzwerk_image_break' => ['netzwerk', 'image_break'],
|
|
'netzwerk_teasers' => ['netzwerk', 'teasers'],
|
|
'netzwerk_cta' => ['netzwerk', 'cta'],
|
|
'netzwerk_cabinet_partner' => ['netzwerk', 'cabinet_partner'],
|
|
'netzwerk_immobilien_hint' => ['netzwerk', 'immobilien_hint'],
|
|
|
|
'interior_hero' => ['netzwerk', 'interior_hero'],
|
|
'interior_concept' => ['netzwerk', 'interior_concept'],
|
|
'interior_brands' => ['netzwerk', 'interior_brands'],
|
|
'interior_zielgruppen' => ['netzwerk', 'interior_zielgruppen'],
|
|
'interior_process' => ['netzwerk', 'interior_process'],
|
|
'interior_trust' => ['netzwerk', 'interior_trust'],
|
|
|
|
'faq' => ['faq', 'faq'],
|
|
|
|
'contact_form' => ['contact', 'contact_form'],
|
|
|
|
'about_hero' => ['about', 'hero'],
|
|
'our_story' => ['about', 'our_story'],
|
|
'about_image_break' => ['about', 'image_break'],
|
|
'our_values' => ['about', 'our_values'],
|
|
'leadership_team' => ['about', 'leadership_team'],
|
|
|
|
'broker_section' => ['netzwerk', 'broker_section'],
|
|
'commitment_section' => ['netzwerk', 'commitment_section'],
|
|
'dark_stats_section' => ['netzwerk', 'dark_stats_section'],
|
|
'ecosystem_hero' => ['netzwerk', 'ecosystem_hero'],
|
|
'ecosystem_stats' => ['netzwerk', 'ecosystem_stats'],
|
|
'ecosystem_start' => ['netzwerk', 'ecosystem_start'],
|
|
'ecosystem_hub' => ['netzwerk', 'ecosystem_hub'],
|
|
'ecosystem_result' => ['netzwerk', 'ecosystem_result'],
|
|
'end_customer_section' => ['netzwerk', 'end_customer_section'],
|
|
'final_commitment' => ['netzwerk', 'final_commitment'],
|
|
'digital_core' => ['netzwerk', 'digital_core'],
|
|
'supply_chain_intro' => ['netzwerk', 'supply_chain_intro'],
|
|
|
|
'partner_hero' => ['netzwerk', 'partner_hero'],
|
|
'partner_benefits' => ['netzwerk', 'partner_benefits'],
|
|
'partner_cta' => ['netzwerk', 'partner_cta'],
|
|
'partner_card_section' => ['netzwerk', 'partner_card_section'],
|
|
'card_section' => ['netzwerk', 'partner_card_section'],
|
|
'partner_benefits_developer' => ['netzwerk', 'partner_benefits_developer'],
|
|
'partner_benefits_retailer' => ['netzwerk', 'partner_benefits_retailer'],
|
|
'partner_benefits_supplier' => ['netzwerk', 'partner_benefits_supplier'],
|
|
'partner_benefits_broker' => ['netzwerk', 'partner_benefits_broker'],
|
|
'partner_process' => ['netzwerk', 'partner_process'],
|
|
'supplier_section' => ['netzwerk', 'supplier_section'],
|
|
|
|
'magazin_detail' => ['magazin', 'detail'],
|
|
'magazin_list' => ['magazin', 'list'],
|
|
],
|
|
];
|