[gelöst] Dynamische Erstellung von Nodes per API aus einer externen Datenbank (Best Practice)
am 10.02.2020 - 11:39 Uhr in
Moin,
folgendes Szenario:
Wir haben in unserem Intranet eine Wissensdatenbank mit unterschiedlichen Themen.
Diese Themen sind nach bestimmten Produkten und dazugehörige Unterpunkte strukturiert.
Z. B.
- Produkt A: Unterpunkt 1
- Produkt A: Unterpunkt 2
- Produkt B: Unterpunkt 1
- Produkt B: Unterpunkt 2
[...]
In der Datenbank des Intranets gibt es eine Tabelle, die diese Datensätze in folgender Form abspeichert:
Datensatz ID | Produkt A | Unterpunkt 1 | Text
Datensatz ID | Produkt A | Unterpunkt 2 | Text
Datensatz ID | Produkt B | Unterpunkt 1 | Text
Datensatz ID | Produkt B | Unterpunkt 2 | Text
[...]
Unser Ziel ist es nun, diese Datenbank auf unserer Drupal Webseite (Drupal 8.8.2) in Form von Nodes abzubilden. Jeder Unterpunkt soll einen eigenen Node erhalten, so dass die Drupalsuche die Inhalte auch indexiert und man beim Anklicken
des Suchergebnisses auf die entsprechende Seite geleitet wird. Außerdem sollen die Nodes in einer eigenen Menüstruktur nach dem folgenden Muster eingebunden sein:
Oberpunkt: Wissensdatenbank
- Produkt A
--- Unterpunkt 1
--- Unterpunkt 2
- Produkt B
--- Unterpunkt 1
--- Unterpunkt 2
[...]
Meine Frage ist nun:
Gibt es Erfahrungswerte, wie man die Anforderung am besten umsetzt? Ich hab mich bereits durch einige Foreneinträge gewühlt, doch meistens ging es hier eher um die Darstellung mittels Views oder wenn Nodes generiert wurden, dann meist nur in einer Art einmaliger Migration.
Die Wissensdatenbank in unserem Intranet wird aktiv gepflegt, d. h. die Nodes müssen regelmäßig aktualisiert werden. Der Workflow vom Intranet zur Drupalseite kann auch nicht geändert werden, weil wir in der Wissensdatenbank im Intranet weitergehende Informationen hinterlegen, die nur z. T. auf unsere Webseiten publiziert werden sollen.
Ich habe mich in Vorbereitung auf das Thema bereits ein wenig mit der Drupal API auseinandergesetzt, bin allerdings noch nicht in die Tiefe gegangen.
Wie ich das sehe, ist es möglich per Modul und Drupal-API Nodes anzulegen.
Nun überlege ich, ob man eine geplante Aufgabe/Cronjob einrichtet, die jeden Tag ein Modul anstößt, das die Datensätze vom Intranet ausliest und prüft, ob es bereits einen Node mit dem Inhalt gibt.
Wenn ja, wird der Node aktualisiert. Wenn nein, wird ein neuer Node angelegt. Dazu würde ich einen eigenen Inhaltstypen für die Inhalte der Wissensdatenbank anlegen.
Ich bin mir nur nicht sicher, ob es auch eine Funktion zum Aktualisieren eines Nodes per API gibt und ob das mit der Navigationsstruktur ebenfalls per API umgesetzt werden kann.
Bevor ich mich in einen falschen Ansatz verrenne, möchte ich gerne von euch wissen, ob es Erfahrungen / Empfehlungen von eurer Seite gibt?
Vielen Dank im Voraus für eure Ideen/Anmerkungen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Das geht alles mit Feeds
am 10.02.2020 - 13:14 Uhr
Das geht alles mit Feeds https://www.drupal.org/project/feeds ...
... und "Feeds SQL" https://www.drupal.org/project/feeds_sql
Leider steht "Feeds SQL" für Drupal 8 noch nicht nicht zur Verfügung.
Drupal rockt!!!
Danke
am 10.02.2020 - 16:12 Uhr
Hallo Ionit,
danke für die schnelle Antwort.
Das Modul "Feeds" probiere ich mal aus.
Wenn ich damit wie gewünscht zum Ziel komme, kann ich mir die Programmierung eines eigenen Moduls ersparen.