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 (37)
am 25.11.2009 - 16: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 luzer (1286)
am 26.11.2009 - 02: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?

-----------
Kooperative Netze Hamburg-Berlin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo luzer! Es handelt sich

Eingetragen von jan.s (37)
am 26.11.2009 - 10: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 luzer (1286)
am 26.11.2009 - 12: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.

-----------
Kooperative Netze Hamburg-Berlin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo luzer! Ich muss auch

Eingetragen von jan.s (37)
am 26.11.2009 - 12: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 (37)
am 26.11.2009 - 13: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 (37)
am 09.12.2009 - 11: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
Drupal 7 Demo-Website

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Node-Speichern wird mit zunehmender Laufzeit des Servers langsam
  • Fatal error: Maximum execution time of 30 seconds exceeded in ....../includes/file.inc on line 934
  • Probleme bei der Installation von memcache
  • Treffen in Düsseldorf - 8.9. und 22.9.2010
  • [erledigt] id und klassen bei blöcken
  • Anzahl der erstellten Nodes eines bestimmten Contenttypes für bestimmte Rollen limitieren
  • Seiten kombinieren
  • Drupal Übersetzung Englisch Deutsch
  • Fragen vor Umstieg zu Drupal 6 von Joomla
  • Lightbox-2 Inputfilter
  • Kostenplfichtige Useraccounts
  • Such-Index: Problem mit ISBNs / großen Zahlen
Weiter

Neue Kommentare

  • Zum einen würde ich den
    vor 5 Stunden 10 Minuten
  • Das Aktivieren von Modulen
    vor 5 Stunden 17 Minuten
  • Lies dich mal in Ruhe ein,
    vor 5 Stunden 20 Minuten
  • Hallo, das heißt, dass Dein
    vor 5 Stunden 27 Minuten
  • danke für den tip!
    vor 5 Stunden 55 Minuten
  • Nur ein Tip, aber ich würde
    vor 6 Stunden 21 Minuten
  • Ich habe noch das Problem,
    vor 6 Stunden 17 Minuten
  • E-Fee schrieb ...Entweder man
    vor 6 Stunden 40 Minuten
  • Tja, was heiß quasi Standard?
    vor 6 Stunden 55 Minuten
  • Hallo E-Fee, nach dem was Du
    vor 7 Stunden 12 Minuten

Statistik

Beiträge im Forum: 130977
Registrierte User: 11264

Neue User:

  • BAue
  • CodeFlatter
  • michastock

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4714
stBorchert4318
md3609
Tobias Bähr3607
bv3490
Alexander Langer2737
dereine2604
pebosi2490
Thoor2223
rapsli1505
» User nach Punkten
Zur Zeit sind 2 User und 25 Gäste online.

Benutzer online

  • Tobias Bähr
  • t0b1

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 News
  • RSS Feed Planet
  • Twitter Drupalcenter
  • Drupal Demo
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association