CMS: Drupal 7 – Ein Ausblick auf das anstehende Release und dessen Neuerungen
Eine der wichtigsten Veränderungen betrifft den Datenbank-Layer. Dieser wurde komplett neu entwickelt. Der alte Layer war für PHP 3 und MySQL 3 optimiert. Der neue, kurz DBNG genannt, macht regen Gebrauch von PHP 5 und PDO (PHP Data Objects). Unterstützte D6 nur MySQL und teilweise PostgreSQL, sind es jetzt fünf Datenbanken (MySQL, PostgeSQL, SQLite, Oracle und MySQL). Neben der größeren Auswahl wurden auch viele Funktionen verbessert und ergänzt.
So sind nun Master/Slave-Datenbankkonfigurationen möglich. Multiple-INSERT Befehle sind kein Problem mehr und verbessern den Import von Daten aus Drittsystemen ungemein. Daneben wurden dynamische Abfragen verbessert sowie Transaktionen hinzugefügt. Zudem wurde MySQL standardmäßig auf InnoDB umgestellt und die Performance trotz der vielen Neuerungen und Erweiterungen auf einem gleich hohen Niveau gehalten.
Ein Vergleich der Schreibweisen in Drupal 6 und 7 verdeutlicht den Einsatz von PHP 5 und der stark verbesserten Objektorientierung der neuen Version.
Drupal 7 Fields – mehr CCK im Core
Ebenfalls seit Drupal 6 (D6) sind Teile des Content Construction Kits (CCK) Bestandteil des Systems. So können Entwickler in D6 beliebige Inhaltstypen anlegen und verwalten. Für Felder, die man über die standardmäßigen Feldertitel und den Bodytext hinaus benötigt – wie etwa Dateifeld, E-Mail-Feld oder Node-Referenzen – braucht man weiterhin CCK.
Mit Drupal 7 wird die Integration von CCK nun erneut stark verbessert. „Drupal-Fields“ ergänzt die Inhaltstypen nun auch standardmäßig um Felder. Damit wird es möglich, beliebig viele weitere Felder ohne CCK hinzuzufügen. Drupal unterstützt Text-, Zahlen-, Bild- (früher imagefield) und Dateifelder (früher filefield). Node- und User-Referenzen aus CCK wurden nicht in den Core integriert. Somit wird es auch für Drupal 7 eine Version von CCK geben.
Felder sind aber nicht nur für Nodes verfügbar. Sie können auch an Kommentare und Taxonomien (Kategorien) geknüpft werden. Das ermöglicht völlig neue Einsatzmöglichkeiten von Kategorien, die beispielsweise über Bilder dargestellt werden sollen. Interessant ist die Entscheidung, Nutzerprofile nicht in Fields abzubilden. Dafür sind nach wie vor Profile zuständig.
Einige Entwickler von CCK-Feldern haben bereits mit der Konvertierung ihrer Felder für Drupal-Fields begonnen. So sollten ab Start von Drupal 7 bereits eine Reihe von Erweiterungen für Fields zur Verfügung stehen.
Views 3 – mehr als nur Drupal
Neben CCK ist das Views-Modul eines der am häufigsten genutzten Module. Anders als bei CCK ist Views allerdings weiterhin kein Bestandteil von Drupal. Sowohl die Entwickler von Drupal als auch die Macher von Views sehen hierfür auch keine Notwendigkeit – die getrennten Entwicklungsstränge ermöglichen Views eine höhere Entwicklungsgeschwindigkeit.
Nichtsdestotrotz steht eine neue, sehr interessante Version von Views für Drupal 7 als Dev-Snapshot zur Verfügung. Die größte Änderung in Views 3 ist die Möglichkeit, Views nicht nur über die SQL-Tabellen zu erstellen. So ist es möglich, Webservices oder APIs wie die FlickrAPI direkt anzuzapfen und Views zu erstellen.
Weitere Neuerungen sind eine verbesserte Darstellung von Header- und Footer-Bereich sowie die Integration von CTools (Chaos Tools) – bekannt aus Panels, um die Handhabung von Tabs und Ajax in Views zu vereinheitlichen. Bei den Views-Filtern wurde das aus dem SQL-Standard bekannte „GROUP BY“ verbessert und „OR“ nun direkt implementiert. Das Caching von Ergebnissen wurde weiter verfeinert, ebenso der Funktionsumfang von Exposed Forms und Filtern.
RDFa – Semantic Web in Drupal 7
Mit RDF hält erstmalig das Semantic Web Einzug in den Core eines der wichtigsten Web-CMS. RDF steht für Resource Definition Framework und ist ein W3C-Standard, der Daten dahingehend anreichert, dass diese auch für Maschinen verständlich werden. Ist es für Menschen kein Problem, auf einer Website zusammengehörige Bereiche aus Text und Bild zu erkennen und miteinander in Beziehung zu setzen, ist dies für Maschinen nur schwer möglich. Mit Hilfe einer Erweiterung von RDF namens RDFa (a steht für Attribut) ergänzt Drupal 7 den Quelltext der Website um vordefinierte Attribute und ermöglicht so auch Maschinen, die Bedeutung einzelner Seitenbereiche zu erkennen.
Welchen Nutzen bringt die automatische Anreicherung des Quelltextes mit RDFa? Suchmaschinen können beispielsweise Zahlen als Preise und Bilder als Produktbilder erkennen und direkt im Suchergebnis wiedergeben. Viel interessanter ist aber die Tatsache, dass mit RDFa angereicherte Websites selbst wie eine Datenbank fungieren und von anderen Websites „angezapft“ werden können, um aktuelle Daten abzufragen und anzuzeigen – Stichwort Mashup.
Module & Themes
Drupal lebt von seiner umtriebigen Community, von Modul- und Theme-Entwicklern. Über die Jahre wurden circa 5.000 Module entwickelt – Tendenz stark steigend. Bei Erscheinen von Drupal 6 waren viele Entwickler noch nicht so weit und so standen für zahlreiche Module wie CCK oder Views keine D6-Versionen bereit.
Eine ähnliche Situation will das Team für Drupal 7 verhindern. Aus diesem Grund wurde der Entwicklungsprozess so transparent wie möglich gestaltet und Entwickler wurden angehalten, so früh wie möglich mit der Arbeit für D7 zu beginnen. Wer sich über den Stand einzelner Module informieren will, kann das über die Websites von „drupal.org“ oder „drupalmodules.com“ tun. Dazu existiert auf „drupal.org“ das Tag „#D7CX“, das Modul- und Theme-Entwickler einsetzen, um anzuzeigen, dass ihre Module und Themes bei Erscheinen der finalen Version von Drupal 7 bereit sind. Rund 200 Module tragen bereits dieses Tag, darunter viele wichtige Module wie WYSIWYG, Webform, Ubercart, Rules, Pathauto, Organic Groups und Backup & Migrate. Weitere Module werden in den nächsten Tagen und Wochen folgen.
Im Bereich der Themes sind die Änderungen nicht so gravierend, dafür wurde vieles optimiert. Am auffälligsten dürfte das Fehlen der alten Themes wie „Pushbutton“ und „Bluemarine“ sein. Hinzugekommen sind dafür „Stark“ – ein sehr einfaches Basis-Theme ähnlich dem beliebten Zen-Theme – sowie das neue Backend Theme „Seven“. Änderungen betreffen auch Template-Variablen, die entweder entfernt oder umbenannt wurden. Viele Optimierungen gehen auf die Usability-Studien aus den letzten Jahren zurück. Integriert wurden auch die aktuellen Versionen von jQuery 1.4.x und erstmalig jQuery UI. Der Content-Bereich ist jetzt ein Block und kann frei in Templates positioniert werden. Insgesamt gibt es mehr Regionen, in denen Inhalte platziert werden können.
Status & Upgrade
Neben den genannten Neuerungen und Änderungen gäbe es noch viele weitere Bereiche genauer zu betrachten. Wer Drupal 7 vorab gerne testen möchte, sollte zur aktuell verfügbaren Alpha-Version greifen (bei Redaktionsschluss: Drupal 7 Alpha 4). In Alpha 4 sind bereits alle wichtigen neuen Funktionen integriert, sodass Entwickler ihre Module gegen diese Version entwickeln und testen können. Für den Produktiveinsatz ist die Alpha allerdings noch nicht geeignet.
Die finale Version von Drupal 7 erscheint, sobald alle kritischen Fehler behoben sind. Wie viele das sind, kann man auf „drupal.org“ in der rechten Spalte im Block mit dem Titel „Contributor Links“ unter „Critical Issues“ nachlesen. Sobald hier eine 0 steht, wird noch mindestens ein Release Candidate veröffentlicht, danach erscheint Drupal 7.0. Letzte Schätzungen vom Projektgründer Dries Buytaert deuten auf Juni 2010 hin.
Ein Upgrade einer bestehenden Drupal-6-Installation ist offiziell noch nicht möglich. Wer experimentierfreudig ist, kann das neue Drush 3 (Skript-Sammlung, um Drupal von der Kommandozeile zu steuern) ausprobieren, das ein Migrationsskript von Drupal 6 nach 7 anbietet. Es richtet sich aber in erster Linie an Entwickler und ist noch nicht vollkommen ausgereift.
Fazit
Mit D7 steht erneut ein sehr interessantes Drupal-Release vor der Tür, das den Weg für die Weiterverbreitung von Drupal ebnen wird. Wer mehr über Drupal 7 erfahren möchte, findet unter „drupal.org“ umfangreiche Informationen.
Wer zum Erfolg von Drupal beitragen will, kann jederzeit an der Entwicklung teilnehmen. Die bereits genannte Issue-Liste ist der erste Anlaufpunkt für alle Interessierten. Je mehr Feedback zu den dort bereitgestellten Patches abgegeben wird, desto schneller wird Drupal 7 veröffentlicht.
D7 im Juni 2010 fertig?? Es ist aber schon Oktober, und D7 gibt es noch lange nicht. War nicht eher Juni 2011 gemeint?
Ja, Juni war etwas optimistisch ;)
Die Anzahl der kritischen Bugs ist aktuell auf ca. zehn (von 300 am Anfang des Jahres) geschrumpft und die beta 1 wurde mittlerweile veröffentlicht.
Im Falle von Drupal 7 bedeutet Beta aber schon fast so viel wie RC, da vor allem das Funktionieren des Upgrade Path und einige andere als „Beta Blocker“ eingestuft wurde, daher diese Beta schon sehr weit ist.
Von einem Erscheinen des Stable Release noch in 2010 gehe ich aus.
Dennoch, das Warten scheint sich zu lohnen. Die aktuelle beta 2 und selbst die dev-Version vom Views Modul versprechen ein funktional optimiertes Drupal, das vor allem endlich auch sehr benutzerfreundlich geworden ist. Schade, dass man alte Drupal 6 Seite nicht so einfach upgraden kann. Bin gespannt auf meine ersten größeren Drupal7-Projekte.
Zeit wirds für Drupal 8 :-)
Updates and How to Help: http://drupal.org/community-initiatives/drupal-core