srhinow/event-reservation-bundle

this extension the Contao calendar-modul with reservation-functions

Maintainers

Package info

gitlab.com/srhinow/event-reservation-bundle

Issues

Type:contao-bundle

pkg:composer/srhinow/event-reservation-bundle

Statistics

Installs: 344

Dependents: 0

Suggesters: 0

Stars: 0

2.1.0 2026-04-26 20:35 UTC

README

Contao 5 Bundle, das das Contao-Calendar-Modul um ein Reservierungssystem für Veranstaltungen ergänzt. Besucher können sich über ein Frontend-Formular für einen Event anmelden; das Bundle verwaltet Plätze, Status und E-Mail-Benachrichtigungen über das terminal42/notification_center.

Voraussetzungen

  • PHP ^8.3
  • Contao ^5.3
  • contao/calendar-bundle ^5.3
  • terminal42/notification_center ^2.5.3

Installation

composer require srhinow/event-reservation-bundle

Nach der Installation php bin/console contao:migrate ausführen (legt tl_event_reservations an und führt Schema-Migrationen durch).

Funktionsweise

Backend

Jedem Event in tl_calendar_events werden folgende Felder hinzugefügt:

FeldBeschreibung
attendanceMaximale Anzahl Teilnehmer
bookedAktuell bestätigte Buchungen (automatisch aktualisiert)

In der Backend Event-Listenansicht erscheint ein zusätzliches Icon, das direkt zu den Reservierungseinträgen des Events führt.

Reservierungseinträge (tl_event_reservations)

Jede Reservierung enthält:

  • Kontaktdaten (Vorname, Nachname, Straße, PLZ, E-Mail, Telefon)
  • Status: 0 = offen, 1 = bestätigt, 2 = abgelehnt, 3 = Warteliste
  • statusDate — Zeitstempel der letzten Statusänderung
  • sendEmail — löst beim Speichern eine NC-Benachrichtigung aus

Frontend-Module

ModultypBeschreibung
EventReservationFormReservierungsformular — liest den Event-Alias aus der URL
EventReservationReaderEvent-Reader-Variante mit eingebettetem Reservierungslink

Das Formular kann direkt auf der Event-Detailseite oder auf einer separaten Seite mit Event-Alias im URL-Parameter eingebunden werden.

Notification Center

Der Benachrichtigungstyp „Event-Reservierung" muss in den NC-Einstellungen angelegt werden.

Verfügbare Token:

TokenInhalt
##reservation_firstname##Vorname
##reservation_lastname##Nachname
##reservation_street##Straße
##reservation_postal##PLZ
##reservation_email##E-Mail
##reservation_phone##Telefon
##event_title##Veranstaltungstitel
##event_startDate##Startdatum
##event_endDate##Enddatum
##event_startTime##Startzeit
##event_endTime##Endzeit
##event_max_places##Maximale Teilnehmerzahl
##event_open_places##Noch verfügbare Plätze

Insert-Tags

In Texten (Eventbeschreibung, Formularseite, Bestätigungsseite) können folgende Insert-Tags verwendet werden:

{{curevent::title}}
{{curevent::startDate}}
{{curevent::endDate}}
{{curevent::startTime}}
{{curevent::endTime}}
{{curevent::max_places}}
{{curevent::open_places}}

Diese lesen automatisch den aktuellen Event aus der URL (GET-Parameter event oder auto_item).

Tests ausführen

PHPUnit wird aus dem Hauptprojekt heraus aufgerufen:

# aus /var/www/b/bz-niedersachsen.de/bzn-cms_contao5
vendor/bin/phpunit -c vendor/srhinow/event-reservation-bundle/phpunit.xml.dist