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

1.0.0 2025-10-28 07:18 UTC

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:

  1. Contao Install Tool aufrufen: /contao/install
  2. Database Update ausführen
  3. Die Tabelle tl_boat wird 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

  1. Contao Manager öffnen
  2. Nach "Boot24 Bundle" suchen
  3. Bundle installieren
  4. 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

  1. Im Contao Backend unter Inhalte → Boote finden Sie alle synchronisierten Boot-Inserate
  2. Neue Boote sind standardmäßig nicht veröffentlicht und müssen manuell freigeschaltet werden
  3. Über den Button "Boot24 Abgleich" können Sie die Synchronisation manuell anstoßen

Frontend-Anzeige

  1. Erstellen Sie ein neues Inhaltselement
  2. Wählen Sie den Typ Boot-Liste aus der Kategorie Boot24
  3. Wählen Sie die anzuzeigenden Boote aus (Mehrfachauswahl möglich)
  4. 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:

  1. Kopieren Sie vendor/xippo/boot24-bundle/contao/templates/ce_boat_list.html5
  2. Fügen Sie es in Ihr Theme unter templates/ ein
  3. 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

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

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

Collaborate with your team

Test and Deploy

Use the built-in continuous integration in GitLab.

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.