b2in/database/seeders/BrandGalleryCaptionNormalizerSeeder.php
Kevin Adametz a52347845e Abstimmungsrunde 03.09.: CABINET-Seite, korrigierte Markentexte, Galerie-Hinweise, Abschluss-CTA
Setzt die vier Punkte aus dev/2026-08-28/umsetzung-03-09-2026.md um.

1. Markenseiten
   - Rotpunkt und Febrü auf die korrigierten Fassungen (*_FINAL.md) gebracht:
     bei Rotpunkt sind die beiden Nachhaltigkeitsabschnitte zusammengefuehrt,
     bei Febrü behaelt der Blaue-Engel-Satz seinen Produktbezug ohne den
     erklaerenden Zusatz.
   - CABINET nach demselben Muster neu verfasst: 8 Abschnitte, 3 Vertiefungen,
     eigener Abschlussblock und eigene Widget-Beschriftung. Bewusst ohne Zahlen,
     Zertifizierungen oder Herstelleraussagen – dafuer gibt es keine Quelle.
     Braucht Marcels Freigabe.
   - Febrü-Claim korrigiert: „Arbeiten, wo man gerne bleibt.“

2. „BEISPIEL“-Vermerk aus den Bildunterschriften entfernt. Weil die Demobilder
   auf Vorschau und Live bereits in der Datenbank stehen, entfernt
   BrandGalleryCaptionNormalizerSeeder ihn dort in-place – nur der Text, Bild,
   Kategorie und Reihenfolge bleiben unberuehrt.

3. Hinweise zu Visualisierungen neu formuliert (Markengalerie und /referenzen).
   Die Trennung bleibt, sie laeuft nur nicht mehr ueber eine Verneinung.

4. Abschluss-CTA der Markenseiten ueberarbeitet: weiche Lichtflaechen statt
   Vollton, gesetzter Hauptbutton mit Pfeil, Herstellerseite als gleichwertiger
   Outline-Button, Showroom als Fusszeile.

Ein Pruefskript hat jeden veroeffentlichten Satz gegen die abgestimmten
Markdown-Fassungen gehalten: keine Abweichung.

Tests: 859 gruen (3180 Assertions), Pint sauber, npm run build:b2in gebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 09:17:16 +00:00

64 lines
2.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Database\Seeders;
use App\Models\CmsBrand;
use Illuminate\Database\Seeder;
/**
* Entfernt den Vermerk „BEISPIEL – “ aus vorhandenen Galerie-Bildunterschriften.
*
* Der Vermerk stammt aus {@see DemoBrandGallerySeeder} und ist auf Kundenwunsch entfallen. Weil
* die Bilder auf Vorschau- und Livesystem bereits in der Datenbank stehen, reicht die Änderung am
* Demo-Seeder nicht aus – der wuerde beim erneuten Ausfuehren die gesamte Galerie ueberschreiben
* und damit gepflegte Bilder verlieren.
*
* Dieser Seeder fasst deshalb ausschliesslich den Text der Bildunterschrift an. Bilder, Kategorien
* und Reihenfolge bleiben unveraendert. Mehrfaches Ausfuehren ist unbedenklich.
*
* php artisan db:seed --class=BrandGalleryCaptionNormalizerSeeder
*/
class BrandGalleryCaptionNormalizerSeeder extends Seeder
{
/** Praefixe, die vorne aus der Bildunterschrift entfernt werden. */
private const PREFIXES = ['BEISPIEL – ', 'BEISPIEL - ', 'BEISPIEL: ', 'BEISPIEL '];
public function run(): void
{
$cleaned = 0;
foreach (CmsBrand::query()->whereNotNull('gallery')->get() as $brand) {
$gallery = $brand->gallery ?? [];
$changed = false;
foreach ($gallery as $index => $item) {
$caption = (string) ($item['caption'] ?? '');
$stripped = $this->stripPrefix($caption);
if ($stripped !== $caption) {
$gallery[$index]['caption'] = $stripped;
$changed = true;
$cleaned++;
}
}
if ($changed) {
$brand->gallery = CmsBrand::normalizeGallery($gallery);
$brand->save();
}
}
$this->command?->info("Bildunterschriften bereinigt: {$cleaned}.");
}
private function stripPrefix(string $caption): string
{
foreach (self::PREFIXES as $prefix) {
if (str_starts_with($caption, $prefix)) {
return trim(substr($caption, strlen($prefix)));
}
}
return $caption;
}
}