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>
64 lines
2.1 KiB
PHP
64 lines
2.1 KiB
PHP
<?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;
|
||
}
|
||
}
|