Gewuenscht: CABINET 15 Prozent kleiner, Rotpunkt 20 Prozent groesser, Februe unveraendert. Rotpunkt fuellte die Box bereits ganz aus und konnte nur ueber eine groessere Box wachsen. - Alle vier Logo-Boxen 20 Prozent hoeher (Seitenkopf 96 → 115 px, Kacheln 44 → 53 px, /marken 56 → 67 px). Rotpunkt waechst dadurch um genau 20 %. - Februe gleicht das ueber 20 Prozent Luft oben und unten in der Datei aus und rendert unveraendert. - CABINET bekommt 18 Prozent Luft rechts – die Box begrenzt den 4:1-Schriftzug ueber die Breite, nicht ueber die Hoehe. Die Luft sitzt nur rechts, damit das Logo links buendig zum Text darunter bleibt. Nachgerechnet an allen drei Stellen: CABINET 85 %, Rotpunkt 120 %, Februe 100 %. Die Abstimmung steckt in den Zeichenflaechen der Dateien, nicht im Blade – so gilt sie an allen vier Stellen gleichzeitig. Der Merksatz fuer neue Logos steht im Kopf von BrandLogoSeeder. Tests: 873 gruen (3217 Assertions), Pint sauber, alle Themes gebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
70 lines
2.4 KiB
PHP
70 lines
2.4 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/ und sind dort **optisch aufeinander abgestimmt** – das Frontend
|
||
* rendert sie in einer gemeinsamen Box, in der jedes Logo seine Zeichenflaeche ausfuellt:
|
||
*
|
||
* Rotpunkt Zeichenflaeche = Inhalt → fuellt die Box, gilt als Bezugsgroesse
|
||
* CABINET Zeichenflaeche rechts +18 % → rendert 15 % kleiner als Rotpunkt
|
||
* Februe Zeichenflaeche oben/unten +20 % → rendert wie vor der Abstimmung
|
||
*
|
||
* Alle drei waren in der Zulieferung sehr unterschiedlich stark umrandet (CABINET nutzte nur
|
||
* 29 Prozent der Hoehe) und wirkten dadurch ungleich gross. Die Abstimmung steckt bewusst in den
|
||
* Dateien und nicht im Blade: so gilt sie an allen vier Stellen gleichzeitig – Seitenkopf,
|
||
* Startseiten-Kachel, /marken und „Weitere Marken“.
|
||
*
|
||
* Wird ein Logo im Admin ausgetauscht, sollte die neue Datei genauso knapp beschnitten sein.
|
||
* Ohne Rand rendert sie in Rotpunkt-Groesse, mit viel Rand entsprechend kleiner.
|
||
*
|
||
* {@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}.");
|
||
}
|
||
}
|