Markenlogos einbinden: Seitenkopf und alle Kacheln
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>
This commit is contained in:
parent
093e0ece51
commit
c8899e2d7d
12 changed files with 282 additions and 13 deletions
59
database/seeders/BrandLogoSeeder.php
Normal file
59
database/seeders/BrandLogoSeeder.php
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<?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}.");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue