xippo / boot24-bundle
Contao Bundle für Boot24 API Integration - Synchronisation und Anzeige von Bootsanzeigen
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Type:contao-bundle
pkg:composer/xippo/boot24-bundle
Requires
- php: ^8.1
- contao/core-bundle: ^5.3
- doctrine/dbal: ^3.0
- doctrine/orm: ^2.19 || ^3.0
- symfony/console: ^6.4 || ^7.0
- symfony/framework-bundle: ^6.4 || ^7.0
- symfony/http-client: ^6.4 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^10.0
- symfony/phpunit-bridge: ^6.4 || ^7.0
This package is auto-updated.
Last update: 2025-10-28 12:02:15 UTC
README
Ein professionelles Contao Bundle zur Integration der Boot24 API für die Synchronisation und Anzeige von Bootsanzeigen.
Features
- 🔄 Automatische Synchronisation - Regelmäßiger Abgleich der Boot-Inserate mit der Boot24 API
- 📊 Backend-Verwaltung - Vollständige Verwaltung der Boot-Inserate im Contao Backend
- 🎨 Frontend-Integration - Flexibles Inhaltselement zur Anzeige ausgewählter Boote
- 🔒 Sicherheit - Neue Inserate werden nicht automatisch veröffentlicht
- 📱 Responsive Design - Mobile-optimierte Darstellung der Boot-Listen
- 🌐 Mehrsprachig - Deutsche und englische Sprachpakete enthalten
Installation
Über Composer (empfohlen)
composer require xippo/boot24-bundle
Automatische Tabellenerstellung
Das Bundle nutzt Contao's DCA-System zur automatischen Erstellung der Datenbanktabelle. Nach der Installation:
- Contao Install Tool aufrufen:
/contao/install - Database Update ausführen
- Die Tabelle
tl_boatwird automatisch erstellt
Alternative: Manuelle Tabellenerstellung
Falls die automatische Erstellung nicht funktioniert, können Sie die Tabelle manuell erstellen:
CREATE TABLE `tl_boat` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`boot24_id` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL DEFAULT '',
`description` text,
`price` decimal(10,2) DEFAULT NULL,
`currency` varchar(10) DEFAULT NULL,
`manufacturer` varchar(255) DEFAULT NULL,
`model` varchar(255) DEFAULT NULL,
`year` int(11) DEFAULT NULL,
`length` decimal(5,2) DEFAULT NULL,
`width` decimal(5,2) DEFAULT NULL,
`draft` decimal(5,2) DEFAULT NULL,
`boat_type` varchar(255) DEFAULT NULL,
`location` varchar(255) DEFAULT NULL,
`images` longtext DEFAULT NULL COMMENT '(DC2Type:json)',
`features` longtext DEFAULT NULL COMMENT '(DC2Type:json)',
`raw_data` longtext DEFAULT NULL COMMENT '(DC2Type:json)',
`published` tinyint(1) NOT NULL DEFAULT 0,
`active_on_boot24` tinyint(1) NOT NULL DEFAULT 1,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`last_sync_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `boot24_id_unique` (`boot24_id`),
KEY `boot24_id_idx` (`boot24_id`),
KEY `published_idx` (`published`),
KEY `active_on_boot24_idx` (`active_on_boot24`),
KEY `created_at_idx` (`created_at`),
KEY `updated_at_idx` (`updated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Über den Contao Manager
- Contao Manager öffnen
- Nach "Boot24 Bundle" suchen
- Bundle installieren
- Database Update im Install Tool ausführen
Konfiguration
1. Umgebungsvariablen
Fügen Sie Ihre Boot24 API-Tokens zu Ihrer .env Datei hinzu:
# Für mehrere Tokens (JSON-Format):
BOOT24_TOKENS='{"export1":"faeb4dbf69ad6b10d675175940a81102","export2":"another_token_here"}'
# Für einen einzelnen Token:
BOOT24_TOKENS='{"main":"faeb4dbf69ad6b10d675175940a81102"}'
Token-Konfiguration:
- Sie können mehrere Tokens für verschiedene Exporte konfigurieren
- Alle Boote werden zusammengeführt (Boot-IDs sind eindeutig über alle Tokens hinweg)
- Der Schlüssel (z.B. "export1") ist nur zur Identifikation
- Der Wert ist Ihr tatsächlicher Boot24-Token
2. Erste Synchronisation
Nach der Installation führen Sie das Contao Install Tool aus, um die Datenbank-Tabellen zu erstellen:
vendor/bin/contao-console contao:migrate
3. Cron-Job einrichten
Für die automatische Synchronisation richten Sie einen Cron-Job ein:
# Synchronisation alle 4 Stunden
0 */4 * * * /pfad/zu/ihrer/contao/vendor/bin/contao-console boot24:sync
Verwendung
Backend-Verwaltung
- Im Contao Backend unter Inhalte → Boote finden Sie alle synchronisierten Boot-Inserate
- Neue Boote sind standardmäßig nicht veröffentlicht und müssen manuell freigeschaltet werden
- Über den Button "Boot24 Abgleich" können Sie die Synchronisation manuell anstoßen
Frontend-Anzeige
- Erstellen Sie ein neues Inhaltselement
- Wählen Sie den Typ Boot-Liste aus der Kategorie Boot24
- Wählen Sie die anzuzeigenden Boote aus (Mehrfachauswahl möglich)
- Speichern Sie das Element
Synchronisation
Manuelle Synchronisation
vendor/bin/contao-console boot24:sync
Automatische Synchronisation
Das Bundle erkennt automatisch:
- Neue Boote - Werden heruntergeladen aber nicht veröffentlicht
- Aktualisierte Boote - Daten werden aktualisiert
- Deaktivierte Boote - Werden automatisch ausgeblendet
Datenstruktur
Boot-Entität
Die Boot-Entität (tl_boat) speichert folgende Informationen:
- Grunddaten: Titel, Beschreibung, Hersteller, Modell, Baujahr
- Preis: Verkaufspreis und Währung
- Abmessungen: Länge, Breite, Tiefgang
- Details: Bootstyp, Standort, Ausstattung
- Medien: Bilder (JSON-Format)
- Status: Veröffentlicht, Aktiv auf Boot24
- Synchronisation: Erstellungs-, Update- und Sync-Zeitstempel
API-Mapping
Das Bundle mappt automatisch die Boot24 API-Daten auf die lokale Datenstruktur:
// Beispiel API-Response
{
"id": "12345",
"title": "Schöne Segelyacht",
"manufacturer": "Bavaria",
"model": "Cruiser 46",
"year": 2020,
"price": 285000,
"currency": "EUR",
"length": 14.27,
"width": 4.35,
"images": [...],
"features": [...]
}
Anpassungen
Template-Anpassung
Das Standard-Template kann überschrieben werden:
- Kopieren Sie
vendor/xippo/boot24-bundle/contao/templates/ce_boat_list.html5 - Fügen Sie es in Ihr Theme unter
templates/ein - Passen Sie das Template nach Ihren Wünschen an
CSS-Styling
Das Bundle enthält Basis-CSS. Für individuelle Anpassungen überschreiben Sie die CSS-Klassen:
.boat-list {
/* Ihre Anpassungen */
}
.boat-item {
/* Styling der einzelnen Boot-Karten */
}
Entwicklung
Repository klonen
git clone https://github.com/xippo/boot24-bundle.git
cd boot24-bundle
Dependencies installieren
composer install
Tests ausführen
vendor/bin/phpunit
Fehlerbehebung
Häufige Probleme
Problem: API-Verbindung schlägt fehl
Lösung: Überprüfen Sie Ihre API-Zugangsdaten in der .env Datei
Problem: Neue Boote werden nicht angezeigt
Lösung: Neue Boote müssen im Backend manuell veröffentlicht werden
Problem: Synchronisation bricht ab
Lösung: Prüfen Sie die Logs und API-Limits von Boot24
Debug-Modus
Für Debugging aktivieren Sie den Contao Debug-Modus:
APP_ENV=dev
Logs
Die Bundle-Logs finden Sie unter:
var/log/contao-*.log(Allgemeine Logs)- Backend → System → System-Log
Support
- Issues: GitHub Issues
- Dokumentation: GitHub Wiki
- E-Mail: info@xippo.ch
Lizenz
Dieses Bundle ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.
Changelog
Version 1.0.0
- Initiale Veröffentlichung
- Boot24 API-Integration
- Backend-Verwaltung
- Frontend-Inhaltselement
- Automatische Synchronisation
Beitragen
Beiträge sind willkommen! Bitte lesen Sie CONTRIBUTING.md für Details.
Credits
Entwickelt von Xippo für die Contao Community.
Hinweis: Dieses Bundle erfordert gültige Boot24 API-Zugangsdaten. Kontaktieren Sie Boot24 für den API-Zugang. and make it your own. Want to make it easy? Use the template at the bottom!
Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or upload files
- [ ] [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command:
cd existing_repo
git remote add origin https://gitlab.xippo.net/xippo-gmbh-public/xippoboot24bundle.git
git branch -M master
git push -uf origin master
Integrate with your tools
- [ ] [Set up project integrations](https://gitlab.xippo.net/xippo-gmbh-public/xippoboot24bundle/-/settings/integrations)
Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)
Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to makeareadme.com for this template.
Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
Name
Choose a self-explaining name for your project.
Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
License
For open source projects, say how it is licensed.
Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.