Files
filtered-eventsexport-bundle/README.md
T
2026-03-08 17:49:35 +01:00

3.1 KiB

filtered-eventsexport-bundle

Contao 5.7 Bundle für eine gefilterte Eventliste mit PDF-Export.

Funktionen

  • Frontend-Modul filtered_eventsexport_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 oder per Git-Repository eingebunden und im Hauptprojekt per Composer installiert.

Paketname:

  • mummert/filtered-eventsexport-bundle

Beispiel-Repository (Gitea):

  • ssh://git@git.mummert.media:3245/mummert/filtered-eventsexport-bundle.git

Modul-Konfiguration

Backend-Modultyp:

  • gefilterte Eventliste (filtered_eventsexport_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/FilteredEventsExportExtension.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.