Event-Thumbnails: Vorschaubilder mit Auto-Resize und Typ-Logos

- Migration: thumbnail-Spalte in events-Tabelle
- Event-Model: imageUrl() liefert Custom-Thumbnail oder Standard-Logo
  je Event-Typ (Logo_Training.png, Logo_Heimspiel.png, etc.)
- Thumbnail-Upload neben Typ-Auswahl bei Erstellen/Bearbeiten
  mit Live-Vorschau und Entfernen-Button
- Automatische Skalierung auf max. FullHD (1920x1080) via GD
  und Speicherung als JPEG (Qualität 85)
- Event-Listen (App + Admin): Logo/Thumbnail links im Terminblock
- Übersetzungen in allen 6 Sprachen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rhino
2026-03-03 10:45:35 +01:00
parent 5942bdf6c3
commit c0287367c0
13 changed files with 215 additions and 38 deletions

View File

@@ -221,6 +221,8 @@ return [
'category_not_empty' => 'لا يمكن حذف الفئة لأنها تحتوي على ملفات.',
'confirm_delete_category' => 'هل تريد حذف هذه الفئة حقاً؟',
'event_files' => 'الملفات',
'event_thumbnail' => 'صورة مصغرة',
'upload_thumbnail' => 'اختر صورة',
'attach_from_library' => 'إرفاق من المكتبة',
'upload_new_file' => 'رفع ملف جديد',
'attached_files' => 'الملفات المرفقة',

View File

@@ -252,6 +252,8 @@ return [
'category_not_empty' => 'Kategorie kann nicht gelöscht werden, da sie noch Dateien enthält.',
'confirm_delete_category' => 'Kategorie wirklich löschen?',
'event_files' => 'Dateien',
'event_thumbnail' => 'Vorschaubild',
'upload_thumbnail' => 'Bild wählen',
'attach_from_library' => 'Aus Bibliothek anhängen',
'upload_new_file' => 'Neue Datei hochladen',
'attached_files' => 'Angehängte Dateien',

View File

@@ -220,6 +220,8 @@ return [
'category_not_empty' => 'Category cannot be deleted because it still contains files.',
'confirm_delete_category' => 'Really delete this category?',
'event_files' => 'Files',
'event_thumbnail' => 'Thumbnail',
'upload_thumbnail' => 'Choose image',
'attach_from_library' => 'Attach from library',
'upload_new_file' => 'Upload new file',
'attached_files' => 'Attached Files',

View File

@@ -221,6 +221,8 @@ return [
'category_not_empty' => 'Nie można usunąć kategorii, ponieważ zawiera pliki.',
'confirm_delete_category' => 'Naprawdę usunąć tę kategorię?',
'event_files' => 'Pliki',
'event_thumbnail' => 'Miniatura',
'upload_thumbnail' => 'Wybierz obraz',
'attach_from_library' => 'Dołącz z biblioteki',
'upload_new_file' => 'Prześlij nowy plik',
'attached_files' => 'Dołączone pliki',

View File

@@ -239,6 +239,8 @@ return [
'category_not_empty' => 'Категория не может быть удалена, так как содержит файлы.',
'confirm_delete_category' => 'Действительно удалить эту категорию?',
'event_files' => 'Файлы',
'event_thumbnail' => 'Миниатюра',
'upload_thumbnail' => 'Выбрать фото',
'attach_from_library' => 'Прикрепить из библиотеки',
'upload_new_file' => 'Загрузить новый файл',
'attached_files' => 'Прикреплённые файлы',

View File

@@ -239,6 +239,8 @@ return [
'category_not_empty' => 'Kategori dosya içerdiği için silinemez.',
'confirm_delete_category' => 'Bu kategoriyi gerçekten silmek istiyor musunuz?',
'event_files' => 'Dosyalar',
'event_thumbnail' => 'Önizleme resmi',
'upload_thumbnail' => 'Resim seç',
'attach_from_library' => 'Kütüphaneden ekle',
'upload_new_file' => 'Yeni dosya yükle',
'attached_files' => 'Ekli Dosyalar',