Startseite
  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Externe Daten (Tabellen) für Nodes verwenden

Eingetragen von jan.s (44)
am 25.11.2009 - 15:51 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo Community!

Ich stehe gerade vor einem neuen Drupal Projekt und es stellen sich ein paar konzeptionelle Fragen.

Eine existierende Website soll auf Drupal umgestellt werden, um mehr Möglichkeiten wie z.B. Bewertungen und Kommentare zu beliebigen Inhalten besser und schneller integrieren zu können. Es sind bereits viele Datensätze vorhanden, welche in einem "speziellen" Backend eingegeben werden. Damit meine ich, dass die Eingabe und Verwaltung relativ komplex ist und dabei aus dem Formular noch auf externe Dienste zugegriffen wird. Ich möchte dies daher nicht von Anfang an mit einem eigenen Inhaltstypen in Drupal machen, sondern dies erst später umstellen. Trotzdem würde ich gerne Methoden wie das Bewerten (FiveStar) von Nodes nutzen.

In einem anderen Projekte (wo die Produktdaten definitiv von außen kommen) mache ich das so, dass alle Produkte als "Dummy-Node" in Drupal angelegt werden müssen. Das ist in diesem Fall noch überschaubar, da nicht viele Produkte exisitieren, dafür aber um so mehr Eigenschaften in der externen Tabelle, welche auch extern verwaltet wird. Diese restlichen Daten werden aus der externen Tabelle über den TableWizard und Blöcke auf den entsprechenden Seiten der ProduktNodes angezeigt. Der Vorteil ist, dass so alle Funktionen für Nodes zur Verfügung stehen, wie z.B. Nodes zu verknüpfen, bewerten etc., obwohl die Daten an sich in einer externen Tabelle liegen.

Bei dem neuen Projekt handelt es sich jedoch um sehr viel mehr Datensätze, so dass das doppelte Eingeben und Anlegen von "leeren" Nodes schon recht aufwendig wäre. Trotzdem wird es in derersten Zeit nicht möglich sein, die Datensätze komplett über eigenen Inhaltstypen zu realisieren. Allein schon wegen der Historisierung und Auswertungen in der bisherigen Verwaltung. Da die Datensätze jedoch bewertet werden sollen, sind Nodes auf jeden Fall nötig. Da sehe ich eigentlich keine andere Möglichkeit. Das Migratemodul bietet für diesen Fall ja schon einge gute Unterstützung, aber ist auch nicht die beste Lösung, da es hier mit einem einzigen Import nciht getan wäre.

Gibt es durch irgendein Modul die Möglichkeit, die Inhalte von Nodes mit Daten aus externen Tabellen abzugleichen? Die entsprechenden Ids könnte man ja z.B. schon in der Node speichern, so dass die Objekte zugeordnet werden könnten.

Es wäre schon sehr wichtig, die Daten auch in den Nodes zur Verfügung zu haben, weil nur so ein komfortables Suchen und Filtern möglich ist. Den oben beschriebenen Weg mit den Dummy Nodes und dem Einbinden der zugehörigen Daten über Blöcke möchte ich hier eigentlich vermeiden.

Vielleicht hat hier ja jemand eine Idee oder einen Denkanstoß für mich oder evtl. sogar auch ein ähnliches Problem.

Viele Grüße
Jan

‹ [gelöst] Problem mit der Suche Wie am besten Kategorien anlegen? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Stellt sich mir spontan die

Eingetragen von netzkoop (1840)
am 26.11.2009 - 01:23 Uhr

Stellt sich mir spontan die Frage in welchen Zeitintervallen die Daten abgeglichen werden sollen?
Und wie wichtig die Performance deiner Seite ist?
Ach ja, und um wie viele Nodes handelt es sich ca?

-----------
Luca Curella
Kooperative Netze Hamburg - Berlin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo luzer! Es handelt sich

Eingetragen von jan.s (44)
am 26.11.2009 - 09:27 Uhr

Hallo luzer!

Es handelt sich um ca. 600-900 Nodes. Ein täglicher Abgleich wäre ok!

Ich überlege, ob ich einfach ein eigenes Inhaltstyp-Modul schreibe, welches alle entsprechenden Felder besitzt, die aber durch eine moduleigene Funktion abgeglichen werden können mit der externen Tabelle.
Oder wirklich ein externen Script, dass die Drupal Nodes und die externe Tabelle anhand der ID, welche auch in der Node gespeichert ist, einfach direkt in der Datenbank synchroniert.

Was meinst du dazu? Siehst du noch eine bessere Möglichkeit?

Ich denke so abwegig ist dieser Fall gar nicht. Mich wundert es, dass es dazu noch kein Modul gibt. So in der Art wie beim Migrate Modul, dass man die Felder einfach einander zuordnen kann, aber dann halt nciht migriert, sondern in regelmäßigen Abständen nur aktualisiert.

Viele Grüße
Jan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Weitere Frage

Eingetragen von netzkoop (1840)
am 26.11.2009 - 11:23 Uhr

Musst du eigentlich auch Änderungen in bereits angelegten Nodes abgleichen?
Oder nur neue Datensätze als Node anlegen?

Für letzteres würde ich mir den Inhaltstypen mit allen Feldern anlegen und dann mittels Modul per hook_cron() und node_save() die Daten täglich holen.

Ein anderer Ansatz könnte sein den Node-Inhalt dynamisch darzustellen ohne die Daten in Drupal zu speichern. Das hab ich selbst noch nie gemacht. Kommt denke ich auf die Menge der Daten an.
Als Modul hab ich das gefunden:
http://drupal.org/project/dynamicfield
Oder auf Theme-Ebene über eine _preprocess_node() Funktion.

Grundsätzlich würde ich wenn möglich versuchen die Daten in Drupal zu importieren und zu bearbeiten.

-----------
Luca Curella
Kooperative Netze Hamburg - Berlin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo luzer! Ich muss auch

Eingetragen von jan.s (44)
am 26.11.2009 - 11:42 Uhr

Hallo luzer!

Ich muss auch die Daten in bereits importierten/abgelegten Nodes aktualisieren. Die Bearbeitng innerhalb von Drupal wird vorerst einfach nicht möglich sein, da hängt leider viel zu viel hinten dran. Datenbasis muss die externe Tabelle bleiben. Eine Bearbeitung der Daten/Nodes in Drupal wird nicht vorkommen, zumindest nicht der Felder, welche aus der externen Tabelle geholt werden.

Es wäre akzeptabel, jeden Datensatz einmalig in Drupal als Node anzulegen (und dann die zusätzlichen Daten aus der externen Tabelle abzurufen), es kommen nur wenige neue Datensätze hinzu.

Ich schaue mir mal das dynamicfield an. Danke für deine Ideen!

Viele Grüße
Jan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also dynamicfield ist

Eingetragen von jan.s (44)
am 26.11.2009 - 12:21 Uhr

Also dynamicfield ist leider nicht so geeignet, da diese Werte nicht im Filter verwendet werden können. Ist ja eigentlich auch logisch, da der Filter direkt in der Datenbankabfrage greift.

Ich denke, dass ich den Nodeinhalt mit den externen Daten abgleichen muss. Eigentlich gibt es da keine andere sinnvolle Möglichkeit.

hook_cron() scheint mir dafür gut geeignet. Am besten mit einer direkten Operation nur in der Datenbank, damit müsste ich nichteinmal die Nodes laden und speichern.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo zusammen, ich nutze

Eingetragen von jan.s (44)
am 09.12.2009 - 10:53 Uhr

Hallo zusammen,

ich nutze jetzt hook_cron für den Datenabgleich und habe dafür ein Modul geschrieben. Funktioniert wunderbar und ist wohl die beste und flexibelste Lösung.
Allerdings müssen neue Datensätze noch manuell in Drupal angelegt werden. Das werde ich aber auch noch automatisieren.

Danke für die Ideen!

Viele Grüße
Jan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • "Spielankündigung"-Block mit Drupal erstellen
  • Heartbeat und Facebook Style Status
  • D7: Custom Modul, Entity API, Save/Delete Methode erweitern - entity_class oder entity_controller_class verwenden?
  • Drupal-API-Links werden nicht automatisch verlinkt
  • Views Field Language (Spracherkennung der Felder) funktiniert nicht
  • Javascript in Block geht nicht
  • [gelöst] Zwei CCK Felder verbinden
  • [gelöst]Whitespace vor HTML-Head auf jeder Seite
  • Content änderungen
  • Nächstes Datum herauslesen
  • [gelöst]Editor Problem
  • Drupal 7 User Testing bei Google im Live-Stream
Weiter

Neue Kommentare

  • Würd mich mal intressieren ob
    vor 10 Minuten 15 Sekunden
  • Diesen Fehler bekomme ich
    vor 28 Minuten 55 Sekunden
  • Ok ... das hört sich logisch
    vor 49 Minuten 15 Sekunden
  • "current user" language
    vor 1 Stunde 13 Minuten
  • Hallo Frank, !username has
    vor 1 Stunde 23 Minuten
  • <script
    vor 1 Stunde 31 Minuten
  • Hallo Stephan,nochmals
    vor 1 Stunde 34 Minuten
  • Du versuchst nicht wirklich
    vor 1 Stunde 36 Minuten
  • Was hat dich in der
    vor 1 Stunde 38 Minuten
  • Hatt sich erledigt.. danke
    vor 1 Stunde 46 Minuten

Statistik

Beiträge im Forum: 173721
Registrierte User: 15465

Neue User:

  • ichauch
  • Nagazi
  • yxlan

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5515
quiptime4713
Tobias Bähr3874
wla3789
md3775
bv3699
Thoor3678
Alexander Langer3277
dereine2635
Exterior2568
» User nach Punkten
Zur Zeit sind 8 User und 45 Gäste online.

Benutzer online

  • DieWerbetrommel
  • Bogus
  • SteffenR@drupal.org
  • kahta
  • lolhonk
  • TobiasR
  • ichauch
  • byronic

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's
  • Bücherecke

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed Drupal Podcast
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association