Interior-Farbwelt, Welten-Trennung, Tischlerei und Herkunfts-Sektion
Arbeitsplan 14.09.2026, Punkte 1.1 bis 1.4 (Nachträge 6 bis 10 im Entwicklungsplan): - Farbwelt Interior (Tanne, Creme, Sand, Ocker, Clay) als Standard, Immobilien-Welt behält das bisherige Blau über body.world-immobilien; Logo je Welt, Favicons neu, Welten-Wechsler in Kopf- und Fußzeile. - Saubere Trennung der Welten: eigene Navigation, Ankündigungsleiste, Magazinliste, Über-uns-Seite, FAQ, Kontaktseite und Abschluss-CTA für Immobilien; Beiträge tragen eine Welt (Migration + Admin-Feld). Abschluss-CTA Ton in Ton statt Grün-zu-Ocker. - Kontakt: Betreffe in Gruppen Interior / Immobilien / B2in, Marken darin. Terminanfrage-Buttons öffnen das Widget mit vorgewähltem Anliegen; Select-Felder einheitlich gestaltet. - Tischlerei als vierte Kernmarke (Platzhalter), Kachelraster 2×2. - Herkunfts-Sektion „Aus der Region gefertigt“ mit schematischer Standortkarte und Ablauf CABINET (Beratung Bielefeld, Fertigung Köln, Aufbau mit Tischlerei). Deployment: migrate, WorldSplitCmsSeeder, CmsBrandSeeder, OriginSectionCmsSeeder (Abschnitt 8 im Entwicklungsplan). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
1242d4bce8
commit
7953a8c9a1
137 changed files with 3840 additions and 589 deletions
|
|
@ -9,10 +9,46 @@ class Footer extends Component
|
|||
/** @var array<string, mixed> */
|
||||
public array $content = [];
|
||||
|
||||
/** Farbwelt der Seite (`interior` | `immobilien`), in mount() festgehalten. */
|
||||
public string $world = 'interior';
|
||||
|
||||
/** @var array<string, array{label: string, url: string, active: bool}> */
|
||||
public array $worlds = [];
|
||||
|
||||
public string $logoPath = '';
|
||||
|
||||
/**
|
||||
* Fuer die Immobilien-Welt zeigen die gemeinsamen Footer-Links auf die Seiten dieser Welt.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private const IMMOBILIEN_LINKS = [
|
||||
'/faq' => '/immobilien/faq',
|
||||
'/about' => '/immobilien/ueber-b2in',
|
||||
'/magazin' => '/immobilien/magazin',
|
||||
];
|
||||
|
||||
public function mount(): void
|
||||
{
|
||||
$section = cms_theme_section('footer');
|
||||
$this->content = is_array($section) ? $section : [];
|
||||
$this->world = b2in_world();
|
||||
|
||||
if ($this->world === 'immobilien' && is_array($this->content['links'] ?? null)) {
|
||||
$this->content['links'] = array_map(function ($link) {
|
||||
if (is_array($link) && isset(self::IMMOBILIEN_LINKS[$link['url'] ?? ''])) {
|
||||
$link['url'] = self::IMMOBILIEN_LINKS[$link['url']];
|
||||
}
|
||||
|
||||
return $link;
|
||||
}, $this->content['links']);
|
||||
}
|
||||
$this->worlds = b2in_worlds($this->world);
|
||||
|
||||
// Der Interior-Footer liegt auf Sand (helle Fläche) und trägt deshalb das positive
|
||||
// Logo; der Immobilien-Footer bleibt dunkel und nutzt die negative Variante.
|
||||
$variant = $this->world === 'immobilien' ? 'negative' : 'positive';
|
||||
$this->logoPath = \App\Helpers\ThemeHelper::getLogoPath($variant, $this->world);
|
||||
}
|
||||
|
||||
public function render()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue