Initial bundle implementation
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# gymnasium-nossen-bundle
|
||||
|
||||
Contao 5.7 Bundle für eine gefilterte Eventliste mit PDF-Export.
|
||||
|
||||
## Funktionen
|
||||
|
||||
- Frontend-Modul `gymnasium_eventlist` (Kategorie `events`)
|
||||
- Zwei-Spalten-Layout im Frontend (links Filter/Export, rechts Eventliste)
|
||||
- Filter über:
|
||||
- Event-Archive (Checkboxen, Multi-Select)
|
||||
- Date-Range `from` und `to` (`YYYY-MM-DD`)
|
||||
- Auto-Filter ohne separaten Submit-Button (bei Datums- oder Archivänderung)
|
||||
- Flatpickr via CDN (Dark Theme) mit Clear-Button pro Datumsfeld
|
||||
- Ausgabe nur erlaubter Archive/Events gemäß Archivschutz
|
||||
- CSS-Klassen pro Event im Markup:
|
||||
- `pid-<id>`
|
||||
- `is-featured` (wenn Event im Backend hervorgehoben)
|
||||
- PDF-Export ausgewählter Events über `/events/pdf`
|
||||
- Optionale PDF-Felder:
|
||||
- Überschrift
|
||||
- Einleitungstext
|
||||
|
||||
## Anforderungen
|
||||
|
||||
- PHP `^8.4`
|
||||
- `contao/core-bundle ^5.7`
|
||||
- `contao/calendar-bundle ^5.7`
|
||||
- `dompdf/dompdf ^3.1`
|
||||
|
||||
## Installation im Hauptprojekt
|
||||
|
||||
Das Bundle wird als `path`-Repository eingebunden und im Hauptprojekt per Composer installiert.
|
||||
|
||||
## Modul-Konfiguration
|
||||
|
||||
Backend-Modultyp:
|
||||
|
||||
- `gefilterte Eventliste` (`gymnasium_eventlist`)
|
||||
|
||||
Einstellungen:
|
||||
|
||||
- `cal_calendar` (Mehrfachauswahl)
|
||||
|
||||
Hinweis zur Archivfilter-Vorauswahl:
|
||||
|
||||
- Erstaufruf: alle erlaubten Archive sind vorausgewählt
|
||||
- Bewusst alle Archive abgewählt: es werden keine Events angezeigt (`Keine Termine gefunden.`)
|
||||
|
||||
## PDF-Export
|
||||
|
||||
Route:
|
||||
|
||||
- `POST /events/pdf`
|
||||
|
||||
POST-Felder:
|
||||
|
||||
- `event_ids[]` (Pflicht)
|
||||
- `from` (optional)
|
||||
- `to` (optional)
|
||||
- `pdf_heading` (optional)
|
||||
- `pdf_intro` (optional)
|
||||
|
||||
PDF-Inhalt:
|
||||
|
||||
- Logo oben rechts (nur erste Seite)
|
||||
- Überschrift (optional überschreibbar)
|
||||
- Einleitungstext (optional)
|
||||
- Datumsbereich (falls gesetzt)
|
||||
- Eventzeilen mit Contao-Zeitlogik (`addTime`, `startDate/endDate`, `startTime/endTime`)
|
||||
- Datum/Uhrzeit in Dunkelgrau und kursiv
|
||||
|
||||
## Berechtigungslogik (Archive)
|
||||
|
||||
- Nicht eingeloggte Nutzer sehen nur ungeschützte Event-Archive.
|
||||
- Eingeloggte `tl_member` sehen zusätzlich geschützte Archive, wenn ihre Mitgliedsgruppen in den Archivgruppen enthalten sind.
|
||||
- Diese Logik gilt sowohl für den Archiv-Filter als auch für die Eventliste.
|
||||
|
||||
## Aktive Struktur (final)
|
||||
|
||||
- `contao/config/modules.php`
|
||||
- `contao/dca/tl_module.php`
|
||||
- `contao/languages/de/modules.php`
|
||||
- `contao/languages/en/modules.php`
|
||||
- `contao/templates/frontend/module_event_list.html.twig`
|
||||
- `src/Contao/Manager/Plugin.php`
|
||||
- `src/Controller/EventListModuleController.php`
|
||||
- `src/Controller/EventPdfController.php`
|
||||
- `src/DependencyInjection/GymnasiumNossenExtension.php`
|
||||
- `src/Resources/config/routes.yaml`
|
||||
- `src/Resources/contao/config/services.yaml`
|
||||
- `Resources/views/frontend/module_event_list.html.twig`
|
||||
- `Resources/views/pdf/events.html.twig`
|
||||
- `Resources/img/2022_06_26_Gymnasium_Nossen_Siegel_schwarz.svg`
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Die primären Twig-Dateien für das Runtime-Rendering liegen unter `Resources/views/...`.
|
||||
- Nach Änderungen: `cache:clear` ausführen.
|
||||
Reference in New Issue
Block a user