world = b2in_world(); // Interior: global.announcement_bar, Immobilien: global.announcement_bar_immobilien. $section = cms_theme_section($this->world === 'immobilien' ? 'announcement_bar_immobilien' : 'announcement_bar'); $this->content = is_array($section) ? $section : []; } /** * Schluessel, unter dem sich der Browser das Wegklicken merkt. * * Leitet sich aus dem Inhalt ab, nicht nur aus der gepflegten `id`: Wird die Leiste im CMS * neu belegt, ohne die `id` zu aendern, bekaemen Wiederkehrer die neue Meldung sonst nie * zu sehen, weil ihr alter Dismiss-Eintrag im localStorage weitergilt. */ public function getDismissKeyProperty(): string { $fingerprint = implode('|', [ $this->content['id'] ?? 'default', $this->content['badge'] ?? '', $this->content['text'] ?? '', $this->content['link_url'] ?? '', ]); return 'announcement_dismissed_'.substr(md5($fingerprint), 0, 12); } public function render() { return view('livewire.web.components.ui.announcement-bar'); } }