# Backend Booking

Buchungen für DPCalendar direkt im Joomla-Backend erfassen, ohne Umweg über das Frontend-Formular · Version 1.0.6 · Stand 12.08.2026

# Backend Booking im Überblick

Backend Booking ergänzt das Buchungssystem von [DPCalendar](https://www.digital-peak.com)um das, was im Alltag oft fehlt: die Möglichkeit, Buchungen direkt im Joomla-Backend zu erfassen. Ruft ein Teilnehmer telefonisch an, kommt eine Anmeldung per E-Mail oder auf Papier — mit diesem Plugin tragen Sie die Buchung in wenigen Klicks ein, ohne den Umweg über das Frontend-Formular.

![Die DPCalendar-Buchungsübersicht mit dem Button „Neue Buchung“](https://docs.graup-it.de/uploads/images/gallery/2026-07/nA7doku-01-buchungen-button.png)

## Was das Plugin kann

- **Button „Neue Buchung“** in der DPCalendar-Buchungsübersicht (*Komponenten → DPCalendar → Buchungen*).
- **Veranstaltungsauswahl mit Filter:** Suche, Kalender, Ort und Zeitraum — inklusive Belegungsanzeige, Serien-Kennzeichnung und Wartelisten-Hinweis.
- **Das komplette Buchungsformular:** Ticketarten mit Preisen, Buchungsoptionen, Zahlungsanbieter, Status sowie alle benutzerdefinierten Felder, die Sie in DPCalendar eingerichtet haben.
- **Gastbuchungen** mit Kontaktdaten — auf Wunsch mit automatischer Benutzerkonto-Erstellung.
- **Mehrere Benutzer auf einmal buchen:** Benutzer per Suchfeld auswählen, dann alle Buchungsfelder für jede Person einzeln ausfüllen — vorbefüllt aus Konto und Benutzerprofil.
- **E-Mail-Steuerung:** die regulären DPCalendar-Buchungsmails senden oder für Backend-Buchungen komplett unterdrücken.
- **Kalender-Beschränkung:** Buchungen sind nur für Veranstaltungen der Kalender möglich, die Sie in den Plugin-Optionen freigegeben haben.

## Kein Eingriff in DPCalendar

Das Plugin verändert keine einzige DPCalendar-Datei. Es nutzt ausschließlich dokumentierte Erweiterungspunkte und speichert über dieselbe Buchungs-Logik, die auch das Frontend verwendet. Preise, Ticketlimits, Restkapazitäten, benutzerdefinierte Felder und E-Mails verhalten sich daher exakt so, wie Sie es von DPCalendar kennen — und DPCalendar-Updates werden nicht blockiert.

<div class="callout info" id="bkmrk-backend-buchungen-la">Backend-Buchungen laufen bewusst ohne Bezahlvorgang: Es wird kein Kunde zu PayPal &amp; Co. weitergeleitet. Bei kostenpflichtigen Veranstaltungen wählen Sie den Zahlungsanbieter (z. B. Überweisung) einfach im Formular aus; den Zahlungseingang verbuchen Sie wie gewohnt über den Buchungsstatus.

</div>## Für wen ist das Plugin gedacht?

Für Vereine, Veranstalter und Agenturen, die Anmeldungen nicht nur online erhalten: Telefonische Anmeldungen, Anmeldungen am Empfang oder nachträgliche Korrekturen lassen sich damit genauso sauber erfassen wie Online-Buchungen — mit denselben Tickets, Feldern und Bestätigungsmails.

<small>Gilt für Version 1.0.6.</small>

# Voraussetzungen und Installation

Backend Booking ist ein einzelnes Joomla-Plugin. Diese Seite nennt die Voraussetzungen und beschreibt, was nach der Installation zu tun ist.

## Voraussetzungen

<table class="table" id="bkmrk-joomla6.0-oder-neuer"> <tbody> <tr><td>Joomla</td><td>6.0 oder neuer</td></tr> <tr><td>PHP</td><td>8.2 oder neuer</td></tr> <tr><td>DPCalendar</td><td>10.11.x mit aktiviertem Buchungssystem (DPCalendar Pro)</td></tr> </tbody></table>

<div class="callout info" id="bkmrk-das-buchungssystem-i">Das Buchungssystem ist Bestandteil von DPCalendar Pro. Mit der kostenlosen DPCalendar-Version gibt es keine Buchungen — und damit auch nichts, was dieses Plugin erfassen könnte.

</div>## Installation

1. Laden Sie die Datei `plg_dpcalendar_backendbooking-<version>.zip` herunter.
2. Öffnen Sie im Backend *System → Installieren → Erweiterungen* und ziehen Sie die ZIP-Datei in den Bereich *Paketdatei hochladen*.
3. Das Plugin wird bei der Installation automatisch aktiviert — Sie müssen es nicht separat einschalten.

Die Installation prüft vorab, ob DPCalendar installiert ist. Fehlt DPCalendar (oder ist es älter als Version 10), wird die Installation mit einer entsprechenden Meldung abgebrochen — installieren Sie in dem Fall zuerst DPCalendar.

Außerdem richtet die Installation automatisch das Template-Override für die DPCalendar-Buchungsübersicht ein, das den gebuchten Termin in der Liste anzeigt — Details im Kapitel [Termin in der Buchungsübersicht](https://docs.graup-it.de/books/backend-booking/page/termin-in-der-buchungsubersicht-override).

![Das Panel nach der Installation von Backend Booking mit dem Hinweis zum eingerichteten Template-Override](https://docs.graup-it.de/uploads/images/gallery/2026-07/doku-07-installationspanel.png)

Das Panel nach der Installation nennt die installierte Version und meldet, in welchem Template das Override eingerichtet wurde. Die drei Karten führen zum Schnellstart, zum Download-Schlüssel für Aktualisierungen und zum Handbuch.

## Nach der Installation: Kalender freigeben

Aus Sicherheitsgründen startet das Plugin ohne freigegebene Kalender — die Backend-Buchung ist damit zunächst inaktiv. Öffnen Sie *System → Plugins*, suchen Sie nach *DPCalendar - Backend Booking* und wählen Sie in der Option **Kalender** die Kalender aus, deren Veranstaltungen im Backend buchbar sein sollen.

<div class="callout warning" id="bkmrk-unterkalender-werden">Unterkalender werden **nicht** automatisch einbezogen. Wenn ein Unterkalender buchbar sein soll, wählen Sie ihn ausdrücklich mit aus.

</div>## Erste Kontrolle

Öffnen Sie *Komponenten → DPCalendar → Buchungen*. In der Werkzeugleiste erscheint der Button **Neue Buchung**. Ein Klick darauf führt zur Veranstaltungsauswahl — sehen Sie dort Ihre Veranstaltungen, ist alles korrekt eingerichtet.

Fehlt der Button, prüfen Sie: Ist das Plugin aktiviert? Hat Ihr Benutzer die DPCalendar-Berechtigung *Buchungen für andere Personen erstellen*? Mehr dazu im Kapitel [Konfiguration und Berechtigungen](https://docs.graup-it.de/books/backend-booking/page/konfiguration-und-berechtigungen).

## Was in der Datenbank angelegt wird

Nichts. Das Plugin legt keine eigenen Tabellen an — alle Buchungen, Tickets und Feldwerte speichert DPCalendar selbst, genau wie bei einer Frontend-Buchung. Bei einer Deinstallation des Plugins bleiben sämtliche erfassten Buchungen erhalten.

<small>Gilt für Version 1.0.6.</small>

# Download-Schlüssel und Updates

Backend Booking erhält Updates über den offiziellen Joomla-Update-Mechanismus. Damit Ihre Website die Aktualisierungen abrufen darf, tragen Sie einmalig Ihren persönlichen Download-Schlüssel ein.

## Den Download-Schlüssel eintragen

1. Erzeugen Sie Ihren Download-Schlüssel in Ihrem Kundenkonto auf [graup-it.de](https://www.graup-it.de) (Menüpunkt *Download-IDs*). Ein Schlüssel gilt pro Website und deckt alle darüber bezogenen Erweiterungen ab.
2. Öffnen Sie im Backend *System → Aktualisieren → Update-Quellen*.
3. Öffnen Sie den Eintrag *DPCalendar Backend Booking Updates* und tragen Sie den Schlüssel in das Feld *Download-Schlüssel* ein.
4. Speichern.

<div class="callout warning" id="bkmrk-achten-sie-darauf%2C-d">Achten Sie darauf, den Schlüssel **ohne führende oder abschließende Leerzeichen** einzufügen. Ein mitkopiertes Leerzeichen führt beim Update zu einer Fehlermeldung („URL rejected“ bzw. „Paketdownload fehlgeschlagen“).

</div>## Updates einspielen

1. Öffnen Sie *System → Aktualisieren → Erweiterungen aktualisieren*.
2. Ist eine neue Version verfügbar, erscheint das Plugin in der Liste. Wählen Sie es aus und klicken Sie auf *Aktualisieren*.
3. Joomla lädt das Paket über Ihren Download-Schlüssel, prüft die Prüfsumme und spielt die neue Version ein.

Findet Joomla kein Update, obwohl eine neue Version vorliegt, klicken Sie zunächst auf *Auf Updates prüfen*, um den Zwischenspeicher zu aktualisieren.

## Manueller Weg

Sie können jede Version auch manuell installieren: das ZIP herunterladen und wie bei der Erstinstallation über *System → Installieren → Erweiterungen* einspielen. Ein Update überschreibt die vorhandene Installation und erhält Ihre Einstellungen.

## Nach DPCalendar-Updates

Das Plugin nutzt die Buchungs-Schnittstellen von DPCalendar. Nach einem größeren DPCalendar-Update empfiehlt sich eine kurze Probebuchung im Backend — so stellen Sie sicher, dass beide Erweiterungen weiterhin zusammenpassen. Freigegebene Kompatibilitätsstände werden in den Versionshinweisen genannt.

<small>Gilt für Version 1.0.6.</small>

# Schnellstart: die erste Buchung

So erfassen Sie Ihre erste Backend-Buchung — vom Button bis zur Erfolgsmeldung dauert es keine Minute.

## Schritt 1: Veranstaltung wählen

1. Öffnen Sie *Komponenten → DPCalendar → Buchungen* und klicken Sie in der Werkzeugleiste auf **Neue Buchung**.
2. Sie sehen die Liste der buchbaren Veranstaltungen aus den freigegebenen Kalendern — mit Termin, Kalender und aktueller Belegung. Über die Filterleiste grenzen Sie die Liste bei Bedarf ein.
3. Klicken Sie in der Zeile der gewünschten Veranstaltung auf **Buchen**.

![Die Veranstaltungsauswahl mit Filterleiste und Belegungsanzeige](https://docs.graup-it.de/uploads/images/gallery/2026-07/dQbdoku-02-veranstaltungsauswahl.png)

## Schritt 2: Buchung ausfüllen

1. Wählen Sie oben die **Anzahl der Tickets** (bei mehreren Ticketarten je Art) und gegebenenfalls Buchungsoptionen.
2. Tragen Sie in der Karte *Als Gast buchen* die Kontaktdaten ein: Vorname, Nachname und E-Mail sind Pflicht. Alternativ wählen Sie in der Karte darüber einen oder mehrere **bestehende Benutzer** aus — dann entfällt die Gast-Eingabe.
3. Füllen Sie die zusätzlichen Felder aus, sofern Ihre DPCalendar-Installation welche definiert.
4. Rechts unter *Buchungsdetails* passen Sie bei Bedarf Buchungsdatum, Status und — bei kostenpflichtigen Veranstaltungen — den Zahlungsanbieter an.
5. Klicken Sie auf **Buchung speichern**.

![Das Buchungsformular mit Tickets, Benutzer- und Gast-Karte](https://docs.graup-it.de/uploads/images/gallery/2026-07/GsOdoku-03-buchungsformular.png)

## Schritt 3: Ergebnis prüfen

Nach dem Speichern landen Sie wieder in der Buchungsübersicht. Die Erfolgsmeldung nennt die neue Buchung samt Veranstaltungstermin und verlinkt sie direkt — ein Klick öffnet die Buchung zur Kontrolle oder Nachbearbeitung.

<div class="callout success" id="bkmrk-die-buchung-durchl%C3%A4u">Die Buchung durchläuft dieselbe DPCalendar-Logik wie eine Online-Buchung: Tickets werden angelegt, Preise berechnet, Restplätze fortgeschrieben und — falls aktiviert — die üblichen Bestätigungs- und Benachrichtigungsmails versendet.

</div>## Wie es weitergeht

- Alle Details zur Auswahlliste: [Die Veranstaltungsauswahl](https://docs.graup-it.de/books/backend-booking/page/die-veranstaltungsauswahl)
- Alle Details zum Formular: [Das Buchungsformular](https://docs.graup-it.de/books/backend-booking/page/das-buchungsformular)
- Mehrere Personen in einem Durchgang: [Mehrere Benutzer auf einmal buchen](https://docs.graup-it.de/books/backend-booking/page/mehrere-benutzer-auf-einmal-buchen)

<small>Gilt für Version 1.0.6.</small>

# Die Veranstaltungsauswahl

Der erste Schritt jeder Backend-Buchung ist die Veranstaltungsauswahl. Sie zeigt ausschließlich Veranstaltungen, die tatsächlich buchbar sind — und nur aus den Kalendern, die Sie in den Plugin-Optionen freigegeben haben.

## Was in der Liste erscheint

Eine Veranstaltung erscheint, wenn alle folgenden Punkte zutreffen:

- Sie liegt in einem **freigegebenen Kalender** (Unterkalender zählen nicht automatisch mit).
- Sie liegt in der Zukunft, innerhalb des in den Optionen eingestellten **Zeitraums** (Standard: 365 Tage).
- Ihr **Anmeldefenster** ist offen — DPCalendars Anmeldebeginn und -schluss gelten auch im Backend.
- Sie ist nicht ausgebucht — *außer* sie hat eine **Warteliste**, dann bleibt sie buchbar und wird entsprechend gekennzeichnet.

## Die Spalten

<table class="table" id="bkmrk-veranstaltungtitel%2C-"> <tbody> <tr><td>Veranstaltung</td><td>Titel, bei Bedarf ergänzt um die Hinweise *Serie* und *Warteliste* (siehe unten)</td></tr> <tr><td>Termin</td><td>Datum und Uhrzeit im Format Ihrer DPCalendar-Konfiguration</td></tr> <tr><td>Kalender</td><td>der Kalender der Veranstaltung</td></tr> <tr><td>Belegung</td><td>„12 von 20 belegt“ bzw. *Unbegrenzt*, wenn kein Platzlimit gesetzt ist</td></tr> </tbody></table>

## Filter

Über der Liste finden Sie eine Filterleiste:

- **Veranstaltung suchen** — Volltextsuche in Titel und Beschreibung. Mit `id:123` springen Sie direkt zu einer Veranstaltungs-ID.
- **Kalender** — erscheint nur, wenn mehr als ein Kalender freigegeben ist.
- **Ort** — filtert nach den DPCalendar-Orten.
- **Von / Bis** — grenzt den Zeitraum ein.

## Serientermine

Wie eine Serie in der Liste auftaucht, bestimmt die DPCalendar-Einstellung *Serie buchen* der jeweiligen Veranstaltung:

- **Ganze Serie buchen:** Die Serie erscheint als *eine* Zeile mit dem Hinweis *Serie*. Eine Buchung gilt für die komplette Serie.
- **Einzeltermine buchbar** (Standard): Jeder Termin erscheint als eigene Zeile — Sie buchen gezielt einen bestimmten Termin.

## Warteliste

Ist eine Veranstaltung voll, hat aber eine Warteliste, bleibt sie buchbar und trägt den Hinweis *Warteliste*. Im Buchungsformular ist der Status dann bereits auf *Warten*vorausgewählt, damit die Veranstaltung nicht versehentlich überbucht wird. Rückt ein Platz nach, ändern Sie den Status der Buchung einfach in der DPCalendar-Buchungsübersicht.

## Wenn die Liste lang wird

Die Liste zeigt maximal so viele Einträge, wie in der Option *Max. Listeneinträge*eingestellt ist (Standard: 100). Wird das Limit erreicht, weist ein Hinweis darauf hin — grenzen Sie die Liste dann über die Filter ein, statt zu blättern.

<small>Gilt für Version 1.0.6.</small>

# Das Buchungsformular

Das Buchungsformular bündelt alles, was zu einer Buchung gehört: Tickets, Optionen, die Person (Gast oder Benutzerkonto), zusätzliche Felder und die Buchungsdetails. Im Kopf sehen Sie jederzeit Veranstaltung, Termin und aktuelle Belegung.

## Tickets und Buchungsoptionen

Bei Veranstaltungen mit mehreren Ticketarten (z. B. Erwachsener/Kind) wählen Sie die Anzahl je Ticketart; die Preise stehen daneben. Bei kostenlosen Veranstaltungen gibt es eine einfache Teilnehmerzahl. Hat die Veranstaltung Buchungsoptionen (z. B. ein Programmheft), wählen Sie deren Anzahl in einer eigenen Tabelle.

<div class="callout info" id="bkmrk-die-mengenfelder-sin">Die Mengenfelder sind automatisch begrenzt: auf das DPCalendar-Limit *Tickets pro Buchung*, das Limit der jeweiligen Ticketart und die verbleibenden Plätze. Kürzt DPCalendar eine Menge beim Speichern dennoch (etwa weil zeitgleich jemand anderes gebucht hat), meldet das Plugin die Abweichung deutlich.

</div>## Gast oder Benutzerkonto?

Für die Person gibt es zwei klar getrennte Karten:

- **Für bestehende Benutzer buchen** — Sie suchen Benutzer über das Suchfeld (Name, Benutzername oder E-Mail, ab zwei Zeichen) und buchen für deren Konten. Sobald ein Benutzer gewählt ist, wird die Gast-Karte automatisch deaktiviert und der Speichern-Button wechselt zu *Weiter zu den Personendaten* — Details im Kapitel [Mehrere Benutzer auf einmal buchen](https://docs.graup-it.de/books/backend-booking/page/mehrere-benutzer-auf-einmal-buchen).
- **Als Gast buchen (ohne Benutzerkonto)** — Sie erfassen die Kontaktdaten von Hand. Pflicht sind Vorname, Nachname und E-Mail; Telefon und Adresse sind freiwillig. Auf Wunsch legt das Plugin dabei automatisch ein Benutzerkonto an — siehe [Benutzerkonto bei Gastbuchung](https://docs.graup-it.de/books/backend-booking/page/benutzerkonto-bei-gastbuchung).

## Zusätzliche Felder

Alle benutzerdefinierten Felder, die Sie in DPCalendar für Buchungen eingerichtet haben (*Komponenten → DPCalendar → Felder*), erscheinen in einer eigenen Karte — inklusive Feldgruppen, Pflichtfeld-Markierungen und der Zuordnung zu Kalendern. Es gilt exakt die Konfiguration des Frontend-Formulars.

## Buchungsdetails

<table class="table" id="bkmrk-buchungsdatumvorbele"> <tbody> <tr><td>Buchungsdatum</td><td>vorbelegt mit dem aktuellen Zeitpunkt; für nachträgliche Erfassungen frei änderbar</td></tr> <tr><td>Status</td><td>*Aktiv*, *In Bearbeitung*, *Eingeladen* oder *Warten*. Leer gelassen greift der Standard-Status aus den Plugin-Optionen. Bei vollen Wartelisten-Veranstaltungen ist *Warten* vorausgewählt.</td></tr> <tr><td>Zahlungsanbieter</td><td>nur bei kostenpflichtigen Veranstaltungen; zur Auswahl stehen die in DPCalendar konfigurierten Zahlungs-Plugins (z. B. Überweisung). Es findet keine Weiterleitung zum Bezahldienst statt — der Anbieter wird der Buchung nur zugeordnet.</td></tr> </tbody></table>

<div class="callout warning" id="bkmrk-der-status-entscheid">Der Status entscheidet über Folgeaktionen: Nur Buchungen mit Status *Aktiv* zählen voll auf die Belegung und lösen die automatische Kontoerstellung aus. Den Zahlungseingang verbuchen Sie später wie gewohnt, indem Sie den Status der Buchung in DPCalendar ändern.

</div>## Speichern

Mit **Buchung speichern** wird die Buchung über die reguläre DPCalendar-Logik angelegt. Die Erfolgsmeldung verlinkt die neue Buchung und nennt den gebuchten Termin. Über *Zurück zur Veranstaltungsauswahl* wechseln Sie ohne Speichern zur Liste, *Abbrechen* führt zurück zur Buchungsübersicht.

<small>Gilt für Version 1.0.6.</small>

# Mehrere Benutzer auf einmal buchen

Sollen mehrere Personen mit Benutzerkonto auf dieselbe Veranstaltung gebucht werden — etwa eine ganze Trainingsgruppe —, erledigen Sie das in einem Durchgang: Benutzer auswählen, Personendaten je Benutzer prüfen, speichern. Für jeden Benutzer entsteht eine eigene, vollständige Buchung.

## Schritt 1: Benutzer auswählen

Tippen Sie in der Karte *Für bestehende Benutzer buchen* mindestens zwei Zeichen in das Suchfeld — gesucht wird in Name, Benutzername und E-Mail. Wählen Sie beliebig viele Benutzer aus; jeder erhält die oben eingestellten Tickets und Optionen.

Sobald Benutzer gewählt sind, wird die Gast-Karte deaktiviert (die Benutzerauswahl hat Vorrang) und der Button wechselt zu **Weiter zu den Personendaten**.

<div class="callout info" id="bkmrk-eingaben-als-vorgabe">**Eingaben als Vorgabe übernehmen:** Standardmäßig startet der nächste Schritt nur mit den Daten aus Benutzerkonto und Profil. Aktivieren Sie die Checkbox in der Benutzer-Karte, wenn die im Formular erfassten Werte (Gast-Kontaktdaten, zusätzliche Felder) stattdessen bei *allen* gewählten Benutzern vorbelegt werden sollen — praktisch, wenn z. B. alle denselben Verein oder dasselbe Pflichtfeld teilen.

</div>## Schritt 2: Personendaten je Benutzer

Es folgt der Zwischenschritt *Personendaten je Benutzer*: eine Karte pro Benutzer mit **allen** Buchungsfeldern — Kontaktdaten und zusätzliche Felder, für jede Person einzeln bearbeitbar.

![Der Schritt „Personendaten je Benutzer“ mit einer Karte pro Benutzer](https://docs.graup-it.de/uploads/images/gallery/2026-07/g0ydoku-04-personen-schritt.png)

Die Felder sind bereits so weit wie möglich vorbefüllt, in dieser Reihenfolge:

1. Name und E-Mail aus dem **Benutzerkonto**,
2. Telefon und Adresse aus dem **Joomla-Benutzerprofil** (Profil-Plugin), sofern gepflegt,
3. die **Formular-Vorgaben**, falls Sie die Checkbox aktiviert haben.

Über *Zurück zum Buchungsformular* gelangen Sie jederzeit zurück — Ihre bisherigen Eingaben, die Benutzerauswahl und die Ticketmengen bleiben dabei erhalten.

## Schritt 3: Speichern — alles oder nichts

Mit **Buchungen speichern** prüft das Plugin zunächst sämtliche Pflichtfelder bei sämtlichen Benutzern. Fehlt etwas, wird *keine einzige* Buchung angelegt; die Meldungen nennen den betroffenen Benutzer („Hans Testmann: Feld benötigt: …“) und alle Eingaben bleiben stehen. Erst wenn alles vollständig ist, werden die Buchungen angelegt — halb erfasste Gruppen kann es so nicht geben.

Bei bis zu fünf Benutzern erhalten Sie je Buchung eine verlinkte Erfolgsmeldung, bei größeren Gruppen eine Sammelmeldung („12 von 12 Benutzer-Buchungen wurden angelegt“). Warnungen — etwa eine von DPCalendar gekürzte Ticketmenge — werden immer einzeln gemeldet.

<div class="callout warning" id="bkmrk-die-anzahl-der-benut">Die Anzahl der Benutzer pro Durchgang ist über die Option *Max. Benutzer pro Buchungsvorgang* begrenzt (Standard: 25). Bei sehr vielen Feldern kann zusätzlich das PHP-Limit `max_input_vars` die Grenze weiter senken — das Plugin weist in dem Fall darauf hin, statt Eingaben stillschweigend zu verlieren.

</div><small>Gilt für Version 1.0.6.</small>

# Benutzerkonto bei Gastbuchung

Bei Gastbuchungen kann das Plugin automatisch ein Joomla-Benutzerkonto anlegen und mit der Buchung verknüpfen. Der Teilnehmer kann sich später einloggen und seine Buchungen im Frontend einsehen — ohne dass Sie das Konto von Hand anlegen müssen.

## Die Option

In den Plugin-Optionen steuert *Benutzerkonto bei Gastbuchung anlegen* das Verhalten:

<table class="table" id="bkmrk-wie-in-dpcalendar-ko"> <tbody> <tr><td>Wie in DPCalendar konfiguriert</td><td>Standard — es gilt die DPCalendar-Einstellung *Registrierung* des Buchungssystems.</td></tr> <tr><td>Ja</td><td>Für Backend-Gastbuchungen wird immer ein Konto angelegt, unabhängig von der DPCalendar-Einstellung.</td></tr> <tr><td>Nein</td><td>Es wird nie ein Konto angelegt.</td></tr> </tbody></table>

## Wann ein Konto entsteht

Ein Konto wird nur angelegt, wenn alle Bedingungen erfüllt sind:

- Die Buchung hat den Status **Aktiv**.
- Zur E-Mail-Adresse existiert **noch kein** Benutzerkonto. (Existiert eines, bleibt die Buchung eine Gastbuchung — es wird nichts stillschweigend verknüpft.)
- Der ausführende Backend-Benutzer darf in Joomla **Benutzer anlegen** (Berechtigung der Benutzerverwaltung). Fehlt das Recht, wird die Buchung normal gespeichert und eine Warnung angezeigt.

Das Konto erhält den vollen Namen des Gastes, die E-Mail-Adresse als Benutzernamen, ein Zufallspasswort mit Pflicht zur Passwortänderung und die in Joomla konfigurierte Standard-Benutzergruppe.

## Mit oder ohne E-Mail-Versand

- **E-Mails senden = Ja:** Joomla verschickt die übliche Registrierungsmail. Je nach Einstellung der Joomla-Benutzerverwaltung enthält sie einen Aktivierungslink.
- **E-Mails senden = Nein:** Das Konto wird *still* angelegt — aktiv, aber ohne jede Mail. Der Teilnehmer kommt später über *Passwort vergessen* an seinen Zugang. Eine Hinweismeldung im Backend bestätigt die stille Kontoerstellung.

<div class="callout info" id="bkmrk-die-kontoerstellung-">Die Kontoerstellung schlägt also nicht fehl, nur weil der Mail-Versand abgeschaltet ist — ein bewusster Unterschied zum Standardverhalten von Joomla, das Konten bei fehlgeschlagenem Mail-Versand wieder verwirft.

</div>## Datenschutz

Legen Sie Konten nur an, wenn der Teilnehmer damit einverstanden ist — etwa weil er am Telefon um einen Zugang gebeten hat. Für die reine Buchungserfassung ist kein Konto erforderlich; die Option lässt sich jederzeit auf *Nein* stellen.

<small>Gilt für Version 1.0.6.</small>

# Termin in der Buchungsübersicht (Override)

DPCalendars Buchungsübersicht zeigt in der Spalte *Veranstaltung* nur den Titel. Bei Serien mit Einzeltermin-Buchung sehen Sie dort also nicht, *welcher* Termin gebucht wurde — diese Information steckt erst in den Tickets. Das Plugin bringt dafür ein Template-Override mit, das unter jedem Veranstaltungslink den gebuchten Termin ergänzt.

![Die Buchungsübersicht mit Termin unter jedem Veranstaltungslink](https://docs.graup-it.de/uploads/images/gallery/2026-07/e4Wdoku-05-uebersicht-termin.png)

## Automatisch eingerichtet

Sie müssen nichts tun: Die Plugin-Installation legt das Override im aktiven Administrator-Template ab —

```
administrator/templates/<Ihr-Admin-Template>/html/com_dpcalendar/bookings/default_bookings.php
```

— und hält es aktuell: Jedes Plugin-Update frischt die Datei auf, die Deinstallation des Plugins entfernt sie wieder (aus allen Admin-Templates). Öffnen Sie nach der Installation einfach *Komponenten → DPCalendar → Buchungen*: Unter jedem Veranstaltungstitel steht jetzt der gebuchte Termin; mehrere Tickets derselben Veranstaltung werden zu einem Eintrag zusammengefasst.

<div class="callout info" id="bkmrk-ihre-eigenen-anpassu">**Ihre eigenen Anpassungen sind sicher:** Das Plugin erkennt seine Datei an einer Kennung im Dateikopf. Liegt an der Zielposition bereits ein *eigenes* Override der Buchungsliste (ohne diese Kennung), wird es weder überschrieben noch gelöscht — Sie erhalten lediglich einen Hinweis. Wer den Termin dann übernehmen möchte, gleicht die mitgelieferte Fassung aus dem Plugin-Ordner `plugins/dpcalendar/backendbooking/overrides/` von Hand ab.

</div>## Weitere Admin-Templates

Automatisch bestückt wird das *aktive* Admin-Template. Nutzen Sie mehrere Administrator-Templates oder wechseln Sie später das Template, kopieren Sie die Datei aus dem Plugin-Ordner einfach zusätzlich dorthin — oder installieren Sie das Plugin erneut, dann wird das dann aktive Template bestückt.

## Nach DPCalendar-Updates

<div class="callout warning" id="bkmrk-ein-override-ist-ein">Ein Override ist eine Kopie der Original-Ansicht. Ändert ein DPCalendar-Update die Buchungsliste, zeigt Ihre Kopie weiterhin den alten Stand. Das Override ist bewusst minimal gehalten — nur die Veranstaltungs-Zelle weicht vom Original ab —, trotzdem gilt: Nach einem DPCalendar-Update kurz prüfen, ob die Buchungsliste noch aussieht wie erwartet. Zu jedem freigegebenen DPCalendar-Stand liefert ein Plugin-Update die passende Override-Fassung mit und frischt sie automatisch auf.

</div>## Override abschalten

Sie möchten die Standard-Buchungsliste ohne Termin-Zeile? Löschen Sie die Datei aus dem Template-Ordner — DPCalendar zeigt sofort wieder seine Original-Ansicht. Beachten Sie, dass das nächste Plugin-Update die Datei erneut ablegt; alternativ ersetzen Sie sie durch eine eigene Kopie der DPCalendar-Originalansicht (ohne Plugin-Kennung), die das Plugin dann dauerhaft in Ruhe lässt.

<small>Gilt für Version 1.0.6.</small>

# Konfiguration und Berechtigungen

Alle Einstellungen finden Sie unter *System → Plugins → DPCalendar - Backend Booking*. Dieses Kapitel erklärt jede Option und die nötigen Berechtigungen.

![Die Optionen des Plugins](https://docs.graup-it.de/uploads/images/gallery/2026-07/HbRdoku-06-optionen.png)

## Optionen

<table class="table" id="bkmrk-optionstandardbedeut"> <thead> <tr><th>Option</th><th>Standard</th><th>Bedeutung</th></tr> </thead> <tbody> <tr> <td>Kalender</td><td>—</td> <td>Nur Veranstaltungen dieser Kalender sind im Backend buchbar. Unterkalender müssen ausdrücklich mit ausgewählt werden. Ohne Auswahl ist die Backend-Buchung deaktiviert.</td> </tr> <tr> <td>Standard-Status</td><td>Aktiv</td> <td>Status, den eine neue Buchung erhält, wenn das Statusfeld leer gelassen wird (Aktiv, Wartend oder Eingeladen).</td> </tr> <tr> <td>Benutzerkonto bei Gastbuchung anlegen</td><td>Wie in DPCalendar konfiguriert</td> <td>Automatische Kontoerstellung für Gastbuchungen — Details im Kapitel [Benutzerkonto bei Gastbuchung](https://docs.graup-it.de/books/backend-booking/page/benutzerkonto-bei-gastbuchung).</td> </tr> <tr> <td>E-Mails senden</td><td>Ja</td> <td>Bei *Nein* werden für Backend-Buchungen sämtliche DPCalendar-Buchungsmails unterdrückt (Bestätigung, Benachrichtigung, Rechnung) — inklusive der Registrierungsmail einer eventuellen Kontoerstellung.</td> </tr> <tr> <td>Zeitraum (Tage)</td><td>365</td> <td>Wie viele Tage im Voraus Veranstaltungen in der Auswahl angeboten werden.</td> </tr> <tr> <td>Max. Listeneinträge</td><td>100</td> <td>Obergrenze der Veranstaltungsauswahl. Bei Erreichen erscheint ein Hinweis; grenzen Sie dann per Filter ein.</td> </tr> <tr> <td>Max. Benutzer pro Buchungsvorgang</td><td>25</td> <td>Obergrenze der Mehrfach-Benutzer-Buchung. Wird zusätzlich durch das PHP-Limit `max_input_vars` begrenzt.</td> </tr> </tbody></table>

## Berechtigungen

Der Button und die Buchungsseiten stehen nur Backend-Benutzern zur Verfügung, die folgende Rechte besitzen:

- **Buchungen für andere Personen erstellen** — die DPCalendar-Aktion `dpcalendar.admin.book`. Sie vergeben sie unter *Komponenten → DPCalendar → Optionen → Berechtigungen* an die gewünschte Benutzergruppe. Super-Benutzer haben sie automatisch.
- **Buchen** im jeweiligen Kalender — die Kalender-Berechtigung von DPCalendar. Sie greift pro Kalender und wird zusätzlich geprüft.
- Für die automatische Kontoerstellung außerdem das Joomla-Recht, **Benutzer anzulegen** (Berechtigungen der Benutzerverwaltung). Fehlt es, wird die Buchung ohne Konto gespeichert und eine Warnung angezeigt.

<div class="callout info" id="bkmrk-benutzer-ohne-diese-">Benutzer ohne diese Rechte sehen den Button *Neue Buchung* gar nicht erst; ein direkter Aufruf der Buchungsseiten wird ebenfalls abgewiesen.

</div>## Datenschutz

Das Plugin speichert selbst keine Daten — alle erfassten Buchungen liegen in den regulären DPCalendar-Tabellen und unterliegen deren Lösch- und Exportmechanismen. Die Benutzersuche der Mehrfach-Buchung steht nur berechtigten Backend-Benutzern zur Verfügung und liefert Name, Benutzername und E-Mail — also die Angaben, die die Joomla-Benutzerverwaltung ohnehin zeigt.

<small>Gilt für Version 1.0.6.</small>

# Häufige Fragen und Fehlerbehebung

## Der Button „Neue Buchung“ fehlt

Prüfen Sie der Reihe nach:

- Ist das Plugin unter *System → Plugins* aktiviert?
- Sind Sie in der Ansicht *Komponenten → DPCalendar → Buchungen*? Der Button erscheint nur dort.
- Hat Ihre Benutzergruppe die DPCalendar-Berechtigung *Buchungen für andere Personen erstellen*? (Siehe [Konfiguration und Berechtigungen](https://docs.graup-it.de/books/backend-booking/page/konfiguration-und-berechtigungen).)

## Eine Veranstaltung fehlt in der Auswahl

- Liegt sie in einem **freigegebenen Kalender**? Unterkalender zählen nicht automatisch mit.
- Liegt der Termin in der Vergangenheit oder außerhalb des eingestellten **Zeitraums**?
- Ist das **Anmeldefenster** der Veranstaltung geschlossen (Anmeldeschluss erreicht oder Anmeldebeginn noch nicht erreicht)?
- Ist die Veranstaltung **ausgebucht** und hat keine Warteliste?
- Ist das **Listen-Limit** erreicht? Dann per Filter eingrenzen — die Veranstaltung ist da, nur nicht auf der ersten Seite der gekappten Liste.

## Das Feld „Zahlungsanbieter“ ist leer oder fehlt

Bei kostenlosen Veranstaltungen gibt es keinen Zahlungsanbieter — das ist normal. Bei kostenpflichtigen Veranstaltungen speist sich die Auswahl aus den konfigurierten DPCalendar-Zahlungs-Plugins: Ein Anbieter erscheint erst, wenn sein Plugin aktiviert *und* fertig konfiguriert ist.

## Es kommen keine Bestätigungsmails an

- Steht die Plugin-Option *E-Mails senden* auf *Ja*?
- Ist der Joomla-Mailversand global aktiv (*System → Konfiguration → Server → E-Mails senden*)?
- Sind die Empfänger- und Vorlagen-Einstellungen im DPCalendar-Buchungssystem korrekt? Das Plugin nutzt exakt die DPCalendar-Mails — was dort deaktiviert ist, wird auch im Backend nicht versendet.

## Es wurde kein Benutzerkonto angelegt

Die Kontoerstellung greift nur bei Status *Aktiv*, unbekannter E-Mail-Adresse und ausreichenden Rechten des Backend-Benutzers — Details im Kapitel [Benutzerkonto bei Gastbuchung](https://docs.graup-it.de/books/backend-booking/page/benutzerkonto-bei-gastbuchung). Die häufigste Ursache ist eine E-Mail-Adresse, zu der bereits ein Konto existiert.

## „Es wurden nur N von M angefragten Tickets gebucht“

DPCalendar hat die Menge beim Speichern gekürzt — auf das Limit *Tickets pro Buchung*, das Limit der Ticketart oder die Restkapazität. Die Buchung ist gültig; prüfen Sie die angelegten Tickets über den Link in der Meldung und buchen Sie bei Bedarf nach.

## Beim Speichern mehrerer Benutzer wurde nichts angelegt

Das ist das gewollte Alles-oder-nichts-Verhalten: Solange bei irgendeinem Benutzer ein Pflichtfeld fehlt, wird keine einzige Buchung gespeichert. Die Fehlermeldungen nennen Benutzer und Feld; Ihre Eingaben bleiben erhalten — ergänzen Sie die fehlenden Angaben und speichern Sie erneut.

## Das Update meldet einen Prüfsummenfehler

Joomla vergleicht das geladene Paket mit der auf dem Update-Server hinterlegten Prüfsumme. Schlägt das fehl, laden Sie das Update zu einem späteren Zeitpunkt erneut — oder installieren Sie das aktuelle ZIP von der Produktseite manuell über *System → Installieren → Erweiterungen*.

## Funktioniert das Plugin mit der kostenlosen DPCalendar-Version?

Nein. Das Buchungssystem ist Bestandteil von DPCalendar Pro — ohne Buchungssystem gibt es nichts zu erfassen.

<small>Gilt für Version 1.0.6.</small>

# Änderungsprotokoll

Dieses Änderungsprotokoll listet alle veröffentlichten Versionen von Backend Booking, die neueste zuerst.

<div class="callout info" id="bkmrk-diese-seite-wird-bei">Diese Seite wird beim Release automatisch aus der Änderungsdatei des Produkts erzeugt. Änderungen von Hand gehen beim nächsten Abgleich verloren.

</div>## Version 1.0.6 – 12.08.2026

### Geändert

- Einzelne mitgelieferte Dateien nannten noch die Lizenzversion 2. Überall steht jetzt einheitlich die GNU General Public License Version 3 oder später.

## Version 1.0.5 – 31.07.2026

### Geändert

- Die Erweiterung steht unter der GNU General Public License Version 3 oder später. Alle Angaben zu Lizenz, Autor und Copyright sind einheitlich.

### Behoben

- Die mitgelieferte Lizenzdatei nannte ein anderes Produkt und enthielt nur einen Kurzhinweis statt des vollständigen Lizenztextes.

## Version 1.0.4 – 31.07.2026

### Hinzugefügt

- Nach Installation und Update erscheint ein Übersichtsfenster mit Version, Status und Einstiegen zu Erste Schritte, Download-Schlüssel und Handbuch.
- Ein Klick auf „Updates aktivieren“ führt direkt zu den Update-Quellen, bereits auf fehlende Download-Schlüssel gefiltert.
- Der Erweiterungs-Manager zeigt hinter der Versionsnummer die Liste der Änderungen.

### Geändert

- Hinweise zum Zustand der Buchungsübersicht oder zu deaktiviertem DPCalendar erscheinen jetzt im Übersichtsfenster statt lose daneben.

### Sprache

- Alle Meldungen bei Installation und Update liegen in Deutsch und Englisch vor.

## Version 1.0.3 – 29.07.2026

### Behoben

- Ein-Klick-Updates schlugen mit „Prüfsummenprüfung fehlgeschlagen“ fehl. Der Download-Schlüssel wird jetzt in der Form übergeben, die der Update-Server erwartet.

## Version 1.0.2 – 29.07.2026

### Sprache

- Einheitlicher Produktname „Backend Booking“ ohne Sprachmischung, auch in der deutschen Plugin-Liste.

## Version 1.0.1 – 29.07.2026

### Hinzugefügt

- Die angepasste Buchungsübersicht wird automatisch verwaltet: Installation und Update richten sie ein, die Deinstallation entfernt sie wieder.
- Eine selbst angepasste Buchungsübersicht wird dabei nie überschrieben oder gelöscht, sondern nur gemeldet.
- Die Installation prüft vorab, ob DPCalendar ab Version 10 vorhanden ist, und bricht sonst mit einer klaren Meldung ab.

## Version 1.0.0 – 29.07.2026

### Sicherheit

- Die Zugriffsprüfung nutzt jetzt die DPCalendar-eigene Berechtigung für Buchungen im Namen anderer, zusätzlich kalenderscharf je Veranstaltung.
- Die automatische Kontoerstellung verlangt das Recht, Benutzer anzulegen; Gruppen mit administrativen Rechten sind als Ziel ausgeschlossen.
- Benutzernamen und E-Mail-Adressen werden in allen Meldungen sicher dargestellt; technische Details stehen nur noch im Protokoll.
- Preisrelevante und interne Felder lassen sich nicht mehr von außen setzen.
- Ticketmengen werden serverseitig auf Limit und Restkapazität begrenzt.

### Hinzugefügt

- Die Benutzerauswahl sucht ab zwei Zeichen nach Name, Benutzername oder E-Mail und bleibt auch bei sehr vielen Benutzern schnell.
- Volle Veranstaltungen mit Warteliste sind buchbar; der Status „Warteliste“ ist vorausgewählt, damit nicht versehentlich überbucht wird.
- Erfolgsmeldungen verlinken direkt auf die angelegte Buchung.
- „Zurück zum Buchungsformular“ im Personen-Schritt behält alle Eingaben.
- Neue Optionen für die maximale Zahl der Listeneinträge und der Benutzer je Buchungsvorgang.

### Geändert

- Die Statusauswahl ist auf die im Backend sinnvollen Werte reduziert.
- Die Veranstaltungsliste zeigt die Trefferzahl und weist auf gekappte Ergebnisse hin; der Ortsfilter erscheint nur bei überschaubarer Ortsanzahl.
- Ab sechs gebuchten Benutzern erscheint eine Sammelmeldung statt vieler Einzelmeldungen; Warnungen bleiben einzeln.
- Tabellen, Datumsangaben und Kartentitel sind einheitlich und für Screenreader nutzbar.

### Behoben

- Die Freigabe eines Kalenders aktivierte versehentlich alle darunterliegenden Kalender mit.
- Bei der Mehrfach-Buchung gingen Fehlermeldungen verloren oder wurden dem falschen Benutzer zugeordnet.

### Hinweise

- Erste stabile Version, konsolidiert aus einem vollständigen Audit zu Sicherheit, Joomla-Standards, Performance und Bedienbarkeit.

## Version 0.6.1 – 29.07.2026

### Hinzugefügt

- Werden Benutzer ausgewählt, obwohl Gast-Kontaktdaten erfasst wurden, weist der Personen-Schritt jetzt darauf hin, dass diese Daten nicht übernommen wurden.

## Version 0.6.0 – 29.07.2026

### Geändert

- Das Buchungsformular trennt jetzt klar zwischen „Für bestehende Benutzer buchen“ und „Als Gast buchen“; die eigenen Buchungsfelder stehen in einem eigenen Bereich.
- Die Übernahme der Formularwerte in den Personen-Schritt ist jetzt optional und standardmäßig aus.

### Behoben

- Im Personen-Schritt abgewählte Auswahlfelder wurden beim Speichern wieder gesetzt.

## Version 0.5.2 – 29.07.2026

### Behoben

- Ungültige Eingaben in eigenen Feldern führten zu einer rohen Fehlerseite. Sie erscheinen jetzt als normale Prüfmeldung, die Eingaben bleiben erhalten.
- Der Zahlungsanbieter wird nicht mehr mit einem erfundenen Wert vorbelegt; gewählt wird aus den tatsächlich verfügbaren Anbietern.

## Version 0.5.1 – 29.07.2026

### Hinzugefügt

- Erfolgsmeldungen nennen jetzt den gebuchten Termin, auch je Benutzer bei der Mehrfach-Buchung.
- Die Buchungsübersicht zeigt unter jedem Veranstaltungslink den gebuchten Termin und fasst mehrere Tickets derselben Veranstaltung zusammen.

## Version 0.5.0 – 29.07.2026

### Hinzugefügt

- Mehrfach-Buchung mit einem Zwischenschritt, in dem sich alle Buchungsfelder je Benutzer einzeln bearbeiten lassen. Vorbelegt aus Benutzerkonto und Profil.
- Alles oder nichts: Erst wenn bei allen Benutzern alle Pflichtfelder ausgefüllt sind, entstehen die Buchungen — sonst keine einzige.

## Version 0.4.1 – 29.07.2026

### Behoben

- Die Kontoerstellung schlägt nicht mehr fehl, wenn der E-Mail-Versand ausgeschaltet ist. Das Konto wird still angelegt; der Gast erhält Zugang über „Passwort vergessen“.

## Version 0.4.0 – 29.07.2026

### Hinzugefügt

- Neue Option, ob bei einer Gastbuchung ein Benutzerkonto angelegt wird: Ja, Nein oder wie in DPCalendar konfiguriert.

## Version 0.3.1 – 28.07.2026

### Hinzugefügt

- Die Ticketmengen berücksichtigen jetzt auch das DPCalendar-Limit für Tickets je Buchung.
- Wird eine Ticketmenge automatisch gekürzt, erscheint danach eine deutliche Warnung; bisher geschah das unbemerkt.

### Behoben

- Tickets fremder Gastbuchungen derselben Veranstaltung zählten fälschlich gegen das persönliche Ticket-Limit.

## Version 0.3.0 – 28.07.2026

### Hinzugefügt

- Die Filterleiste bietet zusätzlich Zeitraum und Ort, passend zur DPCalendar-Veranstaltungsübersicht.

### Behoben

- Die Einzel-Benutzerauswahl über ein Auswahlfenster wurde entfernt; sie funktionierte nicht zuverlässig und konnte das Scrollen blockieren. Die Zuordnung läuft über „Für Benutzer buchen“.

## Version 0.2.0 – 28.07.2026

### Hinzugefügt

- Filterleiste in der Veranstaltungsauswahl mit Volltextsuche und Kalenderfilter.
- Mehrfach-Buchung: Je ausgewähltem Benutzer entsteht eine eigene Buchung mit denselben Tickets und Optionen.

### Geändert

- Kontaktfelder sind im Formular nicht mehr als Pflicht markiert, solange Benutzer ausgewählt sind; serverseitig gilt die Pflicht weiterhin.

## Version 0.1.0 – 28.07.2026

### Hinzugefügt

- Erstausgabe: Schaltfläche „Neue Buchung“ in der DPCalendar-Buchungsübersicht.
- Veranstaltungsauswahl mit Kalender-Beschränkung, Zeitraumfilter, Kapazitätsanzeige und Erkennung von Serienterminen.
- Buchungsformular mit Ticketarten, Buchungsoptionen und eigenen Feldern, gefiltert nach Kalender.
- Speichern über die offizielle DPCalendar-Verarbeitung samt Tickets, Preisen, Status und Mails.
- Plugin-Optionen für erlaubte Kalender, Standard-Status, E-Mail-Versand und Zeitraum.