Download the PHP package markocupic/calendar-event-booking-bundle without Composer

On this page you can find all versions of the php package markocupic/calendar-event-booking-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package calendar-event-booking-bundle

Events buchen mit Contao

Migration von Version 5.x nach 6.x

Bei der Migration von Version 5.x nach 6.x kam es zu zahlreichen Änderungen. Die Event- und Kalendereinstellungen müssen nach der Migration unbedingt überprüft und angepasst werden. Vor dem Upgrade sollte ein Datenbank-Backup erstellt werden.

Events buchen

Mit dieser Erweiterung für Contao CMS werden Events über ein Anmeldeformular buchbar. Double-Opt-In, eine Warteliste und ein Bezahlcheckout sind möglich. Das Anmeldeformular kann im Contao Formulargenerator erstellt werden. Während des Installationsprozesses wird ein Sample Anmeldeformular generiert. Beim Absenden des Formulars werden die Werte in der Datenbank in der Tabelle tl_calendar_events_member abgelegt. Die Buchungen sind im Backend einsehbar und über eine CSV-Datei exportierbar.

Bezahl-Checkout

Der Bezahl-Checkout ist zahlungspflichtig (Bitte Autor der Extension per E-Mail kontaktieren)

Im Moment sind folgende Zahlungsmethoden vorhanden:

Benachrichtigungen

Event-Organisator und Teilnehmer lassen sich bei jedem Prozess automatisch benachrichtigen (Notification Center).

Warteliste

Optional kann eine Warteliste aktiviert werden. Personen auf der Warteliste rücken automatisch nach, wenn Plätze durch Stornierung frei werden. Nachrücken können nur Personen,

Double-Opt-In

Bei den Buchungseinstellungen kann optional eine Bestätigung der Buchungsanfrage aktiviert werden. Dabei wird mit der Benachrichtigung (Event Buchung: Benachrichtigung nach dem Absenden des Event-Buchungs-Formulars) ein Link versandt. Dazu muss das Modul "Event Buchung: Buchungsbestätigung (Double-Opt-In)" erstellt werden. Wenn der Kunde/User seine Buchungsanfrage nicht bestätigt, erlischt nach einer frei konfigurierbaren Zeit seine Anfrage und sein Platz wird für andere frei. Abschnitt "Konfiguration" beachten!

Frontend-Module

Frontend-Modul Erklärung
Event-Booking - Buchungsformular Wird benötigt, um das Event-Buchungsformular auszugeben. Das Modul ist auf den Event-Identifier in der URL angewiesen und befindet sich typischerweise auf der selben Seite wie das Event-Leser-Modul.
Event-Booking - Checkout (Zusammenfassung/Zahlung) Dieses Modul sollte auf der Weiterleitungsseite eingerichtet werden, auf die Kunden nach dem Absenden des Buchungsformulars weitergeleitet werden. Es zeigt eine kurze Bestätigung und Zusammenfassung der Buchung an oder löst den Zahlungscheckout aus (kostenpflichtig).
Event-Booking - Buchungsbestätigung (Double-Opt-In) Optional! Dieses Modul muss auf der Seite platziert werden, wohin User weitergeleitet werden, wenn sie den Buchungsbestätigungslink angeklickt haben, welcher mit der Benachrichtigung (Event Buchung: Benachrichtigung nach dem Absenden des Event-Buchungs-Formulars) versandt worden ist. Die Seite muss in den Kalendereinstellungen konfiguriert werden. Dieses Modul sollte nicht in Kombination mit einem Bezahlungs-Checkout verwendet werden.
Event-Booking - Stornierungsformular Optional! Dieses Modul muss auf der Seite platziert werden, wohin User weitergeleitet werden, wenn sie den Buchungs-Stornierungslink angeklickt haben, welcher mit der Benachrichtigung (Event Buchung: Benachrichtigung nach dem Absenden des Event-Buchungs-Formulars) versandt worden ist. Die Seite muss in den Kalendereinstellungen konfiguriert werden.
Event-Booking - Teilnehmer-Liste Optional! Dieses Modul listet die vorhandenen Buchungen auf. Das Modul ist auf den Event-Identifier in der URL angewiesen und befindet sich typischerweise auf der selben Seite wie das Event-Leser-Modul.
Event-Booking - Meine Buchungen Zeigt alle Buchungen des aktuell eingeloggten Users an. Funktioniert nur, wenn der User zum Zeitpunkt der Event-Buchung eingeloggt war. Zu diesem Zweck sollte das Anmeldeformular nur angemeldeten FE-Usern zugänglich gemacht werden.

Einrichtung (Ablauf)

1. Kalender und Events anlegen.

Auf Kalenderebene muss/müssen unter anderem

Danach sollten die Events angelegt werden und die Buchungsoptionen konfiguriert werden.

2. Buchungsformular erstellen und erweitern

Beim Aufrufen der Datenbankmigration wird automatisch ein Beispielformular mit allen benötigten Feldern generiert.

Einstellungen im Formular

Formularfelder und Datenbankfelder

3. Frontend Module anlegen

4. Seiten und Artikel anlegen

So könnte ein funktionierender Seitenaufbau mit den zugehörenden Modulen aussehen:

Seite Event Buchung Checkout Opt-In (optional) Stornierung (optional) Meine Buchungen (optional)
Module Event-Booking - Buchungsformular
Event-Booking - Teilnehmer-Liste
Event-Booking - Checkout Event-Booking - Buchungs-Bestätigung Event-Booking - Stornierungsformular Event-Booking - Meine Buchungen
Zu beachten Beide Module benötigen den Event-Alias in der URL und sollten deshalb idealerweise auf einer Event Detailseite liegen. optional optional optional
Zeigt die Buchungen des eingeloggten Users an. Funktioniert nur, wenn der User zum Zeitpunkt der Registrierung angemeldet war.

5. Benachrichtigungen mit Notification Center anlegen

Benachrichtigungen (Notification Center)
Event Buchung: Benachrichtigung nach dem Absenden des Event-Buchungs-Formulars
Event Buchung: Opt-In Einladungsbenachrichtigung
Event Buchung: Benachrichtigung nach Einwilligung (Double-Opt-In Succes)
Event Buchung: Benachrichtigung nach der Event-Stornierung
Event Buchung: Benachrichtigung nach dem Nachrücken von der Warteliste
Event Buchung: Benachrichtigung nach erfolgreicher Zahlung

Versenden Sie zu verschiedenen Zeitpunkten Benachrichtigungen und nutzen Sie dabei die Simple Tokens.

Mit ##member_unsubscribeLink## kann ein tokengesicherter Event-Stornierungs-Link mitgesandt werden. Dazu muss aber im Event die Event-Stornierung aktiviert werden und im Kalender die Seite mit dem Modul Event-Stornierungsformular eingerichtet worden sein.

Gebrauch der Simple Tokens im Notification Center

Teilnehmer tl_calendar_events_member ##member_gender## (Männlich, Weiblich oder Divers), ##member_salutation## (Übersetzt: Herr oder Frau), ##member_email##, ##member_firstname##, ##member_street##, etc.
Event tl_calendar_events ##event_title##, ##event_street##, ##event_postal##, ##event_city##, ##event_unsubscribeLimitTstamp##, etc.
Organisator/Email-Absender tl_user ##organizer_name##, ##organizer_email##, etc.
Angaben zur Order beim Zahlungsdienstleister (nur mit Zahlungs-Checkout) tl_calendar_events_order ##order_uuid##, ##order_bookingUuid##, ##order_provider##, ##order_providerOrderId##, ##order_createTime##, ##order_status##, ##order_payerId##, ##order_payerEmail##, ##order_grossAmount##, ##order_netAmound##, ##order_vatAmount##, ##order_currencyCode##, ##order_details##, ##order_notes##
Angaben zur Zahlung beim Zahlungsdienstleister (nur mit Zahlungs-Checkout) tl_calendar_events_payment ##payment_uuid##, ##payment_bookingUuid##, ##payment_orderUuid##, ##payment_type##, ##payment_provider##, ##payment_providerOrderId##, ##payment_providerCaptureId##, ##payment_captureTime##, ##payment_status##, ##payment_isFinal##, ##payment_grossAmount##, ##payment_netAmountReceived##, ##payment_captureFee##, ##payment_currencyCode##, ##payment_refundTime##, ##payment_refundAmount##, ##payment_refundFee##, ##payment_details##, ##payment_notes##
Insert-Tags und Simple Tokens kombinieren format_date, usw. Simple Tokens lassen sich mit Insert-Tags kombinieren. -> {{format_date::##member_dateOfBirth##::d.m.Y}}, {{format_date::##event_startDate##::d.m.Y}}, usw.

Beachten Sie, dass die Simple-Tokens zur Order und zur Zahlung nur bei einem Zahlungs-Checkout Werte enthalten.

Benachrichtigung (Beispiel: Benachrichtigung nach erfolgreicher Zahlung)

6. In den Kalendereinstellungen alle Weiterleitungsseiten einrichten.

7. In den Kalendereinstellungen alle gewünschten Benachrichtigungen auswählen.

8. In den Kalendereinstellungen weitere Einstellungen vornehmen.

9. Bundle-Konfiguration anpassen config/config.yaml

Weitere Einstellungen lassen sich über die Bundle-Konfiguration vornehmen in der Datei config/config.yaml. Falls nicht vorhanden, muss diese zuerst erstellt werden.

Paramter Default Erklärung
auto_expire_reserved_bookings true Unbestätigte Anmeldungen/Anmeldungen oder Anmeldungen mit nicht erledigten Zahlungen werden nach Ablauf einer konfigurierbaren Zeit (auto_expire_time_limit) automatisch abgelehnt.
auto_expire_time_limit 3600 Zeit in Sekunden, welche dem User ab dem Moment der Registrierung bleibt, um seine Buchung per Link zu bestätigen oder um die Zahlung zu erledigen.
auto_delete_expired_bookings false Abgelehnte Anmeldungen werden automatisch aus der Datenbank gelöscht. Ein/Aus
auto_delete_canceled_bookings false Stornierte Anmeldungen werden automatisch aus der Datenbank gelöscht. Ein/Aus.
auto_waiting_list_promotion true Schaltet das automatische Nachrücken von der Warteliste ein/aus.
notification.log.exclude [] Hier können Sie einstellen, welche Felder tl_calendar_events_booking_notification vom Logging ausgeschlossen sein sollen.
rate_limiter.event_booking_form.enable true Form-Submits mit Symfony Rate Limiter begrenzen. Ein/Aus.
rate_limiter.event_booking_form.policy fixed_window Rate Limit Methode
rate_limiter.event_booking_form.limit 5 Rate Limit
rate_limiter.event_booking_form.interval 15 minutes Zeit-Intervall
member_list_export.enable_output_conversion false Zeichensatz-Konvertierung beim Member-Export ein-/ausschalten.
member_list_export.convert_from UTF-8 Quellzeichensatz
member_list_export.convert_to ISO-8859-1 Zielzeichensatz

Template Variablen

Folgende zusätzliche Template Variablen sind in allen Kalender-Templates einsetzbar:

Tag Type Erklärung
event object \Contao\CalendarEvntsModel $event Objekt mit allen Angaben zum Event. Z.B. gibt event.title den Event-Namen aus.
calendar object \Contao\CalendarModel $calendar Objekt mit allen Angaben zum übergeordneten Kalender. Z.B. gibt calendar.title den Kalender-Namen aus.
eventStatus string draft, booking_open, fully_booked, waiting_list_open, not_bookable, not_yet_bookable, booking_closed
canRegister bool Zeigt, ob eine Buchung (auf Warteliste) möglich ist.
isFullyBooked bool Zeigt, ob der Event ausgebucht ist.
bookingCount int Zeigt, die Anzahl Buchungen an.
freeSpotsCount int Zeigt die Anzahl freier Plätze an.
waitingListOpen bool Zeigt an, ob die Warteliste geöffnet ist.
hasLoggedInUser bool Zeigt an, ob ein Mitglied angemeldet ist.
loggedInUser null FrontendUser Gibt null oder das FrontendUser Objekt zurück.

Event Teilnehmer als CSV-Datei herunterladen (Encoding richtig einstellen)

Die Teilnehmer eines Events lassen sich im Backend als CSV-Datei (Excel) exportieren. In der config/config.yaml lässt sich das Encoding einstellen. Standardmässig werden die Daten im Format UTF-8 exportiert. Es kann sein, dass Excel (bei entsprechender Einstellung), dann Umlaute falsch darstellt. Das Problem kann behoben werden, wenn die config/config.yaml dahingehend anpasst wird, dass die Inhalte vor dem Export von UTF-8 nach ISO-8859-1 konvertiert werden.

Frontend-Module-Templates updatesicher anpassen

Die Standard Templates für die Frontend-Module befinden sich unter vendor/markocupic/calendar-event-booking-bundle/contao/templates/twig/frontend_module.

Um das Original-Template updatesicher zu überschreiben, muss das abgeänderte Template unter contao/templates/twig/frontend_module/**module-name**/ abgelegt werden. Nicht vergessen die obligatorische dot-file .twig-root in contao/templates/twig anzulegen! Wenn z.B. das Checkout Template angepasst werden soll, kann das neue Template updatesicher unter contao/templates/twig/frontend_module/event_booking_checkout/custom.html.twig abgelegt werden. Nicht vergessen den Installer einmal durchlaufen zu lassen! php composer install


All versions of calendar-event-booking-bundle with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
contao/core-bundle Version ^5.3
contao/calendar-bundle Version ^5.3
markocupic/export_table Version ^5.7
markocupic/contao-flash-message Version ^0.1
ramsey/uuid Version ^3.0 || ^4.0
codefog/contao-haste Version ^5.0
terminal42/notification_center Version ^2.0
symfony/lock Version ^6.4 || ^7.1
symfony/rate-limiter Version ^6.4 || ^7.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package markocupic/calendar-event-booking-bundle contains the following files

Loading the files please wait ...