PHPackages                             markocupic/resource-booking-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. markocupic/resource-booking-bundle

ActiveContao-module

markocupic/resource-booking-bundle
==================================

Resource-booking-plugin for schools or other institutions. Book a resource for a predefined amount of time. This extension is a plugin for Contao CMS.

5.1.1(1mo ago)51.3k2[5 issues](https://github.com/markocupic/resource-booking-bundle/issues)[3 PRs](https://github.com/markocupic/resource-booking-bundle/pulls)MITPHPPHP ^8.1CI passing

Since May 14Pushed 1mo ago3 watchersCompare

[ Source](https://github.com/markocupic/resource-booking-bundle)[ Packagist](https://packagist.org/packages/markocupic/resource-booking-bundle)[ RSS](/packages/markocupic-resource-booking-bundle/feed)WikiDiscussions 5.x Synced 1mo ago

READMEChangelogDependencies (16)Versions (134)Used By (0)

[![Logo](https://github.com/markocupic/markocupic/raw/main/logo.png)](https://github.com/markocupic/markocupic/blob/main/logo.png)

resource-booking-bundle
=======================

[](#resource-booking-bundle)

Mit diesem Modul für Contao kann eine einfache Online-Ressourcenverwaltung betrieben werden. Das Modul wurde für eine Schule entwickelt, wo ein Zimmerreservations-System benötigt wurde. Natürlich kann das Plugin auch im Zusammenhang mit anderen Ressourcen betrieben werden.

Ab Version 3.x kann eingestellt werden, wie viele Items einer Ressource buchbar sein können. Damit wird es möglich eine Ressource von mehreren Personen buchen zu lassen, bis diese ausgebucht ist. Ein typischer use case können buchbare Geräte/Computer sein.

Rückwärtskompatibilität
-----------------------

[](#rückwärtskompatibilität)

**!Achtung beim Update von Version 2.x auf 3.x ist es zu grossen Änderungen an den Templates gekommen. Unter anderem wurden die Templates für eine bessere Übersichtlichkeit gesplitet. Vorher angepasste Custom-Templates müssen neu geschrieben werden.**

Take a look
-----------

[](#take-a-look)

[![preview animated](https://github.com/markocupic/markocupic/raw/main/resource-booking-bundle/resource-booking-bundle.gif)](https://github.com/markocupic/markocupic/blob/main/resource-booking-bundle/resource-booking-bundle.gif)

[Downlaod als mp4](https://github.com/markocupic/markocupic/blob/main/resource-booking-bundle/resource-booking-bundle.mp4?raw=true)

### Buchungstabelle mit Wochenübersicht:

[](#buchungstabelle-mit-wochenübersicht)

[![preview frontend](docs/screenshots/screenshot.png "Buchungstool im Frontend-Ansicht")](docs/screenshots/screenshot.png)

### Buchungsfenster:

[](#buchungsfenster)

[![preview frontend](docs/screenshots/screenshot2.png "Buchungstool im Frontend-Ansicht")](docs/screenshots/screenshot2.png)

Konfiguration
-------------

[](#konfiguration)

Nach der Installation mit dem Contao Manager müssen:

- Mindestens 1 Reservations-Zeitfenster-Typ erstellt werden.
- Danach darin die Reservations-Zeitfenster im Zeitformat H:i (08:00 bis 08:45) erstellt werden.
- Ressourcen-Typen erstellt werden.
- In jedem Ressourcen-Typ mindestens eine Ressource (z.B. Zimmer) erstellt werden.
- Mindestens 1 Mitglied (Frontend-Benutzer) angelegt werden. (Das Buchungsmodul wird nur bei eingeloggtem Benutzer angezeigt.)

[![App Konfiguration anpassen](docs/screenshots/adjust-app-configuration.png "Frontendmodul-Einstellungen")](docs/screenshots/adjust-app-configuration.png)

Die Erweiterung wird mit einer Standardkonfiguration ausgeliefert. Weitere Konfigurationssets können erstellt werden. Mehr dazu weiter [unten](#app-konfiguration-anpassen).

Das Tool setzt auf [vue.js](https://vuejs.org/) und [Bootstrap](https://getbootstrap.com/) auf. Die benötigten Libraries/Frameworks werden automatisch mitinstalliert und im Template eingebunden.

Anm: Bei der Installation wird neben den oben erwähnten Erweiterungen auch [codefog/contao-haste](https://github.com/codefog/contao-haste) mitinstalliert.

Benachrichtigung
----------------

[](#benachrichtigung)

Die Benachrichtigung via [Contao Notification Center](https://github.com/terminal42/contao-notification_center) bei Buchung/Stornierung ist ein kostenpflichtiges Zusatzfeature. Bitte nehmen Sie per E-Mail mit dem Autor der Erweiterung [Kontakt](https://github.com/markocupic/resource-booking-bundle/blob/0080449a1a3fde63b1b9ad0b2fd0fd153ba82b4c/composer.json#L16) auf.

Template mit zusätzlichen Mitgliederdaten erweitern
---------------------------------------------------

[](#template-mit-zusätzlichen-mitgliederdaten-erweitern)

Sollen zusätzliche Mitgliederdaten in der Buchungsübersicht angezeigt weden, müssen zwei Dinge angepasst werden.

Erstens muss in der Moduleinstellung das Feld, welches zusätzlich angezeigt werden soll, ausgewählt werden.

[![Alt text](docs/screenshots/screenshot3.png "Weitere Mitgliederfelder anzeigen")](docs/screenshots/screenshot3.png)

Weiter muss zusätzlich das Template angepasst werden. Mit *\[\[ booking.bookedByCompany \]\]* kann der Firmenname oder mit *\[\[ booking.bookedByCity \]\]* der Wohnort mitangezeigt werden. Achtung! Hierbei handelt es sich nicht um einen Contao Inserttag, sondern um die "vue.js-Mustache-Syntax-Schreibweise". Das Leerzeichen nach bzw. vor der geschweiften Klammer ist nötig.

[![Alt text](docs/screenshots/screenshot4.png "Weitere Mitgliederfelder anzeigen")](docs/screenshots/screenshot4.png)

Events
------

[](#events)

Der ***rbb.event.pre\_booking*** Event wird unmittelbar vor dem Datenbank-Insert ausgelöst. Mit einer Event-Subscriber-Klasse lassen sich beispielsweise die Datenbankeinträge manipulieren.

Der ***rbb.event.post\_booking*** Event wird nach dem Buchungs-Request ausgelöst. Mit einer Event-Subscriber-Klasse, die auf den Event hört, können unmittelbar nach der Buchung Aktionen durchgeführt werden. Beispielsweise kann eine Benachrichtigung gesendet werden oder es können weitere Einträge in der Datenbank getätigt werden.

Der ***rbb.event.pre\_cancelling*** Event wird unmittelbar vor dem Stornieren einer Buchung ausgelöst.

Der ***rbb.event.post\_cancelling*** Event wird unmittelbar nach dem Stornieren einer Buchung ausgelöst.

Event Subscriber
----------------

[](#event-subscriber)

Mit event subscribern/listeners kann die Applikation an mehreren Stellen erweitert werden. Dazu muss eine Subscriber/Listener Klasse erstellt werden.

```
# Registrierung anhand des rbb.event.post_booking Events in listener.yml
services:
  App\EventSubscriber\BookingEventSubscriber:
    tags:
    - { name: kernel.event_subscriber }
```

Weiter muss eine entsprechende Event-Subscriber-Klasse erstellt werden (hier anhand rbb.event.post\_booking):

```
