Drupal – Was ist ein Node?


Was ist ein Node? Node = Knoten. Was soll das mit Drupal zu tun haben. Ich habe gerade eben einen Kommentar eines enttäuschten Drupal Users gelesen und mir gedacht, dass ich mich mal wieder den Basics widme. Ohne das Verständnisses des Nodes wird man mit Drupal nicht sehr weit kommen.

Die Node Analogie

Am Besten erklärt es sich anhand einer Analogie: Die Dateien auf dem Computer: Es gibt .jpg Dateien (Bilder), .doc (Word), .avi (Video), .ini (System) usw. Es gibt wahrscheinlich hunderte von verschiedenen Dateien. Was haben all diese Dateien gemeinsam?

  • Namenskonvention -> die Endung gibt den Dateityp wieder
  • Erstellungsdatum
  • Einen Ersteller
  • Eine Grösse
  • Ein veränderungsdatum
  • Einen Pfad

Wenn ich mir jetzt diese Daten in einem Filebrowser (z.B. Windows Explorer) anschaue, dann kann ich diese nach bestimmten Kriterien sortieren. Obwohl alle Dateien verschieden sind, kann ich alle gleich behandeln.

Der Node

Der Node ist eigentlich genau gleich. Ein Node ist ein Inhalt. Ein Node hat verschiedene Ausprägungen, welche für jeden Node (egal welcher Typ) gleich sind:

  • Author
  • Erstellungsdatum
  • Veränderungsdatum
  • Eine ID (nid)
  • Eine Versions ID (vid)
  • Einen Status
  • Eine Sprache
  • Einen Type

Standardmässig hat ein Node als Eingabefelder einen Titel und ein Body (Textkörper). Damit lassen sich einfache Seiten, Blog usw. machen. Soweit so gut. Die wahre Power des Drupal Node Systems kommt jedoch erst mit dem Einsatz von CCK

Drupal CCK

Content Construction Kit. Ein sehr mächtiges Tool! Damit lassen sich neue Nodetypen anlegen und erweitern! Ich habe die folgenden Inhaltstypen:

  • Fotogalerie
  • Blogpost

Das Blogpost kommt gut mit dem Titel und dem Body aus. Diesen Inhaltstyp können wir gut in rohform lassen. Aber die Bildergalerie?? Dazu wird der Fotogalerie Inhaltstyp mit einem Bildfeld erweitert (Imagefield). Zum standardmässigen Titel und Bodyfeld kommt jetzt noch ein Feld hinzu, mit welchem sich Bilder hochladen lassen.
Inhaltstypen können beliebig erweitert werden. Es gibt mittlerweile wohl schon hunderte von Erweiterungen: Feld für Youtube, Bilder, Videos, Audio, Flickr, Links usw.
Diese Nodes mögen äusserlich ganz anders aussehen, es bleibt jedoch bei den grundsätzlichen gemeinsam Eigenschaften.

Was ist der Vorteil?

Der Vorteil liegt auf der Hand. Da jeder einzelne Inhalt in Drupal eine grundsätzliche Gemeinsamkeit hat, kann man die verschiedenen Nodes einfach kombinieren und die Ausprägung den Gegebenheiten anpassen, ohne dass für jeden Nodetyp etwas eigenes gemacht werden muss.
Wer CCK sagt muss auch Views sagen. Mit Views lassen sich "Windwos Explorer Ansichten" bauen. Ich kann also z.B. eine Auflistung aller Nodes machen (das ist möglich, weil alle Nodes einen Titel, einen Author usw haben). Die liste kann also z.B. diese Felder als Tabelle auflisten mit Sortiermöglichkeiten enthalten.

Wie weiter

Drupal ist damit noch nicht erklärt und viel Dokumentation auf drupal.org ist in Englisch verfasst. Evtl. lohnt sich die Anschaffung eines Drupal Buches, z.b. O'Reillys Basics: Praxiswissen Drupal 7