- Werbung -

Was Drupal von anderen Content-Management-Systemen (CMS) unterscheidet, ist die Umsetzung von Ansätzen einer Social-Software, denn es unterstützt den Aufbau von Communities, die gemeinsam an Inhalten arbeiten, sich über Themen austauschen oder informieren wollen. Dies kann in Foren geschehen, in eigenen Weblogs oder über Kommentare zu Beiträgen. So verschieden die Communities sind, so verschieden sind auch die Anforderungen an die Gestaltung und Strukturierung der Inhalte. In der Standardinstallation bietet Drupal zunächst nur zwei Inhaltstypen an: Artikel und Seiten. Beide erlauben nur die Eingabe eines Titels (also einer Überschrift), eines Textkörpers (den zu veröffentlichenden Inhalt) und das Anhängen einer Datei (die dann als Download angeboten wird). Sie unterscheiden sich lediglich in der Voreinstellung der Kommentarfunktion und der Art der Veröffentlichung. Damit kann man zwar schon viele Anwendungsfälle abdecken, aber im Communitybereich werden häufig speziell angepasste Inhaltstypen benötigt, die mehr bieten, z.B. Datumsfelder, Referenzfelder, Links oder Bilder. Es gibt zahllose Drupal-Module, die einen Inhaltstyp um bestimmte Eigenschaften erweitern. Eines von ihnen möchte ich im folgenden näher vorstellen, die "Eierlegende Wollmilchsau" sozusagen, da es nahezu unbegrenzte Gestaltungsmöglichkeiten eröffnet: Das Modul Content Construction Kit - auch kurz CCK genannt. Der besondere Clou: CCK kann man mit weiteren Modulen ebenfalls erweitern (Im November 2011 listet die Suche auf drupal.org 633 Erweiterungsmodule für CCK auf). So lassen sich auch beliebige eigene Feldtypen programmieren, die später an Inhaltstypen angebaut werden können.

Wie unverzichtbar CCK mittlerweile geworden ist, belegt am besten die Entscheidung, seine Funktionalität ab Drupal 7 in den Kern zu integrieren. D.h. ab Version 7 ist CCKs Funktionalität schon in der Standardinstallation vorhanden und nennt sich dort "Fields". Im folgenden beschreibe ich die Drupal6-Version von CCK. Vieles hat aber auch Gültigkeit für die Fields in Drupal 7. Dieser Artikel ist vor allem für Drupal-Einsteiger gedacht, die bereits erste Erfahrungen mit dem System gesammelt haben, in der Lage sind Module zu installieren und mit dem Berechtigungssystem vertraut sind.

Baukasten für eigene Inhaltstypen

Um Drupal-Inhaltstypen mit zusätzlichen Feldern erweitern zu können, muss man natürlich erst einmal CCK installieren. Das geht wie bei jedem anderen Drupal-Modul auch: CCK von drupal.org herunterladen, entpacken, per FTP in den Module-Ordner (i.d.R. ../sites/modules/) hochladen und anschließend unter "Verwaltung >> Strukturierung >> Module" aktivieren. Sobald das Modul aktiviert ist, sieht man beim Bearbeiten von Inhaltstypen eine Änderung: Dort stehen jetzt drei Tabs zur Verfügung: "Bearbeiten" (der auf die bisher schon vorhandene Bearbeiten-Ansicht schaltet), "Felder verwalten" und "Felder anzeigen" (siehe Screenshot).

Drupal CCK: neue Tabs für Felder
Bild 1: Zusätzliche Tabs durch CCK bereitgestellt

Ein Klick auf "Felder verwalten" führt dann direkt ins Herz von CCK. Man sieht eine Liste mit allen verfügbaren Feldern eines Inhaltstypes - egal, ob diese von CCK oder einem anderen Modul bereitgestellt werden. Wobei CCK nur bei eigenen Feldern das Bearbeiten oder Löschen zulässt. Wir wollen jetzt dem Inhaltstyp Artikel ein neues Feld hinzufügen, das später ein Daum aufnehmen soll. Dazu geben wir unter "Neues Feld" zunächst eine Bezeichnung ein. Diese kann beliebig gewählt werden, sollte aber möglichst aussagekräftig sein, hier: "Datum". In das nächste Feld "Feldname" trägt man den maschinenlesbaren Namen ein, über den Drupal künftig Zugriff auf dieses Feld gibt; dieser darf nur aus Kleinbuchstaben, Ziffern und dem Unterstrich bestehen und kann später nicht mehr geändert werden. Achtung: Drupal setzt automatisch den Präfix "field_" voran, daher sollte man seinem Feld keinen Namen geben, der ebenfalls mit "field" anfängt, sonst bekommt man so unglückliche Bezeichnungen wie "field_field_datum". Wir tragen hier nur "datum" ein. Das Feld ist damit künftig unter der Bezeichnung "field_datum" ansprechbar. In der folgenden Drop-Down-Liste wähen wir den Feldtyp "Datum" und bei "Steuerelement" wählen wir "Textfeld mit Kalender".

Drupal: Neues Datumsfeld mit CCK anlegen
Bild 2: Übersichtsseite aller Felder eines Inhaltstyps

Nach einem Klick auf "Speichern" kommen wir auf die Einstellungsseite des neuen Feldes. Hier lassen sich Standardwerte vorgeben (z.B. das aktuelle Datum), das Eingabeformat festlegen, der im Kalender verfügbare Zeitraum festlegen, die Anzahl an Werten bestimmen, die Granularität des Datums einstellen (bis hinab zu sekundengenauen Werten) u.v.m. Was auf dieser Seite einstellbar ist, richtet sich nach der Art des Feldes. So bietet ein Datumsfeld natürlich andere Optionen als ein Feld für Bilderuploads. Wir begnügen uns an dieser Stelle damit, das Datumsformat auf europäische Standards umzustellen und speichern anschließend das Feld.

Drupal: Einstellungsseite für neues CCK-Feld
Bild 3: Einstellungen für neues CCK-Feld "Datum"

Sobald wir jetzt einen neuen Inhalt vom Typ "Artikel" erstellen, erscheint in der Eingabemaske das neu angelegte Datumsfeld. Die Position, an der ein CCK-Feld erscheint, kann man natürlich auch beeinflussen. Dazu genügt es, in der Übersichtsseite aller Felder mit der Maus auf das Kreuz links neben dem Feld zu klicken und dieses an die gewünschte Position zu ziehen (siehe Bild 2). Achtung: Die Änderungen sind erst nach dem Speichern dauerhaft.

Drupal: neues CCK-Feld "Datum" in Inhaltstyp Artikel
Bild 4: neues CCK-Feld "Datum" in Inhalt vom Typ "Artikel"

Rechte nicht vergessen!

Zum Schluss muss man noch die Rechte für die neu angelegten CCK-Felder setzen. Jedes Feld besitzt eigene Berechtigungen, mit denen man festlegen kann, welche Rolle ein Feld sehen oder bearbeiten darf. Wie üblich stellt man diese Berechtigungen unter "Verwalten >> Benutzerverwaltung >> Berechtigungen" ein. Dort gibt es unter "content_permission-Modul" für jedes Feld die Berechtigungen "edit" (Feld bearbeiten) und "view" (Feldinhalt sehen). Standardmäßig sind alle Rechte deaktiviert, so dass außer dem User 1 niemand die Inhalte dieser Felder sehen oder bearbeiten kann! Der folgende Screenshot zeigt beispielhaft die Einstellungen für drei CCK-Felder

Drupal: Berechtigungen von CCK-Feldern
Bild 5: Berechtigungen von CCK-Feldern

Auf diese Art lassen sich nun Inhaltstypen ganz nach Bedarf zusammenbauen - ohne dass man auch nur eine einzige Zeile PHP-Code schreiben muss. Auch umfangreiche und komplexe Inhaltstypen lassen sich gestalten. So kann man beispielsweise für eine Bibliothek einen Inhaltstyp Buch erstellen, der alle notwendigen Angaben aufnimmt, also nicht nur den Buchtitel, sondern auch die ISBN-Nummer, den Autor oder den Stellplatz.

Neue Inhaltstypen - und dann?

Um die Möglichkeiten von CCK voll ausschöpfen zu können, sollte man auf jeden Fall das Views-Modul installieren. CCK ist hierin nahtlos integriert und gestattet Views den vollen Zugriff auf alle CCK-Felder. Neben der Gestaltung der Anzeige erlaubt Views auch nach diesen zu filtern und zu sortieren. Das folgende Bild zeigt den Zugriff auf CCK-Felder in einem View: Nach einem Klick auf das "+", rechts neben "Felder", öffnet sich die Feldauswahl, unter der man alle CCK-Felder findet und die hier auf die Gruppe "Inhalt" eingegrenzt ist.

Drupal: CCK-Felder in Views ansprechen
Bild 6: CCK-Felder in Views ansprechen

Für mich gehört das Content Construction Kit zu den wohl wichtigsten Drupal-Modulen, denn damit erhält Drupal einen deutlichen Zuwachs an Flexibilität. Die Einbindung in den Drupal-Kern ab Version 7 war daher auch ein logischer Schritt.

Links

Drupal Homepage (englisch): https://www.drupal.org/

Projektseite von CCK (englisch): https://www.drupal.org/project/cck

Deutsch Drupal-Community: http://www.drupalcenter.de/

 

Kommentare

M5543, Schriftführer und Leiter der RG600 im AUGE e.V.