Zulieferung dev/2026-08-28/markenlogos/ (CABINET und Rotpunkt als SVG, Februe als PNG). Die Dateien liegen unter public/img/assets/marken/ und haengen als `logo` an der jeweiligen Marke. - Kopf der Markenseite: Logo anstelle des Schriftzugs, im <h1>, damit die Ueberschrift erhalten bleibt – den Text liefert das alt-Attribut. Ohne Logo erscheint weiterhin der Schriftzug. - Logo zusaetzlich auf der Startseiten-Kachel, im Block auf /marken und in den „Weitere Marken“-Kacheln am Seitenfuss. - Feste Box (Hoehe + Maximalbreite + object-contain) statt fester Hoehe: die Seitenverhaeltnisse gehen weit auseinander (Februe 2,3:1, Rotpunkt 1,2:1), mit reiner Hoehenangabe waere Februe doppelt so breit erschienen. Konvention aus der Sponsoring-Sektion. - Februe-Logo auf seinen Inhalt beschnitten: im Original waren knapp drei Viertel der Flaeche leerer Rand, in einer Box haette es winzig gewirkt. 53 KB → 15 KB. - BrandLogoSeeder traegt die Logos auf bestehenden Installationen nach – CmsBrandSeeder ueberspringt vorhandene Marken. Setzt nur `logo` und nur bei leerem Feld, ein im Admin hochgeladenes Logo bleibt stehen. Tests: 871 gruen (3215 Assertions), Pint sauber, alle Themes gebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\CmsBrand;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
/**
|
||
* Traegt die Markenlogos nach.
|
||
*
|
||
* Grundlage: dev/2026-08-28/markenlogos/ (Zulieferung vom 03.09.2026). Die Dateien liegen unter
|
||
* public/img/assets/marken/; das Februe-Logo ist dabei auf seinen Inhalt beschnitten – im
|
||
* Original war knapp drei Viertel der Flaeche leerer Rand, wodurch es neben den beiden SVGs
|
||
* winzig gewirkt haette.
|
||
*
|
||
* {@see CmsBrandSeeder} bringt dieselben Werte fuer frische Installationen mit, ueberspringt
|
||
* aber bereits angelegte Marken. Dieser Seeder fasst nur das Feld `logo` an und auch nur dann,
|
||
* wenn es leer ist – ein selbst hochgeladenes Logo bleibt also stehen. Mehrfaches Ausfuehren
|
||
* ist unbedenklich.
|
||
*
|
||
* php artisan db:seed --class=BrandLogoSeeder
|
||
*/
|
||
class BrandLogoSeeder extends Seeder
|
||
{
|
||
/** @var array<string, string> */
|
||
private const LOGOS = [
|
||
'cabinet' => 'marken/cabinet.svg',
|
||
'rotpunkt' => 'marken/rotpunkt.svg',
|
||
'februe' => 'marken/februe.png',
|
||
];
|
||
|
||
public function run(): void
|
||
{
|
||
$set = 0;
|
||
$kept = 0;
|
||
|
||
foreach (self::LOGOS as $slug => $logo) {
|
||
$brand = CmsBrand::query()->where('slug', $slug)->first();
|
||
|
||
if (! $brand) {
|
||
$this->command?->warn("Marke „{$slug}“ nicht gefunden – uebersprungen.");
|
||
|
||
continue;
|
||
}
|
||
|
||
if (trim((string) $brand->logo) !== '') {
|
||
$kept++;
|
||
|
||
continue;
|
||
}
|
||
|
||
$brand->logo = $logo;
|
||
$brand->save();
|
||
$set++;
|
||
}
|
||
|
||
$this->command?->info("Markenlogos gesetzt: {$set}, vorhandene behalten: {$kept}.");
|
||
}
|
||
}
|