定制 srhinow/event-reservation-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

srhinow/event-reservation-bundle

Composer 安装命令:

composer require srhinow/event-reservation-bundle

包简介

this extension the Contao calendar-modul with reservation-functions

README 文档

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.

Anforderungen

AbhängigkeitVersion
PHP^8.3
Contao Core Bundle^5.3
Contao Calendar Bundle^5.3
terminal42/notification_center^2.5.3

Installation

composer require srhinow/event-reservation-bundle

Nach der Installation die Datenbank-Migration ausführen:

php bin/console contao:migrate

Backend

Erweiterung tl_calendar_events

Das Bundle fügt in der Event-Maske eine neue Palette-Sektion „Reservierung" hinzu:

FeldBeschreibung
Reservierungslink ausblenden (dontShowReserveLink)Checkbox: Blendet den Reservierungslink in der Eventansicht aus
Maximale Teilnehmer (attendance)Anzahl der verfügbaren Plätze (Pflichtfeld, Ganzzahl)
Benachrichtigungs-E-Mail (ereserv_formto_email)E-Mail-Adresse für eingehende Reservierungsbenachrichtigungen
E-Mail-Betreff (ereserv_formto_subject)Betreff der Benachrichtigungs-E-Mail

Automatisch berechnete Felder (nicht im Formular sichtbar):

FeldBeschreibung
bookedAktuell bestätigte Buchungen — wird bei jeder Reservierungsänderung automatisch aktualisiert

In der Backend-Eventliste erscheint ein zusätzliches „Reservierungen"-Icon, das direkt zu den Reservierungseinträgen des Events führt.

Reservierungseinträge (tl_event_reservations)

Kindeinträge eines Events. Über die globale Operation „CSV-Export" können alle Reservierungen eines Events exportiert werden.

FeldBeschreibung
Vorname (firstname)Pflichtfeld
Nachname (lastname)Pflichtfeld
Straße (street)Optionales Adressfeld
PLZ (postal)Optionales Adressfeld
Ort (city)Pflichtfeld
Telefon (phone)Pflichtfeld, wird auf Telefonnummern validiert
E-Mail (email)Pflichtfeld, primäre E-Mail-Adresse
E-Mail 2 (email2)Optionale zweite E-Mail-Adresse
Status (status)offen / bestätigt / abgelehnt / Warteliste — löst bei Änderung statusDate aus
Benachrichtigung (notification)Auswahl einer Notification-Center-Benachrichtigung
E-Mail senden (sendEmail)Checkbox: Löst beim Speichern eine NC-Benachrichtigung aus
Anmerkung (annotation)Internes Notizfeld (Freitext)

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).

Datenbankstruktur

Erweiterung tl_calendar_events

SpalteTypBeschreibung
dontShowReserveLinkchar(1)Reservierungslink ausblenden
attendancesmallint(5) unsignedMaximale Teilnehmerzahl
ereserv_formto_emailvarchar(255)Benachrichtigungs-E-Mail
ereserv_formto_subjectvarchar(255)Benachrichtigungs-Betreff
bookedsmallint(1)Aktuell bestätigte Buchungen (automatisch)

tl_event_reservations

SpalteTypBeschreibung
idint(10) unsigned PK AIPrimärschlüssel
pidint(10) unsignedEltern-Event (tl_calendar_events.id)
tstampint(10) unsignedZeitstempel letzte Änderung
modifyint(10) unsignedReserviertes Änderungsdatum
member_idint(10) unsignedVerknüpftes Frontend-Mitglied (optional)
firstnamevarchar(255)Vorname
lastnamevarchar(255)Nachname
streetvarchar(255)Straße
postalvarchar(32)PLZ
cityvarchar(255)Ort
phonevarchar(64)Telefon
emailvarchar(255)E-Mail
email2varchar(255)Zweite E-Mail
statuschar(1)Status: leer/1/2/3
notificationint unsignedAusgewählte NC-Benachrichtigung
statusDatevarchar(10)Zeitstempel der letzten Statusänderung
sendEmailchar(1)E-Mail senden beim Speichern
annotationtext NULLInterne Anmerkung

Tests ausführen

vendor/bin/phpunit -c vendor/srhinow/event-reservation-bundle/phpunit.xml.dist

Changelog

Siehe CHANGELOG.md für die vollständige Versionshistorie.

Lizenz

LGPL-3.0-or-later

Autor

Sven Rhinowsr-tag.de
Support: kservice@sr-tag.de
Quellcode: gitlab.com/srhinow/event-reservation-bundle

srhinow/event-reservation-bundle 适用场景与选型建议

srhinow/event-reservation-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 360 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 12 月 25 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「event」 「calendar」 「contao」 「reservation」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 srhinow/event-reservation-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 srhinow/event-reservation-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 srhinow/event-reservation-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 360
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 21
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-3.0-or-later
  • 更新时间: 2018-12-25