# Einrichtung und Inbetriebnahme
Diese Anleitung führt von der frischen Installation bis zur laufenden Webseite. Das Dashboard der Komponente (Komponenten → SeminarPlan) zeigt dieselben Schritte als Checkliste und markiert, was bereits erledigt ist.

# Schritt 1: In SeminarPlan (CRM)
# API-Schlüssel anlegen
Öffne in SeminarPlan die Systemeinstellungen → Integrationen → SeminarPlan API-Schlüssel und lege mit Neuer Schlüssel einen Schlüssel für die Webseite an (Berechtigungsgruppe Benutzer genügt). Der Schlüssel wird von der Joomla-Erweiterung bei jeder Anfrage als Header api-key mitgeschickt und berechtigt zum Lesen des Katalogs sowie zum Anlegen von Bestellungen, Anfragen und Kontaktnachrichten.
WARNING
Behandle den Schlüssel wie ein Passwort. Er darf nicht in Templates, Beiträgen oder öffentlichen Repositories auftauchen.
# Webseite und Push konfigurieren
Zwei Stellen in den Systemeinstellungen:
| Bereich | Feld | Wert |
|---|---|---|
| Organisation → Stammdaten | Website | Öffentliche URL deiner Joomla-Seite, z. B. https://www.beispiel.de |
| Organisation → Stammdaten | Website-Typ | Joomla |
| Integrationen → Website-Synchronisation | Sync API Endpunkt | https://www.beispiel.de/index.php?option=com_seminarplan&controller=sync |
| Integrationen → Website-Synchronisation | Sync Token | Ein selbst gewählter, langer Zufallswert (z. B. 32 Zeichen). Derselbe Wert wird in Joomla als Push-Token eingetragen. |
Den exakten Endpunkt zeigt das Joomla-Dashboard zum Kopieren an. SeminarPlan hängt beim Aufruf selbst task=push_… und token=… an die URL an und sendet den geänderten Datensatz. Ohne Endpunkt und Token funktioniert die Webseite trotzdem, Änderungen erscheinen dann erst mit der nächsten geplanten Synchronisierung.
# Schritt 2: In Joomla
# Optionen ausfüllen
Komponenten → SeminarPlan → Optionen, Tab API:
| Option | Wert |
|---|---|
| API-Basis-URL | https://api.seminarplan.app (ohne /v1) |
| API-Key | Der in Schritt 1 angelegte Schlüssel |
| Medien-Basis-URL | Leer lassen (dann wird die API-URL verwendet) oder die URL, unter der Bilder aus SeminarPlan erreichbar sind |
| Push-Token | Derselbe Wert wie der Sync Token in SeminarPlan |

Die übrigen Tabs (Cache, Anzeigeregeln, Slugs, Formulare, Darstellung, SEO) haben sinnvolle Standardwerte; eine Beschreibung aller Optionen findest du unter Einstellungen. Ändere die Slugs am besten jetzt, bevor du die Menüeinträge erzeugst.
# Erste Synchronisierung
Im Dashboard auf Synchronisieren klicken. Der Abgleich lädt alle veröffentlichten Seminare, Kategorien, Hersteller, Standorte, Räume, Wissensseiten, Lernpfade, Bewertungen und die Organisationsdaten (Adresse, Telefon, Logo, AGB-Links) in den Cache. Bei großen Katalogen dauert das einige Sekunden. Das Dashboard zeigt danach die Anzahl je Typ und den Zeitpunkt der letzten Synchronisierung.
Schlägt der Abgleich fehl, prüfe API-URL und Schlüssel (Fehlermeldung im Dashboard) und ob der Webserver ausgehende HTTPS-Verbindungen aufbauen darf.
# Menüeinträge anlegen
Der Katalog braucht Menüeinträge, weil ihre Aliase die URLs bilden (/seminare, /kategorien, /garantietermine …). Im Dashboard wählst du im Block Menüeinträge das Zielmenü und die gewünschten Ansichten und klickst auf Ausgewählte Menüeinträge anlegen. Die Aliase kommen aus den Slug-Optionen. Alternativ auf der Kommandozeile:
php cli/joomla.php seminarplan:menu:create --menutype=mainmenu
Du kannst die Einträge anschließend wie jeden Joomla-Menüeintrag umbenennen, verschieben oder in ein anderes Menü legen. Details unter Menüeinträge und URLs.
# Suchindex aufbauen
Damit Seminare in der Joomla-Suche (Smart Search) gefunden werden, baue den Index einmal auf: Komponenten → Smart Search → Index oder
php cli/joomla.php finder:index
Danach hält die Erweiterung den Index selbst aktuell: Push-Änderungen werden sofort nachindiziert, die geplante Aufgabe Suchindex neu aufbauen erneuert ihn vollständig.
# Geplante Aufgaben
Lege unter System → Geplante Aufgaben zwei Aufgaben an:
| Aufgabe | Empfehlung |
|---|---|
| SeminarPlan: Katalog synchronisieren | Stündlich. Holt alles, was SeminarPlan nicht pusht (Räume, Lernpfade, Bewertungen, Organisationsdaten) und gleicht den Rest zur Sicherheit ab. Option Suchindex anschließend neu aufbauen nur bei Bedarf. |
| SeminarPlan: Suchindex neu aufbauen | Täglich nachts. |
Damit die Aufgaben laufen, muss der Joomla-Scheduler aktiv sein (System → Geplante Aufgaben → Optionen: Lazy Scheduler oder Webcron/CLI-Cron). Auf der Kommandozeile lässt sich der Abgleich auch direkt per Cronjob starten:
0 * * * * php /pfad/zu/joomla/cli/joomla.php seminarplan:sync
# Module und Shortcodes (optional)
Lege unter Inhalt → Site-Module die gewünschten Module an (siehe Module), zum Beispiel SeminarPlan - Termine mit Garantieterminen in der Seitenleiste. In Beiträgen kannst du Katalogausschnitte per Shortcode einbetten.
# Schritt 3: Prüfen
- Rufe
/seminareund ein einzelnes Seminar auf; Titel, Bilder, Termine und Preise müssen erscheinen. - Sende testweise eine Kontaktnachricht ab; sie muss in SeminarPlan unter Kontaktnachrichten auftauchen.
- Ändere in SeminarPlan den Titel eines Seminars: Bei korrekt eingerichtetem Push ist die Änderung innerhalb weniger Sekunden auf der Webseite und in der Suche sichtbar. Das Dashboard zeigt unter Letzter Push den Eingang.
Entwicklungs- und Testsysteme
Eine SeminarPlan-Instanz im Entwicklungsmodus sendet grundsätzlich keine Push-Aufrufe. Auf Test-Systemen arbeitest du deshalb mit der geplanten oder manuellen Synchronisierung.
# Berechtigungen
Im Tab Berechtigungen der Optionen legst du fest, welche Benutzergruppen die Komponente verwalten, die Optionen ändern und die Synchronisierung auslösen dürfen (Aktion Synchronisieren). Das Frontend ist öffentlich; Buchungen benötigen keine Anmeldung.