Contao News Sync

inspiredminds/contao-news-sync

von inspiredminds

Projekt Webseite unter Contao News Sync

Mit dieser Extension können automatisch Nachrichtenartikel zwischen verschiedenen Contao Installationen synchronisiert werden. Die Synchronisationsrichtung kann dabei beliebig festgelegt werden (etwa A nach B, B nach A oder beide Richtungen). Die Extension kann auch dazu verwendet werden, Nachrichtenartikel einmalig aus einer Contao Installation in eine andere Contao Installation zu importieren, etwa für den Relaunch einer Website. Da die Extension die Contao Versionen 3.5 und 4.4+ unterstützt, können damit auch Nachrichten aus älteren Contao Versionen in die neueste Contao Version übertragen werden.

Installation

Um diese Erweiterung zu installieren, muss zuerst die composer.json der eigenen Contao Installation modifiziert werden. Dabei sind zwei Anpassungen notwendig: das private Repository hinzufügen und die Abhängigkeit hinzufügen.

Um das Repository hinzuzufügen, muss folgendes in der composer.json eingefügt werden:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://token:<YOUR_TOKEN>@packdis.inspiredminds.at/r"
        }
    ]
}

<YOUR_TOKEN> muss mit dem Repository Token ersetzt werden, welches von inspiredminds geschickt wurde.

Um die Abhängigkeit hinzuzufügen, muss folgendes in der composer.json eingefügt werden:

{
    "require": {
        "inspiredminds/contao-news-sync": "^3.0"
    }
}
Komplettes Beispiel anzeigen

Nachdem diese Änderungen gemacht wurden, kann nun ein composer update auf der Kommandozeile oder eine Paketaktualisierung im Contao Manager durchgeführt werden. Danach wie gewohnt das Contao Install Tool aufrufen, um die Datenbank zu aktualisieren.

Contao 3

Die Installation unter Contao 3 setzt die Verwendung der Composer Paketverwaltung voraus. Ansonsten ist die Vorgehensweise gleich. Die von der Composer Paketverwaltung verwendete composer.json befindet sich im composer/ Unterordner der Contao 3 Installation. Als Versionsangabe muss "^1.0" verwendet werden.

Falls die Composer Paketverwaltung in Contao 3 noch nicht eingesetzt wird, kann diese natürlich jederzeit installiert werden. Falls die Composer Paketverwaltung nur für diese Extension, und nur einmalig gebraucht wird (eben etwa um alle Nachrichten einmalig in eine andere Contao Installation zu übertragen), kann folgende Anleitung benutzt werden:

Composer Paketverwaltung in Contao 3 - Experteninstallation

Konfiguration

Die Extension muss in allen Contao Installationen installiert werden, die in die Synchronisation der Nachrichten involviert sein sollen. Nach der Installation stehen zusätzliche Einstellungen in den Nachrichtenarchiven unter dem Punkt Synchronisation zur Verfügung.

Um die Nachrichten eines Nachrichtenarchivs als Quelle für die Synchronisation zur Verfügung zu stellen, muss die Einstellung Quelle für Synchronisation aktiviert werden.

News Sync Einstellungen

Um Nachrichten in einem Nachrichtenarchiv von einer Quelle holen zu lassen muss die Einstellung Ziel für Synchronisation aktiviert werden. Danach stehen zusätzliche Einstellungen zur Verfügung. Unter Quell-URL muss zunächst die URL eingetragen werden, unter die andere Contao Installation erreichbar ist. Speichert man die Einstellungen danach, stehen unter News Archive alle Nachrichtenarchive zur Auswahl, die auf der Quell-Installation für die Synchronisation freigegeben.

News Sync Einstellungen

  • News Archive - damit aktiviert man die Nachrichtenarchive, aus denen Nachrichten aus der Quell-Installation geholt werden sollen.
  • Auf Kategorien beschränken - ist in beiden Installationen die codefog/contao-news_categories Extension installiert, kann die Synchronisation auf bestimmte Kategorien beschränkt werden.1
  • Alias-Duplikate ignorieren - in manchen Situationen kann es sein, dass man bereits Nachrichten mit dem selben Alias in der Ziel-Installation hat. Mit aktivierte Option werden diese Nachrichten übersprungen. Andernfalls wird ein Duplikat angelegt.
  • Periodisch synchronisieren - dies aktiviert die periodische Synchronisation über den Contao Cronjob. Die Synchronisierung erfolgt stündlich.
  • Einträge aktualisieren - ist diese Einstellung aktiv, werden Änderungen in der Quell-Installation bereits synchronisierter Nachrichten in der Ziel-Installation übernommen.
  • Zielverzeichnis - hier muss ein Verzeichnis für die synchronisierten Bilddaten und Anhänge angegeben werden.

1 Dies funktioniert derzeit noch nur mit Version 2.x der news_categories Extension.

Synchronisation

Die Aktualisierung der Nachrichten kann auf der Ziel-Installation auf drei verschiedene Arten ausgelöst werden.

  • Kommando: auf der Kommandozeile kann folgendes Kommando benutzt werden: vendor/bin/contao-console contao_news_sync:import
  • Backend: in der Übersicht der Nachrichtenarchive gibt es bei den globalen Operationen einen zusätzlichen News holen Link.
  • Cronjob: bei allen Nachrichtenarchiven, wo die periodische Synchronisierung aktiviert worden ist, werden die Nachrichten stündlich über den Contao Cronjob abgeholt.

Sicherheitshinweis

Die Nachrichten und Inhaltselemente aller Nachrichtenarchive, die als Quelle für die Synchronisierung freigegeben wurden, sind öffentlich über die API der News Sync Extension erreichbar.