Hagen Graf
Websites entwickeln und verwalten mit dem Open Source-CMS
An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig.
Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ® Symbol in diesem Buch nicht verwendet.
Umwelthinweis: Dieses Produkt wurde auf chlorfrei gebleichtem Papier gedruckt. Um Rohstoffe zu sparen, haben wir auf Folienverpackung verzichtet. Das »Druplicon« auf dem Cover dieses Buches wurde von Kristjan Jansen und Steven Wittens entworfen. Seine Verwendung unterliegt der GPL. Näheres hierzu können Sie nachlesen unter http://www.gnu.org/licenses/.
10 9 8 7 6 5 4 3 2 1 10 09 08 ISBN 978-3-8273-2608-9
© 2008 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: Marco Lindenbeck, webwo GmbH (
[email protected]) Lektorat: Boris Karnikowski,
[email protected] Fachlektorat: Peter Müller, infotekten.de Korrektorat: Annette Glaswinkler, sprache-und-text.de Herstellung: Monika Weiher,
[email protected] Satz: reemers publishing services gmbh, Krefeld (www.reemers.de) Druck: Bosch Druck, Ergolding Printed in Germany
Inhaltsübersicht Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil I
17
Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
1
Was ist Drupal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3
Eine Website mit Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
Teil II
Der Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4
Benutzer verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5
Inhalt verwalten und erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6
Strukturierung der Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7
Einstellungssache: Verwalten – Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . 175
8
Umfrage, Forum und WYSIWYG-Editoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9
Nützliches im Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Teil III
Die Kür . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
10 Verändern Sie das Design – theming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11 Content Construction Kit (CCK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 12 Views: Ansichten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 13 Nützliche Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 A
Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Inhaltsverzeichnis Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Wie kam es nun zu diesem Buch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Worum geht es in diesem Buch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Für wen habe ich dieses Buch geschrieben? . . . . . . . . . . . . . . . . . . . . . . 19 Warum überhaupt ein Buch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Und Drupal funktioniert wirklich? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Und im deutschsprachigen Raum? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 So viele Links! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Und ohne Internetzugang? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Und was will der Autor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Teil I 1
Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Was ist Drupal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.1 Die Mission von Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.1.1
Drupal ist vielseitig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
1.1.2
Drupal ist Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
1.2 Das Web verändert sich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.2.1
Das statische Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
1.2.2
Das Web wird dynamisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
1.2.3
PHP und MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
1.3 Die Geschichte von Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.3.1
Vom Dorp zu Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
1.3.2
Drupal und das Web 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
1.3.3
Drupals Logo: Das Druplicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
1.4 Drupal-Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.4.1
Drupal Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34 34
1.4.2
Drupal Conferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3
Drupal Companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
1.4.4
Die Drupal Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
1.4.5
Drupal und die Zukunft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
1.5 CMS, CRM & Co: Was Drupal alles ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.5.1
Content Management-Systeme (CMS) . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
1.5.2
Drupal als CMS Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Inhaltsverzeichnis
1.5.3
Customer Relationship Management . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
1.5.4
Social Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
1.6 Beispiele zum Einsatz von Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 1.6.1
Drupal als Weblog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
1.6.2
Drupal in Universitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
1.6.3
Drupal in EU-Projekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
1.6.4
Drupal in Kampagnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
1.6.5
Drupal in Intranets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
1.6.6
Drupal in Grassroot Movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
1.6.7
Drupal in Entwicklerkreisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
1.6.8
Drupal als Business Websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
1.6.9
Drupal als Basis für eine Flash-Website . . . . . . . . . . . . . . . . . . . . . . . . . .
50
1.6.10
Drupal als Shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
1.7 Drupal und Ihre Ideen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2
1.7.1
Das reale Dorf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
1.7.2
Das virtuelle Dorf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.1 Die Zutaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.1.1
Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
2.1.2
Datenbanksystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
2.1.3
PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
2.2 Serverumgebung wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.2.1
Welches Paket ist das richtige? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
2.2.2
»Ich habe keinen eigenen PC« oder »Ich darf auf dem PC, an dem ich arbeite, nichts installieren« . . . . . . . . . . . . . . . . . . . . . . . . . .
58
2.3 Lokale Serverumgebung einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.3.1
Microsoft Windows Vista Home Premium und XAMPP Lite . . . . . . . . . .
58
2.3.2
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
2.4 Vorbereitungen zur Installation von Drupal . . . . . . . . . . . . . . . . . . . . . . . 67 2.4.1
Die zu installierende Drupal-Version downloaden . . . . . . . . . . . . . . . . .
67
2.4.2
Installationsverzeichnis: htdocs oder Unterordner? . . . . . . . . . . . . . . . .
67
2.4.3
Installationsverzeichnis erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
2.4.4
Drupal-Quellcode entpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
2.5 Erstellen der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8
2.5.1
Datenbank mit phpMyAdmin erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
2.5.2
Datenbank mit dem MySQL-Monitor erstellen . . . . . . . . . . . . . . . . . . . .
72
Inhaltsverzeichnis
2.6 Der Drupal-Webinstaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.7 Installation beim Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3
Eine Website mit Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.1 Mehrsprachigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.1.1
Das Modul Content Translation aktivieren . . . . . . . . . . . . . . . . . . . . . . .
89
3.1.2
Inhaltstyp Artikel bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
3.2 Einen News-Artikel auf der Startseite veröffentlichen . . . . . . . . . . . . . . 91 3.2.1
Einen neuen Artikel erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
3.2.2
Den erstellten Artikel betrachten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
3.2.3
Die Übersetzung des Artikels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
3.3 Buchstruktur mit Unterseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.3.1
Das Book-Modul aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
3.3.2
Block positionieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
3.3.3
Einige Buchseiten erstellen und gliedern . . . . . . . . . . . . . . . . . . . . . . . .
95
3.3.4
Ein Link auf das Buch im Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
3.3.5
Übersetzung des Buchs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
3.3.6
Eingabeformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
3.4 Kontaktformular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 3.4.1
Modul Contact aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
3.4.2
Konfiguration des Kontaktformulars . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
3.5 Sprachumschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 3.6 Aggregatorfunktion für Drupal Newsfeeds . . . . . . . . . . . . . . . . . . . . . . . . 102 3.6.1
Aggregator-Modul aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.6.2
Newsfeeds eintragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.6.3
Menülink in die Hauptlinks positionieren . . . . . . . . . . . . . . . . . . . . . . . . 104
3.7 Andere Farben im Theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.8 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Teil II 4
Der Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Benutzer verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.1 Die Benutzerverwaltung von Drupal im Überblick . . . . . . . . . . . . . . . . . . 112 4.2 Verwalten – Benutzerverwaltung – Benutzer . . . . . . . . . . . . . . . . . . . . . . 113 4.3 Die Benutzereinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.3.1
Registrierungseinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.3.2
E-Mail-Einstellungen für Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
9
Inhaltsverzeichnis
4.3.3
Signaturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.4
Benutzerbilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4 Berechtigungen, Rollen und Zugriffsregeln . . . . . . . . . . . . . . . . . . . . . . . 118 4.4.1
Berechtigungen für Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4.2
Rollen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4.3
Zugriffsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.5 Zusätzliche Profilfelder im Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . 120 4.6 Wer hat Gemeinsamkeiten mit mir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.6.1
Eine Liste mit freiem Format erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.6.2
Die freie Liste in Aktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.7 Ein Blog für jeden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.8 Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5
4.8.1
So funktioniert OpenID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.8.2
OpenID in Drupal verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Inhalt verwalten und erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.1 Einstellungen für Beiträge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2 Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.3 Feed Aggregator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.4 Inhalt – der Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.5 Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.5.1
Inhaltstypen bearbeiten und hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.5.2
Einen neuen Inhaltstyp für Pressemeldungen erstellen . . . . . . . . . . . . . 138
5.6 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.7 RSS-Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.8 Taxonomie – Inhalte kategorisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5.8.1
Taxonomien – Ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.8.2
Free Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.8.3
Folksonomien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.9 Eingabeformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.9.1
PHP-Befehle im Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.9.2
Andere Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.10 Editoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.11 Upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10
Inhaltsverzeichnis
5.12 Bilder, Videos, Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.12.1
Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5.12.2 Videos und Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.13 Suchmaschinenfreundliche URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6
Strukturierung der Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.1 Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.1.1
Neuen Block erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.2 Kontaktformular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.3 Menüs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.3.1
Die Grundausstattung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.3.2
Ein neues Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.3.3
Zuordnung von Menüeinträgen (Links) . . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.4 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4.1
Kernmodule (core modules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.4.2
Neue Module installieren (contributed modules) . . . . . . . . . . . . . . . . . . 165
6.4.3
Module deinstallieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.5 Oberfläche übersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 6.5.1
Übersetzen eines Strings »per Hand« . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.5.2
Übersetzen mittels .po-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.5.3
Exportieren von .po Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.6 Themes bestimmen, wie Ihre Site aussieht . . . . . . . . . . . . . . . . . . . . . . . 172
7
6.6.1
Vorhandene Themes konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6.6.2
Ein neues Theme installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Einstellungssache: Verwalten – Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . 175 7.1 Aktionen und Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 7.1.1
Schritt 1 – keine Aktion ohne Auslöser . . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.1.2
Schritt 2 – Aktion erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.1.3
Schritt 3 – Auslöser (Trigger) festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4
Das Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.2 Bild-Toolkit: Kompressionsdichte für JPG definieren . . . . . . . . . . . . . . . 179 7.3 Dateisystem: Ordner für Uploads festlegen . . . . . . . . . . . . . . . . . . . . . . . 179 7.4 Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.5 Eingabeformate: Input filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 7.5.1
Filtered HTML: Ein Filter im Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.5.2
Das Eingabeformat »Filtered HTML« konfigurieren . . . . . . . . . . . . . . . . 183
11
Inhaltsverzeichnis
7.6 Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.7 Hochgeladene Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 7.8 Leistung: Performance erhöhen durch Caching . . . . . . . . . . . . . . . . . . . . 188 7.8.1
Seitencache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
7.8.2
Block-Cache: Nur Teile einer Seite cachen . . . . . . . . . . . . . . . . . . . . . . . . 189
7.8.3
Bandbreitenoptimierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.8.4
Cache leeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.9 Lesbare URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 7.10 Logging and alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 7.11 Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 7.11.1
Die Oberflächensprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
7.11.2
Sprache bearbeiten und konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . 192
7.12 Verwaltungs-Theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.13 Wartungsarbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7.14 Website-Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 8
Umfrage, Forum und WYSIWYG-Editoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 8.1 Das Modul Poll: Umfragen erstellen und auswerten . . . . . . . . . . . . . . . . 197 8.1.1
Schritt 1 – Poll-Modul aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1.2
Schritt 2 – Zugriffsrechte verteilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1.3
Schritt 3 – Umfrage erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1.4
Schritt 4 – Umfrage-Block positionieren . . . . . . . . . . . . . . . . . . . . . . . . . 199
8.1.5
Schritt 5 – Abstimmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.1.6
Schritt 6 – Umfrage beenden und auswerten . . . . . . . . . . . . . . . . . . . . . 200
8.2 Ein Diskussionsforum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 8.2.1
Schritt 1 – Aktivierung des Forum-Moduls . . . . . . . . . . . . . . . . . . . . . . . . 201
8.2.2
Schritt 2 – Berechtigungen: Wer darf was? . . . . . . . . . . . . . . . . . . . . . . . 201
8.2.3
Schritt 3 – Einen Ordner für das Forum erstellen . . . . . . . . . . . . . . . . . . 202
8.2.4
Schritt 4 – Ein neues Forum erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
8.2.5
Schritt 5 – Beiträge schreiben: Ein erster Rezeptwunsch . . . . . . . . . . . . 204
8.2.6
Schritt 6 – Den Forenbereich verlinken . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.3 WYSIWYG-Editoren erleichtern Benutzern das Leben . . . . . . . . . . . . . . . 205 8.3.1
TinyMCE-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
8.3.2
FCKeditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
8.4 IMCE: Eine eigene Medienbibliothek für jeden Benutzer . . . . . . . . . . . . 210
12
8.4.1
Schritt 1 – Installation des IMCE-Moduls . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.4.2
Schritt 2 – Benutzerberechtigungen für den FCKeditor . . . . . . . . . . . . . 211
Inhaltsverzeichnis
8.4.3
Schritt 3 – IMCE Dateiverwalter im Editor aktivieren . . . . . . . . . . . . . . . 211
8.4.4
Schritt 4 – IMCE benutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
8.5 Inhalte per Fernsteuerung bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 8.5.1
Das Modul Blog API aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
8.5.2
Fotos von Flickr direkt auf Ihre Site posten . . . . . . . . . . . . . . . . . . . . . . . 214
8.5.3
Google Docs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
8.5.4
OpenOffice.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
8.6 Inhalt und die Zukunft? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9
Nützliches im Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.1 Die eingebaute Hilfe: Verwalten – Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.2 Gesammelte Infos: Verwalten – Berichte . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.2.1
Neue Log-Einträge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.2.2
Häufigste »Nicht gefunden«-Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.2.3
Häufigste »Zugriff verboten«-Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.2.4
Statusbericht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.2.5
Verfügbare Aktualisierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.3 Wie aktualisiere ich ein Modul oder Theme? . . . . . . . . . . . . . . . . . . . . . . 226 9.3.1
Schritt 1 – Anmeldung als Administrator . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.3.2
Schritt 2 – Admin Menü – Modul-Update einspielen . . . . . . . . . . . . . . . 227
9.3.3
Schritt 3 – Datenbank-Update ausführen . . . . . . . . . . . . . . . . . . . . . . . . 228
9.4 Das Modul Statistics: Referrer, Seitenaufrufe und mehr . . . . . . . . . . . . 229 9.5 Tracker: Was tun denn eigentlich die Benutzer? . . . . . . . . . . . . . . . . . . . 230 9.6 Throttle: Lastreduzierung für Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9.7 Ping: Suchmaschinen benachrichtigen . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 9.8 Search: Lassen Sie Ihre Website durchsuchen . . . . . . . . . . . . . . . . . . . . 232 9.8.1
Das Suchmodul aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
9.8.2
Die Einstellungen für das Suchmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
9.9 Multisite: Viele Sites mit einem Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.9.1
Die Ordner sites/default und sites/all . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
9.9.2
Schritt 1 – Der Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.9.3
Schritt 2 – Die DNS-Auflösung unter Windows . . . . . . . . . . . . . . . . . . . . 235
9.9.4
Schritt 3 – Den Apache-Webserver konfigurieren . . . . . . . . . . . . . . . . . . 236
9.9.5
Schritt 4 – Drupal konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.9.6
Das Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
13
Inhaltsverzeichnis
Teil III
Die Kür . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
10 Verändern Sie das Design – theming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 10.1 Theming: Das Aussehen der Websites anpassen . . . . . . . . . . . . . . . . . . 242 10.2 Aufbau eines Themes in Drupal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 10.2.1
Drupals Theme-Engine: PHPTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
10.2.2 Aufbau eines Themes in Drupal 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.3 Die Dateien eines typischen Drupal-Themes im Einzelnen . . . . . . . . . . . 245 10.3.1
Die Informationen zum Theme: themename.info . . . . . . . . . . . . . . . . . . 245
10.3.2 Dateien mit der Endung *.tpl.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 10.3.3 Die Datei template.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 10.3.4 Jedes Theme kann weitere Themes enthalten (Sub-Themes) . . . . . . . . 249
10.4 Veränderungen gegenüber Drupal 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 10.5 Erstellen eines eigenen Themes in Drupal . . . . . . . . . . . . . . . . . . . . . . . . 252 10.5.1
Ein Drupal-Theme »von Null an« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
10.5.2 Das Modul Devel: Firebug für Drupal-Themer . . . . . . . . . . . . . . . . . . . . . 253 10.5.3 Start in drei Schritten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 10.5.4 Die Website im neuen Theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 10.5.5 Welche Datei ist für was verantwortlich? . . . . . . . . . . . . . . . . . . . . . . . . . 255 10.5.6 Die HTML-Struktur der Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 10.5.7 Eine style.css für Ihr neues Theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 10.5.8 Den Kopfbereich für das Theme ändern . . . . . . . . . . . . . . . . . . . . . . . . . . 259
10.6 Ein Beispiel zum Überschreiben von Theme-Funktionen in Drupal 6 . . . 261 10.7 Veröffentlichen eines Themes auf Drupal.org . . . . . . . . . . . . . . . . . . . . . 262 10.7.1
Drupal-Entwickler nutzen CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
10.7.2 Wie werde ich Drupal-Entwickler? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
11 Content Construction Kit (CCK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 11.1 Ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 11.2 Installation der notwendigen Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 11.3 Zwei neue Inhaltstypen mit Zusatzfeldern erstellen . . . . . . . . . . . . . . . . 270 11.4 Benutzerberechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 11.5 Dateneingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 11.6 Ansicht auf der Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 11.7 Design der Ausgabe verändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
14
11.7.1
Ein anderes Layout erstellen – direkt in PHP . . . . . . . . . . . . . . . . . . . . . . 274
11.7.2
Installation des Hilfsmoduls Content Template . . . . . . . . . . . . . . . . . . . 275
Inhaltsverzeichnis
11.8 Wie geht es weiter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 11.8.1
Eine Slideshow für die Fahrzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
12 Views: Ansichten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 12.1 Views: Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 12.1.1
Das Modul Views in der Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
12.1.2
Vordefinierte Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
12.2 Ansicht »beliebte Inhalte« verändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 12.2.1
Ein zusätzliches Feld Erstellungsdatum für die »beliebten Inhalte« . . . 286
12.2.2 Felder in der Ansicht »beliebte Inhalte« umsortieren . . . . . . . . . . . . . . 288
12.3 Wichtige Begriffe beim Bearbeiten einer Ansicht . . . . . . . . . . . . . . . . . . 289 12.4 Die Ansicht »Fahrzeugliste« erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 12.4.1
Schritt 1: Neue Ansicht erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.4.2 Schritt 2: Standardeinstellungen für die Ansicht festlegen . . . . . . . . . . 291 12.4.3 Schritt 3: Felder »Titel« und »Preis« hinzufügen . . . . . . . . . . . . . . . . . . 292 12.4.4 Schritt 4: Filter »Inhaltstyp Fahrzeug« setzen . . . . . . . . . . . . . . . . . . . . . 293
12.5 Ansicht »Fahrzeugliste«: Anzeige »Seite« erstellen und konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 12.5.1
Schritt 1: Anzeige »Seite« erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
12.5.2 Schritt 2: Pfad und Menüeintrag definieren . . . . . . . . . . . . . . . . . . . . . . 295 12.5.3 Schritt 3: Die Anzeige »Seite« im Browser testen . . . . . . . . . . . . . . . . . 296 12.5.4 Schritt 4: Die Seitenanzeige bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.6 Ansicht »Fahrzeugliste«: Erstellung der Anzeige RSS-Feeds . . . . . . . . . 299 12.7 Ansicht »Fahrzeugliste«: Erstellung der Anzeige »Block« . . . . . . . . . . . 301 12.7.1
Das Feld Standort nur für die Anzeige »Block« entfernen . . . . . . . . . . . 301
12.7.2 Die Überschriften für die Felder entfernen . . . . . . . . . . . . . . . . . . . . . . . 302 12.7.3 Änderung der Darstellung im Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 12.7.4 Den Block positionieren und nur auf bestimmten Seiten darstellen . . 304
12.8 Weitergabe von Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 13 Nützliche Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 13.1 Webform: Formulare erstellen und auswerten . . . . . . . . . . . . . . . . . . . . 308 13.1.1
Entpacken und installieren des Moduls . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.1.2
Konfiguration des Moduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.1.3
Erstellen Sie ein neues Formular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
13.1.4
Erstellen Sie Formularfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
13.1.5
Füllen Sie Ihr Formular aus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
13.1.6
Werten Sie die Eingabe aus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
15
Inhaltsverzeichnis
13.2 Node Clone: Inhalte kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 13.3 External Links und Smileys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 13.3.1
Das Modul External Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.3.2 Das Modul Smileys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
13.4 Google Analytics: externe Statistiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 13.5 Kampf gegen Spam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 13.5.1
Mollom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
13.5.2 Das Captcha-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 13.5.3 Beispiel: Ein Bild-Captcha für das Probefahrt-Formular . . . . . . . . . . . . . 325
13.6 i18n: Internationalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 13.6.1
Beispiel 1: eine mehrsprachige Navigation mit unterschiedlichen Menüeinträgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
13.6.2 Beispiel 2: eine mehrsprachige Navigation mit unterschiedlichen Menüs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 13.6.3 Devel: Hilfe bei der Entwicklung neuer Themes und Module . . . . . . . . . 330 13.6.4 Devel Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 13.6.5 Devel Generate Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 13.6.6 Devel node access Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 13.6.7 Macro Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 13.6.8 Theme developer Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
A
Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 A.1 Drupal-Backup und -Restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 A.1.1
Wie sichere ich am besten? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
A.2 Umzug einer lokalen Seite auf einen Server im Internet . . . . . . . . . . . . . 337 A.2.1
Schritt 1 – Dateien hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
A.2.2
Schritt 2 – Datenbank einlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
A.2.3
Schritt 3 – settings.php anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
A.3 System-Update Drupal 6.2 auf 6.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 A.3.1
Bevor Sie updaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
A.3.2
Das Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
A.4 System-Update Drupal 5.x auf 6.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 A.5 Inhalt der CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
16
Einleitung Dies ist das zweite Drupal-Buch, das ich schreibe. Das erste Buch behandelte Drupal in der Version 4.7, und in der damaligen Einleitung habe ich erwähnt, dass das Buch in drei Dörfern entstanden ist. Mit einem dieser Dörfer war die Community des Projektes Drupal gemeint. Mittlerweile sind fast drei Jahre vergangen. Ich wiederhole das noch mal: drei Jahre! In der Internetbranche sprechen viele Menschen bei einem Zeitraum von mehr als drei bis sechs Monaten von den »good old days«. Was sagt man nur zu einem fast drei Jahre alten Buch? :-) Sie merken schon, es hat sich etwas verändert. In den letzten drei Jahren ist die Entwicklung rund um Drupal explodiert. Von dieser Community als einem Dorf zu sprechen trifft den momentanen Zustand vermutlich nicht. Es kommt mir momentan eher wie eine globale Drupal-Urbanisierung vor, aber dazu später mehr. Bei mir hat sich ebenfalls eine Menge verändert. Aus verschiedenen Gründen wie beispielsweise dem fehlenden DSL-Anschluss haben wir unser verträumtes Ausleben in Sachsen-Anhalt verlassen und wohnen jetzt in Fitou. Das ist wieder ein Dorf, diesmal aber in einem anderen Land. Es liegt in der Nähe von Perpignan in Frankreich und verfügt über so ziemlich alles, was man als virtuelle Firma benötigt (ADSL, UMTS, EDGE). Außer diesen technischen Dingen gibt es auch zahlreiche andere Vorteile (Menschen, Wetter, Essen, Wein, Meer, Berge, ...). Nun aber zurück zu Drupal. Durch die fortschreitende Technik ist es seit Längerem möglich, dörfliche Strukturen zu virtualisieren. Die virtuellen Beziehungen zwischen Menschen untereinander, Inhalten und Firmen werden immer wichtiger. Eine Firma wie eBay weiß mehr über die Vorlieben ihrer Marktplatzbenutzer, als es jeder reale dörfliche Klatsch jemals in Erfahrung bringen könnte. Ein solches technisches, virtuelles Dorf ist »skalierbar«. Wenn die Zutaten und die Mischung stimmen, wächst ein virtuelles Dorf exponentiell. In der letzten Zeit waren es unter anderem die webbasierte Community MySpace,1 die Videoplattform You-
1
http://myspace.com/
Einleitung
Tube,2 die 3D-Welt Second Life3 und natürlich Facebook.4 Das Verbindende bei all diesen Beispielen ist die gute Idee, die richtige Zeit, die richtige Technik, jede Menge Wagniskapital, ein »Händchen« für die Dinge und ein wenig Glück. Soweit hat sich nichts am klassischen Geschäftsmodell geändert, aber: In diesem Fall geben die Projekte allerdings nur einen Rahmen, ein Framework vor. Die Inhalte kommen von den Benutzern. Immer wenn solche Hypes in Erscheinung treten, geht einen Raunen durch die globale Geschäftswelt. Was ist das? Ist es seriös? Hat es ein irgendwie geartetes Geschäftsmodell? Können wir am Erfolg teilhaben?
Und wenig später dann: Wir wollen das auch haben! Lasst es uns mit unseren Produkten verknüpfen! Wo gibt es Menschen, die so etwas bauen können?
Plötzlich wollte (und will) jeder ein Videoportal, eine Community, Podcasts etc. Drupal hat sich in den letzten Jahren als die Software erwiesen, mit der man in angemessener, um nicht zu sagen, in kürzester Zeit solche Anwendungen erstellen kann. Drupal hieß früher (vor sieben Jahren!) mal Dorp (Dorp ist das niederländische Wort für Dorf). Es ist eine Software, die ein gemeinsames Bearbeiten und Veröffentlichen von Inhalten im Internet ermöglicht. Das Entscheidende dabei ist, dass es den Benutzern leicht gemacht wird, Inhalte zu erzeugen und Verbindung untereinander aufzunehmen. Drupal ist beliebig erweiterbar, und es gibt kaum ein Szenario auf einer Website, das mit Drupal nicht umsetzbar ist. Ich schreibe jetzt hier bewusst das Wort »kaum«, um nicht zu sehr in Superlative zu verfallen. Zumindest mir selbst ist noch kein Szenario untergekommen, das nicht mit Drupal lösbar gewesen wäre. Aber es gibt bestimmt ein paar Fälle :-). Das klingt alles so schön und so einfach. Es scheint, als sei Drupal genau das, was die »User Generated Content«5-Industrie gerade braucht. Heute heißt das Projekt nicht mehr Dorp, hat aber seinen im positiven Sinne dörflichen Charakter beibehalten, auch wenn die Anzahl der Dorfbewohner und die der
2 3 4 5
18
http://youtube.com/ http://secondlife.com/ http://facebook.com http://de.wikipedia.org/wiki/User_Generated_Content
Wie kam es nun zu diesem Buch?
damit erstellten Dörfer in die hunderttausende geht. Ich wohne heute in sehr vielen Drupal-Dörfern. Ein paar davon habe ich sogar selbst gebaut. So ein virtuelles Dorf ist der Katalysator für Kommunikation, Kreativität und Geschäfte in der realen Welt oder, um es klarer zu sagen: Es ist die absolute Basis, die Zielgruppe seiner Produkte ansprechen zu können und zum Handeln zu bewegen, sprich Geld zu verdienen, Mitarbeiter zu motivieren (Unternehmen) oder Einfluss zu gewinnen (Kampagnen bei NGO, Wahlkämpfe)!
Wie kam es nun zu diesem Buch? Im Januar 2007 wurde Drupal in der Version 5.0 veröffentlicht. Es hatte wirklich alles, was Benutzern die Freudentränen in die Augen treibt. Ein eigenes YouTube? Kein Problem. Ein MySpace-Portal? Kein Thema. Auch ich war begeistert und beschloss, ein Video-Training aufzunehmen. Während der Aufnahme baute ich live eine Website. Mit echten Benutzern, echten Inhalten, echten Kommentaren, echten Videos etc. Das Buch, das Sie jetzt in Händen halten, behandelt Drupal in der Version 6, also eine Generation und fast 2 Jahre später. Im Drupal-Land hat sich eine Menge verändert, und Vieles ist in der neuen Version wesentlich eleganter gelöst. Jetzt hat Drupal den richtigen Weg in die Zukunft eingeschlagen, und es wird Zeit für ein Buch, das die Zusammenhänge erklärt.
Worum geht es in diesem Buch? Es geht um die Erstellung einer Website, die Elemente enthält, die für Unternehmen und für den Aufbau von Communitys wichtig sind. Dabei geht steht das gemeinsame Verwalten von Inhalten mit der Open Source-Software Drupal im Vordergrund. Das umfasst die Geschichte, die Installation, die Bedienung und die Erweiterung des Systems. Sie werden das Projekt Drupal von vielen Seiten kennen lernen und sicherlich so schnell nicht mehr loslassen.
Für wen habe ich dieses Buch geschrieben? Für alle Menschen, die sich für Content Management, Community Building und Social Software interessieren, selbst aktiv werden wollen oder im Begriff sind, eine Agentur mit einem solchen Projekt zu beauftragen. An dieser Stelle kann ich auch endlich das Buzzword »Web 2.0«6 fallen lassen, das für manche schon wieder ein alter Hut ist, für die Mehrzahl der Menschen und Firmen aber gerade erst richtig beginnt.
6
http://de.wikipedia.org/wiki/Web_2.0
19
Einleitung
Sie benötigen keinerlei Kenntnisse über Programmierung, um die Beispiele in diesem Buch nachvollziehen zu können. Falls Sie schon mal zaghaften Kontakt mit Dingen wie Linux, Windows, Mac OS X, HTML, CSS, JavaScript, PHP, FTP, MySQL und vielen anderen Akronymen hatten, werden Sie sich schnell wohlfühlen. Wenn Sie noch niemals auch nur ansatzweise von diesen Dingen gehört haben ... hm ... ich bin fest davon überzeugt ... auch dann hilft Ihnen dieses Buch dabei, Internettechnologien besser zu verstehen. Das wirklich Interessante in diesem Zusammenhang sind die Strukturen von Drupal, die eine unendliche Vielfalt von Einsatzmöglichkeiten abbilden können. Ich habe noch kein Problem in Bezug auf Websites gefunden, das sich mit Drupal nicht lösen lässt!
Warum überhaupt ein Buch? Wenn man über Open Source-Software schreibt, beschreibt man Dinge und Zusammenhänge, die für jeden Menschen öffentlich zugänglich sind. Als Anfänger, Umsteiger, Neugieriger oder auch Kunde, Entscheider, Programmierer, Redakteur, Politiker haben Sie meist nicht die Zeit, sich in komplexe Anwendungen wie Drupal, TYPO3, Ruby, Alfresco oder welches System auch immer gerade angesagt ist einzuarbeiten und mal eben XHTML, CSS, PHP, XMLRPC und diverse andere spezifische Standards zu erlernen, um sich mit diesem Wissen die Informationen aus dem Internet zusammenzusuchen. Hier finden Sie einen fundierten Einstieg in die Materie, den Sie in verhältnismäßig kurzer Zeit absolvieren können. Wenn Sie hoch geheimes Insiderwissen in diesem Buch suchen, liegen Sie falsch. Alles, aber auch wirklich alles, was Sie in diesem Buch finden, ist irgendwo im Internet verfügbar, zumindest in Ansätzen und meist in englischer Sprache.
Und Drupal funktioniert wirklich? Der Fachlektor dieses Buches, Peter Müller, schreibt sehr erfolgreiche Bücher über CSS7 und wachte, während ich schrieb, über die technischen Zusammenhänge in diesem Buch. Er hat alles ausprobiert, was in diesem Buch beschrieben wird, und er hat mir versichert, es hat alles geklappt! In diesem Zusammenhang ein Wort zur wohl bekanntesten Agentur in Sachen Drupal, Lullabot.8 Auch Lullabot gab es bei Erscheinen meines ersten Drupal-Buches noch nicht. Diese Agentur ist ein gutes Beispiel für die Zusammenarbeit von Commu7 8
20
http://little-boxes.de/ http://lullabot.com/
Und im deutschsprachigen Raum?
nity und Geschäftsinteressen. Lullabot beteiligt sich aktiv an der Entwicklung von Drupal, ohne das Projekt in eine bestimmte Richtung zu drängen. An dieser Stelle also gleich ein wenig Werbung für »Friendly Expert Drupal Consulting«. Bisher gibt es 58 Lullabot-Podcasts, die die Neuigkeiten aus Drupal-Land in englischer Sprache in die Welt tragen. Hören Sie mal rein.9 Es gibt viele Agenturen, die dem Projekt sehr aufgeschlossen gegenüberstehen und nicht nur nehmen, sondern auch geben. Dieses Verhalten ist bei gewinnorientierten Firmen eher selten, und es zeigt, dass das Drupal Community System funktioniert. In diesem Zusammenhang möchte ich aber auch auf die vielen anderen Agenturen hinweisen, ohne die die Entwicklung von Drupal in diesem Ausmaß nicht möglich gewesen wäre.10
Und im deutschsprachigen Raum? Ja, in Deutschland ist das so eine Sache. Fragen Sie mal Blogger, die seit mehr als 5 Jahren ein Weblog betreiben. Manche Ideen und Projekte werden in Deutschland sehr gern aufgenommen, andere finden scheinbar gar nicht statt. Der deutschsprachige Raum unterscheidet sich in seinen Vorlieben oft sehr vom Rest der Welt. Jahrelang war die deutsche Drupal-Szene etwa so groß, dass sie sich bequem zu einem Grillabend hätte treffen können. Heute dagegen kommen die meisten Zugriffe auf die drupal.org-Website aus dem deutschsprachigen Raum. Mit drupalcenter.de11 hat sich ein Anlaufpunkt für die deutsche Community gebildet. Hier gibt es Podcasts, Tutorials und ein lebendiges Forum in deutscher Sprache. Täglich entstehen neue professionelle Drupal-Websites in Deutschland, und vielleicht findet ja auch mal eine Drupal-Konferenz in Deutschland statt. Grund genug, dass Sie sich mit dem Phänomen Drupal mal näher beschäftigen.
So viele Links! In den Fußnoten zum Text werden Sie viele Links finden. Sie müssen diesen Links natürlich nicht folgen, wenn sie aber Spaß an dem einen oder anderen Thema bekommen, können Sie auf den angegebenen Websites weitere interessante Informationen finden.
Und ohne Internetzugang? Auch kein Problem. Auf der CD zum Buch ist alles enthalten, was in diesem Buch an Software vorkommt. Ok, die Betriebssysteme Microsoft Windows Vista und Apple
9 http://lullabot.com/podcast/ 10 http://drupal.org/drupal-services 11 http://www.drupalcenter.de
21
Einleitung
Mac OS X durften wir natürlich nicht beilegen, der Rest findet sich aber schon auf der CD, so dass Sie alle Beispiele in diesem Buch sofort auf Ihrem Computer nachvollziehen können.
Und was will der Autor? Ich freue mich, wenn Sie durch dieses Buch einen Weg in die wunderbare DrupalWelt finden, wenn Sie nach der Lektüre in der Lage sind, eine Entscheidung über Ihr Verhältnis zu Drupal zu treffen und bei Unklarheiten die richtigen Fragen stellen können. Besonders freuen würde ich mich, wenn Sie sich in der deutschen und/oder der internationalen Drupal-Community engagieren oder Ihre Website in der Zukunft mit Drupal betreiben. Sie wären in guter Gesellschaft! Vielleicht sehen wir uns ja mal auf einer der nächsten Drupal-Konferenzen. Ich wünsche Ihnen viel Spaß!
Hagen Graf
22
Teil I Start
1
Was ist Drupal?
In diesem Kapitel geht es zunächst einmal darum, einen groben Eindruck davon zu bekommen, was Drupal ist und was man damit alles machen kann.
1.1
Die Mission von Drupal
Drupal ist mehr als Software, es ist ein Projekt und eine Community. Hier ein Zitat aus dem Drupal-Handbuch zur Mission von Drupal: By building on relevant standards and open source technologies, Drupal supports and enhances the potential of the Internet as a medium where diverse and geographically-separated individuals and groups can collectively produce, discuss, and share information and ideas. With a central interest in and focus on communities and collaboration, Drupal's flexibility allows the collaborative production of online information systems and communities. Übersetzt heißt das etwa: Durch die Benutzung von freien Standards und Open Source-Technologien unterstützt und erweitert Drupal die Möglichkeiten des Internets um ein Medium, mit dessen Hilfe geografisch getrennte Menschen und Gruppen gemeinsam etwas erstellen, diskutieren und ihre Ideen und Informationen austauschen können. Mit einem Schwerpunkt auf Gemeinschaft und gemeinsamer Arbeit ermöglicht Drupal die Erstellung flexibler Arbeitsumgebungen, Informationssysteme und Communitys. Dieser kurze Absatz charakterisiert das Einsatzgebiet von Drupal sehr schön.
1.1.1
Drupal ist vielseitig
Das folgende Zitat – ebenfalls aus dem Drupal-Handbuch – beschreibt die Vielseitigkeit der Software etwas ausführlicher: »Drupal ist ein freies Softwarepaket, das einem oder vielen Benutzern das einfache Veröffentlichen, Verwalten und Organisieren von sehr unterschiedlichen Inhalten auf einer Website ermöglicht. Hunderttausende Organisationen, Firmen und Privatleute benutzen Drupal für unter anderem für: Webbasierte Community Portale Diskussionsplattformen Firmen Websites
1 Was ist Drupal?
Intranet-Anwendungen Private Websites oder Weblogs E-Commerce-Anwendungen Informationsverzeichnisse Social Networking Websites
Es ist sofort nach dem Download einsatzbereit. Seit der Version 5 besitzt es einen einfachen Webinstaller. Das Standardsystem von Drupal, genannt Core, kombiniert mit frei erhältlichen Erweiterungen ermöglicht aus dem Stand Anwendungen wie: Content Management-Systeme RSS Feed Weblogs Umgebungen für gemeinschaftliches Erstellen von Dokumenten Foren Peer-to-peer-Netzwerke Newsletter Podcasts Bilder-Galerien Datei-Up- und Downloads
Und vieles andere mehr! Drupal ist Open Source Software und steht unter der GPL (General Public License).1 Das Projekt wird von einer Gemeinschaft von mehr als hunderttausend Benutzern und Entwicklern geführt und weiterentwickelt. Wenn Ihnen Drupal gefällt, arbeiten Sie mit uns zusammen, um die Möglichkeiten noch weiter zu entwickeln und noch besser auf Ihre Bedürfnisse anzupassen.«2 Dem ist von meiner Seite aus nichts hinzuzufügen.
1.1.2
Drupal ist Open Source
Der Begriff Open Source3 kommt aus der Programmierwelt. Source (Quelle) bezieht sich auf den menschenlesbaren Quellcode von Software im Gegensatz zum nicht lesbaren Binärcode. Er wird normalerweile bei Software verwendet, deren Lizenzverträge den folgenden Merkmalen entsprechen:
1 2 3
26
http://de.wikipedia.org/wiki/Gpl http://drupal.org/about http://de.wikipedia.org/wiki/Open_source
1.2 Das Web verändert sich
Der Programmcode liegt in einer für den Menschen lesbaren und verständlichen
Form vor. Die Software darf beliebig kopiert, verbreitet und genutzt werden. Die Software darf verändert und in der veränderten Form weitergegeben werden.
Drupal ist Open Source und kann somit ohne Lizenzgebühren eingesetzt werden, aber lassen Sie uns zunächst ein wenig in die Vergangenheit und dann von verschiedenen Seiten auf das Projekt Drupal schauen.
1.2
Das Web verändert sich
Mitte der neunziger Jahre verbreitete sich explosionsartig das eigentlich schon in den sechziger Jahren erfundene Internet unter anderem durch die Kombination aus HTML (HyperText Markup Language, der Sprache, in der Webseiten geschrieben werden) und die Entwicklung von Webservern und Webclients (Browsern). Ohne eine E-Mail-Adresse war der einzelne Mensch nicht mehr erreichbar, und ohne eine Website war eine Firma nicht nur altmodisch, sondern in den Augen vieler Kunden nicht mehr existent. Die ganze Welt drängelte also in kurzer Zeit in dieses Netz, um ein Teil davon zu werden. Filme wie Matrix4 wurden zum Kassenschlager, und 19845 von George Orwell wurde erfolgreich verdrängt.
1.2.1
Das statische Web
Die Ersteller dieser Websites teilten sich in zwei Gruppen. Diejenigen, die es gewohnt waren, Softwareprogramme zu kaufen, kauften
HTML-Editoren für ihren Computer und erstellten mit Hilfe einer grafischen Umgebung Internetseiten, ich nenne sie mal die mausorientierten Produzenten. Die anderen schrieben den HTML-Code lieber gleich selbst in einem ohnehin vor-
handenen Texteditor. Diese Gruppe nenne ich mal die textlastigen Produzenten. Webagenturen waren plötzlich da, bei denen man Websites in Auftrag geben konnte. Mausorientierte und textlastige Produzenten hielten sich quantitativ die Waage und ergänzten sich gut. Sie bauten und bauen Millionen von Webseiten. Die meisten normalen Menschen warteten allerdings erst einmal ab und ignorierten solche Entwicklungen völlig. Es gibt heute immer noch sehr viele Menschen in Europa ohne E-Mail-Adresse und auch sehr viele Firmen ohne eine Website! Gerade hier in Frankreich fällt mir das im Vergleich zu Deutschland sehr auf. Es gibt auch sehr viele Menschen mit einer E-Mail-Adresse, die mit der ganzen Entwicklung eigentlich nichts zu tun haben wollen. Ich nenne diese Gruppe mal die prag4 5
http://whatisthematrix.warnerbros.com/ http://de.wikipedia.org/wiki/1984_%28Roman%29
27
1 Was ist Drupal?
matischen Kunden. Die pragmatischen Kunden warten ab, bis die anderen Gruppen etwas wirklich Einfaches erfinden, das gut funktioniert und einen erkennbaren Nutzen bietet. Dann betreten sie die Bühne! Ich glaube, die Mehrzahl der Menschen auf der Welt besteht aus diesen pragmatischen Kunden.
1.2.2
Das Web wird dynamisch
Die beiden produzierenden Gruppen hatten anfangs das Problem, dass HTML-Seiten statisch sind. Um den Inhalt der Seite zu ändern, muss man sie am heimischen oder Firmen-PC bearbeiten und danach wieder auf den Webserver kopieren. Das war nicht nur unbequem und teuer, es machte auch dynamische Webauftritte wie eBay oder Amazon unmöglich. Beide Produzentengruppen fanden mehr oder weniger gute Lösungen für das Problem. In der mausorientierten Fraktion entstanden schnell binäre Programme wie Microsoft Frontpage und Macromedia Dreamweaver, mit denen man HTML-Seiten erzeugen konnte, die wiederum per automatisiertem Verfahren auf den Webserver geladen wurden. In die Seiten wurden interaktive Elemente wie Besucherzähler oder Ähnliches eingebaut. Beide Produkte erfreuen sich auch heute noch großer Beliebtheit. Frontpage heißt jetzt Expression Web, und die Firma Macromedia wurde von Adobe gekauft. Das Produkt Dreamweaver existiert weiterhin und wird aktiv weiterentwickelt. Von dieser Seite betrachet, hat sich wenig verändert in den letzten Jahren. Die textorientierte Fraktion entdeckte handgeschriebene Java-Applets und damit die Möglichkeit, ein Programm zu schreiben, das zentral auf einem Server liegt und über einen Browser bedienbar ist. Auf dieser Lösung beruhten ganze Geschäftsideen wie Online-Broking und Flugbuchungskonzepte. Beide Gruppen versuchten auf verschiedene Arten ihre Marktanteile auszubauen. Das Ergebnis war ein recht stabiler Markt für beide, in dem durch immer neue Features ständig die Versionsnummern der Programme hochgetrieben wurden und sich die Kunden der Webagenturen daran gewöhnten, dass das alles nicht so einfach wäre. Unsere pragmatischen Kunden sahen sich all das misstrauisch an, bemerkten keinen Unterschied zwischen den Herstellungsmethoden und fanden die meisten Seiten langweilig und unübersichtlich!
1.2.3
PHP und MySQL
In solchen Situationen gibt es immer eine clevere Erfindung. In unserem Fall ist das unter anderem die Entstehung von Open Source-Scriptsprachen wie PHP.6 6
28
http://www.php.net
1.2 Das Web verändert sich
Rasmus Lerdorf hatte das Ziel, seine Homepage außer mit statischen HTML-Tags auch mit interaktiven Elementen zu versehen, und heraus kam eine neue Programmiersprache. PHP (Abkürzung für personal home page) wurde von Anfang an optimiert auf die gute Zusammenarbeit mit dem Datenbanksystem MySQL, das ebenfalls unter der GPL (General Public License) stand. Mittlerweile ist diese Verbindung mit PHP 5 wieder etwas gelockert, stellt aber immer noch in Verbindung mit der flachen Lernkurve einen großen Anreiz für PHP dar. Es gab auch bereits das Betriebssystem Linux und einen Webserver namens Apache, die die benötigte Infrastruktur für PHP auf dem Server boten. Das Anzeigemedium beim Kunden war der Browser, der mit Sicherheit vorhanden war. LAMP (Linux, Apache, MySQL, PHP) wurde bald das Synonym für datenbankgestützte, interaktive Auftritte im Internet. Schnell kamen WAMP (für Windows) und MAMP (für Mac OS X) dazu. Wie in einem kreativen Rausch entstanden verschiedene Systeme, die es ermöglichten, Inhalte nur mit Hilfe eines Browsers zu organisieren: Es gab plötzlich Newsseiten, Forenseiten, Communitys, Online-Shops, Voting-Seiten und Ähnliches. Nach den »harten« Sachen wie Linux und Apache, für die man noch Programmiersprachen wie C, C++ und Assembler beherrschen musste,7 entstanden nun plötzlich die »weichen« Anwendungen, die nach einer kurzen Einarbeitung in PHP erstaunliche Resultate lieferten. Die neunziger Jahre neigten sich dem Ende zu, die Internetaktienblase platzte, und plötzlich waren wieder ganz klassische Geschäftsmodelle mit ganz klassischen Methoden gefragt. Immer wenn es der Wirtschaft nicht gut geht, schaut sie auf die Kosten und überlegt, ob es Möglichkeiten gibt, diese zu senken. Es gab und gibt zahlreiche Möglichkeiten! Die PHP-Anwendungen, die es damals gab, hatten Verbreitungszahlen, die in die Millionen gingen. Als Beispiele seien hier nur die Projekte phpBB8 und phpMyAdmin9 genannt. Das eine hat sich zum Quasistandard für Forensoftware entwickelt, das andere zum Standard für das Bearbeiten von MySQL-Datenbanken per Webinterface. Der Quellcode der Sprache PHP selbst und der Anwendungen wurde durch die enorme Zahl von Nutzern und Entwicklern immer schneller immer besser. Je offener ein Projekt gestaltet wurde, desto erfolgreicher wurde es. Einzelne Gurus konnten Unternehmen in kürzester Zeit immense Kosten sparen.
7 8 9
Echte Männer schreiben ihre Apache-Module selbst! http://www.phpbb.com/ http://www.phpmyadmin.net/
29
1 Was ist Drupal?
Statische HTML-Seiten galten als alt, teuer und überholt. Dynamisch musste es sein! In diesem Umfeld bewegen wir uns jetzt seit ein paar Jahren. Linux, Apache, MySQL und PHP sind in der Industrie akzeptiert. Wichtig wurde: eine einfache Installation eine gute Wartbarkeit des Quellcodes die Sicherheit des Quellcodes die Benutzerfreundlichkeit die einfache Erweiterbarkeit Schnittstellen zu anderen Systemen (API)
Der besondere Vorteil von PHP-Anwendungen ist die Unabhängigkeit von Hardware und Betriebssystem. Es gibt – im Vergleich zu anderen Programmiersprachen – viele PHP-Programmierer auf dem Markt, und täglich werden es mehr. Wir sind jetzt mit der Geschichte ungefähr im Jahr 2000 und endlich wieder bei Drupal.
1.3
Die Geschichte von Drupal
Vor dem Hintergrund der Dynamisierung des Web entstand Drupal.
1.3.1
Vom Dorp zu Drupal
Weil im Jahre 2000 High-Speed-Internetzugänge nicht so verbreitet waren wie heute, wurden diese Zugänge als Prämie von der Universität von Antwerpen an ihre Studenten vergeben. Hans Snijder hatte so einen Zugang und richtete gemeinsam mit Dries Buytaert ein drahtloses Netz ein, um seinen Zugang mit anderen zu teilen. Acht Studenten, die auch gemeinsam Kurse besuchten, teilten sich schließlich diesen Zugang und waren für damalige Verhältnisse bezüglich der Anbindung an das Internet in einer sehr luxuriösen Situation. Sie stellten allerdings schnell fest, dass es kein brauchbares Programm gab, um einfache Dinge zu besprechen, Dateien gemeinsam zu nutzen und gemeinsam an etwas zu arbeiten. Das brachte Dries dazu, eine kleine Website zu erstellen, die es der Gruppe ermöglichte, Nachrichten zu hinterlassen. Es waren einfache Nachrichten wie Verabredungen zum Essen, der Status des Universitätsnetzwerks oder andere Dinge, die in einem Studium wichtig sind. Dries beendete irgendwann sein Studium und verließ die Universität von Antwerpen. Die Software hatte bis dahin keinen Namen und lief lokal im Universitätsnetz. Um in Kontakt zu bleiben und weiterhin Nachrichten und Interessantes aus ihrem Leben austauschen zu können, beschloss die Gruppe, die Anwendung online fortzu-
30
1.3 Die Geschichte von Drupal
führen. Man einigte sich auf den Domainnamen dorp.org, und Dries sollte ihn reservieren. Dorp ist niederländisch und bedeutet Dorf. Dries verschrieb sich allerdings bei der Reservierung und tippte drop.org ein. Dann stellte er fest, dass dorp.org bereits vergeben war. Weil drop.org noch verfügbar war und ihm der Name gefiel, reservierte er ihn, und das Projekt hieß ab diesem Zeitpunkt Drop! So viel zum Thema Demokratie in virtuellen Gemeinschaften. Nachdem die Website drop.org online war, änderten sich die Themen in Richtung Webtechnologien, Bewertungssysteme, verteilte Anmeldeprozeduren, Moderationstechniken und in Richtung des Problems der Zusammenführung von Inhalten auf einer Website. Die Seite selbst entwickelte sich zum Experimentierfeld, und die Diskussionen und Ideen wurden so weit wie möglich sofort von Dries in die Anwendung eingebaut und ausprobiert. Am 15. Januar 2001 beschloss Dries, die Software hinter drop.org unter der allgemeinen öffentlichen GNU-Lizenz zu veröffentlichen. Die Idee dabei war, auch anderen die Möglichkeit zu geben, die Software selbst auszuprobieren und sie natürlich auch zu erweitern und weiterzuentwickeln. Diese Entscheidung war die wohl folgenreichste in der bisherigen Drupal-Geschichte. Der Namenswechsel zu drupal ist kurios. Drop (deutsch: Tropfen) heißt auf Niederländisch Druppel, gesprochen: drüppel. Da englischsprachige Menschen, wenn Sie das geschriebene Wort Druppel sehen, nicht wirklich auf die korrekte niederländische Aussprache kommen, kam es zu dem heute bekannten Namen Drupal, einer Art Lautschriftvariante. In den letzten sieben Jahren ist Drupal stetig gewachsen und steht mittlerweile für Stabilität, Flexibilität, Sicherheit und Einhaltung von Web Standards. Hier ein Video-Interview mit Dries, in dem er seine und die Geschichte von Drupal erzählt, aufgenommen in Vancouver im Februar 2006: http://drupal.org/node/50477.
1.3.2
Drupal und das Web 2.0
Die sieben Jahre zwischen der Freigabe des Drupal-Quellcodes und heute (Juni 2008) waren technisch gekennzeichnet durch eine Vielzahl von Ideen und Entwicklungen, denen aber oft etwas Entscheidendes zum Erfolg fehlte. Die Browser waren noch sehr unterschiedlich und konnten die modernen Standards wie CSS oft nicht komplett darstellen. Breitband-Internetanschlüsse waren nicht so verbreitet. Die Firmen mussten ihre Internet-Pleiten aus den vergangenen Jahren erst einmal verarbeiten. Im Jahre 2004 stellte sich die Lage so dar, dass man alle Werkzeuge, die es gab, gern benutzte, aber keiner so recht wusste, wie das alles integriert werden sollte. In diesem Moment kam Tim O’Reilly mit dem als Marketing-Begriff für eine Konferenz erfundenen Namen Web 2.010 auf den Markt. 10 http://de.wikipedia.org/wiki/Web_2.0
31
1 Was ist Drupal?
Web 2.0 sollte die Weiterentwicklung des Webs symbolisieren und bestand aus den folgenden Prinzipien: Der lokale Rechner wird ersetzt durch das Web als Plattform. Inhalte haben eine größere Bedeutung als das Aussehen der Anwendungen. Jeder sollte an diesem Web mitarbeiten und einfach Inhalte erstellen können. Die Programmierung wird in Komponentenform stattfinden und zum Großteil
Open Source-Software sein. Die Komponenten sind dann zu beliebigen Geschäftsmodellen kombinierbar. Neue Geschäftsmodelle entstehen durch das verteilte, gemeinsame Nutzen von In-
halten und technischen Diensten. Der klassische Softwarelebenszyklus ist tot. Eine Software wird nicht mehr fertig,
sondern befindet sich immer in einem Beta-Stadium. Web-Anwendungen sollen beliebig skalierbar sein und so die breite Masse anspre-
chen. Was 2004 von vielen Leuten belächelt wurde, scheint heute genau so abzulaufen. Durch die Einbindung des Benutzers bei der Produktion von Inhalt war man wieder bei der ursprünglichen guten Idee angelangt, dass die Benutzer selbst publizieren. Plötzlich ergaben alle angesprochenen Technologien einen Sinn, und die Leute begannen eifrig, aus den vorhandenen Komponenten Web-Anwendungen zu schmieden, die sehr schnell erfolgreich wurden. Diese Anwendungen stellten folgende Anforderungen: Die Anwendung muss mit einem durchschnittlichen Computersystem über einen
Browser nutzbar sein. Die einzelnen Seiten werden dynamisch erzeugt. Benutzer können selbst Inhalte erstellen. Rollen- und Rechtesysteme sorgen dafür, dass nur berechtigte Personen bestimmte
Daten bearbeiten können. Benutzer können in Gruppen zusammengefasst werden. Jeder Benutzer darf sich in einem »persönliches Profil« selbst vorstellen und auf
seine Website verweisen. Diese Daten können dann leicht von der Anwendung genutzt werden, um aus diesen Daten einen Mehrwert zu erzeugen.11 Der ganze Webauftritt kann eigenen Vorlieben angepasst werden (Farbe, Inhalts-
elemente). Inhalte können kommentiert werden.
Drupal konnte und kann diese Anforderungen hervorragend abbilden und wird entsprechend gern in diesem Umfeld verwendet.
11 http://www.xing.de/
32
1.3 Die Geschichte von Drupal
Hinweis Der Begriff Web 2.0 ist sehr umstritten. Die Entwicklung der letzten drei Jahre gab O'Reilly aus meiner Sicht allerdings Recht mit seinen Annahmen.
Ein anderer Nebeneffekt ist, dass Web 2.0-Websites zur Orientierung und Wiedererkennung einen griffigen, globalisierungskompatiblen Namen, ein knackiges Logo und eine klare Mission benötigen. Der Name Drupal ist schon mal gut, wie sieht es mit dem Logo aus?
1.3.3
Drupals Logo: Das Druplicon
Unabhängig von Web 2.0, das im Jahre 2000 noch nicht entdeckt war, benötigte das Projekt natürlich ein Logo. Es sollte etwas mit Tropfen und Wasser zu tun haben. Zunächst war die Idee, einen einfachen Tropfen darzustellen, der etwas mit dem o im Wort drop zu tun hatte. Als sich immer mehr Benutzer registrierten und an den Diskussionen beteiligten, entstand nach und nach die Idee eines Tropfens mit einem Gesicht, ähnlich einer Comic Figur. Kristjan Jansen hatte die Idee, zwei Tropfen auf die Seite zu legen und so an das mathematische Zeichen für Unendlichkeit (∞ ) zu erinnern. Diese unendlichen Augen sollen die unendlichen Möglichkeiten von Drupal symbolisieren.
Abbildung 1.1: Druplicon Aus dieser Idee machte Steve Wittens das Druplicon (Abbildung 1.1): ein stilisierter Tropfen mit unendlichen Augen, einer runden Nase und einem schelmischen Lächeln.12
12 http://drupal.org/druplicon
33
1 Was ist Drupal?
1.4
Drupal-Community
Um ein Gefühl für die Größe der Drupal-Community zu bekommen, hier ein paar Zahlen. Für Drupal 6 haben etwa 900 Menschen Programmiercode zum Core beigesteuert. Das ist etwa die gleiche Anzahl wie beim Linux Kernel. Es gibt mehrere 1000 Module für Drupal und jedes dieser Module hat einen oder mehrere Maintainer, also Menschen, die sich um die Weiterentwicklung des Moduls kümmern. Die Drupal.orgWebsite hat knapp 300.000 registrierte Benutzer. Täglich melden sich viele Menschen mit guten Ideen an, die zur Weiterentwicklung von Drupal beitragen wollen. Es ist eine Herausforderung, diesen Leuten die Möglichkeit auf eine benutzerfreundliche Art zu bieten. Drupal.org soll eine benutzerfreundliche, funktionelle Umgebung für eine Community sein, in der man sich wohl fühlt. Auf der Website http://drupal.org/planet/ finden Sie Blogs aus der ganzen Welt, die sich mit Drupal beschäftigen.
1.4.1
Drupal Groups
Auf der Website http://groups.drupal.org/ tummeln sich etwa 500 Gruppen mit 40.000 Benutzern, die über spezielle Themen mit Bezug zu Drupal diskutieren. Jeder registrierte Benutzer kann eine Drupal Group eröffnen.
1.4.2
Drupal Conferences
Zweimal im Jahr trifft sich die Drupal-Welt zu einer Konferenz. Bei jeder Konferenz wird ein neuer Besucherrekord festgestellt. Die letzten beiden Konferenzen waren im September 2007 in Barcelona,13 Spanien und im März 2008 in Boston, USA.14 Den Termin der nächsten Konferenz finden Sie immer auf der Website http://drupalcon.org.
1.4.3
Drupal Companies
Viele Firmen nutzen Drupal als Sprungbrett für ihre Services und geben meist auch viel Know-how (Module) an das Projekt zurück. Einen Überblick finden Sie auf der Website http://drupal.org/drupal-services.
1.4.4
Die Drupal Association
Im Dezember 2006 wurde auch die Drupal Association gegründet, deren Ziel es ist, das Projekt Drupal in jeder Hinsicht zu unterstützen.15 13 http://barcelona2007.drupalcon.org/ 14 http://boston2008.drupalcon.org/ 15 http://association.drupal.org/about/history
34
1.4 Drupal-Community
Am 30. November 2007 gründete Dries mit 7.000.000 US Dollar Wagniskapital die Firma Acquia.16 Die Geschäftsidee von Acquia ist das Zusammenstellen von DrupalDistributionen, für die dann professioneller Support geleistet wird. Die Idee ähnelt dem Geschäftsmodell der Firma Red Hat,17 die damit sehr erfolgreich Linux-Distributionen zusammenstellt und verkauft.
1.4.5
Drupal und die Zukunft
Das Projekt hat keine Roadmap. Jedes Jahr, meist um Weihnachten herum, wird Bilanz gezogen, und es werden »predictions«18 und »battle plans«19 für das nächste Jahr gepostet. Zum Geburtstag von Drupal gibt es oft eine neue Version und manchmal Cookies20 oder einen Kuchen.21 War Drupal 5.x ein Release, das viele Erleichterungen für den Benutzer brachte wie beispielsweise den Webinstaller, so wurde Drupal 6.0 in erster Linie »unter der Haube« optimiert. Ein großer Trend ist »Überflüssig-machen« von Spezialkenntnissen. Mit den ersten Drupal-Versionen wurde der klassische Webmaster, der HTML Seiten erstellt, überflüssig. Mit dem Color Picker in Drupal 5 gab es das erste Mal ein wenig Konkurrenz zu einem Designer, konnte man doch sein Theme sehr elegant online mit Live-Vorschau verändern. Der Content Construction Kit22 in Verbindung mit dem Views-Modul23 beginnt gerade seinen Siegeszug, um den Entwickler überflüssig zu machen. Diese Menschen sind natürlich nicht wirklich überflüssig: Sie können sich endlich auf ihre Kernkompetenzen konzentrieren, ohne ständig mit Routineaufgaben beschäftigt zu sein. Neben diesen technischen Dingen steht Drupal vor der großen Herausforderung, schnelles Wachstum bewältigen zu müssen. Wie reagiert die Community auf Wachstum? Wie können die »dörflichen« Strukturen erhalten bzw. weiterentwickelt werden? Wie geht man mit geschäftlichem Erfolg um?
16 17 18 19 20 21 22 23
http://buytaert.net/acquia-my-drupal-startup http://www.redhat.com/ http://buytaert.net/drupal-predictions-for-2008 http://drupal.org/node/111140 http://buytaert.net/happy-sixth-birthday-drupal http://buytaert.net/happy-fifth-birthday-drupal http://drupal.org/project/cck http://drupal.org/project/views
35
1 Was ist Drupal?
Abbildung 1.2: Color Picker im Theme Garland
1.5
CMS, CRM & Co: Was Drupal alles ist
Nachdem Sie gesehen haben, wer Drupal benutzt und was man damit machen kann, möchte ich versuchen, die Welt um Drupal herum zu beschreiben. Drupal ist ja nicht vom Himmel gefallen, sondern in einer Nische erblüht.
1.5.1
Content Management-Systeme (CMS)
Zunächst einmal ist Drupal natürlich auch ein klassisches Content Management-System. Der Begriff Content Management-System bezeichnet recht ungenau ein System, mit dem Inhalte verwaltet werden können. So ein System kann eine Tafel und ein Stück Kreide sein (Speisekarte, Schultafel), es kann aber auch so etwas wie die freie Enzyklopädie Wikipedia oder ein Auktionshaus wie eBay sein. In allen drei Fällen werden Inhalte verwaltet, in den letzten beiden Beispielen sogar von sehr vielen Teilnehmern. Diese Teilnehmer spielen bei Inhaltsverwaltungssystemen eine große Rolle, einerseits in der Funktion des Verwalters (Administrator) und andererseits in der Rolle des Benutzers (User). Außer CM-Systemen gibt es natürlich auch noch Bezeichnungen wie Enterprise Resource Planning Systeme (ERP, Verwaltung von Firmendaten), Customer Relationship Management Systeme (CRM, Pflege von Kundenkontakten), Document Management
36
1.5 CMS, CRM & Co: Was Drupal alles ist
Systeme (DMS, Verwaltung von Dokumenten), Human Resource Management Systeme (HRM, Personalverwaltung) und viele weitere. Ein Computerbetriebssystem wie Windows oder Linux verwaltet ebenfalls Inhalte. Durch diese inflationäre Begriffsund Funktionsvielfalt fällt es schwer, den Begriff CMS zu definieren. Der Begriff ECMS für Enterprise Content Management-Systeme hat sich als übergeordneter Begriff mittlerweile etabliert. Alle anderen oben aufgeführten Abkürzungen sind dann Untermengen eines ECMS. Drupal fällt in die Gattung der Web Content Management-Systeme (WCMS), da es ausschließlich Inhalte auf einem Webserver verwaltet. Im allgemeinen Sprachgebrauch spricht man von Content Management im Zusammenhang mit Webseiten, die sich über einen Browser pflegen lassen.
1.5.2
Drupal als CMS Framework
Drupal ist aber mehr als nur ein webbasiertes CMS. Drupal ist ein datenbankbasiertes Content Management Framework, geschrieben in PHP. Exkurs Framework heißt im Englischen so viel wie Rahmenwerk oder auch Fachwerk. In der Softwareentwicklung wird der Begriff oft verwendet. Ein Framework liefert die Anwendungsarchitektur der Software, also gewissermaßen die Spielregeln, nach denen der Programmierer konkrete Implementationen (Anwendungen) erstellen kann. Frameworks werden mit dem Ziel einer Wiederverwendung architektonischer Bausteine, Ideen und Muster entwickelt und genutzt. So weit diese eher technische Erklärung, was Drupal ist. Lassen Sie sich davon nicht abschrecken, falls ihnen diese Art, die Dinge auszudrücken, nicht geläufig ist. Sie müssen rein gar nichts programmieren, wenn Sie mit Drupal arbeiten! Sehen Sie es anfangs als eine freundliche Zugabe. Wenn Sie aber programmieren wollen ... huh ... dann hilft Ihnen das Framework ungemein.
1.5.3
Customer Relationship Management
Nehmen Sie mit Ihren Kunden Kontakt auf! Hören Sie zu, was Ihre Kunden sagen, und nehmen Sie sie ernst! Sprechen Sie Ihre Kunden individuell an! Nerven Sie Ihre Kunden nicht!
37
1 Was ist Drupal?
In einer Zeit, in der viele Firmen ihre Kunden nicht mehr persönlich kennen, werden die guten Beziehungen zum Kunden immer wichtiger. Wenn früher ein Kunde nicht mehr gekauft hat, musste der Verkäufer mal nachhaken, was da los ist. Diese Beziehung zum Kunden existiert oftmals nicht mehr und hat für viele Firmen in einem globalisierten Markt in manchen Ländern nie existiert. Wer aber seine Kunden kennt und auf sie eingeht, hat einen großen Wettbewerbsvorteil und kann sein Unternehmen effektiver steuern. Aus diesem Grund ist das Customer Relationship Management (CRM), also das Verwalten der Kundenbeziehungen, in den letzten Jahren zu einer Wachstumsbranche geworden.
Data Mining und Data Warehouses Kombiniert mit Data Mining und Data Warehouses werden Sie heute beispielsweise mit Kundenkarten regelrecht bombardiert. Exkurs Data Warehouse Ein Data Warehouse ist der zentrale Punkt im Unternehmen, an dem Daten gelagert werden, um dort betriebswirtschaftliche Auswertungen laufen zu lassen. Alle Unternehmen sind bestrebt, ihre Daten möglichst aktuell an einer logischen Stelle zu verwalten. Die dabei verwendeten Datenbanken können durchaus auf physikalisch getrennten Servern liegen. Ein Data Warehouse ist die Basis für ein erfolgreiches Data Mining.
Exkurs Data Mining Unter Data Mining versteht man das Entdecken und Auswerten bislang unbekannter Informationen aus großen Mengen von Daten. Hierbei geht es beispielsweise in einer Supermarktkette um das Kaufverhalten von Kunden in Relation zur Niederlassung, zum Wetter, zur Kaufkraft allgemein, zur vom Unternehmen geschalteten Werbung etc. Früher stützte man sich dabei auf mehr oder weniger zufällig gewonnene Daten. Mit Kundenkarten und Kartenzahlungssystemen werden diese Datenmengen durch Anreizsysteme wie Gewinnspiele und kleine Rabatte immer größer und immer genauer.
Kunden pflegen mit CRM-Software An dieser Stelle kommt CRM-Software ins Spiel, die auf der Basis der gewonnenen Daten beispielsweise Aufträge an ein Callcenter vergibt, das wiederum Kontakt mit dem Kunden aufnimmt und ihn zur richtigen Zeit über das richtige Produkt unterrichtet.
38
1.5 CMS, CRM & Co: Was Drupal alles ist
Schließlich hat es nur Sinn, dem Kunden schnellstens ein Geldanlageangebot oder ein Angebot über ein neues Auto zu unterbreiten, wenn man als Bank bemerkt hat, dass das Girokonto des Kunden mit 10 000 € im Haben steht. Wenn man hier zu lange wartet, ist das Geld schon wieder weg, bevor das Angebot den Kunden erreicht. Im umgekehrten Fall kann das Unternehmen, das ernsthaft am Kunden interessiert ist, frühzeitig nachhaken, wenn das Konto öfter mal überzogen wird, und in einer Notsituation frühzeitig helfen. Kundenkarten sind heute allerdings inflationär, und viele zahlungskräftige oder auch junge Kunden, die noch gar keine Karten besitzen, sind damit nicht mehr zu erreichen. Also gehen die Unternehmen zunehmend dazu über, ihre Kundschaft direkt über das Internet kennen und schätzen zu lernen.
Community Plumbing Ein oft gehörter Begriff im Drupal-Umfeld ist Community Plumbing. Der Begriff ist in der Drupal-Community ein wenig umstritten. Für die einen hat er zu viel mit »klempnern« und schlechten Gerüchen zu tun, für die anderen trifft er genau den Kern, aus vielen verschiedenen kleinen Modulen etwas Ganzes zusammenbauen zu können. Drupal bietet unter anderem die Möglichkeit, Communitys zu bauen. Das ist ein Bereich, in dem Drupal mehr als interessant ist für Unternehmen, die sich eine längere und effektive Kundenbindung wünschen. Einen Neukunden zu gewinnen ist sehr teuer, einen Kunden zu halten, viel kostengünstiger. Nun baut man eine Community nicht einfach mit Technik. Der Aufbau einer funktionierenden und stabilen Gemeinschaft im Netz ist eine Kunst für sich, an der schon viele Unternehmen gescheitert sind. Das ist bei Kampagnenseiten und Open Source-Projekten noch relativ einfach zu realisieren, da dort eine klare Aussage und ein reales Ziel im Vordergrund stehen. Bei Firmenseiten wird es schon schwieriger. Auf der einen Seite soll der Kunde mit einbezogen werden, auf der anderen Seite soll er sich natürlich auch dem Unternehmen gegenüber loyal verhalten, dessen Produkte kaufen, im Idealfall noch als Multiplikator dienen: »Schaut mal, ich habe ein neues Auto (Handy, Kleidungsstück, Computerspiel, ...) der Marke XY ...« und dem Unternehmen durch Rückmeldungen bei der Weiterentwicklung der Produkte helfen. Das macht Communitys zu einem wahren Paradies für kommerzielle Data Miner und für wohlmeinende Aktivisten. Die Rollen des Einzelnen sind dabei innerhalb des Systems wie auch in der Realität austauschbar. Drupal bietet sehr effektive Möglichkeiten, den Benutzer am Geschehen teilhaben zu lassen und eine einfache Art, Inhalte zu erstellen und zu kommentieren.
39
1 Was ist Drupal?
Exkurs Das Wertvollste, was Sie heutzutage besitzen, sind Ihre Daten. Aus ihnen können Profile erstellt werden, die darüber Auskunft geben, wie Sie vermutlich in der Zukunft reagieren werden. Das kann sehr angenehm sein, weil Sie immer zur richtigen Zeit das richtige Angebot bekommen. Das kann aber auch gefährlich sein, wenn Fehler passieren oder die falschen Schlüsse gezogen werden. Auch wenn Sie es nicht komplett verhindern können, seien Sie sich der Situation zumindest bewusst und achten Sie darauf, wem Sie Ihre Daten geben und was derjenige damit macht!
1.5.4
Social Software
Unter Social Software versteht man Software, die die menschliche Kommunikation, Interaktion und Zusammenarbeit unterstützt. Der Begriff existiert etwa seit dem Jahre 2002 im Zusammenhang mit Anwendungen wie Wikis, Weblogs und Instant Messaging. Er beschränkt sich allerdings nicht auf diese drei Begriffe, sondern bezieht sich auch auf Systeme, die den Aufbau und die Pflege sozialer Netzwerke und von Communitys unterstützen und weitgehend mittels Selbstorganisation funktionieren. Drupal ist Social Software!
Beispiel Wiki Ein Wiki ist eine Website, die von den Benutzern nicht nur gelesen, sondern auch online geändert werden kann. Wikis ähneln damit Content Management-Systemen RSS Feedn. Der Name stammt von wikiwiki, dem hawaiischen Wort für »schnell«. Die einzelnen Seiten und Artikel eines Wikis sind durch Links miteinander verbunden. Mit der Änderbarkeit der Seiten durch jedermann wird eine ursprüngliche Idee des Webpublishing im Internet realisiert. Das bekannteste Wiki ist sicherlich das Projekt einer freien Enzyklopädie mit dem Namen Wikipedia. Drupal kann auch ein Wiki sein!
Weblog Ein Weblog oder Blog ist eine Webseite, die periodisch neue Einträge enthält, die dann an oberster Stelle stehen. Ältere Einträge folgen in umgekehrt chronologischer Reihenfolge. Die Gesamtheit aller Weblogs bildet die Blogosphäre. Die Blogosphäre reagiert schneller als etablierte Medien auf Trends und bietet weiterführende Informationen und Links zu bestimmten Themen an. Alle Weblogs haben eine Kommentarfunktion, die es den Lesern ermöglicht, einen Eintrag zu kommentieren und so mit dem Autor oder anderen Lesern zu diskutieren.
40
1.6 Beispiele zum Einsatz von Drupal
Außer den »klassischen« Weblogs als Dokumentation einer Surftour im Internet gibt es persönliche Tagebücher, die als Weblog geführt werden. Sie enthalten meist eine Mischung aus Kommentaren, Netzfunden und Tagebucheinträgen und dienen der Unterhaltung oder der persönlichen Selbstdarstellung im Internet. Photoblogs veröffentlichen hauptsächlich Fotos oder Handykamerabilder (Moblogs). Schnellere Datenübertragungen ermöglichen auch Videoblogs. Unternehmens-Weblogs sind für Firmen interessant, um ihre Aktivitäten im Markt zu dokumentieren.
Instant Messaging Instant Messaging heißt auf Deutsch »sofortige Nachrichtenübermittlung«. Im Gegensatz zu E-Mail ist es dabei möglich, in Echtzeit zu chatten, Nachrichten an andere Teilnehmer zu schicken oder Dateien auszutauschen. Basis der Kommunikation sind so genannte Buddy-Listen, die die Adressen von anderen Teilnehmern gespeichert haben und melden, sobald einer der Teilnehmer auf der Liste online ist. Durch verschiedene Stati kann ein Teilnehmer signalisieren, dass er Zeit zum Chatten hat oder nicht gestört werden möchte. Drupal unterstützt auf vielfältige Weise IM-Aktivitäten.
1.6
Beispiele zum Einsatz von Drupal
Um einen Überblick über die Bandbreite der Anwender und der Themen ihrer Websites zu bekommen, hier ein paar Beispiele. Hätten Sie gedacht, das die Nato, der Playboy, MTV, Sony, Nike, Yahoo und viele andere mehr diese Software benutzen?
1.6.1
Drupal als Weblog
Unter einem Weblog oder auch Blog versteht man eine Webseite, die periodisch neue Einträge enthält. Neue Einträge stehen an oberster Stelle, ältere folgen in umgekehrt chronologischer Reihenfolge. Diese Weblogs erfreuen sich auf der ganzen Welt großer Beliebtheit in verschiedensten Ausprägungen. In Deutschland ist das Bloggen im Vergleich zum Rest der Welt nicht so verbreitet. Es ist aber eine stetig wachsende Gemeinde. Im April 2007 waren es 27.000 echte gepflegte Blogs und etwa 600.000 ungepflegte Blogs.24 Die einfachste Variante ist das private Blog, geführt von einer Person. Hier ein Beispiel von Dries Buytaert, den Sie ja bereits kennen. Als er sein Blog ab Dezember 2005 mithilfe des damals brandneuen Drupal 4.7 führte, gab es viel Beifall aus der Community.
24 http://www.popkulturjunkie.de/wp/?p=2999
41
1 Was ist Drupal?
Abbildung 1.3: Weblog Dries Buytaert – buytaert.net Tim Berners Lee25 benutzt für seine Blogging-Aktivitäten ebenfalls Drupal.26 BlogPlattformen mit vielen Benutzern betreibt international beispielsweise AOL für seine Entwickler.27 In Deutschland gibt es Die Welt28, Die Zeit29 und neben vielen anderen großen Blog-Plattformen auch kleinere wie beispielsweise bloghouse, auf der ich mein Weblog schreibe.30
1.6.2
Drupal in Universitäten
Die Purdue-Universität31 war eine der ersten Universitäten, die dutzende Websites mit Drupal im Unterricht benutzte. In erster Linie geht es hier um die projektartige Einbindung von Einzel- oder Multi-User-Blogs in den Unterricht. Auch in anderen Universitäten und zudem zunehmend im schulischen Bereich wird dieses Einsatzgebiet von Drupal mehr und mehr genutzt.32 25 26 27 28 29 30 31 32
42
http://de.wikipedia.org/wiki/Tim_Berners_Lee http://dig.csail.mit.edu/breadcrumbs/blog/4 ttp://dev.aol.com/ http://blog.debatte.welt.de/ http://uni.zeit.de/ http://www.bloghouse.org/ http://www.purdue.edu/ http://buytaert.net/many-universities-use-drupal
1.6 Beispiele zum Einsatz von Drupal
1.6.3
Drupal in EU-Projekten
Jedes EU-Projekt benötigt eine Website. Die meisten Projekte sind eher klein und verfügen über sehr beschränkte Mittel. Anfangs ist die Diskussion um die Wahl der Software meist aus Unwissenheit sehr kontrovers (was nichts kostet, taugt nichts). Wenn dann aber eine Open Source-Software wie Drupal benutzt wird, gibt es sehr schnell viele Aha-Effekte. 3334
Exkurs Als Beispiel sei hier auf das europäische Projekt Cross Cooking34 verwiesen. Ohne einen Etat für die Website und ohne spezielles WebsiteKnow-how ist es den Projektpartnern aus sechs Ländern gelungen, ein kollaboratives Kochbuch in sechs Sprachen zu schreiben, das Sie übrigens kostenlos downloaden können.35 Drupal erwies sich als Klebstoff zwischen den Partnern. Immer, wenn eine zusätzliche Funktionalität benötigt wurde, war es leicht, sie einzubauen.
1.6.4
Drupal in Kampagnen
Eine Kampagne soll Menschen mobilisieren, etwas zu tun. Mit Drupal funktioniert das sehr erfolgreich.
Wahlkampagne Howard Dean35 organisierte seinen Wahlkampf für die amerikanische Präsidentschaft im Internet im Jahre 2003 mit Drupal.36 Die Kampagne war extrem erfolgreich. Das Projekt wird als Open Source-Projekt unter dem Namen Civic Space37 weiterentwickelt und stellt eine Drupal-Distribution mit vorkonfigurierten Community-Elementen dar. Auch etablierte deutsche Parteien wie die CDU/CSU und die SPD versuchen immer mehr, den Community-Aspekt über ihre Webseiten zu betonen.
Marketingkampagne SpreadFirefox ist die Webseite der Mozilla Foundation, um die Benutzung des FirefoxBrowsers zu fördern. Falls Sie den Firefox-Browser noch nicht benutzen, sollten Sie das jetzt gleich nachholen und die Software herunterladen und installieren.
33 34 35 36 37
http://www.cross-cooking.eu/ http://www.lulu.com/content/2520854 http://de.wikipedia.org/wiki/Howard_Dean http://www.orient-lodge.com/node/252 http://civicspacelabs.org/
43
1 Was ist Drupal?
Abbildung 1.4: spreadfirefox.com
1.6.5
Drupal in Intranets
Innerhalb von Intranets gewinnen Open Source Content Management-Systeme RSS Feed ebenfalls an Bedeutung. Sie sind in einer Abteilung oder Niederlassung schnell installierbar, und wenn die Umgebungsbedingungen eine offene Kommunikationskultur fördern, werden diese Systeme schnell von den Mitarbeitern angenommen und bringen einen echten Mehrwert. Gerade Drupal als Content Management Tool mit Community-Fähigkeiten kann in diesem Bereich punkten. Viele große Firmen wie beispielsweise Yahoo! benutzen in ihrem Intranet Drupal.
1.6.6
Drupal in Grassroot Movements
»Graswurzelbewegungen« kommen von »unten« aus der Bevölkerung und füllen Lücken, die die Politik aus welchen Gründen auch immer gelassen hat. Graswurzelbewegungen zeichnen sich am Anfang durch eine bahnbrechende Idee, ein ebenso bahnbrechendes Wachstum an Sympathisanten und einen gleichzeitigen Mangel an Kapital und Organisation aus. Wenn die Anfangszeit mit dem schnellen Wachstum und den vielen Versuchungen gut überlebt wird und die ursprüngliche Idee nicht in Vergessenheit gerät, können daraus Initiativen wie beispielsweise Greenpeace38 oder Amnesty International39 entste38 http://www.greenpeace.org.uk/ 39 http://amnesty.org/
44
1.6 Beispiele zum Einsatz von Drupal
hen. Solche Organisationen sind aus Graswurzelbewegungen entstanden und haben heute rund um die Welt mehr Einfluss, als sie je zu träumen wagten. Die englische Website von Greenpeace läuft mit Drupal.
Abbildung 1.5: greenpeace.org.uk Für solche Projekte sind Drupal und auch vordefinierte Drupal-Distributionen wie das oben schon erwähnte CivicSpace hervorragend geeignet. Drupal ermöglicht die Kommunikation und Organisation der Bewegung über eine Webseite. Ourmedia40 ist beispielsweise ein Projekt, das »für alle Zeiten« ohne Hintertürchen kostenlos Speicherplatz und Bandbreite für Videofilme, Audiodateien, Fotos, Texte oder Software anbietet. Ourmedia benutzt Drupal und erweitert die statische Art des simplen Speicherns von Medien um Community-Elemente wie Blogs, Foren und RSSFeeds. Wir werden im weiteren Verlauf des Buches detailliert auf diese Möglichkeiten eingehen.
40 http://ourmedia.org/
45
1 Was ist Drupal?
Abbildung 1.6: ourmedia.org
1.6.7
Drupal in Entwicklerkreisen
Auch und gerade Open Source-Entwickler benötigen Newsseiten, die effektiv funktionieren. Ubuntu,41 Kerneltrap42 und GNOME FootNotes43 laufen sehr erfolgreich mit Drupal. Die Entwickler des KDE Desktops44 benutzen Drupal als Gemeinschaftsblog. Das Drupal-Projekt selbst läuft natürlich auch mit Drupal. Wenn Sie als Windows-Benutzer diese Projekte nicht kennen, so ist das nicht verwunderlich. Viele dieser Webseiten kommen aus der Linux-Welt, sind maßgeblich an der Weiterentwicklung und Verbreitung von Linux-Betriebssystemen beteiligt und erreichen Millionen Menschen auf der Welt. Die Ideen dieser Gemeinschaften werden von Firmen gern aufgegriffen und in verkaufbare Produkte wie Windows verwandelt. Kreative Softwareentwicklung findet nicht mehr in großen Firmen statt, sondern eher in diesen Gemeinschaften.
1.6.8
Drupal als Business Websites
Sind die bisherigen Beispiele seit Jahren mit Drupal vertraut, so hat sich im kommerziellen Sektor eine Menge getan. Die Benutzung von Drupal im kommerziellen Umfeld explodiert geradezu. 41 42 43 44
46
http://www.ubuntu.com/ http://kerneltrap.org/ http://gnomedesktop.org/ http://www.kdedevelopers.org/
1.6 Beispiele zum Einsatz von Drupal
MTV, Playboy, Second Life, Sony BMG Musicbox, Ozzy Osbourne, Forbes und Men's Health sind nur einige Beispiele für sehr große Websites, die unter Drupal laufen:
47
1 Was ist Drupal?
48
1.6 Beispiele zum Einsatz von Drupal
49
1 Was ist Drupal?
1.6.9
Drupal als Basis für eine Flash-Website
Drupal stellt auch eine gute Basis für dynamische Websites, die ein Flash-Frontend benötigen, zur Verfügung. Auch die Zusammenarbeit mit Adobe Flex ist möglich. Abbildung 1.7 zeigt als Beispiel die Seite des Musikers Pete Droge, die ein Flash-Frontend hat und im Hintergrund mit Drupal arbeitet.
1.6.10
Drupal als Shop
Auch Online-Shopsysteme sind mit Drupal realisierbar. Drupal erlaubt eine sehr elegante Integration von Shopartikeln in das System (siehe Abbildung 1.8).
50
1.6 Beispiele zum Einsatz von Drupal
Abbildung 1.7: droge.com
Abbildung 1.8: http://www.floozy.co.nz/
51
1 Was ist Drupal?
1.7
Drupal und Ihre Ideen
Drupal ist also eine Art Baukasten, mit dem Sie, wenn es einmal auf einem Server installiert ist, Ihre Website erstellen und pflegen können. Was Sie mit Drupal anstellen, ist Ihre Sache. Wie Sie es anstellen, ist allerdings einheitlich. Sie starten mit einem relativ einfachen Gerüst, das Sie nach und nach erweitern und verändern können. Dabei sind Sie nicht auf einen bestimmten Arbeitsplatz angewiesen, sondern können Ihr Drupal-System von jedem Webbrowser dieser Welt aus administrieren und pflegen.
1.7.1
Das reale Dorf
Lassen Sie uns das Drupal-Projekt mit etwas Bekanntem vergleichen. Stellen Sie sich einen schönen französischen Marktplatz mit einem Brunnen in der Mitte vor. Eingerahmt von typischen Häusern, voller Marktstände und mit vielen Menschen. Wenn Sie hier das erste Mal auftauchen, sind Sie vorsichtig, schauen sich um und entdecken den Marktplatz. Sie lernen jemanden kennen, merken sich die Wege und bekommen ein Gefühl für den Ort. Nachdem Sie 10-mal dort eingekauft haben, halten Sie ein Schwätzchen mit der Kartoffelverkäuferin, probieren mal eine Aprikose beim Obsthändler und setzen sich in ein Café, um das Treiben zu beobachten und mit Bekannten zu sprechen. Der Marktplatz hat alles, was Sie zum Leben brauchen: Freunde, Geschäftskontakte, Nahrung, Konsum, Bilder, Geschichten, Gerüche, Geschmäcke, ...
1.7.2
Das virtuelle Dorf
Mit Drupal können Sie so eine Umgebung virtuell realisieren (die Gerüche und Geschmäcke zugegebenermaßen nicht). Sie können zuerst mit einem kleinen Stand anfangen. Dann können Sie weiter anbauen. Vielleicht noch ein Café oder eine gemütliche Bank zum Sitzen, einen Bereich zum Arbeiten und einen ganz privaten, den Sie nur guten Freunden zeigen. Egal für welche Aufteilung Sie sich entscheiden ... Sie müssen Ihren Ort möblieren, mit einer schönen Dekoration versehen, für Besucher einladend gestalten und natürlich auch regelmäßig sauber machen. Die vielen Gäste hinterlassen Spuren, die nicht immer erwünscht sind. Damit Besucher Ihren Markt auch finden, brauchen Sie eine Adresse, unter der er gefunden werden kann. Diese Adresse muss möglichst vielen Menschen bekannt sein. Da es im Internet kein Einwohnermeldeamt gibt, müssen Sie sich selbst um das Thema »Wie werde ich gefunden?« kümmern.
52
1.7 Drupal und Ihre Ideen
Vielleicht mögen Sie ja solche Märkte gar nicht und bevorzugen eher Messen und Ausstellungen. Vielleicht wollen Sie sich über diese Dinge auch gar keine Gedanken machen und lieber eine Agentur engagieren, die das alles für Sie organisiert. Wenn Sie die letzten Sätze über einen Ort wie diesen Markt auf Ihre Website beziehen, so merken Sie schon, dass es wichtig ist zu wissen, was Sie wollen, wer Sie sind und wie Sie Ihrer Umwelt erscheinen wollen. Man kann nicht nicht kommunizieren! Man kann aber schnell falsch verstanden werden. Also planen Sie Ihren virtuellen Auftritt im Internet genau. Denken Sie über die Texte und über die Farbgestaltungen nach, über mögliche interaktive Elemente wie einen Kalender oder ein Forum und natürlich einen Bereich, den nur registrierte Benutzer sehen dürfen. Denken Sie an Benutzerführungen, die Benutzer führen und nicht bevormunden, und schauen Sie sich mal um, wie andere es machen. Reden Sie mit den Menschen, die Sie mit Ihrer Website ansprechen wollen, und investieren Sie viel Liebe und Zeit in diese Dinge. Ihre Besucher werden es merken und zu schätzen wissen. Wenn Sie Ihre Website in diesem Sinne pflegen, wird sie bald ein Platz werden, an dem sich Menschen wohl fühlen.
53
2
Installation
Die Installation von Drupal selbst ist nicht schwer. Damit die Installation überhaupt möglich ist, benötigen Sie eine Serverumgebung. Das Betriebssystem spielt dabei keine wirkliche Rolle. Webserver, Datenbank und Sprachinterpreter müssen allerdings einzeln oder als vorkonfiguriertes Paket installiert werden. Das gilt in erster Linie für Ihren lokalen PC. Wenn Sie Webspace bei Ihrem Provider nutzen, so verfügen Sie bereits über alle notwendigen Programme. Achtung Bevor Sie sich in die Wildnis des Internets begeben, sollten Sie zunächst lokal auf Ihrem PC üben. Das hat den Vorteil, dass es erstens keine Verbindungsgebühren kostet, zweitens sehr schnell ist und Sie drittens in aller Ruhe alles ausprobieren können. Außerdem geht das auch an Plätzen, an denen kein Internet verfügbar ist, und der Seitenaufbau wird konkurrenzlos schnell sein! Vielleicht haben Sie ja zu Hause sogar ein kleines PC-Netzwerk. Dann können Sie Drupal auf einem PC installieren und von dem anderen PC darauf zugreifen.
2.1
Die Zutaten
Drei Dinge braucht Ihr Drupal zwingend, bevor es installiert werden kann: einen Webserver, eine Datenbank und den PHP-Interpreter.
2.1.1
Webserver
Apache 1.x oder 2.x1 (empfohlen) Microsoft Internet Information Server2 andere Webserver, die für Ihr System zur Verfügung stehen
Der Webserver benötigt für die Darstellung von suchmaschinenfreundlichen URLs eine spezielle Erweiterung.3 Beim Apache heißt dieses Modul mod_rewrite. Beim 1 2 3
http://httpd.apache.org/ http://www.iis.net/ http://de.wikipedia.org/wiki/Rewrite-Engine
2 Installation
Microsoft Internet Information Server kommt es auf die installierte Version an. Die Funktionalität ist aber auf jeden Fall nachrüstbar. Da Windows im Serverbereich nicht so verbreitet ist wie Apache, arbeitet das Drupal-Team seit Jahren mit dem ApacheWebserver und liefert gleich die entsprechenden automatischen Konfigurationsdateien mit (.htaccess). Internet Provider benutzen ebenfalls gern Apache. Glücklicherweise arbeitet der Apache-Server problemlos mit allen Microsoft Windows-Systemen zusammen, so dass ich Ihnen empfehle, diesen Webserver für Ihre ersten Schritte zu benutzen.
2.1.2
Datenbanksystem
Drupal unterstützt die Datenbanksysteme MySQL4 und PostgreSQL.5 Beide Systeme sind in keiner Windows-Version dabei, aber nachträglich installierbar. Die Mehrzahl aller Drupal-Installationen läuft unter MySQL, und die Mehrzahl der Internet Service Provider benutzt ebenfalls MySQL. Wenn keine bestimmten Gründe dagegen sprechen, empfehle ich Ihnen als Datenbank MySQL in der Version 5.x.
2.1.3
PHP
Drupal läuft mit PHP-Versionen größer als 4.3.3 sowie unter PHP 5.2 und größer. In diesem Fall geht es aber nicht einfach um die Tatsache, dass »es läuft«. PHP 5.x hat viele gute Features, die eine Website sicherer machen, bereits im Sprachkern integriert. Obwohl PHP 4 seit 1.1.2008 nicht mehr weiterentwickelt wird, unterstützen weltweit immer noch nicht alle ISP das modernere PHP 5, und so hat das Drupal-Team den Quellcode kompatibel zu beiden Version erstellt. Vieles geht in PHP 5.x erheblich einfacher und sicherer, und es wäre schön, wenn sich PHP 5.x weiter durchsetzen würde. Sollten Sie die Wahl haben, versuchen Sie es bitte mit der neuen Version PHP 5.x.
2.2
Serverumgebung wählen
Entweder Sie installieren diese Softwarepakete einzeln oder Sie installieren ein vorkonfiguriertes Paket mit der benötigten Software mit wenigen Mausklicks auf Ihrem Rechner. Die Einzelinstallation sollten Sie als Anfänger nur in Angriff nehmen, wenn Sie es gewohnt sind, in Konfigurationsdateien mit Hilfe eines Texteditors Änderungen vorzunehmen, und ein wenig Zeit haben, sich mit den Dingen zu beschäftigen.
4 5
56
http://www.mysql.com/ http://www.postgresql.org/
2.2 Serverumgebung wählen
Ich empfehle, aus Zeitgründen und zur Schonung Ihrer Nerven ausdrücklich ein vorkonfiguriertes Paket zu nutzen. Schließlich liegt Ihr Interesse vermutlich bei Drupal und nicht an den Feinheiten der Installation verschiedener Open Source-Software auf Ihrem Rechner. Falls Sie mit Linux arbeiten, müssen Sie vermutlich gar nichts installieren, aber dazu später mehr.
2.2.1
Welches Paket ist das richtige?
Im Windows-Bereich hat das vorkonfigurierte Paket XAMPP6 einen guten Ruf. XAMPP steht auch für Mac OS X und für Linux zur Verfügung. Die Mac-Fraktion benutzt allerdings meistens das Paket MAMP.7 Bei Linux ist die Software schon vorhanden und muss »nur« installiert bzw. im Paketmanager ausgewählt werden. Neben XAMPP spielt der WAMP-Server eine zunehmend größere Rolle auch in Deutschland.8 Ich beschreibe hier exemplarisch die Installation von XAMPP Lite unter Microsoft Windows Home Premium. 9
Auf der CD Um die Beschaffung der benötigten Downloads ein wenig zu erleichtern, habe ich alle Downloads, die in diesem Buch besprochen werden, auf der Buch-CD und auf unserer Website9 zusammengestellt. Im Anhang des Buches finden Sie eine Liste der Dateipakete. Für eine lokale Installation sind diese Dateien durchaus geeignet, da sich damit die Beispiele im Buch gut nachvollziehen lassen.
Achtung Denken Sie aber daran, dass es vermutlich aktuellere Versionen auf den jeweiligen Projektseiten im Internet gibt. Wenn Sie Drupal in the wild, also auf einem Server im Internet installieren, sollten Sie immer die letzte stabile Version verwenden.
6 7 8 9
http://www.apachefriends.org/ http://mamp.info/ http://www.wampserver.com/ http://cocoate.com/
57
2 Installation
2.2.2
»Ich habe keinen eigenen PC« oder »Ich darf auf dem PC, an dem ich arbeite, nichts installieren«
Auch das ist kein Problem. Es gibt Angebote, Drupal live und kostenlos auszuprobieren.10 Wenn Ihnen diese Variante gefällt, finden Sie auf der Website http:// drupal.org/hosting Informationen über Firmen, die Ihr Drupal gern hosten. Das Drupal-System ist dabei oft vorinstalliert und kann sofort ohne eine Installation genutzt werden.
2.3
Lokale Serverumgebung einrichten
Um Drupal lokal installieren zu können, müssen Sie die entsprechende Serverumgebung bereitstellen.
2.3.1
Microsoft Windows Vista Home Premium und XAMPP Lite
Was soll ich zu Microsoft Windows sagen? Der Begriff »Windows« wird oft mit Betriebssystem gleichgesetzt und eine Anwendung wie Word mit dem Wort »Textverarbeitung«. Über 90 % aller PCs arbeiten mit Microsoft Windows als Betriebssystem. Aus dieser Tatsache allein kann man sicher keine Schlussfolgerung über die Qualität und die Benutzerfreundlichkeit des Systems ziehen, aber ganz so schlecht kann es bei diesem Verbreitungsgrad auch wieder nicht sein :-). Leider sind aber wie erwähnt Apache, MySQL und PHP nicht im Lieferumfang enthalten. Das werden wir jetzt ändern!
Schritt 1: Administratorrechte unter Vista Melden Sie sich auf Ihrem System im Administratormodus an. Falls Sie nicht wissen, ob Sie Administratorrechte haben, sehen Sie in WINDOWS -> SYSTEMSTEUERUNG -> BENUTZERKONTEN UND JUGENDSCHUTZ nach und ändern die Rechte gegebenenfalls (Abbildung 2.1).
10 http://demo.drupalcenter.de/
58
2.3 Lokale Serverumgebung einrichten
Abbildung 2.1: Benutzerkonten in Windows Vista Home Premium 11
Exkurs XAMPP XAMPP ist ein Projekt von Kai Seidler und Kay Vogelgesang. Die beiden »backen« seit mehreren Jahren diese komplette Umgebung mit den Zutaten Apache, MySQL, PHP, Perl und diversen sinnvollen Erweiterungen und stellen sie auf ihrer Website11 zum Download zur Verfügung. Das ist von immensem Vorteil für Menschen wie Sie und mich, da wir ja in erster Linie an Drupal interessiert sind und nicht so sehr daran, wie das Drumherum funktioniert. Außerdem kann man die ganze Installation mit einem Mausklick wieder rückstandsfrei vom WindowsPC entfernen. XAMPP Lite ist ein besonders kleines Paket, das nicht alle Features hat, aber für unsere Zwecke mehr als ausreichend ist.
Schritt 2: XAMPP Lite installieren Jetzt aber los: Laden Sie sich die Datei xampplite-win32-1.6.6a.exe herunter12 und starten sie durch einen Doppelklick.
11 http://www.apachefriends.org/ 12 Downloadmöglichkeit siehe Anhang (ca. 18 MB). Der Dateiname enthält die Versionsnummer und kann daher variieren.
59
2 Installation
Achtung Wegen der fehlenden Schreibrechte für das Verzeichnis c:\program files (alias c:\programme) sollten Sie XAMPP unter Vista in einem alternativen Verzeichnis wie c:\xampplite oder d:\xampplite installieren. Bei Installationsproblemen unter Vista gibt es auf der XAMPP-Seite eine FAQ-Liste: http://apachefriends.org/de/faq-xampp-windows.html#vista
Ich empfehle Ihnen eine Installation in den Ordner C:\xampplite. Um das zu erreichen, entpacken Sie die Installationsdatei auf Laufwerk C:\ (Abbildung 2.2). Der Unterordner xampplite wird dann automatisch erzeugt:
Abbildung 2.2: Extrahieren von XAMPP Lite Sie sollten Sie nun folgendes Bild in Ihrem Dateiordner sehen (Abbildung 2.3). Sie können den entstandenen Ordner jederzeit wieder entfernen, ohne Spuren auf dem Windows-System zu hinterlassen, denn XAMPP agiert nur im Ordner xampplite und schreibt nichts in die Registrierdatenbank von Windows. Hinweis Falls Sie die Dateiendungen nicht sehen, können Sie sie im Menü des Windows Explorer einschalten. Klicken Sie dazu auf den kleinen Pfeil nach unten neben dem Menüpunkt ORGANISIEREN, dann auf ORDNERUND SUCHOPTIONEN. Es erscheint das entsprechende Dialogfenster. Dort wählen Sie bitte den Reiter ANSICHT und entfernen das Häkchen an der Checkbox ERWEITERUNGEN BEI BEKANNTEN DATEITYPEN AUSBLENDEN. Jetzt sollten Sie die Dateiendungen sehen.
60
2.3 Lokale Serverumgebung einrichten
Abbildung 2.3: XAMPP Lite auf dem Vista-Laufwerk
Schritt 3: Das XAMPP Control Panel starten Jetzt können Sie XAMPP starten. Doppelklicken Sie auf die Datei xampp_control.exe. Starten Sie im XAMPP Control Panel den Apache-Webserver und die MySQL-Datenbank durch jeweils einen Klick auf den Button mit der Beschriftung START. Der PHPInterpreter ist in den Apache-Webserver integriert und muss deshalb nicht gesondert gestartet werden. Durch einen grünen »Running«-Schriftzug wird angezeigt, dass die Server laufen. Die Buttons wechseln Ihre Beschriftung auf STOP. Wenn Sie die Server wieder herunterfahren wollen, klicken Sie einfach auf den STOP-Button (Abbildung 2.4).
61
2 Installation
Abbildung 2.4: XAMPP Control Panel
Schritt 4: Die Firewall von Vista konfigurieren Beim ersten Start werden Sie zwei Meldungen von der Windows-Firewall erhalten, dass hier etwas installiert wird, was »von außen« zu erreichen ist (Abbildung 2.5). Da wir genau das haben wollen, klicken Sie zweimal auf NICHT MEHR BLOCKEN.
Abbildung 2.5: Erster Start von Apache und MySQL
62
2.3 Lokale Serverumgebung einrichten
Jetzt erscheint je nach Konfiguration Ihres Windows-Systems eine weitere Meldung, auf der Sie bestätigen müssen, dass die Firewall wirklich nichts blocken soll. Wenn Sie alle Fenster bestätigt haben, ist die Installation abgeschlossen. Auf Ihrem Rechner läuft jetzt der Apache-Webserver, MySQL und PHP. Tipp Falls der Webserver-Apache beim Start von XAMPP Lite nicht startet, kann es sein, dass bereits ein anderer Dienst den Port 80 auf Ihrem Rechner belegt. Ein verbreitetes Programm ist beispielsweise Skype. Es belegt standardmäßig Port 80 und verhindert damit einen Start eines anderen Dienstes an diesem Port. Sie können in den Optionen von Skype die Portnummer ändern oder zuerst XAMPP Lite und dann Skype starten.
Schritt 5: Testen der Entwicklungsumgebung Das Dokumentenverzeichnis (auch »document root« genannt) für Ihre Website ist: [Laufwerk]:\xampplite\htdocs
In diesem Verzeichnis liegen alle Dateien, die vom Webserver serviert werden, so dass sie mit einem Browser von jedem anderen Rechner in Ihrem Netz gelesen werden können, und in diesem Verzeichnis werden Sie auch Drupal installieren. Wenn Sie einen Direktanschluss (IP-Adresse) an das Internet haben, können Sie auf dieses Verzeichnis aus ganzen Welt über einen Browser zugreifen. In der beigelegten readme_de.txt-Datei finden Sie weitere Informationen zu den benötigten Passwörtern Ihres XAMPP Lite-Systems. Um zu testen, ob das Paket funktioniert, öffnen Sie ein Browserfenster und rufen die URL http://localhost auf. Sie sollten den Begrüßungsbildschirm (Abbildung 2.6) und, nach einem Klick auf die Sprache Ihrer Wahl, das XAMPP-Menü sehen (Abbildung 2.7).
Abbildung 2.6: XAMPP Lite-Begrüßungsbildschirm
63
2 Installation
Abbildung 2.7: XAMPP Lite-Menü
Schritt 6: Der Sicherheitscheck Wie Sie durch einen Blick in die readme_de.txt bereits gelesen haben (Sie haben die doch gelesen, oder?), sind teilweise keine Passwörter für die Serverprogramme vergeben. Solange Sie allein an dem Rechner arbeiten und keine Verbindung zum Internet oder anderen Rechnern besteht, ist das ausreichend. Ansonsten sollten Sie als nächsten Schritt den Menüpunkt SICHERHEITSCHECK aufrufen und die dort angesprochenen Änderungen je nach Sicherheitsbedürfnis oder Ihrem persönlichen »Paranoiditätsgrad« durchführen. Auch wenn es mühselig erscheint, sollten Sie sich mit diesem Thema beschäftigen. Wenn Sie sich ansonsten mal in einem öffentlichen WLAN mit diesen Einstellungen bewegen, kann jeder andere angemeldete Benutzer auf Ihren Webserver und die Datenbank zugreifen, wenn er Ihre IP-Adresse kennt. Der Zugriff an sich ist nicht schlimm, er ist ja gewünscht bei Websites. Bei den momentanen Einstellungen kann man aber auch mit zwei Mausklicks den Inhalt Ihrer Datenbank löschen!
Abbildung 2.8: XAMPP-Sicherheitcheck
64
2.3 Lokale Serverumgebung einrichten
Achtung Der Benutzer root ist in XAMPP Lite standardmäßig ohne Passwort vorgegeben. Er hat Zugriffsrechte auf alle Datenbanken. Sie können lokal durchaus mit diesen Einstellungen arbeiten, sollten aber außerhalb Ihrer lokalen Umgebung immer ein Passwort vergeben.
2.3.2
Linux
Bei Linux liegen die Dinge meist einfacher. Es gibt verschiedene Distributionen mit verschiedenen Standardkonfigurationen. Oft sind Webserver, Datenbank und PHP vorinstalliert und müssen nur gestartet werden. Es besteht auch die Möglichkeit, eine XAMPP-Version für Linux zu installieren. Meines Erachtens ist es hier allerdings sinnvoller, auf die originalen Programme zurückzugreifen. Die Installation erfolgt mittels Paketmanager und ist sehr einfach. Die Unterschiede zwischen den verschiedenen Linux-Distributionen sind nicht mehr wirklich groß.
openSuse 10.x Mithilfe des Konfigurationsprogramms YaST können Sie überprüfen, ob Apache, MySQL und PHP bereits installiert sind. Sollte das nicht der Fall sein, wählen Sie die entsprechenden Pakete zur Installation aus und lassen sie durch YaST installieren. Im Einzelnen handelt es sich um die folgenden Pakete: apache2, apache2-devel, apache2-mod_php5 mysql, php5-mysql
Sie finden diese Pakete über die Oberfläche von YaST (Abbildung 2.9), auf dem Installationsmedium und im Internet. Sie starten den Webserver Apache mit dem Befehl: /etc/init.d/apache2 start
Den Datenbankserver MySQL dann über: /etc/init.d/mysql start
Stoppen können Sie beide mit dem Parameter stop. Eine Übersicht über alle Parameter erhalten Sie mit dem Parameter help.
65
2 Installation
Abbildung 2.9: YaST in einer Shell aufgerufen
Debian (inkl. Ubuntu) Bei Debian heißt das Konsoleninstallationsprogramm apt. Mit Hilfe des Programms apt können Sie Apache, MySQL und PHP installieren: apt-get install [paketname]
Im Einzelnen handelt es sich um die folgenden Pakete: apache-common php5 mysql-common mysql-server
Starten Sie Apache dann mit dem Befehl /etc/init.d/apache2 start und MySQL über /etc/init.d/mysql start.
Eigener Server bei einem Provider Wenn Sie einen Server bei einem Provider gemietet haben, so haben Sie meist einen Shell-Zugang und die freie Wahl der Linux-Distribution, die Sie benutzen wollen. Außerdem ist das System vorkonfiguriert und enthält bereits alle notwendigen Dateipakete und Konfigurationen. Für die Konfiguration dieser Server werden meist spezielle Administrationsoberflächen wie Confixx13 oder Plesk14 benutzt. Mit diesen Tools 13 http://www.parallels.com/de/products/confixx/ 14 http://www.parallels.com/de/products/plesk/
66
2.4 Vorbereitungen zur Installation von Drupal
können Sie Ihren Server und die Dienste Apache und MySQL sowie unzählige weitere Dinge bequem über eine Browseroberfläche starten, stoppen und konfigurieren.
2.4
Vorbereitungen zur Installation von Drupal
Um Drupal installieren zu können, benötigen Sie zunächst den Quellcode. Zum Zeitpunkt der Erstellung des Buches ist die aktuelle Version Drupal 6.2. Die Entwicklerversion für Drupal 7 befindet sich noch in einem nicht definierten Status. Sie hat noch keinen Beta- oder gar Alpha-Status. Ich vermute, dass sie Anfang nächsten Jahres (2009) veröffentlicht werden wird. Ich werde in diesem Buch die Version Drupal 6.2 zugrundelegen.
2.4.1
Die zu installierende Drupal-Version downloaden
Auf drupalcenter.de gibt es eine bereits mit deutschen Sprachdateien versehene Version15 (Stand Juli 2008). Da die deutschen Sprachdateien aber noch nicht vollständig sind und Entwicklungsstatus haben, schlage ich vor, ein original Drupal 6.2 in englischer Sprache zu installieren und dort dann die gewünschten Sprachdateien zu konfigurieren. Diese Version werden wir nun installieren. Laden Sie das Paket drupal-6.2.tar.gz und speichern Sie es auf Ihrem System.16
2.4.2
Installationsverzeichnis: htdocs oder Unterordner?
Sie müssen sich überlegen, ob Ihr Drupal direkt in das Dokumentenverzeichnis installiert werden soll oder in ein Unterverzeichnis. Das ist wichtig, weil Sie vermutlich eine möglichst kurze URL zu Ihrer Homepage möchten. Wenn Sie Drupal direkt in /htdocs auspacken, startet Ihre Webseite, wenn Sie http://localhost/ bzw. Ihren Domainnamen wie http://www.meinehomepage.de/ aufrufen, den Sie bei Ihrem Provider reserviert haben. Erstellen Sie unter /htdocs/ noch ein weiteres Verzeichnis, beispielsweise /htdocs/meindrupal/, und entpacken Sie das Paket dort, müssen Sie im Browser http://localhost/meindrupal/ eingeben. Lokal ist das kein Problem, ja sogar gut, weil Sie dann mehrere Drupal-Installationen sehr einfach auseinanderhalten können. Auf einer produktiven Seite im Internet sieht das allerdings nicht so gut aus. In Ihrer lokalen XAMPP Lite-Umgebung unter Windows liegen schon einige HTMLDateien und Unterverzeichnisse in /htdocs, die beispielsweise die Begrüßungsseite 15 http://www.drupalcenter.de/links 16 Downloadmöglichkeit siehe Anhang. Machen Sie sich noch keine Gedanken über die seltsame Endung tar.gz. Das Geheimnis wird gleich gelüftet.
67
2 Installation
von XAMPP-Lite anzeigen (Abbildung 2.10). In Ihrer lokalen Linux- und Mac-Umgebung wird Ihnen ebenfalls eine Startseite, abhängig von der Distribution und den Webserver-Einstellungen, angezeigt.
2.4.3
Installationsverzeichnis erstellen
Ich schlage vor, Sie erstellen sich ein Unterverzeichnis mit dem Namen drupal62 unterhalb Ihres Dokumentenverzeichnisses. In Windows benutzen Sie dazu den Windows-Explorer, in Linux entweder die Dateimanager Ihrer Distribution. In Mac OS X bietet sich der Finder an. [Document root]/htdocs/drupal62/
Im Windows-Explorer sollte Ihr Verzeichnisbaum nun wie in Abbildung 2.10. aussehen.
Abbildung 2.10: drupal62 Wenn Sie in Ihrem Browser http://localhost/drupal62/ eingeben, erscheint in der XAMPP Lite-Variante eine Seite mit einem leeren Inhaltsverzeichnis (Abbildung 2.11).
Abbildung 2.11: Apache-Verzeichnisanzeige
68
2.4 Vorbereitungen zur Installation von Drupal
Tipp Unter Linux oder bei einer anderen Webserver-Konfiguration kann es sein, dass eine Seite mit der Meldung angezeigt wird, dass Sie keinen Zugriff auf dieses Verzeichnis haben. Das hängt mit der Konfiguration des Webservers zusammen. Aus Sicherheitsgründen ist die automatische Verzeichnisanzeige oft deaktiviert. Ein potenzieller Angreifer könnte aus diesen Informationen viele interessante Schlüsse über die Verzeichnisstruktur und die Dateien auf Ihrer Homepage ziehen und Sie dann gezielt angreifen.
2.4.4
Drupal-Quellcode entpacken
Jetzt können Sie endlich das Dateipaket drupal-6.2.tar.gz in das vorbereitete Verzeichnis auspacken. Das Dateipaket ist ein so genannter komprimierter Tarball. Exkurs Für Windows-User ist ein Tarball ein wenig befremdlich, weil man ihn, je nach Tool, zweimal auspacken muss. Die Idee dahinter ist allerdings clever, weil zunächst die Dateien unkomprimiert zu einem Paket gebündelt werden und dieses Paket dann mit der Komprimierungsmethode der Wahl gepackt wird. Manche Entpacker können einen komprimierten Tarball auch in einem Rutsch auspacken. Unter Windows Vista Home Premium können Sie ein solches Paket nicht mit Bordmitteln auspacken. Sie benötigen ein separates Packprogamm wie beispielsweise das freie und durchweg empfehlenswerte Packprogramm 7-Zip.17 Unter Linux benutzen Sie in einer Shell den Befehl: $ tar -zxvf drupal-6.2.tar.gz
Unter Mac OS X wird das Format automatisch vom Finder entpackt. Nach dem Entpacken kopieren Sie alle Dateien und Unterordner aus dem Archiv in das neu erstellte Installationsverzeichnis. Danach sollten die folgenden Verzeichnisse und Dateien (Abbildung 2.12) auf Ihrer Festplatte sein: Diese Struktur ist unter allen Betriebssystemen gleich. Unterschiede bestehen nur in der Darstellung. Die tar.gz-Datei und das entpackte Archiv können Sie nach dem Kopieren natürlich wieder löschen. Sie benötigen nur die in der Abbildung dargestellte Ordnerstruktur.
17 http://www.7-zip.org/
69
2 Installation
Abbildung 2.12: Drupal-Quellcodedateien
2.5
Erstellen der Datenbank
Nachdem Sie die Dateien in das richtige Verzeichnis kopiert haben, benötigen sie vor der eigentlichen Installation von Drupal noch eine Datenbank. Sie können die Erzeugung der Datenbank über den bei MySQL mitgelieferten MySQL-Monitor vornehmen oder über ein populäres Werkzeug wie phpMyAdmin. Sie können natürlich auch jedes andere Programm dafür verwenden, das per Datenbanktreiber auf MySQL oder PostgreSQL zugreifen kann. Dazu gehören Open Source-Programme wie OpenOffice.org und auch proprietäre Programme wie Microsoft Access. Im weiteren Verlauf werde ich die ersten beiden Möglichkeiten zeigen.
2.5.1
Datenbank mit phpMyAdmin erstellen
Wenn Sie mit XAMPP Lite arbeiten, ist auch automatisch phpMyAdmin installiert. phpMyAdmin ist ein in der Sprache PHP geschriebenes Verwaltungsprogramm für MySQL, das die Erstellung der Datenbank und die Vergabe der Benutzerrechte komfortabel ermöglicht. Viele Webhoster bieten in ihren Paketen ebenfalls die Möglichkeit, Ihre Datenbanken mit phpMyAdmin zu pflegen.
Schritt 1: phpMyAdmin starten Rufen Sie phpMyAdmin in Ihrem Browser auf. Wenn Sie mit XAMPP Lite arbeiten, benutzen Sie dazu die URL http://localhost/phpmyadmin. Im linken Bereich sehen Sie alle verfügbaren Datenbanken.
70
2.5 Erstellen der Datenbank
Abbildung 2.13: phpMyAdmin – Anlegen der Datenbank drupal62
Schritt 2: Datenbank anlegen Im mittleren Bereich können Sie die Datenbank drupal62 anlegen. Geben Sie dazu Name und Zeichensatz ein. Wenn möglich UTF8_general_ci. Durch einen Klick auf den Button ANLEGEN erzeugen Sie die Datenbank. Sie werden danach sofort mit der Datenbank verbunden. Das erkennen Sie daran, dass im linken Bereich jetzt drupal62 als Datenbank ausgewählt ist (Abbildung 2.14).
Abbildung 2.14: phpMyAdmin – Neue Datenbank
Schritt 3: Benutzerrechte zuordnen Sie müssen dem gewünschten Benutzer die entsprechenden Rechte zuteilen. Klicken Sie auf den Link SQL und geben Sie die folgenden Befehle ein (kaesekuchen ist unser Passwort in diesem Beispiel):
71
2 Installation
GRANT ALL PRIVILEGES ON drupal62.* TO nobody@localhost IDENTIFIED BY 'kaesekuchen'; FLUSH PRIVILEGES;
Durch einen Klick auf OK werden die Befehle an die Datenbank gesandt, und Sie erhalten eine Rückmeldung, ob die Aktion erfolgreich war. Ihr SQL-Befehl wurde erfolgreich ausgeführt. SQL-Befehl: GRANT ALL PRIVILEGES ON drupal62.* TO nobody@localhost IDENTIFIED BY 'kaesekuchen'; # MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen). FLUSH PRIVILEGES ; #MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).
Damit haben Sie auch hier alle Vorbereitungen für eine erfolgreiche Installation erledigt.
2.5.2
Datenbank mit dem MySQL-Monitor erstellen
Der MySQL-Monitor ist ein Hilfsprogramm, das gemeinsam mit der MySQL-Datenbank ausgeliefert wird und in einer Shell unter Linux und Mac OS X sowie in einer DOS-Eingabeaufforderung unter Windows läuft.
Schritt 1: MySQL-Monitor starten Unter Windows öffnen Sie eine DOS-Eingabeaufforderung durch einen Klick auf das STARTMENÜ und schreiben in das Suchfeld einfach Eingabe. Führen Sie das im Suchergebnis im oberen Bereich angezeigte Programm Eingabeaufforderung (Abbildung 2.15) aus. Wechseln Sie in das MySQL-Verzeichnis mit dem DOS-Befehl cd [Laufwerk:]\xampplite\mysql\bin
und rufen Sie hier ebenfalls den MySQL-Monitor mit dem Befehl mysql –u root auf. Standardmäßig ist für den root-Benutzer von XAMPP Lite kein Passwort vergeben. Falls Sie auf der lokalen XAMPP Lite-Startseite unter dem Link SICHERHEITSCHECK ein Passwort vergeben haben , müssen Sie den MySQL-Monitor mit dem Befehl mysql –u root –p
aufrufen. Das vergebene Passwort wird dann abgefragt. Bestätigen Sie entweder das leere Passwort oder tippen Sie Ihr vergebenes Passwort ein. Der MySQL-Monitor meldet sich mit einem Prompt (mysql >) und wartet auf Ihre Befehle (Abbildung 2.16).
72
2.5 Erstellen der Datenbank
Abbildung 2.15: Eingabeaufforderung unter Windows Vista aufrufen Exkurs Das MySQL-root-Benutzerkonto hat nichts mit dem gleichnamigen rootBenutzerkonto Ihres Linux-Rechners zu tun. Es sind zwei völlig voneinander getrennte Systeme. Wenn Sie einen Linux-Server bei einem Provider anmieten, wird er häufig mit einer Weboberfläche wie Confixx ausgeliefert. Die Server sind dann oft so vorkonfiguriert, dass das Linuxroot-Passwort und das MySQL-root-Passwort gleichlautend sind.
73
2 Installation
Abbildung 2.16: MySQL-Monitor unter Windows Vista
Schritt 2: Die Datenbank erstellen Erstellen Sie sich eine neue Datenbank mit dem Namen drupal62 durch Eingabe des entsprechenden SQL-Befehls. SQL ist eine Datenbankabfragesprache und wird von allen gängigen Datenbanken verstanden: mysql> CREATE DATABASE drupal62 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
MySQL antwortet mit Query ok, 1 row affected ().
Abbildung 2.17: MySQL-Monitor – Erzeugung der Drupal-Datenbank
74
2.5 Erstellen der Datenbank
Der Befehl SHOW DATABASES;
zeigt alle vorhandenenen Datenbanken an. Mit DROP DATABASE drupal62;
könnten Sie die soeben erstellte Datenbank wieder löschen.
Schritt 3: Benutzerrechte zuordnen Der Benutzer root hat automatisch alle Rechte an allen Datenbanken. Sie können also lokal bedenkenlos mit dem User root arbeiten und müssen nichts weiter ändern. Wenn Sie Drupal bei Ihrem Provider installieren, sind bei den meisten Shared-Hosting-Paketen der MySQL-Benutzer und die Anzahl und Namen der verfügbaren Datenbanken vorgegeben. In diesem Fall müssen Sie den vom Provider vorgegebenen Benutzer- und Datenbanknamen verwenden. Um die Vorgehensweise kennen zu lernen, weisen Sie im folgenden Beispiel die entsprechenden Zugriffsrechte zu: mysql> GRANT ALL PRIVILEGES ON drupal62.* TO nobody@localhost IDENTIFIED BY 'kaesekuchen';
Mit dem GRANT-Befehl weisen Sie alle Berechtigungen an der Datenbank drupal62 dem MySQL-Benutzer nobody zu und benutzen das Passwort kaesekuchen. Falls das Benutzerkonto nobody noch nicht existiert, wird es angelegt. Mit dem Befehl mysql> FLUSH PRIVILEGES;
aktivieren Sie die zugewiesenen Berechtigungen. Nach Ausführung dieses Befehls sind die Benutzeränderungen aktiv. Exkurs In neueren MySQL-Versionen ist der FLUSH-Befehl nicht mehr notwendig. Er wird allerdings weiterhin von MySQL akzeptiert und hat keinerlei schädliche Nebenwirkungen.
75
2 Installation
Melden Sie sich mit exit oder quit vom MySQL-Monitor ab und mit dem neuen Benutzer nobody und dem vergebenen Passwort wieder an (Listing 2.1). Nach Eingabe des Befehls SHOW DATABASES; sehen Sie Ihre eben erstellte Datenbank. Listing 2.1: MySQL-Monitor – Benutzer nobody C:\xampplite\mysql\bin>mysql -u nobody -pkaesekuchen Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.0.51a Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | drupal62 | +--------------------+ 2 rows in set (0.00 sec) mysql>
Damit sind alle Vorbereitungen für eine Drupal-Installation abgeschlossen.
2.6
Der Drupal-Webinstaller
Nachdem alle Vorbereitungen getroffen wurden, geht es jetzt mit der eigentlichen Installation von Drupal los.
Schritt 1: Das Installationsprogramm starten Rufen Sie in einem Browserfenster http://localhost/drupal62/ auf. Der Installationsbildschirm von Drupal wird angezeigt. Da wir hier die Original-Version benutzen, erscheint der Installer in englischer Sprache (Abbildung 2.18).
Schritt 2: Die Auswahl der Sprache Sie können jetzt Drupal in englischer Sprache installieren oder auf den Link LEARN DRUPAL IN OTHER LANGUAGES klicken. Ich möchte eine deutsche Installation haben, klicke auf den Link und sehe eine Hinweisseite wie in Abbildung 2.19.
HOW TO INSTALL
Ich soll auf der drupal.org-Website nachsehen, ob es eine Übersetzung in meiner Sprache gibt. Dazu klicke ich auf den Link A TRANSLATION OF THIS DRUPAL VERSION und lande auf der Übersetzungsseite des Drupal-Projektes, die sich in einem neuen Browsertab oder -fenster öffnet. Ich lade mir die deutsche Sprachdatei (de-6.x-1. x-dev.tar.gz) herunter, entpacke sie und schließe das Browserfenster.
76
2.6 Der Drupal-Webinstaller
Abbildung 2.18: Installer – Choose language I
Abbildung 2.19: Installer – Choose language II
77
2 Installation
Im Dateimanager sehen Sie eine Ordnerstruktur wie in Abbildung 2.20.
Abbildung 2.20: Entpackte deutsche Sprachdatei Den Inhalt der Ordner modules, profiles und themes sowie die Dateien LICENSE.de.txt und STATUS.de.txt kopieren Sie in Ihr Verzeichnis [Document root]/htdocs/drupal62/
Klicken Sie danach in Ihrem Browser im Installationsprogramm auf den Link RETURN TO CHOOSE A LANGUAGE. Drupal bietet Ihnen jetzt eine Sprachauswahl an. Wählen Sie
GERMAN (DEUTSCH) und klicken auf SELECT LANGUAGE (Abbildung 2.21).
Abbildung 2.21: Installer – Auswahl der deutschen Sprachversion Exkurs Dieses auf den ersten Blick etwas umständliche Verfahren sorgt dafür, dass die Größe des Drupal-Kernpakets klein bleibt (1 MB) und der Benutzer bei der Installation immer die aktuellsten Sprachversionen benutzt.
Schritt 3: Die Konfiguration der Datenbank Der Drupal-Installer schaltet jetzt auf deutsch um, überprüft die Systemvoraussetzungen und schaltet dann automatisch weiter zum Schritt DATENBANKKONFIGURATION (Abbildung 2.22).
78
2.6 Der Drupal-Webinstaller
Abbildung 2.22: Installer – Datenbankkonfiguration Hier wählen Sie den Datenbank-Typ aus, in unserem Fall das PHP mysqli-Modul. Datenbankname, Benutzer und Passwort hängen von Ihren Vorarbeiten ab. Falls Sie einem Benutzer (Beispiel nobody) die Rechte an der Datenbank sowie ein Passwort zugeordnet haben, können Sie die Daten hier eingeben. Exkurs Seit PHP5 ist die MySQL-Anbindung nicht mehr im PHP-Sprachkern integriert und muss über die Erweiterung mysqli einkompiliert werden. Die MySQL Improved Extension (da kommt das i her) stellt die Funktionalität für MySQL 4 und höher bereit. Sie enthält mehr objektorientierte Methoden, um mit dem MySQL-Server zu kommunizieren.
Falls Sie sich live im Internet bei Ihrem Provider befindet, geben Sie die entsprechenden Werte an. Wenn Sie es ganz einfach haben wollen, geben Sie unter XAMPP Lite als Datenbank-Benutzer root ein und lassen das Datenbank-Passwort Feld leer. Wenn Sie MAMP unter Mac OS X benutzen, hat der MySQL-Benutzer root das Passwort root. Durch einen Mausklick auf ERWEITERTE EINSTELLUNGEN können Sie spezielle Datenbank-Parameter festlegen (Abbildung 2.23).
79
2 Installation
Abbildung 2.23: Installer – erweiterte Datenbankeinstellungen Der Datenbank-Host ist immer dann localhost oder auch 127.0.0.1, wenn die Daten-
bank auf dem gleichen Rechner wie die Website läuft. Bei Internet Providern ist das selten der Fall. Meist erhalten Sie als Datenbank-Host beispielsweise so etwas: db34.kundendb.de Um hereinkommende Verbindungsanfragen – also bei MySQL z.B. eine Datenab-
frage – beantworten zu können, lauschen Server auf einem Port. Der Webserver normalerweise auf Port 80, MySQL normalweise auf 3306 (auch bei Providern). Ein Tabellenpräfix ist heute eher selten anzutreffen. Die Idee dabei ist, mehrere
Drupal-Installationen in einer Datenbank unterzubringen. Die Zeichen, die Sie hier eintragen, werden allen Tabellennamen vorangestellt. Früher im Zeitalter von knappen Datenbanken war das eine gute Idee. Heute liegen den Hosting-Paketen jedoch meist genug Datenbanken bei, um für jede Drupal-Installation eine eigene Datenbank zu nutzen. Durch einen Klick auf den Button SPEICHERN UND FORTFAHREN werden alle notwendigen Tabellen in der Datenbank erstellt sowie die notwendigen Konfigurationsänderungen in der Datei [Document Root]/sites/default/settings.php vorgenommen.
Schritt 4: Die Website konfigurieren Der Drupal-Installer arbeitet alles ab (Abbildung 2.24) und meldet sich dann mit den letzten Abfragen für die Website. NAME DER WEBSITE: Der Name der Website taucht im Titel der Website im Browserfenster und als Absender bei E-Mails wieder auf.
80
2.6 Der Drupal-Webinstaller
Abbildung 2.24: Installer – automatisierte Erstellung der Website
Abbildung 2.25: Installer – Website konfigurieren E-MAIL-ADRESSE DER WEBSITE: Die offizielle E-Mail-Adresse der Website (meist
[email protected]). Da XAMPP Lite über keinen Mailserver verfügt und daher keine E-Mails verschickt, können Sie eine Phantasie-Adresse eingeben. ADMINISTRATORKONTO: BENUTZERNAME, E-MAIL UND PASSWORT: Wie bei Unix-Systemen gibt es bei Drupal nur einen echten Administrator, der alles darf. Name, E-Mail und Passwort für dieses Benutzerkonto können Sie frei wählen. Das Passwort wird automatisch auf seine Stärke überprüft (Abbildung 2.26), und die E-Mail-Adresse wird aus dem oberen Feld übernommen.
81
2 Installation
Exkurs Der Benutzer, der zuerst angelegt wurde, ist der Administrator der alles darf und in der Datenbank die User-ID 1 belegt!
Abbildung 2.26: Installer – Passwortstärke In den Servereinstellungen darunter können Sie außer der Zeitzone zwei wichtige Parameter festlegen: suchmaschinenfreundliche (lesbare) URLs und die automatische Überprüfung auf Aktualisierungen des Quellcodes. LESBARE URLS: Wenn Sie mit XAMP Lite arbeiten, ist dieses Feature zunächst deaktiviert. Nach der Installation werden wir es einrichten. AKTUALISIERUNGSBENACHRICHTIGUNGEN: Lassen Sie diese Checkbox auf jeden Fall angekreuzt. Auch eine lokale Version von Drupal kann über diese Funktion nachsehen, ob Sie noch aktuell ist, und entsprechende Maßnahmen vorschlagen. Nach einem Klick auf SPEICHERN UND FORTFAHREN ist Ihre neue Drupal-Seite fertig (Abbildung 2.27).
Schritt 5: Die Installation testen Durch einen weiteren Klick auf den Link IHRE NEUE WEBSITE landen Sie auf Ihrer noch leeren Website. Hier wird Ihnen vorgeschlagen: 1. KONFIGURIEREN SIE IHRE WEBSITE. 2. AKTIVIEREN SIE ZUSÄTZLICHE FUNKTIONEN. 3. PASSEN SIE DAS DESIGN IHRER WEBSITE AN. 4. BEGINNEN SIE, INHALTE ZU SCHREIBEN. Genau das werden wir im nächsten Kapitel tun!
82
2.7 Installation beim Provider
Abbildung 2.27: Installer – Fertigmeldung
2.7
Installation beim Provider
Dieses Thema ist sehr komplex, da es mittlerweile eine unüberschaubare Anzahl von Anbietern und eine noch unüberschaubarere Kombination von installierten Apache-, PHP- und MySQL-Versionen und Webspace-Verwaltungstools gibt. Knackpunkte bei der Installation sind immer: ein eventuell eingeschalteter Safe Mode bei PHP das Verbot, temporäre Dateien in MySQL zu erstellen bei Apache die untersagte Umformung von URLs wegen der Nicht-Aktivierung der so genannten Apache Rewrite Engine (mod_rewrite) und die Verzeichnisrechte
unter Linux, die anders gesetzt werden als unter Windows. Grundsätzlich ist der einfachste Weg, der eigentlich immer funktioniert, folgender: Laden Sie sich die Datei drupal-6.2.tar.gz auf Ihren heimischen PC und entpacken Sie alles in einem temporären Verzeichnis. Laden Sie die gerade ausgepackten Dateien per FTP-Programm auf Ihren angemieteten Server. Die Dateien müssen im öffentlich zugänglichen Verzeichnis installiert werden. Meistens heißen diese Verzeichnisse htdocs, public_html oder nur html. Sie können, falls schon andere Installationen in diesem Verzeichnis sind, innerhalb des Verzeichnisses ein Unterverzeichnis angeben, in das Sie Ihr Drupal installieren. Viele Webhoster erlauben, dass Sie Ihren angemieteten Domainnamen auf ein Verzeichnis linken. Dieser Name ist wichtig, um Ihre Website über den Browser aufrufen zu können.
83
2 Installation
Sie müssen herausbekommen, wie Ihre Datenbank heißt. Meistens sind eine oder auch mehrere Datenbanken in Ihrem Webhosting-Paket enthalten. Manchmal stehen Benutzername, Datenbankname und Passwort fest, manchmal müssen Sie diese erst einrichten. Dazu steht Ihnen meistens eine Browser-basierte Konfigurationsoberfläche zur Verfügung. Nachdem Sie die Daten auf Ihren Server geladen haben und im Besitz der Zugangsdaten zu Ihrer Datenbank sind, kann die Installation, wie in Abschnitt 2.6, Der DrupalWebinstaller, beschrieben, gestartet werden. Exkurs Bei Mehrbenutzerbetriebssystemen (Windows, Linux, Mac OS X) werden die Dateirechte für Dateien und Ordner meist mit den Worten Lesen, Schreiben, Lesen/Ausführen, Ändern und Vollzugriff umschrieben. Jedes Betriebssystem verwaltet die Rechte auf eine leicht unterschiedliche Weise. Unterscheiden kann man bei Windows die Art der Verwaltung vor Windows NT (Windows 98, Windows ME) und nach Windows NT (Window XP, Windows Vista). Nach Windows NT wurden für Dateien, Ordner und Prozesse Access Control Lists (ACLs), Zugangskontrolllisten, eingeführt. Wenn diese ACLs nicht gesetzt sind, erhält jeder Benutzer Vollzugriff auf jedes Objekt. Daher ist auf diesen Betriebssystemen das Arbeiten mit XAMPP Lite und Drupal so »einfach«. In Windows Vista wurde unter anderem die Sicherheit bei der Ausführung von Prozessen erhöht, daher müssen Sie beispielsweise den Betrieb eines Webservers und eines Datenbankservers erst explizit erlauben. Bei Unix-artigen Systemen (Linux, Mac OS X) werden die Zugriffsrechte über drei Benutzergruppen (Inhaber, Gruppe und Sonstige) und die Rechte (Lesen, Schreiben und Ausführen) eingeteilt. Die Benutzerzuordnungen werden über den Befehl chown geregelt, die Dateirechte über den Befehl chmod. Beide Befehle finden Sie in Ihrem FTP-Programm (meist über einen Rechtsklick auf den Namen der Datei, deren Rechte Sie ändern möchten). Eine ausführliche Erklärung sowie eine Übersicht über die Zusammensetzung der Rechte finden Sie beispielsweise unter http://de.wikipedia.org/wiki/Unix-Dateirechte.
84
2.7 Installation beim Provider
Bei virtuellen Servern bei einem Provider kann es, je nach Konfiguration des Servers, manchmal vorkommen, dass der Webserver mit anderen Rechten und Gruppenzuordnungen als der FTP-Benutzer läuft. Wenn Sie nun eine Datei über Drupal hochladen, wird diese mit den Rechten des Webservers (z. B. mit dem User wwwrun) gespeichert. Wenn Sie mit Ihrem FTP-Benutzer (z. B. drupal) diese Datei dann löschen wollen, kann es u. U. passieren, dass Sie das nicht dürfen, weil Ihr FTP-Benutzer sich in einer anderen Benutzergruppe als der Webserver befindet.
85
3
Eine Website mit Drupal
Um Ihnen einen Eindruck von der Leistungsfähigkeit und der Arbeit mit Drupal zu geben, werden wir in diesem Kapitel eine Website erstellen. Ich gehe davon aus, dass Sie eine Drupal-Website, wie in Kapitel 2 beschrieben, installiert haben und sich Ihnen ein Bild wie in Abbildung 3.1 im Browser bietet.
Abbildung 3.1: Willkommen auf Ihrer neuen Drupal-Website Das Buch, das Sie in Händen halten, ist auch online unter der URL http://drupal .cocoate.com lesbar. Die Anforderungen an die Buch-Website sind: Mehrsprachigkeit Einen News-Artikel auf der Startseite veröffentlichen Buchstruktur mit Unterseiten Ein Kontaktformular Sprachumschaltung Aggregatorfunktion für Drupal Newsfeeds Andere Farben im Theme
3 Eine Website mit Drupal
Wir werden diese Website jetzt in ihren Grundstrukturen nachbauen, so dass Sie aussieht wie in Abbildung 3.2.
Abbildung 3.2: Website zum Buch
3.1
Mehrsprachigkeit
Wie Sie bei der Installation bereits bemerkt haben, ist Drupal ist von Beginn an mehrsprachig. Das heißt, Sie haben bereits eine bilinguale Website installiert, als Sie die deutschen Sprachdateien installiert haben. Klicken Sie im einzig vorhandenen Menü auf der linken Seite auf den Link VERWALTEN, dann auf EINSTELLUNGEN, dann auf SPRACHEN (Abbildung 3.3).
Abbildung 3.3: Sprachauswahl in Drupal Die Sprachen können aktiviert und deaktiviert werden. Eine Sprache muss Standard sein. In unserem Fall Deutsch.
88
3.1 Mehrsprachigkeit
3.1.1
Das Modul Content Translation aktivieren
Der Inhalt der Website soll in mehreren Sprachen verfügbar sein, deswegen benötigen wir ein zusätzliches Modul mit dem Namen Content Translation, das die Möglichkeit bereitstellt, Inhalte zu übersetzen. Das Modul ist im Drupal-Core bereits enthalten, muss aber noch aktiviert werden: Klicken Sie dazu auf den Link VERWALTEN, dann auf STRUKTURIERUNG, dann auf
MODULE. Scrollen Sie ein wenig herunter und aktivieren Sie die Checkbox neben dem Modul
CONTENT TRANSLATION (Abbildung 3.4). Klicken Sie unten auf der Seite auf den Button KONFIGURATION SPEICHERN.
Das Modul wird aktiviert und steht Ihrer Drupal-Website zur Verfügung.
Abbildung 3.4: Aktivieren des Moduls Content Translation
3.1.2
Inhaltstyp Artikel bearbeiten
Die Inhalte von Drupal werden in Inhaltstypen unterteilt, von denen jeder beliebig viele Inhalte (Nodes) haben kann. Standardmäßig gibt es die Inhaltstypen Artikel und Seite, aber Sie können beliebig viele eigene Inhaltstypen erstellen. Nach der Aktivierung des Content Translation Moduls müssen die einzelnen Inhaltstypen für die Übersetzung konfiguriert werden. Klicken Sie auf den Link VERWALTUNG – INHALTSVERWALTUNG – INHALTSTYPEN. Sie sehen die beiden Inhaltstypen Artikel und Seite (Abbildung 3.5).
89
3 Eine Website mit Drupal
Abbildung 3.5: Inhaltstypen Exkurs Zwei Inhaltstypen sind, wie gesagt, in Drupal vorgegeben, Seite und Artikel. Beide bestehen zunächst aus einem Titel und einem Textkörper (Body). Sie unterscheiden sich technisch durch nichts. Semantisch ist eine Seite etwas Statisches wie beispielsweise das Impressum, die Geschäftsbedingungen, der Anfahrtsplan und ähnliche Seiten. Ein Artikel dagegen ist eher eine Pressemeldung oder eine Neuigkeit. Klicken Sie im Inhaltstyp Artikel auf den Link BEARBEITEN. Sie sehen ein Formular, in dem Sie die Eigenschaften dieses Inhaltstyps festlegen können. Im unteren Bereich sehen Sie drei Links. Klicken Sie auf den Link EINSTELLUNGEN FÜR ARBEITSABLAUF. Das Formular wird daraufhin erweitert und gibt unter anderem die Möglichkeit, die Mehrsprachigkeit zu aktivieren. Aktivieren Sie die letzte Checkbox AKTIVIERT, MIT ÜBERSETZUNG (Abbildung 3.6) und klicken Sie dann auf INHALTSTYP SPEICHERN.
Abbildung 3.6: Inhaltstyp für Mehrsprachigkeit und Übersetzung vorbereiten
90
3.2 Einen News-Artikel auf der Startseite veröffentlichen
Sie haben jetzt alle notwendigen Vorbereitungen getroffen und können nun Inhalte einstellen.Wenn Sie den Inhaltstyp Seite benutzen wollen, so dürfen Sie nicht vergessen, auch hier Standardwerte vorzugeben.
3.2
Einen News-Artikel auf der Startseite veröffentlichen
Unsere Website soll auf der Startseite die neuesten Meldungen bringen.
3.2.1
Einen neuen Artikel erstellen
Um einen neuen Artikel zu erstellen, klicken Sie im Menü auf den Link INHALT und dann auf ARTIKEL. Füllen Sie ein wenig Text in Titel und Textkörper (Abbildung 3.7).1 ERSTELLEN
Abbildung 3.7: Ein erster Artikel Zwischen Titel und Textkörper können Sie die Sprache auswählen. Unser Text ist in deutscher Sprache verfasst. Klicken Sie auf den Link VERÖFFENTLICHUNGSEINSTELLUNGEN und kreuzen Sie ggfs. die Checkboxen VERÖFFENTLICHT und AUF DER STARTSEITE an.
1 Blindtexte finden Sie online beispielsweise auf http://www.blindtextgenerator.de, http://www. peewee.de/Blindtext.html und http://www.newmediadesigner.de.
91
3 Eine Website mit Drupal
Abbildung 3.8: Veröffentlichungseinstellungen
3.2.2
Den erstellten Artikel betrachten
Ihr Artikel ist jetzt zu sehen und wenn Sie auf den Link STARTSEITE klicken, der über Ihrem Artikel als Navigationspfad (Breadcrumbs) steht, haben Sie tatsächlich einen News-Artikel (mit Blindtext) auf der Startseite (Abbildung 3.9).
Abbildung 3.9: Startseite mit News An diesem Punkt springt meist der Funke der Begeisterung bei Menschen über, die noch nie Drupal benutzt haben, und viele Wünsche werden geweckt. Intuitiv möchte man sofort: einen WYSIWYG-Editor (siehe Abschnitt 8.3, WYSIWYG-Editoren erleichtern Benut-
zern das Leben) ein anderes Datumsformat (siehe Abschnitt 7.4, Datum und Uhrzeit) einen Zähler, der die Aufrufe der Website zählt (siehe Abschnitt 9.4, Das Modul
Statistics: Referrer, Seitenaufrufe und mehr) ein anderes Design für Schrift und Artikelaufbau (siehe Abschnitt 11.7, Design der
Ausgabe verändern und Kapitel 10, Verändern Sie das Design – theming)
92
3.2 Einen News-Artikel auf der Startseite veröffentlichen
Tags (Schlagworte), aus denen irgendwann mal Tag Clouds und RSS-Feeds werden
können (siehe Abschnitt 5.8, Taxonomie – Inhalte kategorisieren) suchmaschinenfreundliche URLs (siehe Abschnitt 5.13, Suchmaschinenfreundliche
URLs) und, und, und ...
Drupal wird Ihnen alle Wünsche erfüllen, aber lassen Sie uns zunächst mit der Website weitermachen. Sie haben jetzt einen Artikel auf der Startseite, legen Sie ruhig noch einen zweiten Artikel an, wenn Sie Lust dazu haben. Übung macht den Meister. Ist Ihnen auf der Startseite der Newsfeed-Button aufgefallen? Jeder Auflistung von mehreren Inhalten wie hier auf der Startseite wird automatisch ein abonnierbares Newsfeed mit auf den Weg gegeben (in diesem Fall die Startseite) (Abbildung 3.10).
Abbildung 3.10: Newsfeed Ihrer Startseite
3.2.3
Die Übersetzung des Artikels
Wenn Sie auf der Startseite auf den verlinkten Titel des Artikels klicken, befinden Sie sich in der Einzelansicht. Sie sehen den Titel des Artikels, einen Link BEARBEITEN und einen Link ÜBERSETZEN. Wenn Sie auf den Link ÜBERSETZEN klicken, können Sie diesem Artikel eine evtl. bereits bestehende Übersetzung zuordnen oder eine neue Übersetzung erstellen. In unserem Fall benötigen wir eine neue Übersetzung. Nach Auswahl der Zielsprache und einem Klick auf ÜBERSETZUNG HINZUFÜGEN kopiert Drupal den Original-Eintrag in das Formular der Übersetzung, und Sie können mit der Arbeit beginnen (Abbildung 3.11). Klicken Sie auf ÜBERSETZUNG HINZUFÜGEN und fügen Sie den englischen Text ein. Beide Artikel erscheinen auf der Startseite. Das ist zunächst noch »so gewollt«. Weiterführende Informationen zum Thema Internationalisierung erhalten Sie in Abschnitt 7.11, Sprachen, und 13.6, i18n: Internationalisierung.
93
3 Eine Website mit Drupal
Abbildung 3.11: Übersetzungsseite
3.3
Buchstruktur mit Unterseiten
Nachdem das mit den Artikeln so gut geklappt hat, werden Sie jetzt einen neuen Inhaltstyp benutzen, ein so genanntes »Buch«. Das muss natürlich kein komplettes Buch sein, sondern kann inhaltlich jede Form von zusammenhängenden, strukturierten Inhalten sein (FAQ, Produktkataloge etc.). Drupal bringt im Core das Book-Modul mit. Dieses Modul kann: Inhalte (Nodes) hierarchisch gliedern die Hierarchie als Navigation in einem positionierbaren Block anzeigen eine Druckansicht des Inhalts erzeugen Links zum Vor- und Zurückblättern erstellen.
3.3.1
Das Book-Modul aktivieren
Um das Book-Modul zu aktivieren, klicken Sie auf den Link VERWALTEN, STRUKTURIERUNG, MODULE. Aktivieren Sie die Checkbox und klicken Sie unten auf der Seite auf den Button KONFIGURATION SPEICHERN.
Abbildung 3.12: Book-Modul aktivieren
94
3.3 Buchstruktur mit Unterseiten
3.3.2
Block positionieren
Nach der Aktivierung des Moduls steht Ihnen ein neuer Inhaltstyp (INHALT ERSTELLEN-BOOK PAGE) und ein neuer Block mit dem automatisch zugewiesenen Namen BUCHNAVIGATION zur Verfügung. Hinweis Ein Block ist ein »Kasten«, eine »Box«, ein »Bereich«, der »um den eigentlichen Inhalt herum« positioniert werden kann.
Abbildung 3.13: Positionierung des Buchnavigationsblocks Positionieren Sie diesen Block auf die linke Seite Ihrer Website (VERWALTEN – STRUKTURIERUNG – BLÖCKE – REGION »LINKE SEITENLEISTE«) wie in Abbildung 3.13. Vergessen Sie nicht, unten auf den Button BLÖCKE SPEICHERN zu klicken. Sie haben weiterhin die Wahl, ob der Block nur auf Buchseiten oder immer angezeigt werden soll. Um die Anzeige auf Buchseiten zu beschränken, klicken Sie auf den Link KONFIGURIEREN neben dem Block und kreuzen die entsprechende Auswahl an. Wenn vom Besucher Ihrer Website nun eine Buchseite aufgerufen wird, wird die Navigation (das Inhaltsverzeichnis) künftig automatisch oben links angezeigt.
3.3.3
Einige Buchseiten erstellen und gliedern
Jetzt müssen Sie nur noch Ihr Buch schreiben :-). Klicken Sie dazu auf die Links INHALT ERSTELLEN – BUCHSEITE (BOOK PAGE) und legen Sie ein paar Seiten mit je einer Überschrift und einem Blindtext als Textkörper an. Beginnen Sie mit der Titelseite: Klicken Sie auf INHALT ERSTELLEN – BOOK PAGE. Geben Sie als Titel z. B. »Drupal 6 – Tutorial – Deutsch« ein und wie immer ein biss-
chen Blindtext.
95
3 Eine Website mit Drupal
Der entscheidende Unterschied zu einem Artikel ist die Möglichkeit, die Buchseiten zu gliedern. Sie finden sie unter dem Link BUCHGLIEDERUNG. Die erste Buchseite, die Sie erstellen, ist das Buch-Cover bzw. die Startseite des Buches (Abbildung 3.14).
Abbildung 3.14: Buchgliederung – Neues Buch Weitere Seiten, die Sie erstellen, können unter dem Link BUCHGLIEDERUNG einem Buch und einem Unterkapitel zugeordnet werden. Erstellen Sie zur Übung drei Buchseiten mit den Titeln »Einleitung«, »01. Was ist Drupal?« und »02. Installation«. Weisen Sie diesen Seiten als übergeordneten Menüpunkt die Titelseite »Drupal – Tutorial – Deutsch« zu. Die folgenden Abbildung zeigt das fertige Ergebnis:
Abbildung 3.15: Buchgliederung – Seiten zuordnen Der Punkt REIHENFOLGE dient übrigens dazu, in einem Menü die Reihenfolge der Menüpunkte festzulegen. Etwas gewöhnungsbedürftig ist dabei anfangs die Tatsache, dass kleinere Zahlen dabei oberhalb von größeren Zahlen stehen, 0 steht also z. B. oberhalb von 1. Mehr dazu auf finden Sie im Abschnitt 5.2, Buch.
3.3.4
Ein Link auf das Buch im Menü
Damit ein Besucher Ihrer Website das Buch überhaupt findet, sollten Sie einen Link im Menü vorsehen. Der Link sollte zur Startseite des Buches gehen. Sie können diese Zuordnung im Formular BEARBEITEN der Startseite des Buches vornehmen (Abbildung 3.16).
96
3.3 Buchstruktur mit Unterseiten
Abbildung 3.16: Menülink erstellen für die Startseite des Buches Drupal bringt ein paar Menüs im Core mit. Ich ordne das Buch dem Menü HAUPTLINKS zu. Dieses Menü befindet sich im oberen Bereich der Website. Weitere Menüeinträge sind nicht notwendig, da die Buchnavigation automatisch angezeigt wird. Über der Buchseite befinden sich auch schon Navigationspfade (breadcrumbs) (Abbildung 3.17).
Abbildung 3.17: Änderungen auf der Website
3.3.5
Übersetzung des Buchs
Wenn Sie Ihr Buch übersetzen wollen, müssen Sie zunächst den Inhaltstyp Buchseite konfigurieren. Klicken Sie auf VERWALTEN – INHALTSVERWALTUNG – INHALTSTYPEN, dann neben dem Inhaltstyp Book page auf BEARBEITEN. In diesem Dialogfeld klicken Sie auf EINSTELLUNGEN FÜR ARBEITSABLAUF und aktivieren dort die Mehrsprachigkeit (UNTERSTÜTZUNG VON MEHRSPRACHIGKEIT), wie Sie es bereits bei den Artikeln durchgeführt haben (AKTIVIERT, MIT ÜBERSETZUNG).
97
3 Eine Website mit Drupal
3.3.6
Eingabeformate
Falls Sie HTML-Tags eingegeben haben, die nicht in der Ansicht ausgewertet erscheinen, beispielsweise ein
-Tag, achten Sie im Eingabeformular auf den Link EINGABEFORMATE (Abbildung 3.18).
Abbildung 3.18: Eingabeformate Hier können Sie zwischen vordefinierten Formaten wählen, die dann für diesen Inhalt gelten. Sie können natürlich auch eigene Formate erstellen und ein Standardformat festlegen (VERWALTEN – EINSTELLUNGEN – EINGABEFORMATE). Mehr über Eingabeformate erfahren Sie in Abschnitt 5.9, Eingabeformate.
3.4
Kontaktformular
Für den Anfang wollen wir uns auf ein einfaches Kontaktformular beschränken. Im Abschnitt 13.1, Webform: Formulare erstellen und auswerten, werden Sie eine Möglichkeit finden, ein komplexes, individuelles Formular zu erstellen.
3.4.1
Modul Contact aktivieren
Klicken Sie auf den Link VERWALTEN – STRUKTURIERUNG – MODULE und aktivieren Sie das Modul Contact durch Ankreuzen der Checkbox und einen Klick auf den Button KONFIGURATION SPEICHERN am Ende der Seite.
3.4.2
Konfiguration des Kontaktformulars
Um ein allgemeines Kontaktformular für die Website zu konfigurieren, klicken Sie auf VERWALTEN – STRUKTURIERUNG – KONTAKTFORMULAR. Das Modul Contact stellt neben dem allgemeinen Kontaktformular auf Wunsch auch jedem Benutzerkonto ein privates Kontaktformular zur Verfügung. Doch zunächst zum allgemeinen Formular (Abbildung 3.19).
98
3.4 Kontaktformular
Abbildung 3.19: Konfiguration Kontaktformular Geben Sie eine Kategorie ein, eine oder mehrere Empfänger-E-Mail-Adressen und einen Text, der erscheinen soll, nachdem das Formular abgeschickt wurde. Sie können beliebig viele Kategorien eingeben und verwenden, also für unterschiedliche Kontaktwünsche unterschiedliche Empfänger und Texte konfigurieren. Ein Link für das Kontaktformular existiert auch schon, Sie müssen ihn nur aktivieren und einem Menü Ihrer Wahl zuordnen. Klicken Sie auf VERWALTEN – STRUKTURIERUNG – MENÜS – NAVIGATION. Neben dem abgegrauten Eintrag KONTAKTIEREN klicken Sie auf den Link BEARBEITEN. Dort wählen Sie beispielsweise als Menü wieder die HAUPTLINKS aus. Den engli-
schen Namen des Links können Sie stehen lassen, Drupal wird ihn automatisch übersetzen. Das Ergebnis der Übersetzung wird kontaktieren heißen. Falls Sie eine andere Beschreibung im Link haben wollen (Kontakt), dann geben Sie sie hier ein. Kreuzen Sie die AKTIVIERT-Checkbox an und speichern Sie Ihre Wahl ab.
Abbildung 3.20: Kontaktformular auf der Website
99
3 Eine Website mit Drupal
Die Besucher Ihrer Website haben jetzt die Möglichkeit, mit Ihnen Kontakt aufzunehmen (Abbildung 3.20). Falls Sie sich an der deutschen Übersetzung kontaktieren stören, können Sie das Wort, wie in Abschnitt 6.5.1, Übersetzen eines Strings »per Hand«, erklärt, verändern.
3.5
Sprachumschaltung
Als Nächstes wollen wir noch eine Sprachauswahl als Block auf die Website bringen. Klicken Sie auf VERWALTEN – STRUKTURIERUNG – BLÖCKE. Positionieren Sie den Block Sprachumschalter in den Kopfbereich des Themes (Ab-
bildung 3.21).
Abbildung 3.21: Position des Sprachumschalter-Blocks In diesem Fall soll der Block keinen Titel haben. Im Kopfbereich handelt es sich um horizontale Menüs, und ein Titel würde das Layout stören. Klicken Sie daher neben den Block auf den Link KONFIGURIEREN. Geben Sie beim Titel des Blocks <none> ein (Abbildung 3.22) und nicht, wie im Erläuterungstext darunter angeführt, .
Abbildung 3.22: Titel im Block ausblenden Auf der Website befinden sich jetzt oben links zwei Links für die Sprachumschaltung der Website. Leider funktionieren sie noch nicht. Das Verhalten der Sprachumschaltung muss noch festgelegt werden, insbesondere der Aufbau der URLs: Rufen Sie VERWALTEN – EINSTELLUNGEN – SPRACHEN – KONFIGURATION auf. Damit die Umschaltung reibungslos funktioniert, müssen Sie sich für eine Variante
der »Spracherkennung« entscheiden. Wählen Sie die Option PFADPRÄFIX MIT RÜCKFALLSPRACHE (Abbildung 3.23).
100
3.5 Sprachumschaltung
Abbildung 3.23: Spracherkennungsauswahl Wenn Sie nun die Sprachlinks ENGLISH und DEUTSCH anklicken, so ändert sich tatsächlich die Umgebungssprache und die Inhalte. Probieren Sie es beim Kontaktformular aus (Abbildung 3.24). Hinweis Es kann sein, dass es zu einer Fehlermeldung bei der Sprachumschaltung kommt. Das hat mit der Auflösung der Pfade zu tun. Klicken Sie auf VERWALTEN – EINSTELLUNGEN – SPRACHEN, ENGLISH BEARBEITEN. Geben Sie als Pfadpräfix en an, und schon geht der Sprachumschalter wieder.
Abbildung 3.24: Website mit Sprachauswahl Die Sprachumschaltung ist beim Kontaktformular und im Menü Navigation in der Tat beeindruckend. ABER: In Englisch ist beim Buch der Menüblock links weg. Wir haben jetzt ein mehrsprachiges Buch, aber oben bleibt Drupal 6 – Tutorial –
Deutsch stehen. Wenn Sie draufklicken, erscheint die englische Titelseite des Buchs. Auf der Startseite stehen immer der deutsche und der englische News-Artikel.
Ideal wäre, wenn sich das mit der Sprachumschaltung ändern würde.
101
3 Eine Website mit Drupal
Hier beginnt nun die Feinarbeit. Wenn Sie ein mehrsprachiges Projekt haben, erfahren Sie mehr über diese Problematik in den Abschnitten 7.11, Sprachen, und 13.6, i18n: Internationalisierung.
3.6
Aggregatorfunktion für Drupal Newsfeeds
Newsfeeds sind eine tolle Sache. Sie erleichtern die Übersicht über Neuigkeiten im Web. Drupal bietet mit dem Aggregator-Modul die Möglichkeit, beliebig viele Newsfeeds von anderen Sites zu sammeln und auf Ihrer Website anzuzeigen. Planet Drupal2 nutzt diese Technik, um Blogs, die über Drupal berichten, zu aggregieren. Lassen Sie uns einen Newsstream, bestehend aus den letzten interessanten Drupal-Nachrichten, erstellen und im Menü verlinken. Wir nehmen dazu die Feeds von drupalcenter.de und planet.drupal.org. Exkurs: Urheberrecht Die meisten Anbieter von RSS-Feeds sind erfreut, wenn Sie auf anderen Websites eingebaut werden, verweisen doch durch diese Maßnahme viele zusätzliche Websites auf die eigene Website. Das erhöht die Platzierung bei Google erheblich und ist ein Win-Win-Geschäft. Nichtsdestotrotz sollten Sie bei jedem RSS-Feed auf die Nutzungsbedingungen achten.
3.6.1
Aggregator-Modul aktivieren
Um das Modul zu aktivieren, klicken Sie auf den Link VERWALTEN – STRUKTURIERUNG – MODULE. Aktivieren Sie die Checkbox neben dem Aggregator-Modul und klicken unten auf der Seite auf den Button KONFIGURATION SPEICHERN. Drupal aktiviert das Modul, stellt automatisch einen Link in der Navigation bereit und wartet auf Ihre Eingaben (Abbildung 3.25).
Abbildung 3.25: Feed Aggregator
2
http://planet.drupal.org/
102
3.6 Aggregatorfunktion für Drupal Newsfeeds
3.6.2
Newsfeeds eintragen
Über den Link VERWALTEN – INHALTSVERWALTUNG – FEED AGGREGATOR gelangen Sie in die Verwaltung der Newsfeeds. Hier können Sie Kategorien anlegen, Feeds eintragen und die Grundeinstellungen beeinflussen. Wir wollen es dabei belassen, die beiden Feeds einzutragen. Nach einem Klick auf den Link FEED HINZUFÜGEN erscheint das entsprechende Formular. Sie benötigen eine Beschreibung, den Link zum Feed und eine Aktualisierungsfrequenz. Hier die nötigen URLs: http://drupal.org/planet/rss.xml http://feeds.feedburner.com/drupalcenter
Abbildung 3.26: Feed hinzufügen Legen Sie beide Feeds an und gehen dann wieder in die Übersicht (Link ALLE ANZEIGEN). Hier sehen Sie eine Liste Ihrer Feeds und können zweimal auf EINTRÄGE AKTUALISIEREN klicken. Bei bestehender Internetverbindung werden jetzt die entsprechenden Nachrichten geladen (Abbildung 3.27).
Abbildung 3.27: Feed-Übersicht
103
3 Eine Website mit Drupal
Die Nachrichten selbst sehen Sie durch einen Klick auf den Menülink FEED AGGREGATOR (Abbildung 3.28). Durch einen Klick auf Quellen erhalten Sie eine Übersicht über die Datenquellen der Newsfeeds.
Abbildung 3.28: Feeds auf der Website
3.6.3
Menülink in die Hauptlinks positionieren
Der Feed Aggregator ist schon sehr gelungen, aber Sie wollen eine andere Bezeichnung im Menü und eine andere Positionierung. Klicken Sie auf VERWALTEN – STRUKTURIERUNG – MENÜS – NAVIGATION. Neben dem FEED AGGREGATOR-Link klicken Sie auf BEARBEITEN. Im sich daraufhin öffnenden Formular können Sie den Menülink in die Hauptlinks einordnen und den Titeltext verändern. Das Feld REIHENFOLGE legt das »Gewicht« des Links fest. »Leichte Links« (kleine Zahlen) sind oberhalb von »schweren Links« (große Zahlen). Die schweren Links sinken gewissermaßen. In horizontalen Menüs bedeutet »leicht« eine Positionierung in Richtung linke Seite und »schwer« eine Positionierung nach rechts. (Abbildung 3.29 und Abbildung 3.30).
Abbildung 3.29: Menülinks positionieren
104
3.7 Andere Farben im Theme
Abbildung 3.30: Hauptlinks
3.7
Andere Farben im Theme
Drupal kommt mit mehreren Themes. Wir benutzen gerade das Standardtheme Garland. Sie können in diesem Theme über den Browser die Farben verändern, ein anderes Logo hochladen und vieles andere mehr. Klicken Sie auf VERWALTEN – STRUKTURIERUNG – THEMES. Neben dem Theme Garland, bei dem der Radio-Button STANDARD aktiviert ist, klicken Sie auf den Link KONFIGURIEREN. Sie sehen jetzt Einstellmöglichkeiten für verschiedene Bereiche des Themes mit einer Live-Vorschau! (Abbildung 3.31)
Abbildung 3.31: Theme Garland – Color Picker Im weiteren Verlauf dieser Konfigurationsseite können Sie ein anderes Logo hochladen und verschiedene Konfigurationseinstellungen, abhängig von anderen akti-
105
3 Eine Website mit Drupal
vierten Modulen, tätigen. Nach dem Speichern übernimmt Ihre Website das neue Design. Spielen Sie ein wenig mit den Möglichkeiten. Mehr über Themes lesen Sie in Abschnitt 6.6, Themes bestimmen, wie Ihre Site aussieht, Abschnitt 7.12, VerwaltungsTheme, Kapitel 10, Verändern Sie das Design – theming, und Abschnitt 11.7, Design der Ausgabe verändern.
3.8
Fazit
Auch wenn das jetzt ein Crash-Kurs in Sachen Drupal war – Sie können sich nun sicher besser eine Vorstellung von der Arbeitsweise mit Drupal machen. Sie haben übrigens jetzt eine mehrsprachige Website mit einem Nachrichtenbereich, Newsfeeds, Kontaktformular und einem nach Ihren Wünschen angepassten Theme. Fragen Sie mal bei verschiedenen Agenturen nach so einer Dienstleistung. Sie werden erstaunt sein über die Antworten. Außer dem positiven Eindruck gibt es natürlich auch die übliche Verwirrung, die mit jedem Neuanfang einhergeht. Beispielsweise sind die Verwaltungsmenüs etwas überladen. Natürlich gibt es für dieses Problem mehrere Lösungen. Eine davon ist beispielsweise ein spezielles Theme nur für die Verwaltungsseiten (VERWALTUNG – EINSTELLUNGEN – VERWALTUNGSTHEME). Eine andere Lösung ist das Abschalten der Beschreibungen auf den Verwaltungsseiten (VERWALTEN – BESCHREIBUNGEN AUSBLENDEN). Eine besonders elegante Lösung ist das Zusatzmodul Administration Menu3 (Abbildung 3.32). Es legt ein nur für berechtigte Benutzer sichtbares Klappmenü an den oberen Rand der Website und erleichtert das Finden von Menüpunkten in der dritten oder vierten Hierarchieebene natürlich erheblich. Wie Sie dieses Modul und andere installieren, lesen Sie in Abschnitt 6.4.2, Neue Module installieren (contributed modules).
Abbildung 3.32: Modul Admin Menu 3
http://drupal.org/project/admin_menu
106
3.8 Fazit
Oft ist anfangs zu hören: »Ich muss so viel scrollen«. Soll ich mit Lösungsansätzen für dieses Problem kommen? ... Ich wollte Ihnen in diesem Kapitel und auch im Verwaltungsbeispiel am Ende exemplarisch zeigen, dass Drupal modular funktioniert und sich sehr intuitiv bedienen lässt, wenn man sich auf die »Drupal-Denke« einlässt, weiß, was man will und die richtigen Module nutzt. Glauben Sie mir: Für alles, was Ihnen jetzt an Anforderungen einfällt, hat die DrupalCommunity eine Lösung oder zumindest einen Lösungsansatz entwickelt. Mir ist noch kein Problem begegnet, das sich nicht mit Drupal lösen ließ!
107
Teil II Der Core
4
Benutzer verwalten
Benutzer sind vielschichtig und unberechenbar. Im geschäftlichen Umfeld ist der Benutzer meist ein Mitarbeiter der Firma, im Community- und Web 2.0-Umfeld ist der Benutzer ein sich mit E-Mail, Namen und Passwort identifizierender Nutzer der Website, also so etwas ähnliches wie ein Kunde. Alle Benutzer besitzen ein so genanntes Benutzerkonto. Nur die Zugriffsrechte unterscheiden den Mitarbeiter vom Kunden, den Chef vom Praktikanten, den Besucher der Website vom Investor. Firmen und Websites werden oft nach Art und Anzahl der Benutzer bewertet. Der Benutzer in seiner Rolle als Mitarbeiter kann eine Firma zum Fliegen oder zum Absturz bringen. Ebenso verhält es sich mit dem Benutzer in seiner Rolle als Kunde. Vom geschäftlichen Standpunkt aus gesehen wollen Sie, dass jemand Ihre Website und Ihre Services benutzt. Sie stehen auf einem großen, völlig überfüllten Basar und rufen so etwas wie »Tolle Website mit tollen Services! Klasse Funktionalität! Ihre Nachbarn benutzen es auch!«. Millionen Werbeagenturen sorgen dafür, dass sich das in Wirklichkeit viel professioneller anhört. Das Grundproblem, das dieser Situation innewohnt, ist allerdings die Tatsache, dass Sie etwas wollen und der Kunde Sie einfach ignorieren kann. Als Mitarbeiter der Firma, der ebenfalls die Website benutzt, haben Sie vermutlich das Ziel, Ihre Arbeit effektiv zu schaffen. Der Mitarbeiter kann die Website nicht ignorieren. Er »muss« mehr oder weniger damit arbeiten. Als Kunde sieht die Situation wieder anders aus. Kunden wissen, was sie wollen (hoffentlich) und suchen nach einer Website, die ihre Wünsche erfüllt. Haben sie eine entsprechende Website gefunden und werden freundlich und korrekt behandelt, so empfehlen sie sie natürlich weiter, schreiben etwas in ihr Blog, erzählen davon auf einer Party – kurz: sie stellen sich neben den Markstand und machen ebenfalls Werbung für diese Website. Der einzige Haken für den Website-Betreiber ist, dass sie das natürlich im positiven wie im negativen Fall tun und so erheblich Einfluss auf Erfolg oder Misserfolg ausüben können. Ja, und dann gibt es noch die Gäste, die mal so vorbeischauen und sehen wollen, was es Neues gibt. Diese Gruppe ist die mit Abstand größte bei öffentlichen Websites, und es gilt immer, diese große, schweigsame Masse zur Mitarbeit zu bewegen (Faustregel aus meiner Erfahrung: 1.000 Gäste, 1 neuer Benutzer).
4 Benutzer verwalten
4.1
Die Benutzerverwaltung von Drupal im Überblick
Drupal als Content Management-System RSS Feed muss all diese völlig unterschiedlichen Anforderungen an Benutzerkonten erfüllen. Schauen wir uns daher den Bereich Benutzer etwas näher an. Die Benutzerverwaltung erreichen Sie als Administrator über den Link VERWALTEN – BENUTZERVERWALTUNG. Sie gliedert sich standardmäßig in die Unterpunkte BENUTZER BENUTZEREINSTELLUNGEN BERECHTIGUNGEN ROLLEN ZUGRIFFSREGELN
Zusätzlich zu diesen Standardpunkten bringt Drupal weitere Module mit, die direkt oder indirekt Einfluss auf die Benutzer haben: zusätzliche Felder innerhalb des Benutzerkontos zur Erstellung von Benutzerprofi-
len (Modul Profile) – siehe Abschnitt 4.5, Zusätzliche Profilfelder im Benutzerkonto. ein Blog für jeden Benutzer (Modul Blog), siehe Abschnitt 4.7, Ein Blog für jeden, und
die Möglichkeit, aus anderen Programmen wie beispielsweise OpenOffice oder der Foto Community Flickr direkt in Ihr Drupal »zu bloggen« (Modul Blog Api) – siehe Abschitt 8.5, Inhalte per Fernsteuerung bearbeiten. ein Kontaktformular für jeden Benutzer (Modul Contact) – siehe Abschnitt 6.2,
Kontaktformular. Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID) – siehe
Abschnitt 4.8, Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID). Das Upload-Modul stellt die Möglichkeit bereit, Dateien an Artikel zu hängen
(Modul Upload) – siehe Abschnitt 5.11, Upload. Fragen Sie einfach Ihre Benutzer nach ihrer Meinung im Rahmen einer Umfrage
(Modul Poll) – siehe Abschnitt 8.1, Das Modul Poll: Umfragen erstellen und auswerten. Außer diesen naheliegenden und oft benutzten Modulen gibt es auf der drupal.orgSeite weitere Module, die die Möglichkeiten der Behandlung von Benutzern erheblich erweitern (User access/authentication1 und User management2). Doch bevor wir erweitern, wollen wir erst mal sehen, was Drupal von Haus aus so an Funktionen mitbringt.
1 2
http://drupal.org/project/Modules/category/74 http://drupal.org/project/Modules/category/76
112
4.2 Verwalten – Benutzerverwaltung – Benutzer
4.2
Verwalten – Benutzerverwaltung – Benutzer
Hier können Sie, der Sie als Administrator ein privilegiertes Benutzerkonto haben, andere Benutzer anlegen und vorhandene Benutzer verwalten.
Abbildung 4.1: Benutzerverwaltung Ein Benutzer in Drupal kann aktiviert oder deaktiviert sein. Ein Benutzerkonto muss mindestens einen Benutzernamen, eine E-Mail-Adresse und ein Passwort haben. Der Benutzername kann Leer- und Sonderzeichen enthalten. Das Passwort wird bei der Eingabe auf dessen Stärke geprüft. Bei der Erstellung eines Benutzerkontos gibt es zwei verschiedene Möglichkeiten: Wenn Sie als Administrator ein Benutzerkonto anlegen, können Sie es sofort akti-
vieren und den Benutzer per E-Mail benachrichtigen. Den Text der E-Mail können Sie ebenfalls konfigurieren (siehe Abschnitt 4.2, Benutzereinstellungen). Wenn sich ein Benutzer selbst auf der Website registriert, hängt das weitere Ver-
halten von den Einstellungen ab. Das Konto ist allerdings zunächst deaktiviert. Drupal schickt eine E-Mail an die angegebene E-Mail-Adresse und verlangt eine explizite Bestätigung über einen speziellen Link.
Abbildung 4.2: Benutzerfilter nach Zugriffsrechten Die Benutzerverwaltung ist filter- und sortierbar. Die Sortierung bestimmen Sie mit einem Klick auf die Überschriften. Filtern können Sie nach Zugriffsrechten, beispiels-
113
4 Benutzer verwalten
weise nach allen Benutzern, die das Recht haben, die druckerfreundliche Version Ihres Buches zu sehen (Abbildung 4.2), und nach aktivierten und deaktivierten Benutzern. Die Aktualisierungseinstellungen können Sie auch in einer Sammelbearbeitung vornehmen. Alle Benutzer auf der Seite können durch Ankreuzen der Checkbox in der Überschrift ausgewählt werden.
4.3
Die Benutzereinstellungen
In VERWALTEN – BENUTZERVERWALTUNG – BENUTZEREINSTELLUNGEN geht es um Basisinformationen, die für alle Benutzer gelten. Das lange Formular teilt sich in vier Bereiche: REGISTRIERUNGSEINSTELLUNGEN E-MAIL-EINSTELLUNGEN FÜR BENUTZER SIGNATUREN BENUTZERBILDER
4.3.1
Registrierungseinstellungen
Hier bestimmen Sie, ob sich Benutzer selbst registrieren dürfen oder nicht. Eine weitere Einstellung ermöglicht eine Registrierung, bei der das Benutzerkonto von einem Administrator freigeschaltet werden muss (Abbildung 4.3).
Abbildung 4.3: Registrierungseinstellungen Die Checkbox für die E-Mail-Überprüfung ist standardmäßig angekreuzt und sollte es auch bleiben. In der Textbox darunter können Sie einen Hinweistext anbringen, der dann auf dem Registrierungsformular zu sehen ist.
114
4.3 Die Benutzereinstellungen
Benutzer können sich über den Block Benutzeranmeldung anmelden, registrieren und sich ein neues Passwort zuschicken lassen. Der Block ist nur für nicht angemeldete Benutzer auf der Website sichtbar. Sie können ihn unter VERWALTEN – STRUKTURIERUNG – BLÖCKE an die gewünschte Stelle positionieren oder auch ausblenden (Abbildung 4.4). Die Positionierung erfolgt über ein Anfassen und Verschieben des KreuzSymbols vor dem Block. Falls Sie den Block ausblenden, ist eine Anmeldung weiterhin möglich über die URL http://localhost/drupal62/?q=user oder nach Aktivierung der suchmaschinenfreundlichen URLs unter http://localhost/drupal62/user (siehe dazu auch Abschnitt 5.13, Suchmaschinenfreundliche URLs). Komplett deaktivieren können Sie die Anmeldeseite nicht, schließlich müssen Sie sich als Administrator auch anmelden. Sie können allerdings die Möglichkeit einer Registrierung unterbinden.
Abbildung 4.4: Block Benutzeranmeldung
4.3.2
E-Mail-Einstellungen für Benutzer
Hier konfigurieren Sie den Inhalt der E-Mails, die Drupal automatisiert in bestimmten Fällen an die Benutzer versendet. Es handelt sich dabei um Vorgänge wie Passwort vergessen, Neuanmeldung etc. (Abbildung 4.5). Sie können die E-Mail durch den Einbau von vordefinierten Variablen personalisieren, beispielsweise !username für den Benutzernamen und !site für den Namen Ihrer Website. Alle möglichen Variablen werden über dem Textfenster angezeigt. Die vorgegebenen Texte sind für den Start Ihrer Website bereits gut geeignet. Hinweis Benutzer können ihr Konto in Drupal selbst löschen und auch den Benutzernamen ändern! Diese Anforderungen werden von Benutzern immer wieder gestellt, aber gern bei der Entwicklung von Websites vergessen. Schließlich ist ein Benutzerkonto bei der Bewertung der Websites unter Umständen bares Geld wert.
115
4 Benutzer verwalten
Abbildung 4.5: E-Mail-Einstellungen für Benutzer
4.3.3
Signaturen
Signaturen sind Ihnen vielleicht schon mal bei einem Besuch in Online-Foren aufgefallen. Die Idee dabei ist, dass das CMS automatisch beim Schreiben eines Kommentars die vom Verfasser definierte Fußzeile (Signatur) an das Ende des Kommentars einfügt (Abbildung 4.6).
Abbildung 4.6: Kommentar mit Signatur und Benutzerbild
116
4.3 Die Benutzereinstellungen
Meist finden sich in Signaturen Sprichworte und/oder ein Verweis auf die Website des Autors. Sie können diese Möglichkeit der Individualisierung oder Werbung, je nach Blickwinkel, erlauben oder verbieten. Die Signaturen sind standardmäßig deaktiviert, und wir werden sie im weiteren Verlauf des Buches nicht mehr benötigen (Abbildung 4.7).
Abbildung 4.7: Signaturen
4.3.4
Benutzerbilder
Zu einem Benutzerkonto kann jeder Benutzer ein Benutzerbild laden. Das entsprechende Formular erscheint, wenn Sie die Checkbox AKTIVIERT ankreuzen (Abbildung 4.8).
Abbildung 4.8: Benutzerbilder Sie können einen Pfad zu den Benutzerbildern vorgeben. Der Name, den Drupal vorschlägt, kann übernommen werden. Beim Speichern der Daten wird der Pfad im Verzeichnis sites/default/files/ angelegt. Sie können ein Standardbild im Verzeichnis hinterlegen und hier den Namen eintragen. Für das Benutzerbild können Sie die maximale Größe in Pixel und Bytes vorgeben sowie einen erklärenden Text, der im Benutzerkonto angezeigt wird.
117
4 Benutzer verwalten
Das Bild wird beim Upload durch den Benutzer nicht kleingerechnet. Der Benutzer kann das Bild im Bereich MEIN KONTO hochladen. Exkurs In der Themes-Verwaltung (VERWALTEN – STRUKTURIERUNG – THEMES) können Sie festlegen, ob Benutzerbilder in Inhalten und Kommentaren angezeigt werden sollen oder nicht.
4.4
Berechtigungen, Rollen und Zugriffsregeln
Eines der mit Abstand wichtigsten Themen bei Websites mit vielen Benutzern ist die Frage nach den Berechtigungen. Drupal bietet ein fein granuliertes System von Zugriffsrechten pro Rolle.
4.4.1
Berechtigungen für Benutzer
Unter VERWALTEN – BENUTZERVERWALTUNG – RECHTE finden Sie eine lange Matrix mit möglichen Einstellungen. Hier können Sie für jede Rolle die Zugriffsrechte vergeben. Beispielsweise können Sie erlauben, dass Gäste der Website und authentifizierte Benutzer die Newsfeeds lesen dürfen (Abbildung 4.9).
Abbildung 4.9: Zugriffrechte Wenn Sie die Liste der möglichen Berechtigungen mal überfliegen, werden Sie viele sinnvolle Einstellungen finden. Weitere Module bringen weitere Einstellungen, beispielsweise das in Abbildung 4.9 angezeigte admin_menu-Modul, das wir in Abschnitt 6.4.2, Neue Module installieren (contributed modules), installieren werden.
118
4.4 Berechtigungen, Rollen und Zugriffsregeln
4.4.2
Rollen verwalten
Die Rollen legen Sie unter VERWALTEN – BENUTZERVERWALTUNG – ROLLEN fest. Sie können beliebig viele neue Rollen anlegen (Abbildung 4.10), sollten aber auch daran denken, dass sich die Berechtigungsmatrix dadurch vergrößert und schnell unübersichtlich werden kann. Beim Scrollen in den Berechtigungen sorgt Drupal dafür, dass die Überschrift mit den Namen der Rollen immer sichtbar bleibt. Außerdem gibt es noch die Methode, im Formular Rollen auf den Link BERECHTIGUNGEN BEARBEITEN hinter der Rolle zu klicken. Sie können dann die Berechtigungen nur für diese eine Rolle bearbeiten. Denken Sie trotzdem immer an den Satz, So viele Rollen wie nötig, so wenige wie möglich. Nicht jede Abbildung des Ist-Zustandes einer existierenden Firma ist sinnvoll!
Abbildung 4.10: Benutzerrollen in Drupal
4.4.3
Zugriffsregeln
Zugriffsregeln sind sehr angenehm, werden mit zunehmender Benutzerzahl immer wichtiger und beziehen sich auf unterschiedliche Aspekte. Benutzernamen E-Mail-Adressen Rechner
Sie können bestimmten Benutzernamen, E-Mail-Adressen und Rechnern (IP-Adressen) erlauben und verbieten, auf Ihre Website zuzugreifen, und können dabei sogar mit Wildcards arbeiten. Wenn Sie eine größere Website haben, melden sich immer wieder »Spaßvögel« mit Namen wie Adolf Hitler o. Ä. an. Mir ist es mal passiert, dass sich jemand mit einem als Marke geschützten Namen angemeldet hat und mir dann eine Abmahnung über seinen Anwalt geschickt hat, weil ich den Namen der Marke auf meiner Website genutzt habe. Seien Sie in diesem Zusammenhang auf alles gefasst! Wenn Ihnen so etwas mal passiert ist, wird Ihnen klar werden, wie wichtig solche Filtermechanismen sind.
119
4 Benutzer verwalten
Exkurs Falls Ihnen bei der Konfiguration so etwas passiert: Sorry, 127.0.0.1 has been banned.
dann haben Sie sich selbst ausgesperrt. Sie können sich dann mit phpMyAdmin weiterhelfen. Die Tabelle access in Drupals Datenbank enthält die von Ihnen definierten Regeln. Wenn Sie hier die »falsche« Regel wieder entfernen, ist der Spuk vorbei.
4.5
Zusätzliche Profilfelder im Benutzerkonto
Je nach Anwendung kann es sinnvoll sein, das Benutzerkonto um weitere Felder zu erweitern, beispielsweise die Adresse des Benutzers, die Abteilung, die Instant Messaging-Benutzernamen etc. Für solche Dinge bietet sich das Profile-Modul an, das Sie über VERWALTEN – STRUKTURIERUNG – MODULE aktivieren können. Nach der Aktivierung finden Sie in VERWALTEN – BENUTZERVERWALTUNG den neuen Punkt PROFILE, der eine stattliche Auswahl an Feldtypen bietet, um die Benutzerprofile zu erweitern. Grundsätzlich benötigen Sie immer einen Feldtyp, eine Kategorie und einen Feldnamen. Sie können festlegen, ob das Feld bei der Registrierung sichtbar sein soll, wer Zugriff darauf haben soll und ob es Listen dieser Felder geben soll. In Abbildung 4.11 sehen Sie ein einfaches Beispiel mit Instant Messaging-Adressen. Das Formular zur Erstellung bekommen Sie über NEUES FELD HINZUFÜGEN – EINZEILIGES EINGABEFELD. Dort geben Sie folgende Werte ein: Kategorie: »Instant Messaging« Titel: Skype Formularname: profile_skype
Wenn ein Benutzer auf den Link MEIN KONTO und dann auf BEARBEITEN klickt, sieht er den zusätzlichen Reiter INSTANT MESSAGING (Abbildung 4.12). Er kann dort seine Daten eintragen, und abhängig von den Einstellungen in den Profilfeldern werden sie dann auf seiner Profilseite angezeigt.
120
4.5 Zusätzliche Profilfelder im Benutzerkonto
Abbildung 4.11: Zusätzliche Felder im Benutzerprofil
Abbildung 4.12: Bearbeitung der Profilfelder aus Benutzersicht
Abbildung 4.13: Zusätzliche Felder auf der Profilseite
121
4 Benutzer verwalten
4.6
Wer hat Gemeinsamkeiten mit mir?
Eine interessante Möglichkeit, um Menschen zusammenzubringen, sind Ähnlichkeiten in den Profilen. Wer wohnt in derselben Stadt, wer hat das gleiche Hobby und viele andere Dinge. Sie können solche Listen über Profilfelder vom Typ Liste mit freiem Format erzeugen.
4.6.1
Eine Liste mit freiem Format erstellen
Klicken Sie auf VERWALTEN – BENUTZERVERWALTUNG – PROFILE und legen ein neues Feld vom Typ Liste mit freiem Format an (Abbildung 4.14):
Abbildung 4.14: Freie Liste anlegen Hier die Einstellungen im Einzelnen: Als Erstes benötigen Sie eine KATEGORIE. Das Feld reagiert auf Ihre Eingaben. Sie
erkennen es an dem kleinen Kreis rechts im Feld. Nach jedem Buchstaben, den Sie eintippen, wird nach bereits vorhandenen Kategorien gesucht. Das ist praktisch, weil damit vermieden wird, dass Sie Kategorien doppelt anlegen. Ich lege eine Kategorie Über mich an. Diese Kategorie wird später ein Reiter in der Bearbeitungsmaske Mein Konto.
122
4.6 Wer hat Gemeinsamkeiten mit mir?
Der TITEL des Feldes ist in meinem Fall Ich mag. Das Feld benötigt auch einen Namen in der Datenbank, den FORMULARNAMEN, nämlich .profile_ich_mag. Beachten Sie bei der Namensvergabe unbedingt den
Hinweis darunter. Die ERKLÄRUNG, worum es in diesem Feld überhaupt geht, ist für den Benutzer
sehr wichtig! Sie erscheint später unter dem Textfeld, das der Benutzer ausfüllen soll. Die SICHTBARKEIT des Feldes können Sie beeinflussen. In unserem Fall soll es ein
öffentliches Feld sein, dessen Inhalt eine Übersichtsseite hat und das in den Profillisten (Liste aller Benutzer) angezeigt wird. Der SEITENTITEL wird über der Profilseite angezeigt. Hier werden später alle Benut-
zer als Liste auftauchen, die das gleiche mögen. Der Seitentitel benötigt ein variables Element, und das ist meistens der entsprechende Wert. Ich wähle als Titel Ich mag %value. Speichern Sie die Einstellungen mit einem Klick auf FELD SPEICHERN.
Sie können auch die Reihenfolge des Feldes innerhalb der Kategorie bestimmen und Parameter über die Sichtbarkeit des Feldes angeben. So ist es beispielsweise möglich, das Feld bei der Benutzerregistrierung sichtbar zu machen.
4.6.2
Die freie Liste in Aktion
Nachdem Sie alle Werte eingetragen haben, sollten die folgenden Effekte auftreten: Unter MEIN KONTO – BEARBEITEN sollte der Reiter ÜBER MICH auftauchen (Abbildung 4.15).
Abbildung 4.15: Über mich-Bereich Nachdem Sie die Werte eingegeben, gespeichert und wieder auf ANZEIGEN geklickt haben, sollte in Ihrem Profil ein Bild wie in Abbildung 4.16 erscheinen.
123
4 Benutzer verwalten
Abbildung 4.16: Freie Liste im Benutzerprofil Alle eingegebenen Begriffe sind verlinkt. Wenn Sie nun einen Begriff anklicken, sehen Sie eine Liste aller Benutzer, die ebenfalls diesen Begriff in Ihrem Ich mag-Feld eingegeben haben. In diesem Fall sind es zwei Benutzer. Einer der Benutzer hat ein Benutzerbild hochgeladen (Abbildung 4.17).
Abbildung 4.17: Listenansicht eines Begriffs aus der Profilseite Exkurs An dieser Stelle kommt Kommunikation ins Spiel. Wie nehme ich Kontakt mit den Benutzern auf, die Gemeinsamkeiten mit mir haben? Ein paar naheliegende Wege wären die Instant Messaging-Felder, so sie denn ausgefüllt worden sind. Drupal bietet natürlich auch zahlreiche Zusatzmodule in diesem Bereich an. Hier nur drei Beispiele. Skype-Status zeigt an, ob dieser Skype-Benutzer gerade online ist:
http://drupal.org/project/skype_status Das Messaging Framework organisiert SMS, private Nachrichten
und E-Mails. http://drupal.org/project/messaging Ein Chat wäre auch praktisch. Hier das Projekt Tribune:
http://drupal.org/project/tribune
124
4.7 Ein Blog für jeden
4.7
Ein Blog für jeden
Weblogs. Allein mit diesem Wort können Sie atemberaubende Diskussionen in Firmen und bei Bekannten auslösen. Ein Blog ist rein technisch gesehen eine Website, auf der periodisch Artikel (Blogeinträge) veröffentlicht werden, ähnlich wie ein Tagebuch. Wichtig bei einem Blog ist die Möglichkeit, Kommentare zu schreiben, und die Erreichbarkeit des Artikels über einen direkten Link (Permalink). Lassen Sie uns überschaubar beginnen: Unter VERWALTEN – STRUKTURIERUNG – MODULE aktivieren Sie zunächst das Blog-
Modul. In VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN setzen Sie dann die
gewünschten Berechtigungen (Abbildung 4.18). Die beiden Mitarbeiter-Rollen dienen nur der Demonstration.
Abbildung 4.18: Berechtigungen im Blog-Modul Mit diesen Einstellungen haben Sie gerade eine Multiblogging-Plattform gebaut. Jeder registrierte Benutzer kann nun Blogeinträge erstellen. Er muss dazu auf INHALT ERSTELLEN klicken und sieht dann den Inhaltstyp Blog (Abbildung 4.19).
Abbildung 4.19: Inhaltstyp Blog Hier können dann Inhalte eingepflegt werden. Eine Übersicht über alle Blog-Einträge finden Sie unter der URL http://localhost/drupal62/blog (Abbildung 4.20). In Abschnitt 5.13, Suchmaschinenfreundliche URLs, erfahren Sie, wie Sie Ihren Benutzern die Verwendung von suchmaschinenfreundlichen URLs erlauben können.
125
4 Benutzer verwalten
Abbildung 4.20: Alle Blogs auf der Website Die einzelnen Blogs sind dann unter der jeweiligen Benutzerkonto-ID aufrufbar: http://localhost/drupal62/blog/[id] Exkurs Echte Blogger benötigen natürlich auch ein Captcha (siehe Abschnitt 13.5, Kampf gegen Spam – Mollom und Captcha, Pingbacks, Verbindungen zwischen Benutzern und Trackbacks und vieles andere mehr. Hier ein paar Tipps zum Erweitern der Funktionalität: http://drupal.org/project/captcha http://drupal.org/project/mollom http://drupal.org/project/pingback http://drupal.org/project/user_relationships http://drupal.org/project/trackback
4.8
Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID)
Die erstmalige Registrierung stellt die größte Hürde bei Benutzern dar. Sie müssen ihre E-Mail-Adresse angeben und sich ein Passwort merken. Das macht man als Benutzer sicher einmal bei eBay, einmal bei Amazon und noch fünfmal bei seinen Lieblingswebsites. Jede weitere Website verkompliziert das Leben des Benutzers erheblich. Wenn er das gleiche Passwort wie auf den anderen Websites wählt, ist sein Verhalten schon als grob fahrlässig zu bezeichnen. Verhält er sich korrekt, vergisst er meist die »ach so sicheren« Passworte oder schreibt sie auf einen Zettel, der in der Schreibtischschublade oder unter der Tastatur liegt.
126
4.8 Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID)
4.8.1
So funktioniert OpenID
An diesem Verhalten hat sich seit Erfindung von Benutzerkonten nicht wirklich etwas geändert, aber OpenID3 könnte eine Lösung aus dem Dilemma bieten. Die Idee ist einfach und der Weg ist der folgende: 1. Der Benutzer registriert sich auf einem OpenID-Provider »seines Vertrauens«. Eine Übersicht finden Sie unter http://wiki.openid.net//Public_OpenID_providers. 2. Von seinem OpenID-Provider erhält er eine URL. 3. Er besucht eine Website, die OpenID-Authentifizierung unterstützt. 4. Er gibt seine URL an der entsprechenden Stelle ein. 5. Die Website leitet seinen Anmeldewunsch weiter an den entsprechenden OpenIDProvider und lenkt den Benutzer auf dessen Website. 6. Der Benutzer gibt sein Passwort und eine E-Mail-Adresse seiner Wahl auf der Website des OpenID-Providers ein. Der OpenID-Provider leitet nach erfolgreicher Authenfizierung weiter an die aufrufende Website. 7. Der Benutzer ist auf der gewünschten Website registriert, ohne dass er ein Passwort vergeben musste. Spielen wir das mal mit Drupal durch.
4.8.2
OpenID in Drupal verwenden
Zuerst müssen Sie, wie so oft, ein entsprechendes Modul aktivieren: OpenID unter VERWALTUNG – STRUKTURIERUNG – MODULE. Das Modul hat keine Einstellungen. Sie sehen die neue Funktionalität, wenn Sie abgemeldet sind, an einem erweiterten Anmeldefenster (Abbildung 4.21).
Abbildung 4.21: Anmeldefenster mit aktivierter OpenID-Anmeldung 3
http://de.wikipedia.org/wiki/Openid
127
4 Benutzer verwalten
Wenn Sie angemeldet sind, gibt es einen zusätzlichen OPENID IDENTITÄTEN-Reiter im Bereich MEIN KONTO, in dem Sie Ihre OpenID-Identitäten verwalten können (Abbildung 4.22).
Abbildung 4.22: Mein Konto – OpenID-Verwaltung Da Sie als Admin bereits angemeldet sind, können Sie Ihre OpenID-Identität hinzufügen und sich fortan per OpenID anmelden. Wenn Sie noch kein Benutzerkonto haben, können Sie das gleich bei der Registrierung erledigen. Wenn Sie sich erst mal an das System gewöhnt haben, werden Sie es nicht mehr missen wollen.
128
5
Inhalt verwalten und erstellen
In diesem Kapitel wird es um Inhalte gehen. Drupal ist ein Content Management-System RSS Feed, also ein System zum Verwalten von Inhalten, und hat hier naturgemäß seine besonderen Stärken. Man kann Inhalte im Allgemeinen auf verschiedene Arten erstellen, sortieren und betrachten, ohne dabei ein besonderes CMS ins Auge zu fassen. Inhalte erstellen: im Sinne von »Weißes Blatt – inspiriere mich!« in Sinne von »Wie strukturiere ich einen Inhalt gemäß seiner Bedeutung mit
HTML?« von der technischen Warte aus gesehen (welchen Editor verwenden? welche Be-
nutzer haben welche Rechte? wann lohnt sich Versionierung? welche Inhaltstypen sind sinnvoll?) Inhalte verwalten: aus der Sicht eines Administrators aus der Sicht eines Benutzers, der Inhalte erstellt
Inhalte präsentieren: aus der Sicht des Designers (CSS, Optik) aus der Sicht des Administrators (Liste, Einzelansicht, Überschriften in Blöcken
etc.) Alle diese Fragen und Anregungen reichen für jeweils eigene Bücher. Ich werde mich in diesem Kapitel zunächst am Verwaltungsbereich für Inhalte in Drupal orientieren und dann bei Gelegenheit ein wenig abschweifen, um auch ein paar der oben angesprochenen Themen zu diskutieren.
5.1
Einstellungen für Beiträge
Der erste Menüpunkt, den Sie im Bereich VERWALTEN – INHALTSVERWALTUNG sehen, heißt BEITRAGSEINSTELLUNGEN und führt uns langsam an das Thema heran. Unter einem Beitrag wird hier jeder Inhalt aus einem bestehenden Inhaltstyp verstanden.
5 Inhalt verwalten und erstellen
Sie können an dieser Stelle wichtige Einstellungen festlegen (Abbildung 5.1).
Abbildung 5.1: Beitragseinstellungen ANZAHL DER BEITRÄGE AUF DER HAUPTSEITE:
Wie viele Inhalte sollen auf der Hauptseite stehen? Ganz einfach, oder? Die Hauptseite ... wieder so ein Begriff. Jede Website benötigt eine »Erste Seite«,
die Frontpage oder Startseite. Sie können die Startseite so organisieren, dass ein statischer Text darauf steht (»Willkommen bei ..., wir tun dies und das ...«), oder Sie können eine Startseite haben, auf der immer die neuesten Nachrichten (Pressemeldungen, Blogeinträge, Videos, ...) stehen. Die Einstellung hier betrifft die zweite Variante, und sie gilt für alle weitere Listendarstellungen Ihrer Drupal-Website, beispielsweise auch für »alle Benutzerblogs« und »alle Benutzer, die Sonne mögen« (Abschnitt 4.5, Zusätzliche Profilfelder im Benutzerkonto). LÄNGE DER GEKÜRZTEN BEITRÄGE:
Hier legen Sie fest, nach wie vielen Zeichen Drupal den von Ihnen geschriebenen Inhalt in einen Anrisstext (Aufmacher, Teaser) und den Rest teilt. Wenn Sie keine Anrisstexte haben wollen, stellen Sie unbegrenzt ein. Anrisstexte sind praktisch, wenn Sie eine Startseite mit mehreren Inhalten haben. Die Liste liest sich für den Betrachter leichter, wenn lange Texte geteilt werden in einen immer gleich langen Anrisstext und der Rest des Textes durch einen WEITERLESEN-Link erreichbar ist. Wenn Sie die Einstellung nachträglich ändern, gilt sie für alle nach der Änderung erstellten Inhalte. Vor der Änderung erstellte Inhalte bleiben, wie sie sind. Werden diese älteren Inhalte allerdings verändert, so greift dann nachträglich die hier gemachte Einstellung. VORSCHAU DES BEITRAGS:
Soll der Benutzer vor dem Speichern des Inhalts eine Vorschau sehen oder nicht? Eine Vorschau ist immer möglich, hier entscheiden Sie, ob die Benutzer dazu gezwungen werden, eine Vorschau zu sehen, und dann erst die Möglichkeit bekommen, den Inhalt zu speichern. Beide Varianten haben ihre Vor- und Nachteile:
130
5.2 Buch
– Wenn keine Vorschau erzwungen wird, kommt es oft vor, dass sich Autoren den gerade geschriebenen Text nicht noch einmal durchlesen und dieser dann nach Online-Stellung fehlerhaft ist. Die Fehler können zwar schnell behoben werden, aber es könnte sein, dass jemand vor der Richtigstellung das RSS-Feed der Seite liest und die alte Version u. U. in seinem Newsfeed-Reader liest oder gar auf seiner Website aggregiert. – Wenn Sie eine Vorschau erzwingen, kann es sein, dass Autoren glauben, sie hätten den Artikel gespeichert, und sie vergessen, nach unten zu scrollen, um den eigentlichen Speichervorgang auszulösen. Auf Blog-Plattformen und in Kommentaren mit schnellen kurzen Einträgen besteht diese Gefahr besonders.
5.2
Buch
Im Abschnitt 3.3.1, Das Book-Modul aktivieren, haben Sie das Book-Modul aktiviert, und unter VERWALTEN – INHALTSVERWALTUNG – BUCH finden Sie den Verwaltungsbereich für Ihre erstellten Bücher (Abbildung 5.2).
Abbildung 5.2: Bücherverwaltung Durch einen Klick auf den Link REIHENFOLGE UND TITEL ÄNDERN können Sie die Buchseiten umsortieren. Benutzen Sie zum Verschieben das Kreuzsymbol links neben der Zeile. Klicken Sie mit der linken Maustaste darauf, halten Sie die Taste gedrückt und ziehen Sie die Seite an den gewünschten Ort. Ein gelb hinterlegter Hinweiskasten erinnert Sie bei Änderungen daran, die Änderungen abzuspeichern (Abbildung 5.3).
Abbildung 5.3: Reihenfolge und Sortierung der Buchseiten
131
5 Inhalt verwalten und erstellen
Im Reiter EINSTELLUNGEN können Sie das Verhalten des Book-Moduls festlegen (Abbildung 5.4).
Abbildung 5.4: Einstellungen für Bücher Sie können hier festlegen, welche Inhaltstypen die Möglichkeit bekommen, gegliedert werden zu können. Auf den ersten Blick ist das unverständlich, weil es ja das Buch gibt. Grundsätzlich ist es allerdings manchmal praktisch, die Gliederungsmöglichkeit auch auf andere Inhaltstypen zu erweitern (Bilder, Videos, Seiten, ...). Stellen Sie sich vor, Sie wollen ein gegliedertes »Rezepte-Buch« schreiben, ein Kochbuch. Sie erstellen sich einen Inhaltstyp Rezepte und müssen hier festlegen, dass sich dieser Inhaltstyp gliedern lässt. Ähnlich verhält es sich mit den Unterseiten. Standardmäßig ist eine Unterseite ein Buch-Inhaltstyp. Sie können aber auch jeden anderen Inhaltstyp hier angeben (z. B. Rezepte). Denkbar wäre auch eine Buchstruktur für Videofilme oder Podcasts. Sie sehen schon, das kleine Buch-Modul hat es in sich :-). Denken Sie auch immer daran: Sie müssen hier nichts ändern, und Sie können das Buch-Modul auch wieder deaktivieren.
5.3
Feed Aggregator
Mit dem Feed Aggregator verhält es sich ähnlich wie mit dem Buch-Modul. Es ist standardmäßig deaktiviert. Im Abschnitt 3.6.1, Aggregator-Modul aktivieren, haben wir das Modul aktiviert, und jetzt befindet es sich hier in der Inhaltsverwaltung, ebenso die Verwaltung des Feed Aggregators.
132
5.3 Feed Aggregator
Die Funktionsweise kennen Sie bereits. Was Sie noch nicht kennen, sind die Feinheiten des Moduls: Für jedes aggregierte Newsfeed wird ein Block (eine auf der Website positionierbare
Box) mit den letzten Einträgen zur Verfügung gestellt, den Sie unter VERWALTEN – STRUKTURIERUNG – BLÖCKE positionieren können. Für jede Kategorie, die Sie hier erstellen, wird ebenfalls ein Block erstellt. Diese
Funktion ist praktisch, da Sie aus den aggregierten Feeds durch die Kategorisierung wieder einen neuen Feed machen können. Wenn Sie beispielsweise Newsfeeds zum Thema »Drupal« sammeln, so können Sie einen Block »Neues aus der Drupal-Szene« anbieten, beispielsweise nach Sprachen kategorisiert. Sie wollen keine Drupal-Feeds anbieten? Dann zeigen Sie doch die neuesten Bilder, die auf Flickr.com mit dem Tag »Fitou« eingestellt worden sind1 oder mit dem Tag »Drupal« :-).2 Flickr hat einen Bereich Creative Commons. Hier werden Bilder angezeigt, die Sie auch auf kommerziellen Websites ganz legal in Ihren Aggregator einbinden dürfen, wenn das Bild entsprechend der Lizenz auf das Original verlinkt wird.3 Oder nehmen Sie die neuesten Videos von Youtube.com zu Ihrem Thema. Feeds müssen nicht unbedingt textuelle Inhalte enthalten. Exkurs: Feed Aggregator-Einstellungen Das Aggregator-Modul bietet unter VERWALTEN – INHALTSVERWALTUNG – FEED AGGREGATOR – EINSTELLUNGEN interessante Möglichkeiten (Abbildung 5.5). Zunächst kann festgelegt werden, welche HTML-Tags im Inhalt der Feeds ausgewertet werden. Dieser Filter ist hilfreich, um beispielsweise Bilder (-Tags), die in den eingebundenen Feed-Texten enthalten sind, nicht anzuzeigen. Die nächste Einstellung betrifft die Quellen und Kategorieanzeigen. Eine Quelle ist das Feed, das Sie einbinden, und die Kategorieanzeige enthält Ihre definierten Kategorien, in die Sie die Newsfeeds einordnen. Für beide Anzeigen befindet sich bereits ein Link in VERWALTEN – STRUKTURIERUNG – MENÜS. Sie legen hier fest, wie viele Einträge in der Quellen- und Kategorieansicht gezeigt werden. In der Abbildung 5.6 sind es jeweils 5 Einträge. Die Einstellung VERWERFE EINTRÄGE, DIE ÄLTER SIND ALS sorgt dafür, dass die Inhalte der Newsfeeds nicht dauerhaft gespeichert werden. Die Ansicht der Checkboxen bei der Zuordnung von Feeds ist Geschmackssache. Sie können als Checkboxen oder als Optionsliste mit Mehrfachauswahl angezeigt werden.
1 2 3
http://api.flickr.com/services/feeds/photos_public.gne?tags=fitou&lang=en-us&format=atom http://api.flickr.com/services/feeds/photos_public.gne?tags=Drupal&lang=en-us&format=atom http://www.flickr.com/creativecommons/
133
5 Inhalt verwalten und erstellen
Abbildung 5.5: Feed Aggregator-Einstellungen
Abbildung 5.6: Aggregator-Kategorien
5.4
Inhalt – der Überblick
Nachdem wir uns jetzt langsam an die Inhalte herangepirscht haben, finden Sie unter VERWALTEN – INHALTSVERWALTUNG – INHALT alles wieder, was jemals auf Ihrer Website an Inhalt erstellt worden ist (Abbildung 5.7). Mit alles meine ich alle Inhalte (Nodes), die von Benutzern über den Link INHALT eingegeben worden sind.
ERSTELLEN
134
5.5 Inhaltstypen
Abbildung 5.7: Inhaltsverwaltung – Inhalt Die beiden Auswahlfenster im oberen Bereich haben es in sich: Im Bereich Nur Einträge anzeigen mit können Sie die Inhalte nach Status, Typ und
Sprache filtern. Die einzelnen Parameter sind kombinierbar, indem Sie die Filter nacheinander setzen. Denkbar wäre eine Abfrage aller englischen Artikel, die auf der Startseite stehen, oder aller unveröffentlichten Blog-Einträge, die sprachneutral sind. Die Auswahl Aktualisierungseinstellungen bezieht sich auf angekreuzte Inhalte in der
Liste. Sie können per Sammelverarbeitung viele Nodes auf einmal aktualisieren. Die Kombination beider Felder ist auch bei großen Datenmengen erstaunlich effizient. In der Liste im unteren Bereich sehen Sie einen Node pro Zeile. Sie können direkt von hier durch Klicken auf die entsprechenden Links in die Ansicht, den Bearbeitungsmodus und zur Profilseite des Autors springen.
5.5
Inhaltstypen
Drupal unterteilt seine Inhalte (Nodes) in Typen. Sie kennen schon die Typen Artikel, Blog, Buch und Seite. Die Einteilung in Typen ist: sinnvoll, um beispielsweise Zugriffsrechte an unterschiedliche Rollen für unter-
schiedliche Inhaltstypen zu verteilen. Es kann ja sein, dass die Benutzer Inhalte vom Typ Artikel erstellen dürfen, aber natürlich nur ihre eigenen Artikel ändern und löschen dürfen. Die Mitarbeiterrolle bekommt beispielsweise die Erlaubnis, alle Artikel ändern zu dürfen etc. gut, um Listendarstellungen mit dem Views-Modul zu organisieren (Zeige alle In-
halte vom Typ Pressemeldung, sortiert nach Datum in einer Tabellenansicht unter dem Link PRESSEMELDUNGEN im Menü). Wir behandeln das Views-Modul ausführlich im Kapitel 12, Views: Ansichten erstellen.
135
5 Inhalt verwalten und erstellen
die absolute Basis, um diese Typen dann mit dem CCK-Modul mit zusätzlichen
Feldern zu versehen, beispielsweise den Inhaltstyp Immobilie mit Zusatzfeldern für Bild, Preis, Google Maps-Koordinaten etc. Wir behandeln das CCK-Modul ausführlich in Kapitel 11, Content Construction Kit (CCK). Bleiben wir aber zunächst bei der Auflistung der Inhaltstypen (Abbildung 5.8).
Abbildung 5.8: Inhaltstypen Sie können hier die vorhandenen Inhaltstypen bearbeiten, löschen und völlig neue Inhaltstypen erstellen, und das möchte ich Ihnen jetzt kurz zeigen.
5.5.1
Inhaltstypen bearbeiten und hinzufügen
Hinter den Links INHALTSTYP HINZUFÜGEN und BEARBEITEN steckt jeweils dasselbe Formular, und abhängig von den aktivierten Modulen kann es recht lang werden. Alle Einstellungen, die Sie hier konfigurieren, werden bei einer Neuanlage durch einen Benutzer als Standard angenommen. Das ist besonders wichtig bei Einstellungen, auf die der Benutzer keinen Einfluss hat, wie beispielsweise die Veröffentlichung auf der Startseite oder die Versionierung. Sie können zunächst drei wichtige Parameter eingeben, die der spätere Benutzer sieht, wenn er auf den Link INHALT ERSTELLEN klickt: der Name des Inhaltstyps so, wie ihn der Benutzer sieht den für Drupal benötigten internen, maschinenlesbaren Typ eine Beschreibung des Typs, die dem Benutzer erläutert, was es mit diesem Typ auf
sich hat. Im weiteren Verlauf des Formulars folgen die Einstellungen für Eingabeformular Einstellungen für Arbeitsablauf Einstellungen für Kommentare
Falls Sie zusätzliche Module benutzen, können hier noch zusätzliche Optionen erscheinen.
136
5.5 Inhaltstypen
Einstellungen für Eingabeformular Hier können Sie die Beschriftung des Titelfeldes und des Inhaltsfeldes vergeben, die der Benutzer in seinem Formular sieht. Wenn Sie einen Hotel-Inhaltstyp erstellen, könnte der Titel beispielsweise Hotelname heißen und das Inhaltsfeld Hotelbeschreibung. Manchmal ist es auch sinnvoll, kein Inhaltsfeld zu haben. Wenn Sie an einen Gebrauchtwagen-Inhaltstyp denken, so kann es sein, dass hier nur vordefinierte Felder und Checkboxen zu finden sind, eine Freitextbeschreibung aber gar nicht erwünscht ist. In diesem Fall lassen Sie das Feld für die Beschreibung einfach leer. Sie können eine Mindestwortzahl und eine Erklärung oder Richtlinien zum Erstellen dieses Inhalts vorgeben.
Einstellungen für Arbeitsablauf Jeder Inhalt kann Veröffentlicht, Auf der Startseite oder Oben in Listen (sticky) sein oder eben nicht. Hier legen Sie die Standardwerte für diesen Inhaltstyp fest. Eine weitere Auswahl ist Neue Revision erstellen. Drupal hat bereits im Core die Möglichkeit der Versionierung. Jedes Mal, wenn ein Inhalt neu gespeichert wird, wird eine neue Version angelegt. Das bedeutet, dass natürlich auch die Möglichkeit bestehen muss, verschiedene Versionen zu vergleichen und zu anderen Versionen zurückzukehren. Hier wird die grundsätzliche Funktionalität eingeschaltet. Die anderen Unterschiede zwischen den Versionen übernehmen Zusatzmodule wie beispielsweise das Diff-Modul4 (Abbildung 5.9).
Abbildung 5.9: Unterschiede in zwei Versionen eines Textes Im weiteren Verlauf kann das Sprachverhalten gewählt werden. Diese Option erscheint nur, wenn Sie das Modul Content Translation aktiviert haben (siehe auch Abschnitt 3.1.1, Das Modul Content Translation aktivieren).
4
http://drupal.org/project/diff
137
5 Inhalt verwalten und erstellen
Einstellungen für Kommentare Das comment-Modul ist standardmäßig aktiviert, und Sie können hier festlegen, auf welche Weise Kommentare angezeigt werden: was der Benutzer eingeben kann/muss, wo das Kontaktformular erscheint und viele weitere Parameter, die größtenteils selbsterklärend sind.
5.5.2
Einen neuen Inhaltstyp für Pressemeldungen erstellen
Legen Sie sich als Beispiel einen neuen Inhaltstyp für Pressemeldungen an. 1. Name: Pressemeldung 2. Typ: pressemeldung 3. Beschreibung: Hier werden Pressemeldungen geschrieben Nach dem Abspeichern sehen Sie unter dem Link VERWALTEN – INHALTE – INHALTSim Menü einen neuen Inhaltstyp (Abbildung 5.10).
TYPEN
Abbildung 5.10: Neuer Inhaltstyp Pressemeldung Unter VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN finden Sie für das node-Modul ebenfalls einen neuen Eintrag (Abbildung 5.11).
Abbildung 5.11: Berechtigungen für den Inhaltstyp Pressemeldung Sie können jetzt die entsprechenden Berechtigungen vergeben.
138
5.6 Kommentare
5.6
Kommentare
Im Bereich VERWALTEN – INHALTSVERWALTUNG – KOMMENTARE können Sie alle Kommentare, die von Besuchern und Benutzern Ihrer Website zu Inhalten gemacht wurden, veröffentlichen, die Veröffentlichung zurücknehmen und bearbeiten (Abbildung 5.12).
Abbildung 5.12: Kommentarverwaltung Abhängig von den Einstellungen in den Berechtigungen kann es sein, dass Gäste beispielsweise Kommentare erstellen dürfen, die aber von einem berechtigten Benutzer freigeschaltet werden müssen. Diese Kommentare landen in der Moderationswarteschlange. Wie Sie die berechtigten Personen per E-Mail auf einen neuen Kommentar aufmerksam machen können, lernen Sie in Abschnitt 7.1, Aktionen und Trigger.
5.7
RSS-Feeds
Ein erfreulich übersichtliches Bild findet sich im Bereich VERWALTEN – INHALTSVERWALTUNG – RSS-FEEDS (Abbildung 5.13).
Abbildung 5.13: RSS-Feeds – Einstellungen
139
5 Inhalt verwalten und erstellen
Hier legen Sie die Anzahl der Inhalte in Ihren eigenen RSS-Feeds fest. Außerdem können Sie den Inhaltsbereich beeinflussen. Ihr Drupal bietet bei jeder Listendarstellung RSS-Feeds an. Wenn Abonnenten Ihres Feeds einen Feedreader benutzen, so ist es für sie praktischer, wenn der ganze Inhalt im Feed steht. Wenn nur der Anrisstext übertragen wird, müssen sie den Feedreader verlassen und zum Lesen des Artikels Ihre Website besuchen. Dieser Nachteil für den Abonnenten ist unter Umständen ein Vorteil für den Websitebetreiber, weil er damit natürlich Besucher auf seine Website zieht. Hören Sie sich einfach mal unter Ihren RSS-Abonnenten um, wie die unterschiedlichen Einstellungen »ankommen«.
5.8
Taxonomie – Inhalte kategorisieren
In diesem Bereich können Sie Vokabulare erstellen und diese Vokabulare Inhaltstypen zuordnen. Sie können Begriffe in diese Vokabulare einpflegen und/oder per FreeTagging einpflegen lassen. Damit sind die technischen Vorgänge in diesem Bereich erklärt :-). Für Menschen, die bisher wenig Berührung mit Taxonomien und Folksonomien hatten, stellt sich allerdings sofort die Sinnfrage.
5.8.1
Taxonomien – Ein Beispiel
Vokabulare kennen Sie (und ich) in erster Linie aus dem Sprachunterricht. Taxonomien kennt man man eigentlich eher nicht. Hier eine Definition aus der Wikipedia:5 Naturwissenschaftliche Disziplinen verwenden den Begriff der Taxonomie allgemein für eine in der Regel hierarchische Klassifikation (Klassen, Unterklassen usw.). In der Biologie erfolgt diese Einteilung traditionell in einen bestimmten Rang einer Systematik, wie Art, Gattung oder Familie und dies insbesondere bei Organismen. Wenn Sie jetzt jetzt ein Vokabular mit einer Taxonomie gleichsetzen, sind Sie schon nah dran. Ihre Inhalte können Sie dann mit den Begriffen im Vokabular strukturieren. Ihre Pressemeldung aus Abschnitt 5.5.2, Einen neuen Inhaltstyp für Pressemeldungen erstellen, könnte beispielsweise zum Produktbereich Niederquerschnittsreifen gehören, eine andere Pressemeldung zum Produktbereich Staplerreifen. Weitere Unterarten könnten in der Reifengröße oder im Verwendungszweck liegen. All diese Begriffe gehören zum Vokabular Reifen. Wenn Sie den Pressemeldungstyp mit diesen Eigenschaften versehen, können Sie auf der Website auf verschiedene Art Ihre Pressemeldungen anzeigen.
5
http://de.wikipedia.org/wiki/Taxonomie
140
5.8 Taxonomie – Inhalte kategorisieren
Schritt 1 – Ein Reifenvokabular erstellen Lassen Sie uns das einmal ausprobieren. Das Vokabular Reifentyp hat folgende Form: Reifen +-- Niederquerschnitt +-– 195/65 R 15 | | | +-- 225/60 R 15 +-- Gabelstapler -+--- 4.00-4 | +--- 18*7*13
Legen Sie zunächst unter VERWALTEN – INHALTSVERWALTUNG – TAXONOMIE – VOKABULAR HINZUFÜGEN ein Vokabular mit dem Namen Reifentyp an. Kreuzen Sie den Typ PRESSEMELDUNG an und im Bereich Einstellungen die MEHRFACHAUSWAHL (Abbildung 5.14).
Abbildung 5.14: Ein Reifentyp-Vokabular
Schritt 2 – Die passenden Begriffe (Vokabeln) hinzufügen Neben Ihrem neu erstellten Vokabular klicken Sie jetzt auf den Link BEGRIFFE HINZUFÜGEN. In dem erscheinenden Formular können Sie die gewünschten Begriffe hinzufügen. Die Begriffe könnte man auch als Vokabeln sehen, die englische Bezeichnung für Begriffe ist terms. Später in der URL wird das Wort term verwendet.
141
5 Inhalt verwalten und erstellen
Ebenfalls in diesem Formular im Link ERWEITERTE EINSTELLUNGEN etwas weiter unten können Sie bereits die Beziehungen zwischen den Begriffen festlegen. In der Übersicht aller Begriffe können Sie auch die Reihenfolge durch Ziehen und Loslassen mit der linken Maustaste verändern (Abbildung 5.15).
Abbildung 5.15: Begriffe im Vokabular Reifentyp
Schritt 3 – Die Begriffe einer Pressemeldung zuordnen Erstellen Sie über den Link INHALT ERSTELLEN – PRESSEMELDUNG eine neue Pressemeldung. Im Bearbeitungsformular sehen Sie über dem Textkörper ein Auswahlbox mit dem Namen REIFENTYP (Abbildung 5.16).
Abbildung 5.16: Pressemeldung im Bearbeiten-Modus Da Sie bei der Erstellung des Vokabulars die Checkbox MEHRFACH angekreuzt haben, können Sie jetzt mit (Strg) + Linke
Maustaste mehrere Begriffe aus dem Vokabular auswählen (Unter Mac OS X (°) + Klick); die Checkbox ERFORDERLICH nicht angekreuzt haben, können Sie auch den Punkt
KEINE aus der Liste auswählen. An dem fehlenden gelben Stern neben dem Wort Reifentyp sehen Sie, dass das Feld optional ist.
142
5.8 Taxonomie – Inhalte kategorisieren
Schritt 4 – Die Begriffe in der Pressemeldung Nach dem Speichern der Pressemeldung sehen Sie unter dem Text auf der rechten Seite die beiden von Ihnen vergebenen Begriffe als Link (Abbildung 5.17).
Abbildung 5.17: Begriffe aus dem Vokabular als Links unter der Pressemeldung Wenn Sie auf diese Links klicken, zeigt Drupal Ihnen alle Inhalte (Pressemeldungen), die mit diesem Begriff versehen, man sagt auch getagt oder kategorisiert, sind. 6
Exkurs Ein Tag ist ein Schlagwort, ein Etikett, auf das die Kategorie geschrieben wurde und das am Produkt (Pressemeldung) befestigt wird. Tags können beliebig kombiniert und ausgewertet werden. Ein beliebter Verwendungszweck sind so genannte »Tag-Wolken«, bei denen die Begriffe eine unterschiedliche Größe haben, je nach der Anzahl ihrer Zuordnungen. In Drupal werden solche Wolken mit dem TagadelicsModul realisiert.6 In Abbildung 5.18 sehen Sie ein Beispiel für eine Tag-Wolke.
Abbildung 5.18: Tag-Wolke
6
http://drupal.org/project/tagadelic
143
5 Inhalt verwalten und erstellen
Schritt 5 – Tag-Listen mit kombinierten Begriffen Was mit einem Begriff geht, geht natürlich auch mit mehreren Begriffen. Sie können beliebige Und- und Oder-Verknüpfungen mit Begriffen erstellen. Jeder Begriff hat eine interne Nummer in Drupal. Um die Nummer zu erfahren, können Sie entweder auf den Link klicken und in der URL die Nummer ablesen, oder Sie gehen in Ihr Vokabular und sehen in der Auflistung der Begriffe nach. Die URL zum Aufruf einer Begriffsliste ist: http://localhost/drupal62/taxonomy/term/1 In meinem Fall ist der Begriff mit der Nummer 1 Niederquerschnitt, der Begriff mit der Nummer 4 ist 225/60 R 15. Der Begriff Stapler hat die Nummer 2. Sie können jetzt die Begriffe kombinieren. Wollen Sie beispielsweise eine Liste mit Reifen vom Typ Niederquerschnitt und der Größe 225/60 R 15 wie in Abbildung 5.19, schreiben Sie: http://localhost/drupal62/taxonomy/term/1,4 Wenn Sie alle Reifen haben möchten, also Niederquerschnitts- oder Staplerreifen, schreiben Sie einfach folgende URL: http://localhost/drupal62/taxonomy/term/1+4
Abbildung 5.19: Anzeige aller Pressemeldungen mit dem Begriff Niederquerschnitt, 225/60 R 15 Sie können sich jetzt sicherlich vorstellen, was man mit Vokabularen alles anstellen könnte (Menüs, Berechtigungen, Listen, Blöcke etc). Aus den Begriffen könnten Menübäume erzeugt werden, die die Navigation in den Pressemeldungen übernehmen.7 Man kann mit einem Zusatzmodul die Benutzerrechte an einzelnen Begriffen festmachen (Begriff intern vs. extern).8
7 8
http://drupal.org/project/taxonomy_menu http://drupal.org/project/tac_lite (momentan nur Drupal 5)
144
5.9 Eingabeformate
5.8.2
Free Tagging
Gerade bei Blogeinträgen, Nachrichten, Musik, Videos und Bildern ist es schwer, alle Kategorien vorher zu definieren. Außer den vorgegebenen Begriffen aus Vokabularen können Sie auch, wie in Abschnitt 4.5, Zusätzliche Profilfelder im Benutzerkonto, bereits gezeigt, eine freie Auswahl und Zuweisung von Kategorien erlauben. Hierbei müssen Sie ein Free Tagging-Vokabular erzeugen und entsprechend konfigurieren. Beim Free Tagging entstehen die Kategorien, wenn der Benutzer sie braucht. Um keine Massen an ähnlichen Begriffen zu erzeugen, werden die Begriffe über ein Vorschlagsfeld vom Benutzer eingegeben. Nach jeder Eingabe eines Zeichens prüft Drupal, ob es bereits Kategorien gibt, in denen dieses Zeichen vorkommt. Wenn ja, werden die Kategorien in einer Listenauswahl dem Benutzer angeboten (Abbildung 5.20).
Abbildung 5.20: Free Tagging-Feld mit Vorschlagsliste
5.8.3
Folksonomien
Die nächste Steigerung im Einmaleins des Kategorisierens sind Folksonomien. Die Idee dabei ist, dass andere Benutzer ja viel besser wissen, in welche Kategorien ein Inhalt gehört. Was liegt also näher, als ihnen zu erlauben, den Inhalt zu kategorisieren? In Drupal übernimmt diese Aufgabe das Community Tags-Modul.9
5.9
Eingabeformate
Der Inhalt, den Sie in den Textkörper bringen, muss in Textform vorliegen. Dieser Text kann mit HTML oder auch anderen Tags ausgezeichnet werden. Mit Eingabeformaten legen Sie fest, wie Drupal auf Texte mit Formatierungen reagiert. Unter VERWALTEN – EINSTELLUNGEN – EINGABEFORMATE können Sie ein Standardformat definieren, neue Eingabeformate erzeugen und bestehende Eingabeformate ändern. Sie können also genau festlegen, welche HTML-Tags Sie erlauben und welche Rolle welches Eingabeformat benutzen darf. 9
http://drupal.org/project/community_tags
145
5 Inhalt verwalten und erstellen
5.9.1
PHP-Befehle im Inhalt
Wenn sie das Core-Modul PHP-Filter aktivieren, steht Ihnen ein neues Eingabeformat zur Verfügung, das es Ihnen erlaubt, PHP-Befehle in Inhalten auszuwerten. Ja, Sie haben richtig gehört. :-) Im Textkörper eines Inhalts können Sie programmieren, wie es Ihnen gefällt. Es ist nicht die komfortabelste Entwicklungsumgebung, aber es funktioniert. Achtung Jeder, dem Sie das Recht geben, den PHP-Filter zu benutzen, kann mit einem PHP-Befehl Ihre Datenbank löschen! Er kann natürlich auch wunderbare kleine Skripte schreiben. Sie sollten sich einfach über die damit verbundenen Risiken im Klaren sein!
5.9.2
Andere Filter
Eingabefilter können auch ganz andere Tags als HTML auswerten. Es gibt Filter für die WIKI-Syntax der Wikipedia oder für BB-Codes oder für Smileys oder Flickr-Bilder oder oder. Eine Auflistung aller Filter und Editoren finden Sie unter: http://drupal.org/project/Modules/category/63
5.10
Editoren
Für viele Benutzer ist Microsoft Word ein Synomym für Textverarbeitung. Dummerweise erzeugt Microsoft Word kein HTML, das gängigen Webstandards entspricht. Das HTML, das Microsoft Word erzeugt, kann immer ein wenig mehr! Wenn also der Routine-Workflow beginnt: Text in Microsoft Word schreiben, Text in Zwischenablage kopieren, Text von Zwischenablage in das Inhaltsfenster des Bearbeitungsformulars der
Website kopieren, dann ist oft die Enttäuschung da. Viele Formatierungen sind verschwunden bzw. sehen nicht so aus wie im Word-Original. Die Situation entspannt sich allerdings zusehends, da die Benutzer den Unterschied zwischen Microsoft Word und Website-
146
5.11 Upload
Editoren auch an anderen Stellen bemerken, beispielsweise in ihrem Webmailer oder auf anderen Web 2.0-Plattformen. Trotzdem bleibt es ein generelles Problem. Drupal bietet die »gängigen« WYSIWYG-Editoren TinyMCE und FCKeditor, die die Situation entschärfen können, haben sie doch eine ähnliche Oberfläche wie Microsoft Word und – mindestens ebenso wichtig – einen Einfügefilter für Word-Daten, der den über die Zwischenablage eingefügten Text in korrektes HTML umwandelt. In Abschnitt 8.3, WYSIWYG-Editoren erleichtern Benutzern das Leben, wird die Installation beschrieben.
5.11
Upload
Ein anderes Thema sind Dateien, die an einen Artikel angehängt werden sollen. Drupal speichert hochgeladene Dateien in einem zentralen Verzeichnis. Mehr über dieses Verzeichnis und die Konfiguration der Download-Methode lesen Sie in Abschnitt 7.3, Dateisystem: Ordner für Uploads festlegen. Um Benutzern den Upload zu ermöglichen, müssen Sie unter VERWALTEN – STRUKTURIERUNG – MODULE das Modul Upload aktivieren und unter VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN die Benutzerberechtigungen setzen. Danach haben berechtigte Benutzer in der Bearbeitungsmaske von Inhalten einen zusätzlichen Link mit dem Namen DATEIANHÄNGE. Sie können hier beliebig viele Dateien hochladen (Abbildung 5.21).
Abbildung 5.21: Dateianhänge zu einem Inhalt Mehrere Dateien können wieder mit der Maus in der Reihenfolge verschoben werden. Die Reihenfolge der Dateien spielt auch bei einem erzeugten RSS-Feed eine Rolle. Die erste Datei wird im RSS-Feed mit genannt, die folgenden Dateien nicht. Nach dem Hochladen sind die Dateien im temporären Verzeichnis gespeichert. Erst wenn Sie den Inhalt über den Button am Fuß des Formulars abspeichern, werden die Dateien an Ihre endgültige Position kopiert. Wenn Sie die Checkbox ALLE ANZEIGEN
147
5 Inhalt verwalten und erstellen
neben jeder Datei angekreuzt haben, werden die entsprechenden Dateien in der Ansicht des Inhalts angezeigt (Abbildung 5.22).
Abbildung 5.22: Der Anhang in der Inhaltsansicht Sie können die Anhänge durch die ALLE ANZEIGEN-Checkbox für andere Besucher »unsichtbar« machen. Die Datei ist allerdings trotzdem vorhanden und kann über einen Link im Textkörper angesprochen werden. Auf diese einfache Art können Sie auch Bilder und Grafiken in Ihren Text einbauen. Tipp Unter VERWALTEN – EINSTELLUNGEN – HOCHGELADENE DATEIEN können Sie die maximale Dateigröße, Pixelbreite und -höhe sowie die erlaubten Dateitypen konfigurieren. Diese Werte werden beim Upload überprüft, und Dateien, die diesen Parametern nicht entsprechen, werden abgewiesen.
5.12
Bilder, Videos, Podcasts
Der Umgang mit Medien aller Art kann auf sehr vielfältige Weise realisiert werden. Hier ein paar Szenarien.
5.12.1
Bilder
Bilder-Upload ist immer »so eine Sache«, da das Bild meistens zu klein oder zu groß ist. Bilder-Upload als Anhang Bilder können wie in Abschnitt 5.11, Upload, an einen Inhalt angehängt und mit dem HTML-Tag img angezeigt werden. Es besteht die Möglichkeit, eine maximale Pixelgröße anzugeben, auf die die Bilder dann reduziert werden (siehe Abschnitt 7.7, Hochgeladene Dateien).
148
5.12 Bilder, Videos, Podcasts
Bilder-Upload über das Image-Modul Das Image-Modul10 ist schon sehr lange in Drupal vorhanden. Es stellt einen Inhaltstyp Image/Bild zur Verfügung. Die hochgeladenen Bilder werden ja nach Administrator-Vorgabe skaliert, und weitere Versionen des Bildes werden erzeugt (klein, groß, Original, ...). Das Image-Modul bietet die Möglichkeit eines automatisierten Bilderimports aus einem FTP-Verzeichnis, einer Bildergalerie, und in Kombination mit dem Thickbox-Modul gibt es schicke Effekte, wenn jemand auf die Thumbnail-Ansicht eines Bild-Datentyps klickt (Abbildung 5.23).11
Abbildung 5.23: Thickbox- und Image-Modul
10 http://drupal.org/project/Image 11 http://drupal.org/project/thickbox und alternativ dazu gibt es noch http://drupal.org/project/ lightbox2.
149
5 Inhalt verwalten und erstellen
12
Exkurs Wenn Sie einen WYSYWYG-Editor benutzen, können Sie ihn mit dem IMCE-Modul12 kombinieren. Die Berechtigung für Bildgröße, Bildtyp, max. Upload sind pro Benutzerrolle definierbar, und jeder Benutzer erhält ein eigenes Dateiverzeichnis mit »seinen« Bildern. Das Ganze ist über das Bild-Icon im Editor steuerbar und ausgesprochen benutzerfreundlich. In der Bilderbibliothek ist es auch für normale Benutzer möglich, nachträglich Bilder zu »resizen«. Eine genaue Beschreibung finden Sie in Abschnitt 8.4, IMCE: Eine eigene Medienbibliothek für jeden Benutzer.
Exkurs Wenn Sie individuelle Anwendungen erstellen wollen wie beispielsweise eine Immobilienverwaltung oder ein Buchungssystem, so sollten Sie bei Kapitel 11, Content Construction Kit (CCK), starten. Mit dem Content Construction Kit können Sie frei definierten Inhaltstypen Bildfelder zuordnen, die dann wieder mit anderen Modulen kombinierbar sind.
5.12.2
Videos und Podcasts
Videos und Podcast werden immer beliebter, und auch aus Drupal lässt sich natürlich ein Youtube bauen. Das Prinzip ist ähnlich dem des Image-Moduls. Module wie Video,13 Flashvideo14 oder Audio15 stellen die Basisfunktionalität zur Verfügung, momentan teilweise noch nicht stable für Drupal 6 (Stand Juni 2008). Andere Module, beispielsweise Views (Kapitel 12, Views: Ansichten erstellen), können auf die Felder zugreifen und sie in einem anderen Zusammenhang darstellen. Hier ein Screenshot aus dem Audio-Modul (Abbildung 5.24).
12 13 14 15
http://drupal.org/project/Imce http://drupal.org/project/video http://drupal.org/project/flashvideo http://drupal.org/project/audio
150
5.13 Suchmaschinenfreundliche URLs
Abbildung 5.24: Musikstück mit dem Flashplayer im Audio-Modul
5.13
Suchmaschinenfreundliche URLs
Das Thema »Wie werde ich gefunden?« wird immer wichtiger. Suchmaschinenfreundliche URLs sehen etwa so aus: http://example.com/contact Die Variante, die man Suchmaschinen und Benutzern gegenüber vermeiden sollte, ist ein Verweis auf das Kontaktformular in dieser Art: http://example.com/?q=node/23&xy=33 Intern werten alle CMS die übergebenen URLs aus und suchen nach Informationen, was zu tun ist (zeige node 23 an und berücksichtige dabei die Variable mit dem Namen xy und dem Wert 33). Wenn suchmaschinenfreundliche URLs gewünscht werden, muss irgendjemand diese URLs festlegen. Im Drupal-Core sind für diese Funktion das Path-Modul und der Benutzer zuständig. Das Path-Modul bietet eine Tabelle, in der die Verbindung zwischen der originalen URL und der benutzerfreundlichen Variante abgespeichert wird. Der Benutzer muss nun sagen, wie die URL heißen soll (URL-Alias), und schon ist das Problem gelöst.
Voraussetzungen – weg mit dem /?q= Je nachdem, in welcher Serverumgebung Sie Drupal installiert haben, kann es sein, dass Ihre URLs so aussehen: http://localhost/drupal62/?q=/de/node/1 Wenn das so ist, sehen Sie eine gelb hinterlegte Meldung wie in Abbildung 5.25 unter VERWALTEN – EINSTELLUNGEN – LESBARE URLS.
151
5 Inhalt verwalten und erstellen
Abbildung 5.25: Problem mit lesbaren URLs Sie müssen sich jetzt auf die Suche machen, was an Ihrer Umgebung nicht passt. Meistens ist das Modul mod_rewrite im Apache-Webserver nicht aktiviert. Das Modul hat nichts mit den Modulen in Drupal zu tun. Das Problem kann bei XAMPP Lite ebenso auftauchen wie bei Ihrem Webspace Provider. 16
Exkurs Sie aktivieren mod_rewrite in XAMPP Lite in der Datei [LW]xampplite/apache/conf/httpd.conf
Öffnen Sie die Datei in einem Editor, meine Empfehlung ist Notepad++16, und suchen Sie in der Datei nach dem Begriff mod_rewrite. Bei mir steht der entsprechende Befehl in Zeile 118: #LoadModule rewrite_module modules/mod_rewrite.so
Entfernen Sie das Doppelkreuz vor dem Befehl, speichern Sie die Datei und starten den Apache-Webserver neu. Jetzt unterstützt er lesbare URLs. Nachdem Sie die Ursache des Problems behoben haben, können Sie in VERWALTEN – EINSTELLUNGEN – LESBARE URLS die Option aktivieren. Anschließend sieht die Anzeige aus wie in Abbildung 5.26, und das lästige /?=q ist aus der URL verschwunden:
Abbildung 5.26: Lesbare URLs bei korrekter Serverkonfiguration
16 http://notepad-plus.sourceforge.net/ und auf der Buch CD
152
5.13 Suchmaschinenfreundliche URLs
Suchmaschinenfreundliche URLs für einen Inhalt Nach der Aktivierung des Moduls Path und der gewünschten Rechtevergabe erscheint im Bearbeitungsmodus eines Inhalts ein zusätzlicher Link mit dem Namen URL-ALIAS-EINSTELLUNGEN (Abbildung 5.27).
Abbildung 5.27: Suchmaschinenfreundliche Links In dem zur Verfügung stehenden Feld können Sie Ihren gewünschten URL-Alias als freien Text eintragen und abspeichern. Ihre Pressemeldung ist dann mit diesem Link aufrufbar.
Verwaltung aller URL-Aliase Sie können als Administrator alle vergebenen Aliasnamen unter VERWALTEN – STRUKTURIERUNG – URL-ALIASE verwalten (Abbildung 5.28).
Abbildung 5.28: URL-Alias-Verwaltung In Drupal 6 können Sie die URL-Aliase filtern, ein Feature, das in Drupal 5 noch nicht existierte und das ich auf größeren Seiten schmerzlich vermisst habe.
Automatische Pfade Oftmals ist es gut, wenn die Aliase nach bestimmten vordefinierten Regeln automatisch erzeugt werden. Das Modul Pathauto17 bietet diese Funktionalität an. 17 http://drupal.org/project/pathauto
153
6 Strukturierung der Website In diesem Kapitel geht es um den Bereich VERWALTEN – STRUKTURIERUNG. Wir sind in den vorangegangenen Modulen öfter hier gelandet. Der Bereich besteht, wenn Sie dieses Buch bis hierhin nachvollzogen haben, aus den folgenden Links: BLÖCKE KONTAKTFORMULAR MENÜS MODULE OBERFLÄCHE ÜBERSETZEN THEMES URL-ALIASE
Blöcke haben wir bereits in Abschnitt 3.3.2, Block positionieren, 4.3.1, Registrierungseinstellungen, 5.3, Feed Aggregator, angesprochen, das Kontaktformular in Abschnitt 3.4, Kontaktformular, Menüs kurz in Abschnitt 3.3.4, Ein Link auf das Buch im Menü, Module haben wir dauernd aktiviert, Oberfläche übersetzen ist noch ein weißer Fleck auf der Drupal-Landkarte, Themes haben wir kurz in Abschnitt 3.7, Andere Farben im Theme, behandelt und URL-Aliase recht ausführlich in Abschnitt 5.13, Suchmaschinenfreundliche URLs, weshalb ich letztere in diesem Kapitel weglasse.
6.1
Blöcke
Blöcke können um den Inhalt herum in so genannten Regionen positioniert werden. Sie sehen die im aktuellen Theme zur Verfügung stehenden Regionen, wenn Sie auf den Link VERWALTEN – BLÖCKE klicken (Abbildung 6.1). Wenn Sie weiter nach unten scrollen, werden Sie weitere Regionen finden. Jedes Theme kann beliebig viele Regionen an beliebigen Stellen haben. Die verfügbaren Regionen sehen Sie ebenfalls, wenn Sie die Auswahlliste mit dem Namen REGION aufklappen (Abbildung 6.2).
6 Strukturierung der Website
Abbildung 6.1: Blöcke und Regionen im Theme
Abbildung 6.2: Zuordnung eines Blocks zu einer Region Alle Blöcke, die einer Region zugeordnet sind, werden angezeigt. Alle anderen Blöcke gelten als deaktiviert. Sie können die Blöcke mit der Maus in die gewünschte Region ziehen oder per Auswahlliste auswählen. Blöcke können außerdem nur für bestimmte Benutzerrollen sichtbar gemacht werden, und Sie können festlegen, auf welchen Seiten ein Block zu sehen sein soll. Spielen wir das mal an einem Beispiel durch.
6.1.1
Neuen Block erstellen
Sie können im Bereich VERWALTEN – STRUKTURIERUNG – BLÖCKE auch einen neuen Block erstellen. Im Textkörper des Blocks kann, abhängig von den zur Verfügung stehenden Eingabeformaten, so ziemlich alles stehen, sogar PHP-Code.
Blockspezifische Einstellungen Klicken Sie zunächst auf den Link BLOCK HINZUFÜGEN im oberen Bereich der Blockverwaltung. Sie sehen ein langes Formular, das mit dem Link BLOCKSPEZIFISCHE EINSTELLUNGEN beginnt (Abbildung 6.3). Die Blockbeschreibung ist für die Übersichtsseite der Blöcke gedacht, der Blocktitel für die Website. Wenn Sie keinen Titel haben, geben Sie in diesem Feld <none> ein.
156
6.1 Blöcke
Abbildung 6.3: Blockspezifische Einstellungen Im Blockinhalt können Sie abhängig vom Eingabeformat Ihren Inhalt einstellen. Ich schreibe hier nur einen kleinen Text. Prinzipiell können Sie auch PHP-Befehle hier eingeben. Ein paar Anregungen finden Sie auf drupal.org mit den PHP-Block-Snippets.1 Achtung PHP-Programmierer – das kann süchtig machen! :-)
Benutzerspezifische Sichtbarkeits-Einstellungen Weiter unten im selben Formular können Sie Ihren Benutzern verbieten oder erlauben, Einfluss auf die Anzeige von Blöcken zu nehmen (Abbildung 6.4).
Abbildung 6.4: Benutzerspezifische Sichtbarkeits-Einstellungen Blöcke, die von Benutzern beeinflussbar sind, können im Bereich MEIN KONTO per Checkbox ein- und ausgeschaltet werden.
Rollenspezifische Sichtbarkeits-Einstellungen In diesem Teil des Formulars können Sie entscheiden, welche Rolle den Block überhaupt zu Gesicht bekommt. Sie könnten also beispielsweise interne Blöcke erzeugen, die nur der Vertrieb oder nur die Mitarbeiter der Technik sehen. Wenn Sie keine Rolle ankreuzen, sehen alle diesen Block (Abbildung 6.5):
1
http://drupal.org/node/21867
157
6 Strukturierung der Website
Abbildung 6.5: Rollenspezifische Sichtbarkeits-Einstellungen
Seitenspezifische Sichtbarkeits-Einstellungen In diesem Bereich werden nun wirklich alle Wünsche wahr! Sie können pro Seite festlegen, wo der Block erscheinen soll. Dabei müssen Sie zunächst entscheiden, ob Sie die Seiten angeben wollen, auf denen der Block erscheinen soll, oder die Seiten, auf denen er nicht erscheinen soll. Als absolutes Schmankerl können Sie wieder mit PHP-Code arbeiten. Wenn der PHPCode den Wert wahr/true zurückgibt, wird der Block angezeigt, bei falsch/false nicht (Abbildung 6.6).
Abbildung 6.6: Seitenspezifische Sichtbarkeits-Einstellungen Pro Zeile geben Sie eine Seite ein. Sie können mit der Wildcard * arbeiten. Das * steht für beliebig viele Zeichen. Ein Block, der nur bei Anzeige des Nodes mit der Nummer 3 angezeigt werden soll, muss den Eintrag node/3 haben. Im mehrsprachigen Umfeld könnte man de/node/3 nur für die deutsche Version oder */node/3 für alle Sprachen eingeben. Experimentieren Sie mit den Einstellungen. Sie werden sie auf größeren Seiten oft benötigen. Sie können hier auch die URL-Aliase benutzen (siehe Abschnitt 5.13, Suchmaschinenfreundliche URLs).
158
6.2 Kontaktformular
Speichern und positionieren Nach dem Speichern ist der neu erstellte Block erst einmal deaktiviert. Mithilfe der Auswahlliste REGION können Sie ihn beispielsweise der Region RECHTE SEITENLEISTE (Abbildung 6.7) zuweisen:
Abbildung 6.7: Der erstellte Block auf der Website Innerhalb der Regionen können Sie die Blöcke in der Blockübersicht sortieren.
6.2
Kontaktformular
Das Anlegen eines allgemeinen Kontaktformulars für eine Website habe ich bereits kurz in Abschnitt 3.4, Kontaktformular, beschrieben. Sie können in Drupal beliebig viele Kontaktformulare anlegen. Hier im Verwaltungsbereich können Sie Ihre Formulare verwalten und ein Formular zum Standard erklären: AUSGEWÄHLTE Ja (Abbildung 6.8):
Abbildung 6.8: Drei Kontaktformulare in der Verwaltung Das ausgewählte Formular wird auf der Webseite mit dem Kontaktformular in einer Auswahlliste aller Formularkategorien als Standard angezeigt (Abbildung 6.9). Das Formular ist immer das Gleiche, die Kategorien entscheiden jedoch über den Empfänger des Formularinhalts.
159
6 Strukturierung der Website
Abbildung 6.9: Auswahl der Empfänger im allgemeinen Kontaktformular Vergessen Sie nicht, in VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNG die Berechtigungen für das contact-Modul so zu setzen, dass auch Gäste und andere Benutzer Zugriff auf das allgemeine Kontaktformular haben (Abbildung 6.10):
Abbildung 6.10: Berechtigungen für den Zugriff auf das Kontaktformular Wenn Sie das persönliche Kontaktformular unter VERWALTEN – STRUKTURIERUNG – KONTAKFORMULAR – EINSTELLUNGEN durch Ankreuzen der Checkbox PERSÖNLICHES KONTAKTFORMULAR STANDARDMÄßIG AKTIVIEREN aktiviert haben, so steht es auf der Profilseite eines jeden Benutzers automatisch zur Verfügung. Die Benutzer können in ihren Kontoeinstellungen (MEIN KONTO – BEARBEITEN) selbst entscheiden, ob sie ein Formular anbieten wollen oder nicht (Abbildung 6.11).
Abbildung 6.11: Aktivierung des Kontaktformulars im Benutzerkonto Damit andere mit diesem Benutzer Kontakt aufnehmen können, müssen sie aber mindestens ein authentifizierter Benutzer sein und das Recht haben, auf die Profilseite zugreifen zu können. Ein Gast der Website darf keine Benutzer einfach so kontaktieren, auch wenn er das Recht hat, auf die Profilseite zuzugreifen (Abbildung 6.12).
160
6.3 Menüs
Abbildung 6.12: Berechtigungen für das User-Modul
6.3
Menüs
Menüs sind ein wichtiger Punkt auf der Website. Die Benutzerfreundlichkeit Ihrer Website hängt entscheidend von den Navigationsmöglichkeiten ab. Sie können beliebig viele Menüs erzeugen, die jeweils beliebig viele Links enthalten: Für jedes Menü erzeugt Drupal automatisch einen Block. Dieser Block enthält das Menü und kann auf der Website positioniert werden.
Das Menüsystem in Drupal 6 ist übrigens eine völlige Neuentwicklung und löst das teilweise etwas »holprige« Menüsystem aus Drupal 5 ab.
6.3.1
Die Grundausstattung
Drupal bietet drei Standardmenüs: die Navigation mit den Befehlen zur Verwaltung von Drupal die Hauptlinks (Primary links) oben rechts auf der Seite die Sekundärlinks (Secondary links), die bis jetzt noch nicht genutzt werden
Zu diesen drei Menüs gibt es auch jeweils einen positionierbaren Block. Die Blöcke für Haupt- und Sekundärlinks sind standardmäßig deaktiviert und müssen normalerweise auch nicht aktiviert werden. Diese Verhaltensweise hängt damit zusammen, dass diese beiden Menüs im Normalfall direkt über das Theme gesteuert werden. Sie können unter VERWALTEN – STRUKTURIERUNG – THEMES, und dann bei Garland (bzw. Ihrem aktuell eingestelltem Theme) – KONFIGURATION im Bereich ANZEIGE EIN-/AUSSCHALTEN diese Menüs aktivieren oder deaktivieren (Abbildung 6.13). Das Navigationsmenü ist standardmäßig in der linken Seitenleiste positioniert. Sie arbeiten bereits die ganze Zeit damit. In Abschnitt 3.3.4, Ein Link auf das Buch im Menü, haben wir bereits einzelne Links in das Hauptlinks-Menü zugeordnet.
161
6 Strukturierung der Website
Abbildung 6.13: Aktivierung der Theme-Elemente
6.3.2
Ein neues Menü
Um ein neues Menü zu erzeugen, klicken Sie unter VERWALTEN – STRUKTURIERUNG – MENÜS auf den Link MENÜ HINZUFÜGEN (Abbildung 6.14).
Abbildung 6.14: Neues Menü erstellen Sie benötigen zur Definition des neuen Menüs einen internen Menünamen, der maschinenlesbar sein muss, d. h. nur Kleinbuchstaben, Zahlen und Bindestriche (in der deutschen Übersetzung ist evtl. noch von Unterstrichen die Rede, die allerdings nicht erlaubt sind). Dieser Name ist nach der Anlage des Menüs nicht mehr änderbar. Ferner braucht Ihr Menü einen Titel, der dann über den Links auf der Webseite steht, und es besteht die Möglichkeit, eine Beschreibung zu hinterlassen. Diese Beschreibung dient nur internen Zwecken. Sie taucht nicht weiter auf der Website auf.
162
6.3 Menüs
Nach einem Klick auf SPEICHERN taucht unter VERWALTEN – STRUKTURIERUNG – MENÜS ein neuer Link mit dem Namen Ihres Menüs auf. Wenn Sie auf diesen Link klicken, sehen Sie die noch leere neue Menüverwaltung. Zusätzlich zum Menü wird auch gleichzeitig ein Block angelegt. Sie finden ihn unter VERWALTEN – STRUKTURIERUNG – BLÖCKE im Bereich der deaktivierten Blöcke. Damit Ihre Links erscheinen, muss dieser Block in eine Region Ihres Themes positioniert werden.
6.3.3
Zuordnung von Menüeinträgen (Links)
Sie können auf verschiedene Arten einen Link einem Menü zuordnen: direkt über das Menü VERWALTEN – STRUKTURIERUNG – MENÜS oder bei entsprechender Berechtigung direkt während des Erstellens und Bearbeitens eines Inhalts.
Neuer Menülink in der Verwaltung Als Beispiel für eine Verlinkung können Sie die Reifenliste aus Abschnitt 5.8 verwenden. Vielleicht erinnern Sie sich noch an die etwas kryptische URL, die alle Pressemeldungen zu den Begriffen Niederquerschnittsreifen der Dimension 225/60 R 15 als Liste anzeigt: http://localhost/drupal62/taxonomy/term/1,4 Für den zu erstellenden Menülink spielt es keine Rolle, ob Sie auf einen Alias oder den internen Drupalpfad zugreifen. Klicken Sie auf VERWALTEN – STRUKTURIERUNG – MENÜS – HAUPTMENÜ – NEUER MENÜLINK und füllen Sie das Formular aus (Abbildung 6.15). In der Liste ÜBERGEORDNETER MENÜPUNKT können Sie den Link einem anderen Menüpunkt unterordnen. In unserem Fall geht das nicht, weil es der erste Link in diesem Menü ist. Die Checkbox GEÖFFNET legt fest, ob bei einer Baumstruktur die untergeordneten Links standardmäßig angezeigt werden oder nicht.
Neuer Menülink über die Inhaltsbearbeitung Sie können Menülinks auch über das Bearbeitungsformular eines Inhalts eintragen (Link INHALT ERSTELLEN). Sie brauchen dafür allerdings die entsprechende Berechtigung in VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN (MENÜ VERWALTEN). Im Bearbeitungsformular finden Sie dann einen aufklappbaren Bereich mit dem Namen MENÜEINSTELLUNGEN (Abbildung 6.16). Dort können Sie Ihren Inhalt – hier ein Inhalt vom Inhaltstyp Seite mit dem Namen Impressum – direkt in ein Menü zuordnen. Durch Ankreuzen der Checkbox DIESEN MENÜEINTRAG LÖSCHEN können Sie den Menüeintrag wieder löschen. Die Checkbox erscheint erst nach dem ersten Speichern des Inhalts.
163
6 Strukturierung der Website
Abbildung 6.15: Neuer Menülink
Abbildung 6.16: Menüeinstellungen in einem Inhalt
164
6.4 Module
Tipp Menüeinträge und Inhalte werden in der Datenbank von Drupal in getrennten Tabellen verwaltet und können jederzeit auf beide beschriebene Arten verändert und wieder gelöscht werden.
6.4
Module
Module sind der Dreh- und Angelpunkt in Drupal. Module sind vergleichbar mit Legosteinen. Es gibt absolute Basisdinge wie den Vierer-, den Sechser- oder den Achter-Stein, dann gibt es die vielen anderen kleinen Bausteine und außerdem gibt es komplexere Dinge wie Figuren, Motoren, Platten etc. Wir hatten bereits in Abschnitt 5.12.1, Bilder, über die Behandlung von Bildern in Drupal gesprochen. Die dort skizzierten Lösungen erinnern an das Prinzip Lego. Es gibt auch hier unterschiedliche Module (Bausteine) in unterschiedlichen Größen und mit unterschiedlichen Funktionen, die aber alle miteinander kombiniert werden können. Wenn Sie Module online herunterladen, liegen diese meist in gezippter Form vor [modulname].tar.gz, und Sie müssen sie in ein bestimmtes Drupal-Verzeichnis entpacken und danach aktivieren.
6.4.1
Kernmodule (core modules)
Drupal bringt im Auslieferungszustand (Core oder Kern) bereits zahlreiche Module mit. Eine Übersicht mit Erläuterungen über die Funktionen finden Sie unter VERWALTEN – STRUKTURIERUNG – MODULE. Die Kernmodule teilen sich in Module, die zum Betrieb von Drupal notwendig sind, und die anderen, die optionalen Module. Sie können jedes Modul durch einfaches Ankreuzen der Checkbox aktivieren. Unter dem Link VERWALTEN – NACH MODUL finden Sie die Einstellmöglichkeiten nach Modulnamen sortiert. Oft verfügt Drupal nach Aktivierung eines Moduls über neue Menüeinträge, neue Blöcke, neue Berechtigungen, neue Einstellmöglichkeiten und neue Inhaltstypen wie beispielsweise bei dem schon angesprochenen Book- und BlogModul.
6.4.2
Neue Module installieren (contributed modules)
Module, die nicht zum Kern von Drupal gehören, heißen contributed modules (beigesteuerte Module). Wir wollen jetzt zwei dieser Module installieren. Zum einen das Modul Poormanscron, zum anderen das Administrationsmenü, das ich gern benutze.
165
6 Strukturierung der Website
Poormanscron: Regelmäßige Aufgaben ohne echten Cron Ihnen ist bestimmt schon diese Meldung aufgefallen. Sie erscheint in VERWALTEN – BERICHTE – STATUSBERICHT (Abbildung 6.17).
Abbildung 6.17: Cron-Hinweis Unter einem Cron (Job) versteht man ein Programm, das regelmäßig aufgerufen wird. Solche Cronjobs werden oft verwendet, um Aufräumarbeiten in einem System zu organisieren (Suchindex, Statistik etc.).2 Viele Module in Drupal verlassen sich auf diese regelmäßigen Aufrufe. Beispielsweise muss das Aggregator-Modul regelmäßig nachschauen, ob es etwas Neues an Newsfeed-Einträgen gibt. Das search-Modul muss seinen Suchindex aktualisieren, damit die Besucher der Seite neue Inhalte finden. Als Administrator starten Sie Cron durch den regelmäßigen Aufruf der Datei http://localhost/drupal62/cron.php
oder durch einen Klick auf den Link PER HAND AUSGEFÜHRT in der oben gezeigten Fehlermeldung. Abhängig von der Aktivität verschiedener Module werden dann verschiedene Wartungsaufgaben ausgeführt. Da Sie ja nicht immer auf den Link klicken können, gibt es in jedem Betriebssystem eine Möglichkeit, regelmäßig Dateien aufzurufen. In Unix-Umgebungen existiert eine so genannte Cron-Tabelle (crontab). Falls Sie Zugriff auf diese Tabelle haben (bei Webhostern eher unwahrscheinlich), tragen Sie dort die folgende Zeile ein: 0 * * * * wget -O - -q http://www.example.com/cron.php
Sie finden die Datei crontab im Verzeichnis /etc. Für alle, die keine Möglichkeit haben, dieses Feature zu nutzen oder einfach eine Lösung suchen, die innerhalb von Drupal funktioniert, zeige ich jetzt eine sehr gute Alternative mit dem Modul Poormanscron.
Schritt 1 – Drupal-Installation auf neue Module vorbereiten Die contributed modules werden in der Ordnerstruktur von Drupal im Ordner sites verwaltet. Jede Drupal-Website, die Sie mit Ihrer Drupal-Installation verwalten, hat einen eigenen Ordner innerhalb von sites.3 2 3
http://de.wikipedia.org/wiki/Cron Mehr zum Thema »Multisites« finden Sie in Abschnitt 9.9, Multisite: Viele Sites mit einem Drupal.
166
6.4 Module
Momentan haben Sie nur eine Website mit dem Namen default. Um die neuen Module allen sites inklusive der default-Website zur Verfügung zu stellen, legen Sie einen Ordner all und darin einen Ordner modules an (Abbildung 6.18):
Abbildung 6.18: Modulordner
Schritt 2 – Downloaden und entpacken des Dateipaketes Laden Sie die Datei poormanscron-6.x-1.0.tar.gz von der Projektseite4 oder der BuchCD und entpacken Sie sie in den gerade angelegten Ordner [drupal]/sites/all/ modules, so dass unter modules der neue Ordner poormanscron liegt und darin die Dateien des Moduls (Abbildung 6.19):
Abbildung 6.19: Neues Modul poormanscron
Schritt 3 – Aktivieren und Konfigurieren Jetzt müssen Sie das neue Modul unter VERWALTEN – STRUKTURIERUNG – MODULE aktivieren. Sie können das Modul unter VERWALTEN – EINSTELLUNGEN – POORMANSCRON konfigurieren. Die vorgegebenen Einstellungen sorgen dafür, dasss alle 60 Minuten ein Cron-Lauf stattfindet und eine Meldung an das Berichtssystem von Drupal geschickt wird. Unter VERWALTEN – BERICHTE – NEUE LOGEINTRÄGE können Sie die Meldungen einsehen. Der Benutzer, der neben der Meldung steht, hat den Cron-Lauf mit seinem Aufruf der Website gestartet (Abbildung 6.20):
4
http://drupal.org/project/poormanscron
167
6 Strukturierung der Website
Abbildung 6.20: Protokolleinträge des Moduls poormanscron
Administration Menu: Drupal mit weniger Klicks verwalten Als ich Drupal das erste Mal benutzte, war ich fasziniert von den vielen Einstellmöglichkeiten, oft ist es mir aber auch passiert, dass ich müde wurde vom vielen Klicken. Das Modul Administration Menu blendet eine aufklappbare Menüleiste in die Website ein, über die Sie sehr schnell im Verwaltungsbereich navigieren können. In Kombination mit einem speziellen Verwaltungs-Theme (siehe Abschnitt 7.12, VerwaltungsTheme) wird Drupal dadurch sehr übersichtlich. Der Weg ist der gleiche wie bei jedem anderen Modul: Download5 und Entpacken des Modulpakets (admin_menu-6.x-1.x-dev.tar.gz) Kopieren des ausgepackten Paketes (admin_menu) in die Ordnerstruktur von Drupal (sites/modules/all) Aktivieren des Moduls über VERWALTEN – STRUKTURIERUNG – MODULE Konfiguration ist modulabhängig, meist unter VERWALTEN - EINSTELLUNGEN
Wenn alles funktioniert hat, haben Sie jetzt ein Menü am oberen Rand Ihrer Website, mit dem Sie alle Links im VERWALTEN-Menü komfortabel erreichen können (Abbildung 6.21):
5
http://drupal.org/project/admin_menu
168
6.4 Module
Abbildung 6.21: Administrationsmenü
6.4.3
Module deinstallieren
Manchmal wollen Sie natürlich auch ein Modul wieder deinstallieren. Es kann sein, dass das Modul zusätzliche Tabellen in Ihrer Datenbank angelegt hat und eine eigene Deinstallationsroutine mitbringt: Klicken Sie auf VERWALTEN – STRUKTURIERUNG – MODULE – DEINSTALLIEREN (Ab-
bildung 6.22).
Abbildung 6.22: Deinstallation eines Moduls Hier sehen Sie alle Module, die sich automatisch deinstallieren lassen. In diesem Fall das Modul Sitenotes.
169
6 Strukturierung der Website
Andere Module wie Poormanscron oder Administration Menu lassen sich hier nicht deinstallieren. Diese Module müssen Sie zunächst deaktivieren und dann anschließend das entsprechende Verzeichnis im Ordner /sites/all/module löschen.
6.5
Oberfläche übersetzen
In diesem Bereich finden Sie alles, was mit der Übersetzung der Textstrings zu hat, die Ihre Drupal-Installation verwendet (Abbildung 6.23):
Abbildung 6.23: Übersicht über die übersetzten Sprachstrings Sie können in diesem Bereich nach Textstrings suchen und sie »per Hand« übersetzen. Sie können auch .po-Dateien importieren und exportieren.
6.5.1
Übersetzen eines Strings »per Hand«
Sie sehen ein Wort auf Ihrer Drupal-Website, das nicht zum Inhalt gehört, und wollen es ändern, beispielsweise das Wort Kontaktieren (siehe auch Abschnitt 3.4.2, Konfiguration des Kontaktformulars). Gehen Sie in den Bereich VERWALTEN – STRUKTURIERUNG – OBERFLÄCHE ÜBERSETZEN.
Klicken Sie auf den Reiter SUCHEN, geben Sie im Suchfeld Kontaktieren ein. Lassen Sie alle anderen Einstellungen unverändert und klicken unten auf die
Schaltfläche SUCHEN. Sie sollten ein Ergebnis wie in Abbildung 6.24 sehen:
Abbildung 6.24: Übersetzung eines Wortes
170
6.5 Oberfläche übersetzen
Sie sehen die englischen Begriffe, in diesem Falle contact. Nach einem Klick auf den Link BEARBEITEN können Sie das Buch in allen verfügbaren Sprachen ändern. Wenn das Wort in Deutsch noch nicht zur Verfügung steht, ist das de-Zeichen durchgestrichen.
6.5.2
Übersetzen mittels .po-Dateien
Alle Übersetzungen werden in .po-Dateien gespeichert. Fast alle Module bringen Übersetzungen mit. Sie liegen im Unterverzeichnis PO im jeweiligen Modul. Drupal installiert vorhandene .po-Dateien bei der Aktivierung des Moduls automatisch. Falls einem Modul keine Datei in Ihrer Sprache beiliegt (de.po), gibt es keine deutsche Übersetzung. Bei der Installation von Poormanscron in Kapitel 6.4 war das beispielsweise so. Wenn Sie eine Katalogdatei finden (.pot), so können Sie mit dem Tool Poedit6 Ihre eigene Übersetzung erzeugen. Tobias Bähr7 hat das beispielsweise für das Poormanscron-Modul gemacht, seine de.po-Datei liegt auf der CD bei. Wenn er sie dem DrupalProjekt contributed zur Verfügung stellt, wird sie bald im Poormanscron-Paket enthalten sein. Um die Datei zu installieren, klicken Sie auf den Reiter IMPORTIEREN und laden Sie die Datei in die richtige Sprache (Abbildung 6.25):
Abbildung 6.25: Übersetzung importieren
6.5.3
Exportieren von .po Dateien
Was man importieren kann, kann man natürlich auch exportieren. Wenn Sie exportieren, werden alle Strings exportiert und in einer großen .po-, bzw. .pot-Datei zusammengefasst.
6 7
http://www.poedit.net/ http://www.tobiasbaehr.de/
171
6 Strukturierung der Website
Sie können diese Datei sehr komfortabel mit Poedit editieren und dann wieder importieren:
Abbildung 6.26: Poedit mit Drupals Sprachdatei de.po
6.6
Themes bestimmen, wie Ihre Site aussieht
In diesem Bereich der Drupal-Verwaltung haben Sie bereits in Abschnitt 3.7, Andere Farben im Theme, eingestellt. Sie können hier aus den installierten Themes ähnlich wie bei den Modulen die Themes aktivieren, die Sie auf der Website anzeigen wollen. Normalerweise hat eine Website nur ein Theme, aber auf einer Blogging-Plattform möchte beispielweise jeder Benutzer ein eigenes Theme benutzen.8
6.6.1
Vorhandene Themes konfigurieren
Vorhandene Themes zu konfigurieren ist ganz einfach: Klicken Sie neben dem Theme einfach auf den Link KONFIGURIEREN, und Sie landen im Theme-spezifischen Formular der Einstellungen. Das Standardtheme Garland, das Sie gerade benutzen, hat eine Live-Vorschau, die durch das Core-Modul Color ermöglicht wird. Andere Themes haben u. U. andere Modulabhängigkeiten, die auf der jeweiligen Projektseite immer erwähnt werden. Oft wird das contributed Theme Settings API-Modul9 verwendet, das es vielen Themes erlaubt, weitere Parameter abzufragen.
8 9
http://drupal.org/project/blogtheme http://drupal.org/project/themesettingsapi
172
6.6 Themes bestimmen, wie Ihre Site aussieht
Garland bietet im gleichnamigen Formularbereich die Möglichkeit, viele Elemente wie beispielsweise die Benutzerbilder an- und auszuschalten. Sehr benutzerfreundlich ist die Möglichkeit, ein individuelles Logo und ein favorite icon (Favicon) hochzuladen. Auf unserer Website ist das beispielweise ein Marienkäfer. Das verwendete Theme heißt übrigens Newsportal und ist schon etwas älter10 (Abbildung 6.27).
Abbildung 6.27: Favorite Icon und Logo
6.6.2
Ein neues Theme installieren
Ein neues Theme installieren Sie wie ein Modul (siehe Abschnitt 6.4.2, Neue Module installieren (contributed modules)). Sie suchen sich ein Theme, das Ihnen gefällt, auf drupal.org aus, laden es herunter, entpacken es und kopieren es in den Ordner /sites/all/themes. Wenn Sie das zum ersten Mal machen, müssen Sie den Ordner themes anlegen. Im folgenden Beispiel laden Sie das Theme Four Seasons11 von Jochen Meyer12 herunter und entpacken es in den themes-Ordner (Abbildung 6.28):
Abbildung 6.28: Ordner für contributed Themes Wenn Sie jetzt VERWALTEN – STRUKTURIERUNG – THEMES aufrufen, sehen Sie das neue Theme in der Übersicht (Abbildung 6.29):
10 http://drupal.org/project/newsportal 11 http://drupal.org/project/fourseasons 12 http://www.jochenmeyer.info/
173
6 Strukturierung der Website
Abbildung 6.29: Four Seasons in der Theme-Übersicht Sie können es jetzt aktivieren und als Standard setzen. Das Theme bietet im Backend keinerlei Konfigurationsmöglichkeiten, aber auf den Webseiten selbst können Sie oben die Schriftgröße und die Farbe des Kopfbereiches wählen. (Abbildung 6.30). Hinweis Ich habe den Block mit der Sprachumschaltung (siehe Abschnitt 3.5, Sprachumschaltung) hier wieder deaktiviert. Wir werden im Abschnitt 13.6, i18n: Internationalisierung, genauer auf die Mehrsprachigkeit eingehen.
Abbildung 6.30: Four Seasons-Theme auf der Website Im weiteren Verlauf des Buches benutze ich weiterhin das Garland-Theme, das Sie in VERWALTEN – STRUKTURIERUNG – THEMES wieder aktivieren können.
174
7
Einstellungssache: Verwalten – Einstellungen
In diesem Kapitel geht es um den Bereich VERWALTEN – EINSTELLUNGEN. Sie finden in diesem Bereich alles Wichtige zu den Einstellungen für Ihre Website. Falls Sie in Abschnitt 6.4.2, Neue Module installieren (contributed modules), die Zusatzmodule Administration Menu und Poormanscron installiert haben, sieht Ihr Einstellungenbereich aus wie in Abbildung 7.1.
Abbildung 7.1: Verwaltungsbereich Einstellungen
7.1
Aktionen und Trigger
In Drupal 6 gibt es zum ersten Mal die Möglichkeit, Aktionen zu definieren. Die Idee dabei ist, dass es immer wieder ähnliche Ereignisse auf einer Website gibt, die Reaktionen oder zumindest eine »Kenntnisnahme« erfordern. Im einfachsten Fall beispielsweise eine E-Mail-Benachrichtigung an eine oder mehrere E-Mail-Adressen, dass jemand sich ein neues Benutzerkonto angelegt hat.
7 Einstellungssache: Verwalten – Einstellungen
7.1.1
Schritt 1 – keine Aktion ohne Auslöser
Die Aktionen sind nur eine Seite der Medaille (Schicke eine E-Mail an). Die andere Seite wird von einem Auslöser (Trigger) besetzt. Keine Aktion ohne Grund! Für diesen Grund/Auslöser gibt es ein Modul mit dem Namen Trigger. Aktivieren Sie es im Bereich VERWALTEN – STRUKTURIERUNG – MODULE (Abbildung 7.2).
Abbildung 7.2: Aktivierung des Trigger-Moduls Nach der Aktivierung haben Sie einen zusätzlichen Menülink TRIGGER im Bereich VERWALTEN – STRUKTURIERUNG.
7.1.2
Schritt 2 – Aktion erstellen
Um die besagte E-Mail verschicken zu können, müssen Sie sie zunächst als Aktion anlegen: Klicken Sie auf VERWALTEN – EINSTELLUNGEN – AKTIONEN. Im unteren Bereich des Formulars finden Sie eine Auswahlliste verfügbarer Akti-
onen und einen ERSTELLEN-Button. Wählen Sie aus der Liste die Aktion E-MAIL aus und klicken Sie auf ERSTELLEN (Abbildung 7.3).
SENDEN
Abbildung 7.3: Aktion auswählen In dem sich öffnenden Formular müssen Sie eine Beschreibung, den Empfänger, einen Betreff und den Inhalt der E-Mail festlegen. Im Inhalt können Sie vordefinierte Variablen wie beispielsweise %username für den Benutzernamen und %site_name für den Namen der Website eintragen. Wenn die E-Mail verschickt wird, werden für diese Variablen die echten Werte eingetragen (Abbildung 7.4).
176
7.1 Aktionen und Trigger
Abbildung 7.4: Aktion »E-Mail senden« erstellen
7.1.3
Schritt 3 – Auslöser (Trigger) festlegen
Jetzt müssen Sie den Auslöser für die neue Aktion E-Mail senden an Admin festlegen. Klicken Sie dazu auf VERWALTEN – STRUKTURIERUNG – TRIGGER. Sie haben die Wahl zwischen Auslösern aus verschiedenen Bereichen (Kommentare, Inhalt, Cron, Taxonomie und Benutzer). Sie benötigen einen Auslöser im Bereich Benutzer: Klicken Sie auf den Reiter BENUTZER. Weisen Sie die Aktion E-Mail senden an Admin im Feld TRIGGER: NACHDEM EIN
BENUTZERPROFIL ERSTELLT WURDE durch einen Klick auf den Button ZUWEISEN zu (Abbildung 7.5).
Abbildung 7.5: Aktion einem Auslöser zuordnen
177
7 Einstellungssache: Verwalten – Einstellungen
7.1.4
Das Ergebnis
Wenn sich jetzt ein Benutzer auf Ihrer Website registriert, erhalten Sie eine E-Mail wie in Abbildung 7.6:
Abbildung 7.6: E-Mail nach Benutzerregistrierung Die Sache hat lokal natürlich noch einen Schönheitsfehler. Ihr Windows hat vermutlich keinen Mailserver installiert, und so kann Drupal die E-Mail zwar an den PHPInterpreter weitergeben, der kann sie dann aber nicht verschicken. Lokal wird diese Funktionalität auch eher selten benötigt. Bei Ihrem Website-Provider ist natürlich ein Mailserver installiert, der die E-Mail dann auch zustellen kann. 1
Exkurs Es gibt natürlich die Möglichkeit, Windows mit einem Mailserver auszustatten. Wenn Sie beispielsweise statt XAMPP Lite die »große« Version von XAMPP herunterladen, ist dort der Mercury-Mailserver enthalten.1 Mit diesem Paket können Sie auch lokal E-Mails verschicken.
Exkurs Wenn Sie sich die zur Verfügung stehenden Trigger aus den verschiedenen Bereichen ansehen, so können Sie damit schon beeindruckende Dinge erledigen, die weit über das Senden einer E-Mail hinausgehen. Sie können auf Inhaltsänderungen, Profilseitenaufrufe und ähnliche Dinge reagieren. Damit lassen sich beispielsweise Hinweismeldungen für Benutzer direkt nach der Anmeldung einblenden. URL-Weiterleitungen sind möglich, etwa nach dem Löschen eines Inhalts.
1
http://www.apachefriends.org
178
7.2 Bild-Toolkit: Kompressionsdichte für JPG definieren
7.2
Bild-Toolkit: Kompressionsdichte für JPG definieren
Im Bereich BILD-TOOLKIT legen Sie die Kompressionsdichte von JPG-Bildern fest (Abbildung 7.7).
Abbildung 7.7: Bild-Toolkit Drupal kann von Haus aus Bilder skalieren. Es nutzt dabei die GD Library, die in den PHP-Interpreter in den meisten Fällen einkompiliert ist und dann über die Datei php.ini ein- bzw. ausgeschaltet wird.2 Module wie das Image-Modul von Drupal machen ebenfalls von dieser Fähigkeit Gebrauch. Sie können auch für den DrupalKern die maximale Pixelgröße für hochgeladene Bilder festlegen (siehe Abschnitt 7.7, Hochgeladene Dateien).
7.3
Dateisystem: Ordner für Uploads festlegen
Sie müssen Drupal an dieser Stelle sagen, wo es hochgeladene Dateien abspeichern soll, und ob diese Dateien öffentlich zugänglich sein oder durch einen Mechanismus ausgeliefert werden sollen, der den echten Speicherort nicht preisgibt (Abbildung 7.8). Wie Sie bereits im Abschnitt 5.11, Upload, gesehen haben, besteht für Benutzer die Möglichkeit, an unterschiedlichen Stellen Dateien auf die Website zu laden. Das können Bilder, PDFs, MP3s, Videos und vieles andere mehr sein. Hochgeladene Dateien werden vom PHP-Interpreter zuächst in ein temporäres Verzeichnis geschrieben und dann an die endgültige Stelle verschoben. Beide Pfade werden hier festgelegt. Wenn Sie beispielsweise Dateien verkaufen (eBooks, Photos etc.) ist es wichtig, dass die Dateien nicht in einem öffentlich zugänglichen Ordner liegen. Findige Benutzer könnten sie dann einfach kopieren, wenn sie den genauen Pfad wissen und keine anderen Vorsichtsmaßnahmen beim Webserver aktiv sind. Wenn Sie solche Dateien anbieten, müssen Sie auf Ihrem Server einen Platz finden, der zwar dem PHP-Interpreter, nicht aber dem Besucher der Website zugänglich ist. Tragen Sie das entspre2
http://de.wikipedia.org/wiki/GD_Library
179
7 Einstellungssache: Verwalten – Einstellungen
chende Verzeichnis ein und wählen als Download-Methode PRIVAT – DATEIEN WERDEN VON DRUPAL ÜBERMITTELT. Sie müssen sicherstellen, dass der Ordner existiert und für den Benutzer des Webservers auch erreichbar ist. Das ist bei einem Provider manchmal gar nicht so einfach herauszubekommen.
Abbildung 7.8: Dateisystem Achtung Sie müssen diese Entscheidung am Anfang des Betriebs der Website treffen, da eine Änderung der Download-Methode eine Änderung aller Download-URLs nach sich zieht.
7.4
Datum und Uhrzeit
In diesem Bereich können Sie alle Einstellungen, die mit Datum und Uhrzeit zu tun haben, festlegen (Abbildung 7.9). Das Formular teilt sich in REGIONALEINSTELLUNGEN und FORMATIERUNG. In den REGIONALEINSTELLUNGEN wird die Zeitzone der Website festgelegt. Das ist praktisch, wenn der Server des Providers in einer anderen Zeitzone liegt als die Zielgruppe der Website. Außer der allgemeinen Zeitzone ist es auch möglich, den Benutzern die Einstellung ihrer eigenen Zeitzone zu erlauben. Wenn der Benutzer angemeldet ist, werden alle Datums- und Uhrzeitangaben an die vom Benutzer gewählte Zeitzone angepasst.
180
7.4 Datum und Uhrzeit
Abbildung 7.9: Datum und Uhrzeit Weil Kalendermodule wie beispielsweise das Event-Modul wissen müssen, wann die Woche anfängt, können Sie hier auch den ersten Tag der Woche festlegen. Die Datumsformate, die auf der Website angezeigt werden, können Sie für ein kleines, ein mittleres und ein langes Format aus einer großen Anzahl vorgegebener Formate auswählen. Je nach Zusammenhang greifen die einzelnen Module auf diese unterschiedlichen Formate zu. Falls Sie bei den vordefinierten Beispielen nichts finden, können Sie die Formate auch komplett mit PHP-Formaten3 selbst bestimmen (Abbildung 7.10).
Abbildung 7.10: Benutzerdefinierte Datumsformate 3
http://php.net/manual/function.date.php
181
7 Einstellungssache: Verwalten – Einstellungen
7.5
Eingabeformate: Input filtern
Die Eingabeformate sind Ihnen bereits in den Abschnitten 3.3.6, Eingabeformate, und 5.9, Eingabeformate, begegnet. Drupal nutzt diese Formate, um eingegebene Inhalte zu filtern (Abbildung 7.11). Wenn Sie beispielsweise eine Kommentarmöglichkeit für Gäste auf Ihrer Website anbieten, muss dort nicht der aufwändigste WYSIWYG-Editor mit Full HTML-Einstellungen angezeigt werden, sondern vermutlich reicht die Light-Version oder gar kein Editor und ein Eingabeformat, bei dem nur ausgewählte HTML-Tags erlaubt sind. Das hat auch den Vorteil, dass Spammer es ein wenig schwerer haben, weil nicht alle HTML-Tags in ihren Postings ausgewertet werden.4
Abbildung 7.11: Eingabeformate
7.5.1
Filtered HTML: Ein Filter im Detail
Am Beispiel des Filtered HTML-Formats wollen wir uns ansehen, was dort eigentlich erlaubt und verboten ist. Klicken Sie neben dem Format auf den Link KONFIGURIEREN. Sie landen in einem Formular, in dem die allgemeinen Eigenschaften des Formats festgelegt werden (Abbildung 7.12). Zu diesen allgemeinen Einstellungen gehört der Name des Formats, die Benutzerrolle, die das Format nutzen darf (oder auch muss) und eine Auswahl von Filtern. Die Auswahl HTML-KORREKTUR versucht, fehlerhafte Tags in Inhalten zu korrigieren. Der HTML-Filter ermöglicht eine Auswahlliste von erlaubten Tags und sorgt auch dafür, dass JavaScript Events und -URLs sowie CCS-Styles gefiltert werden. Wenn kein WYSIWYG-Editor auf der Website verwendet bzw. nur für bestimmte Rollen benutzt wird, sind die Auswahlmöglichkeiten URL-FILTER und ZEILENUMBRUCHKONVERTER sehr praktisch für die Benutzerrollen, die keinen WYSIWYG-Editor nutzen dürfen: Der URL-Filter verwandelt Internet- und E-Mail-Adressen automatisch in Links. Der Zeilenumbruchkonverter verwandelt (Enter)-Eingaben in HTML-Zeilenumbrüche (
).
Der PHP-Evaluator würde PHP-Ausdrücke auswerten, wenn er angekreuzt würde. In diesem Fall ist das aus Sicherheitsgründen natürlich nicht gewünscht.
4
Mehr zur Vermeidung von Spam finden Sie in Abschnitt 13.5, Kampf gegen Spam.
182
7.5 Eingabeformate: Input filtern
Abbildung 7.12: Filtered HTML-Format in der Bearbeitung Die Anzahl der hier angezeigten Filter hängt von installierten Modulen mit Filterfunktionalität ab. Dabei fällt mir ein, einen Smiley-Filter sollten Sie auf jeden Fall haben, wenn Ihre Website einen Community-Charakter entwickeln soll. Er wandelt Emoticons in Grafiken um.5
7.5.2
Das Eingabeformat »Filtered HTML« konfigurieren
Wenn Sie auf den Reiter KONFIGURIEREN klicken, sehen Sie die Bereiche URL-FILTER und HTML-FILTER (Abbildung 7.13). Der URL-Filter begrenzt die Länge von eingegebenen URLs, um das Layout nicht durcheinander zu bringen. Der Filter kürzt die eingegebene URL auf 72 Zeichen und fügt drei Punkte an. Der zu lange Link ist mit der gekürzten Beschreibung anklickbar und führt zum Ziel.
5
http://drupal.org/project/smileys
183
7 Einstellungssache: Verwalten – Einstellungen
Abbildung 7.13: Detailkonfiguration im Eingabeformat Bei HTML haben Sie zunächst die Wahl, wie Sie mit verbotenen Tags umgehen wollen. Sie können sie unterdrücken und aus dem Text löschen oder aber anzeigen lassen. Manchmal ist eine Anzeige der verbotenen Tags gut, weil viele Benutzer die Erläuterungstexte zur Inhaltseingabe nicht lesen und sich dann wundern, warum ihr via img-Tag eingefügtes Bild nicht angezeigt wird. Wenn sie dann in einem Artikel den HTML-Tag sehen, bemerken sie eher, dass da wohl etwas nicht stimmt. Im Feld ERLAUBTE HTML TAGS können Sie alle erlaubten Tags in spitzen Klammern eingeben. Die Checkbox HTML-HILFE ANZEIGEN ist sehr hilfreich. Sie sorgt dafür, dass bei Formularen unter jedem Eingabefeld mit Formatauswahlmöglichkeit ein Link zu einer sehr guten und detaillierten Erklärung des Formats führt (Abbildung 7.14). Die Checkbox SPAMLINK-ABSCHRECKUNG EINSETZEN ist ein wenig mit Vorsicht zu genießen. Sie setzt in den HTML-Code jedes Links im Inhalt das Attribut rel="nofollow" . Das hat zur Folge, dass Suchmaschinen diesem Link nicht folgen. Bei Spamlinks ist das eine tolle Sache, aber das Problem ist, dass diese Einstellungen auch für »gute« Links gelten und diese Links dann ebenfalls von Suchmaschinen nicht weiterverfolgt werden.
184
7.6 Fehlermeldungen
Abbildung 7.14: HTML-Hilfe
7.6
Fehlermeldungen
Fehlerhafte Eingaben erzeugen manchmal so genannte 403- (Zugriff verweigert) und 404-(Seite nicht gefunden)Fehler. Die Fehlercodes stammen aus dem HTTP-Protokoll, das zwischen Browser und Webserver benutzt wird. Drupal hält in diesem Fall eine recht dürre Fehlermeldung auf der Website bereit. Wenn Sie Ihren Benutzern eine etwas ausführlichere Nachricht anbieten wollen, so können Sie das hier tun (Abbildung 7.15). Erstellen Sie einfach zwei Inhalte eines Inhaltstyps Ihrer Wahl und geben Sie dann den entsprechenden Aufruf im Feld ein (node/123). Fehlermeldungen können aus verschiedenen »Ecken« kommen: Mal kann eine E-Mail nicht versendet werden, mal funktioniert eine SQL-Abfrage nicht, mal kann ein Cronjob nicht ausgeführt werden. In der Auswahlliste FEHLERMELDUNGEN können Sie wählen, was mit den Fehlermeldungen geschehen soll:
185
7 Einstellungssache: Verwalten – Einstellungen
In Ihrer lokalen Testumgebung ist es sicherlich sinnvoll, diese Fehler öffentlich an-
zuzeigen. Dann sehen Sie sie und können darauf entsprechend reagieren. In der produktiven Umgebung Ihrer Website sollten Sie die Anzeige abschalten.
Sie dürfen allerdings als Administrator auch nicht vergessen, ins Fehlerprotokoll zu schauen (VERWALTEN – BERICHTE – NEUE LOGEINTRÄGE).
Abbildung 7.15: Fehlermeldungen
7.7
Hochgeladene Dateien
Falls bei Ihnen dieser Menüpunkt nicht erscheint, so ist das Upload-Modul bei Ihnen noch nicht aktiviert. Aktivieren Sie es unter VERWALTEN – STRUKTURIERUNG – MODULE und kehren Sie danach in den Bereich VERWALTEN – EINSTELLUNGEN zurück. In diesem Bereich können Sie detailliert festlegen, welche Benutzerrolle welche Dateitypen in welcher Größe, bei Bildern sogar in welcher Auflösung, auf Ihren Server hochladen darf. Außerdem können Sie die Gesamt-Upload-Größe pro Benutzer festlegen (Abbildung 7.16): Der Upload wird weiterhin über die Einstellungen in der Datei php.ini festgelegt. In meinem XAMPP Lite ist der maximale Upload auf 16 MB beschränkt. Exkurs Manchmal benötigt man einfach höhere Werte. Wenn Sie einen Apache-Webserver benutzen, können Sie in der Datei .htaccess im Stammverzeichnis Ihrer Drupal-Installation die folgenden Werte für das Apache-Modul PHP 5 ergänzen: # Diese Werte sind vorhanden php_value magic_quotes_gpc php_value register_globals php_value session.auto_start php_value mbstring.http_input
186
0 0 0 pass
7.7 Hochgeladene Dateien
php_value mbstring.http_output php_value mbstring.encoding_translation
pass 0
# Diese Werte müssen Sie ergänzen # Hier ein größerer Upload (50 MB) und eine # Ausführungszeit eines PHP-Scriptes # (längere Uploads dauern länger – 500 Sekunden) php_value post_max_size 50M php_value upload_max_filesize 50M php_value max_execution_time 500 php_value max_input_time 500
Ich benutze in XAMPP Lite PHP in der Version 5. PHP 4 wird seit 1.1.2008 nicht mehr weiterentwickelt, und Sie sollten es nicht mehr benutzen. Sie brauchen den Webserver nach dieser Änderung nicht neu zu starten. Er wertet die .htaccess-Datei bei jedem Aufruf neu aus.
Abbildung 7.16: Einstellungen zum Datei-Upload
187
7 Einstellungssache: Verwalten – Einstellungen
7.8
Leistung: Performance erhöhen durch Caching
Ein aktivierter Cache bietet einen deutlichen Leistungsschub heißt es im Bereich VERWALTEN – EINSTELLUNGEN – LEISTUNG. So ein Leistungsschub kann gerade viel besuchten Websites ausgesprochen gut tun. Der Drupal-Cache besteht aus MySQL-Tabellen, in die oft aufgerufene komplette Seiten oder Teile davon (Blöcke) geschrieben werden. Wenn der nächste Besucher denselben Inhalt sehen will, wird die Seite nicht aus den normalen Tabellen zusammengestellt, sondern in einem Rutsch aus dem Cache gelesen.
7.8.1
Seitencache
Der wichtigste Cache ist der Seitencache. Die Idee, ganze Seiten zu cachen, reduziert die Ausführungszeit um ein Vielfaches, das Thema ist aber sehr komplex, und man bewegt sich immer in einem Spannungsfeld zwischen Aktualität und Erreichbarkeit der Website: Wenn Sie beispielsweise die Cache-Lebensdauer auf eine Stunde setzen, so werden
neue Kommentare auch erst nach einer Stunde angezeigt. Wenn Sie nun Gästen erlauben, Kommentare zu schreiben, sehen die Gäste ihren
eigenen Kommentar erst eine Stunde später. Dieser Fakt ist an sich nicht schlimm, aber manche glauben dann, dass es besser wäre, den Kommentar noch mal zu posten (»Vielleicht hat das Speichern ja nicht geklappt!«). Denken Sie immer an Ihre Zielgruppe vor dem Bildschirm. Mit dem normalen Caching-Modus und einer sehr kleinen Lebensdauer sind Sie immer auf der sicheren Seite, da Drupal in diesem Fall die Seitenzugriffe für Gäste auf eine effektive Art cacht, und bei einer Einstellung von ein bis zwei Minuten haben Sie auch das Kommentarproblem nur noch in Ausnahmefällen. Ein bis zwei Minuten werden als Wartezeit toleriert, und so lange versuchen die Benutzer auch, ihren gerade geposteten Kommentar zu lesen (Abbildung 7.17).
Abbildung 7.17: Caching-Modus Der aggressive Caching-Modus kann zu Nebeneffekten führen. Die Nebeneffekte äußern sich darin, dass die Website im schlimmsten Fall nicht mehr aufrufbar ist, weil sich der Webserver »aufhängt«. Im günstigsten Fall kommt das Caching nur ein wenig durcheinander. Beide Fälle sind allerdings nicht akzeptabel. Die installierten
188
7.8 Leistung: Performance erhöhen durch Caching
Module, die damit vermutlich Probleme bekommen werden, sind glücklicherweise in roter Farbe neben der Einstellung des Caching-Modus aufgelistet, in meinem Fall Poormanscron. Die Seitenkompression sorgt dafür, dasss Drupal die ausgelieferten Seiten automatisch komprimiert, und Ihr Browser packt sie wieder aus. Webserver können das ebenfalls. Im Apache ist das Module mod_gzip dafür zuständig. Falls die Konfiguration Ihres Webservers dafür sorgt, dass er die Seiten auch komprimiert, können Sie die Funktion hier in Drupal deaktivieren. Sie können, je nach Konfiguration des Apache-Webservers diese Information unter VERWALTEN – BERICHTE – STATUSBERICHT einsehen. Wenn Sie beispielweise dieses Ergebnis unter XAMPP Lite bekommen Webserver: Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_ color PHP/5.2.5
so ist der Apache-Webserver nicht mit dem Modul mod_gzip ausgerüstet (siehe auch Abschnitt 9.2.4, Statusbericht).
7.8.2
Block-Cache: Nur Teile einer Seite cachen
Diese Einstellung ist neu in Drupal 6 und ermöglicht ein Caching der Blöcke. Diese Art des Cachings ist im Gegensatz zum kompletten Seitencache ein guter Mittelweg. Es ist, insgesamt betrachtet, meistens besser, Teile der Website zu cachen und diese Einzelteile bei Bedarf wieder zusammenzubauen. Dadurch würde man auch das oben beschriebene Kommentarproblem umgehen. Ist der Seitencache insbesondere für Gäste der Website wichtig, so ist der Block-Cache für angemeldete Benutzer wichtig. Bisher war es so, dass für angemeldete Benutzer immer eine »frische« Webpage aus der Datenbank aufgebaut wurde. Bei vielen gleichzeitig angemeldeten Benutzern konnte diese Einstellungen schnell zu Problemen führen. Mit dem Block-Cache werden auch für authentifizierte Benutzer nur die Blöcke neu aufgebaut, in denen sich etwas verändert hat.
7.8.3
Bandbreitenoptimierungen
Bandbreitenoptimierungen sind immer zu begrüßen. Ausgelagerte CSS- und JavaScript-Dateien sollen nur einmal geladen werden. Allerdings kann es auch hier zu Problemen im Sinne von Verzögerungen kommen, falls dynamische Elemente in den CSS- und JavaScript-Seiten enthalten sind oder Sie gerade am Template arbeiten.
7.8.4
Cache leeren
Durch einen Klick auf den Button CACHE LEEREN leeren Sie alle Cache-Tabellen und haben dann einen Zustand, in dem wirklich alle Teile der Website neu geladen werden. Auch dieser Schalter ist neu in Drupal 6 und ausgesprochen praktisch. In Drupal 5 musste man die Cache-Tabellen noch per Hand über die Datenbankverwaltung leeren.
189
7 Einstellungssache: Verwalten – Einstellungen
6
Achtung Überlegen Sie es sich gut, bevor Sie auf hochbelasteten, produktiven Websites auf diesen Button klicken! Benutzen Sie ihn nur, wenn Sie sicher sind, dass der Webserver den Cache zügig wieder aufbauen kann. Im lokalen Entwicklungsbetrieb ist das natürlich kein Problem. Ein aufgebauter, funktionierender, produktiver Seitencache ist »wertvoll« und muss nach dem Leeren des Caches komplett neu aufgebaut werden. Wenn dann noch ein Suchmaschinenspider (Webcrawler6) die Website besucht, ist Ihr Webserver schnell überfordert.
7.9
Lesbare URLs
An dieser Stelle wird überprüft, ob Ihr Webserver lesbare URLs unterstützt oder nicht. Wir sind bereits in Abschnitt 5.13, Suchmaschinenfreundliche URLs, auf dieses Thema eingegangen. Schon bei der Installation von Drupal wird diese Überprüfung veranlasst und bei erfolgreicher Prüfung automatisch auf lesbare URLs eingestellt (siehe auch Abschnitt 2.6, Der Drupal-Webinstaller).
7.10
Logging and alerts
Drupal erzeugt Meldungen über Zugriffe, Fehler, Anmeldeversuche und viele andere interessante Vorgänge auf Ihrer Website. Sie haben die Möglichkeit, die Einträge in einer Tabelle der Drupal-Datenbank zu speichern (Database Logging-Modul) oder in einem externen Logging-System (Syslog-Modul). Das Modul Database Logging ist standardmäßig aktiviert und bietet in diesem Bereich die Möglichkeit zur Begrenzung der Einträge (Abbildung 7.18).
Abbildung 7.18: Einstellungen der maximalen Meldungen Für die »normal sterbliche« Website ist 1000 ein guter Wert, und vermutlich werden Sie diesen Bereich der Einstellungen nie wieder betreten :-).
6
http://de.wikipedia.org/wiki/Webcrawler
190
7.11 Sprachen
Zum Ansehen und Auswerten der Logs gibt es einen eigenen Bereich in Drupal. Sie erreichen ihn über den Link VERWALTEN – BERICHTE. Auch das Syslog-Modul ist im Core von Drupal enthalten und bietet die Möglichkeit, die Nachrichten nicht an das Drupal-System, sondern an ein externes Logging-System zu schicken. In Windows ist das beispielsweise die Ereignisanzeige. Gerade im geschäftlichen Umfeld werden häufig Syslogs genutzt, um die Systemmeldungen unterschiedlicher Systeme zu bündeln.
7.11
Sprachen
In diesem Bereich nehmen Sie die Grundinstallation für neue Sprachen vor. Das Thema Sprachen wird in einem Europa mit 23 Amtssprachen7 zunehmend wichtiger. Es ist nicht trivial, mehrsprachige Websites zu erstellen und vor allem zu betreiben. Drupal hat dafür ein mehrstufiges Konzept.
7.11.1
Die Oberflächensprache
Ihre Website besteht aus Inhalten und vordefinierten Texten wie beispielsweise dem Satz »Geben Sie hier das zugehörige Passwort an.« Bei der sogenannten Oberflächensprache handelt es sich um solche vordefinierten Textstrings. Der Drupal-Kern besteht aus mehr als 3000 solcher Sätze (Textstrings) in englischer Sprache. Sie sind diesen im Bereich VERWALTEN – STRUKTURIERUNG – OBERFLÄCHENÜBERSETZUNG in Abschnitt 6.5.1, Übersetzen eines Strings »per Hand«, bereits begegnet. Für diesen Kern gibt es Übersetzungen in mehr als 30 Sprachen. In vielen Ländern gibt es Übersetzungsserver. In Deutschland hat Konstantin Käfer die Initiative ergriffen und einen deutschen Übersetzungsserver gestartet.8 Mittlerweile zeichnet es sich ab, dass drupalcenter.de diese Dienstleistung übernehmen wird.9 Wie auch immer eine solche Übersetzungsdatei entsteht – wenn sie denn mal da ist, handelt es sich um eine .po-Datei nach dem GNU gettext-Standard.10 Diese Datei kann im Bereich VERWALTEN – STRUKTURIERUNG – OBERFLÄCHENÜBERSETZUNG – IMPORTIEREN in die entsprechende Sprache für Ihr Drupal geladen werden. In diesem Bereich EINSTELLUNGEN legen Sie gewissermaßen die »Metadaten der Oberflächensprache« an. Wenn Sie auf VERWALTEN – EINSTELLUNGEN – SPRACHEN – SPRACHE HINZUFÜGEN klicken, können Sie aus allen Sprachen dieser Welt die Metadaten laden. Sie können sogar eigene Sprachen, beispielsweise Dialekte wie bayrisch, sächsisch und schwäbisch erstellen.
7 8 9 10
http://de.wikipedia.org/wiki/Amtssprachen_der_Europ%C3%A4ischen_Union http://de.kkaefer.com/ http://www.drupalcenter.de/node/10031 http://de.wikipedia.org/wiki/GNU_gettext
191
7 Einstellungssache: Verwalten – Einstellungen
7.11.2
Sprache bearbeiten und konfigurieren
Bevor Sie aber so ein Projekt starten, schauen Sie sich bei der deutschen Sprache einfach mal die Einstellungen an. Klicken Sie zunächst auf VERWALTEN – EINSTELLUNGEN – SPRACHEN. Klicken Sie dann neben GERMAN auf BEARBEITEN (Abbildung 7.19).
Abbildung 7.19: Einstellungen der Sprache German Der englische Name (German), der Name der Sprache in der Sprache (Deutsch) und die Richtung (links nach rechts) sind noch einfach nachvollziebar. Beim Pfadpräfix (de) der Sprachdomain fängt die »Politik« an. Wie soll die URL Ihrer Website aufgebaut sein?
192
7.12 Verwaltungs-Theme
http://beispiel.de/de/node/123 http://beispiel.de/node/123 http://de.beispiel.com/node/123
Es gibt keine richtige oder falsche Lösung. Sie müssen sich einfach für einen Weg entscheiden. Sie treffen diese Entscheidung im Bereich VERWALTEN – EINSTELLUNGEN – SPRACHEN – KONFIGURIEREN. Sie haben dort vier Möglichkeiten: KEINE. Hier wird nur die als Standard definierte Oberflächensprache auf der Web-
site benutzt. Benutzer können allerdings in MEIN KONTO eine andere Umgebungssprache wählen, so sie denn aktiviert ist. NUR PFADPRÄFIX. Die Oberflächensprache ist davon abhängig, welches Pfadpräfix
in der URL benutzt wird. Wird kein Präfix gefunden, wählt Drupal die Standardsprache. Die URL http://beispiel.com/de/contact würde die Oberflächensprache auf Deutsch setzen, weil das Präfix de im Pfad steht. PFADPRÄFIX MIT AUSWEICHLÖSUNG. Hier greift der gleiche Effekt wie beim Pfad-
präfix, allerdings wird dieses Mal noch überprüft, welche Sprache der Benutzer in mein Konto eingestellt hat, oder, bei einem nicht angemeldeten Besucher der Website, welche Sprache im Browser eines Gastes der Website eingestellt ist. Erst wenn diese beiden Überprüfungen kein sinnvolles Ergebnis bringen, wird auf die Standardsprache der Website geschaltet. NUR DOMAINNAME. In diesem Fall wird der Domainname untersucht. http://de.
beispiel.com/contact würde die Oberflächensprache auf Deutsch setzen. Wikipedia arbeitet übrigens nach dieser Methode.
7.12
Verwaltungs-Theme
In diesem Bereich gibt es eine einfache, aber ungemein hilfreiche Einstellungsmöglichkeit. Welches Theme soll auf den VERWALTEN-Seiten angezeigt werden, und welches Theme soll beim Bearbeiten von Inhalten benutzt werden (Abbildung 7.20)?
Abbildung 7.20: Auswahl des Verwaltungs-Themes
193
7 Einstellungssache: Verwalten – Einstellungen
Zusätzlich gibt es in Drupal 6 die Möglichkeit, alle Inhaltsbearbeitungen unter dem Verwaltungs-Theme vornehmen zu lassen. Dieser Schalter bringt Vorteile, wenn Sie beispielweise einen WYSIWYG-Editor benutzen und viele unterschiedliche Themes auf der Website haben wie bei einer Multiuser-Blogging-Plattform. Dort können Benutzer manchmal die Darstellung der Editoren durcheinanderbringen, wenn sie die Möglichkeit haben, eigenes CSS einzufügen. Durch die Festlegung auf ein von Ihnen ausgewähltes und optimiertes Theme beim Bearbeiten stellen Sie auf einfache Art sicher, dass der Editor funktioniert und ein einheitliches Layout vorliegt. Die Benutzer gewöhnen sich schnell daran und finden es meist angenehm. In der Vergangenheit haben sich viele Administratoren über die Unübersichtlichkeit von Drupal geärgert. Seit Drupal 5 gibt es diesen Schalter, und er teilt de facto Ihre Website in einen Website- und einen Administrationsbereich. Ich benutze meistens das Theme Garland oder Bluemarine auf Verwaltungsseiten und je nach Art der Website auch bei der Inhaltsbearbeitung. Tipp Durch Drupals Fähigkeit, jedem Theme unterschiedliche Blöcke zuordnen zu können, können Sie beispielsweise das VerwaltungsTheme im Bereich VERWALTEN – STRUKTURIERUNG – BLÖCKE – [DAS BENUTZTE VERWALTUNGS-THEME] so konfigurieren, dass Sie nur den Block Navigation auf der linken und eine maximale Inhaltsfläche auf der rechten Seite haben. Dadurch wird Ihr Administrationsbereich, gerade wenn Sie mit CCK (siehe Kapitel 11, Content Construction Kit (CCK)), und Views (siehe Kapitel 12, Views: Ansichten erstellen), arbeiten, noch übersichtlicher.
7.13
Wartungsarbeiten
Jede Website muss mal gewartet werden. Sie können in diesem Bereich die Website deaktivieren und den Besuchern einen erklärenden Text schreiben (Abbildung 7.21).
Abbildung 7.21: Wartungsarbeiten
194
7.14 Website-Informationen
Auf der Website sehen alle Besucher ein Bild wie in Abbildung 7.22.
Abbildung 7.22: Wartungsmeldung auf der Website Berechtigte Benutzer, die über das Zugriffsrecht Website-Einstellungen bearbeiten verfügen, können sich über die URL http://localhost/drupal62/user weiterhin anmelden.
7.14
Website-Informationen
Um die Website-Informationen an den vorgegebenen Standorten zu sehen, probieren Sie diese Einstellungen am besten mit einem der mitgelieferten Themes aus, beispielsweise Garland. In den Website-Informationen legen Sie folgende Parameter fest: NAME: Der Name dieser Website. Der Name taucht an vielen Stellen der Website wieder auf, beispielsweise in der Variable %site_name, die Sie in E-Mails und Über-
setzungstexten benutzen können. E-MAIL-ADRESSE: Das ist die E-Mail-Adresse der Website. Der offizielle Absender
aller E-Mails, die Ihre Website verschickt. SLOGAN: Das ist der Slogan, der bei vielen Themes schön gestaltet im Kopfbereich
steht. Dieser Slogan ist in der Konfiguration des Themes an- und abschaltbar (VERWALTEN – STRUKTURIERUNG – THEMES). BESCHREIBUNG: Worum geht es auf Ihrer Website? Ihr Mission Statement, in
Deutschland oft Leitbild genannt.11 Die Beschreibung wird von den meisten Themes im oberen Bereich über dem Inhalt positioniert. Sie ist ebenfalls in der Konfiguration des Themes an- und abschaltbar. Im Garland-Theme erscheint sie auf der Startseite über dem Inhalt. Im Four Seasons-Theme erscheint sie im farbigen Hintergrundbereich.
FUSSZEILE: In einer Fußzeile stehen meist ein Hinweis auf das Copyright, ein Link
zum Impressum und zum Kontaktformular.
11 http://de.wikipedia.org/wiki/Mission_Statement
195
7 Einstellungssache: Verwalten – Einstellungen
GAST: Wie soll ein Besucher Ihrer Website heißen, wenn er beispielsweise einen an-
onymen Kommentar postet? Hier legen Sie die Bezeichnung für nicht angemeldete Benutzer fest. STARTSEITE: Diese Einstellung kommt so unscheinbar daher, ist aber sehr wichtig.
Hier legen Sie fest, welcher Inhalt aufgerufen wird, wenn jemand nur den Domainnamen Ihrer Website aufruft. Sie können hier völlig frei durch die Eingabe eines relativen Pfades bestimmen, was auf Ihrer Startseite erscheinen soll. Exkurs Die Einstellung bei der Bearbeitung von Inhalt AUF STARTSEITE ANZEIGEN funktioniert nur bei der Standardvorgabe: http://localhost/drupal62/de/node In diesem Fall werden chronologisch alle Inhalte auf der Website angezeigt, die die entsprechende Einstellung haben. Auch für eine Firmenwebsite ist diese Einstellung zu empfehlen. In Ihrer Beschreibung (Mission Statement) können Sie ja kurz Ihre Firma vorstellen. Ihre Startseite sollte die letzten Neuigkeiten enthalten und diese auch als Newsfeed anbieten (konfigurierbar unter VERWALTEN – INHALTSVERWALTUNG – RSS-FEEDS) Individuelle Startseiten können Sie mit dem Modul Views erzeugen (siehe Kapitel 12, Views: Ansichten erstellen).
Exkurs: Logo, Slogan, Mission Statement Diese drei Zutaten werden immer wichtiger bei Firmen und bestimmen zunehmend das Verständnis von Kunden, Banken, Besuchern und Mitarbeitern. Auch mittelständische, kleine und kleinste Unternehmen sollten hier sorgfältig sein. Außerdem werden die Beschreibungen gern von Suchmaschinen oder anderen Verzeichnissen übernommen.
196
8 Umfrage, Forum und WYSIWYG-Editoren Wie wir bereits in Kapitel 5, Inhalt verwalten und erstellen, gesehen haben, bestehen Inhalte oder auch Beiträge in Drupal aus verschiedenen Inhaltstypen. Diese Inhaltstypen stellen immer ein Feld mit einem Titel und ein Feld mit einem Textkörper zur Verfügung. Sie können die Inhalte anreichern mit Vokabularen (siehe Abschnitt 5.8, Taxonomie – Inhalte kategorisieren, und Attachments (siehe Abschnitt 5.11, Upload). In diesem Kapitel wollen wir uns zwei neue Inhaltstypen ansehen, die bereits im Kern von Drupal vorhanden sind: ein Forum- und ein Umfragemodul. Außerdem zeige ich Ihnen die Installation zweier WYSIWYG-Editoren in Verbindung mit einem Dateimanager, der Bilder beim Upload klein rechnen kann. Außerdem möchte ich Ihnen ein paar, momentan vermutlich noch etwas ungewöhnliche, aber in naher Zukunft sicherlich oft verwendete Möglichkeiten der Inhaltserstellung über APIs zeigen.
8.1
Das Modul Poll: Umfragen erstellen und auswerten
Das Poll-Modul stellt einen Inhaltstyp für Umfragen zur Verfügung. Außerdem einen Block mit einer Möglichkeit zur Abstimmung bei der letzten Umfrage, eine Auswertungsseite und die entsprechenden Berechtigungen. Als Beispiel möchte ich Ihnen die Erstellung einer Umfrage zeigen: Ich möchte gern wissen, warum Sie sich mit Drupal beschäftigen. Hier der Text: Ich beschäftige mich mit Drupal, weil: ich es in meiner Firma einsetzen will ich eine Community aufbauen möchte ich Blogger bin ich Webdesigner bin ich Entwickler bin ich einfach interessiert bin
8 Umfrage, Forum und WYSIWYG-Editoren
8.1.1
Schritt 1 – Poll-Modul aktivieren
Aktivieren Sie das Poll-Modul in VERWALTEN – STRUKTURIERUNG – MODULE. Das Modul bietet keine weiteren Möglichkeiten der Konfiguration. Es erzeugt einen neuen Inhaltstyp Umfrage in INHALT ERSTELLEN und einen neuen Block (Umfrage).
8.1.2
Schritt 2 – Zugriffsrechte verteilen
In VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN müssen Sie die gewünschten Benutzerrechte festlegen (Abbildung 8.1).
Abbildung 8.1: Berechtigungen im Poll-Modul
8.1.3
Schritt 3 – Umfrage erstellen
Über den Link INHALT ERSTELLEN – UMFRAGE können Sie die neue Umfrage erstellen. Es öffnet sich ein Eingabeformular für die Frage und die möglichen Antworten (Abbildung 8.2). Der Titel in diesem Inhaltstyp Umfrage heißt FRAGE, und es gibt keinen Textkörper wie in den anderen Inhaltstypen, die wir bisher betrachtet haben. Stattdessen sehen Sie im Bereich AUSWAHL zwei Auswahlfelder für mögliche Antworten. Sie erhalten weitere Felder durch einen Klick auf den Button AUSWAHL HINZUFÜGEN. Im Feld UMFRAGESTATUS legen Sie fest, ob die Umfrage aktiv, also eine Abstimmung möglich ist. Im Feld UMFRAGEDAUER können Sie anhand vorgegebener Werte die Umfrage auf einen bestimmte Zeit begrenzen oder unbegrenzt laufen lassen. Geben Sie der Umfrage noch einen URL-Alias mit auf den Weg (Abbildung 8.3).
198
8.1 Das Modul Poll: Umfragen erstellen und auswerten
Abbildung 8.2: Eingabe der Umfrage
Abbildung 8.3: URL-Alias für die Umfrage Nach einem Klick auf den Button SPEICHERN ist die Umfrage im System. Nun stellt sich noch die Frage, wie die Besucher auf Ihrer Website auf die Umfrage aufmerksam werden. Sie könnten einen Menü-Link im Bearbeitungsformular der Umfrage erzeugen über VERWALTEN – STRUKTURIERUNG – MENÜS, oder Sie positionieren den vom Poll-Modul erzeugten Block an einer prominenten Stelle, was ich Ihnen im Folgenden zeigen möchte.
8.1.4
Schritt 4 – Umfrage-Block positionieren
In dem vom Poll-Modul mitgelieferten Block ermöglichen Sie den Besuchern Ihrer Website eine Abstimmungsmöglichkeit zur neuesten Umfrage. Im Bereich VERWALTEN – STRUKTURIERUNG – BLÖCKE können Sie den Block NEUESTE UMFRAGE an eine Stelle Ihrer Wahl auf der Website positionieren (Abbildung 8.4).
199
8 Umfrage, Forum und WYSIWYG-Editoren
Abbildung 8.4: Positionierung Block – Neueste Umfrage
8.1.5
Schritt 5 – Abstimmen
Der Block wird jetzt auf der Website angezeigt (Abbildung 8.5).
Abbildung 8.5: Umfrage auf der Website Nach der Stimmabgabe erscheinen die Ergebnisse der Umfrage und ein Link zu weiteren Umfragen. Wenn Ihnen die Beschriftung STIMME des Buttons nicht gefällt, können Sie sie per VERWALTEN – INHALTSVERWALTUNG – OBERFLÄCHE ÜBERSETZEN auch in ABSTIMMEN ändern, das klingt freundlicher.
8.1.6
Schritt 6 – Umfrage beenden und auswerten
Wenn der Zeitraum der Umfrage abgelaufen ist, können keine Stimmen mehr abgegeben werden. Da ich in diesem Fall wirklich an dem Grund Ihres Interesses für Drupal interessiert bin, würde ich mich über Ihre Stimme zur oben beschriebenen Umfrage freuen. http://drupal.cocoate.com/de/umfrage/warum-drupal
200
8.2 Ein Diskussionsforum
8.2
Ein Diskussionsforum
Ein Diskussionsforum ist ebenfalls in den Kernmodulen von Drupal enthalten. Auch hier möchte ich Ihnen ein reales Beispiel zeigen. Auf der Website zum Buch werden nach der Veröffentlichung des Buches Rezepte für Konfigurationsszenarien in Drupal veröffentlicht. Um herauszubekommen, was Sie interessiert, und um eine anschließende Diskussionsmöglichkeit zu bieten, lege ich ein Wünsch dir ein Drupal-RezeptForum an. Sie können das Beispiel in Ihrer lokalen Website nachvollziehen.
8.2.1
Schritt 1 – Aktivierung des Forum-Moduls
Zunächst müssen Sie das Forum-Modul aktivieren (VERWALTEN – STRUKTURIERUNG – MODULE). Damit das Forum-Modul funktioniert, müssen auch das Taxonomy- und das Comment-Modul aktiviert sein. Sollten diese beiden Module nicht aktiviert sein, weist Drupal Sie darauf hin und aktiviert die beiden Module auf Nachfrage automatisch. In meinem Fall sind beide Module bereits aktiviert (Abbildung 8.6).
Abbildung 8.6: Forum-Modul Das Forum-Modul stellt mehrere Dinge zur Verfügung: einen neuen Inhaltstyp einen deaktivierten Link zum neuen Forenbereich im Navigationsmenü einen neuen Bereich Forum in VERWALTEN – INHALT einen Block Neue Forenbeiträge einen Block Aktive Foreneinträge
Im Aktive Foreneinträge-Block werden die Foreneinträge mit den meisten Kommentaren angezeigt.
8.2.2
Schritt 2 – Berechtigungen: Wer darf was?
Jetzt müssen Sie festlegen, welche Benutzerrolle welche Berechtigungen besitzen soll (VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN). Ich erlaube der Benutzerrolle Authentifizierter Benutzer, neue Forumsbeiträge zu erstellen, eigene Forenbeiträge zu bearbeiten und zu löschen (Abbildung 8.7).
201
8 Umfrage, Forum und WYSIWYG-Editoren
Abbildung 8.7: Berechtigungen im Forum
8.2.3
Schritt 3 – Einen Ordner für das Forum erstellen
Ein Forenbereich in Drupals Forum-Modul ist folgendermaßen aufgebaut: Ein Forumsordner (Container) kann beliebig viele Foren enthalten. Ein Forum kann beliebig viele Beiträge enthalten (Inhalte, Threads). Ein Beitrag kann beliebig viele Kommentare enthalten.
Bevor Sie einen Forumsbeitrag erstellen können, benötigen Sie ein Forum. Bevor Sie ein Forum erstellen können, benötigen Sie einen Forumscontainer. Sie erstellen einen neuen Forumscontainer unter dem Link VERWALTEN – INHALTSVERWALTUNG – FOREN – ORDNER ANLEGEN (Abbildung 8.8).
Abbildung 8.8: Neuer Forumscontainer
202
8.2 Ein Diskussionsforum
Im Reiter EINSTELLUNGEN können Sie die Sortierung der Beiträge und Kommentare festlegen sowie die Anzahl der Forumsbeiträge auf einer Seite und die Anzahl an Kommentaren, ab der ein Forumseintrag als »hot« eingestuft wird und mit einem speziellen Icon versehen wird.
8.2.4
Schritt 4 – Ein neues Forum erstellen
Jetzt können Sie mit dem Reiter FORUM ANLEGEN Ihr gewünschtes Forum erstellen. Achten Sie darauf, das neue Forum dem übergeordneten Container zuzuordnen. Sie können Ihre Foren beliebig tief schachteln (Abbildung 8.9).
Abbildung 8.9: Ein neues Forum Das Feld REIHENFOLGE bezieht sich auf die Sortierung des Forums im jeweiligen Container. Sie können die Reihenfolge und Zuordnung auch in der Forenübersicht per Maus vornehmen (Abbildung 8.10).
Abbildung 8.10: Forenübersicht
203
8 Umfrage, Forum und WYSIWYG-Editoren
8.2.5
Schritt 5 – Beiträge schreiben: Ein erster Rezeptwunsch
Alle angemeldeten Benutzer können jetzt Forumseinträge über den Link INHALT – FORUMSEINTRAG einstellen (Abbildung 8.11).
ERSTELLEN
Abbildung 8.11: Neuer Forenbeitrag
8.2.6
Schritt 6 – Den Forenbereich verlinken
Jetzt fehlt noch ein Link zum Forenbereich auf der Website. Genau genommen ist der Link schon vorhanden, Sie müssen ihn nur noch aktivieren und an eine Stelle Ihrer Wahl positionieren. Klicken Sie auf VERWALTUNG – STRUKTIERUNG – MENÜS – NAVIGATION. Dort finden Sie den deaktivierten Menüeintrag FOREN (Abbildung 8.12).
Abbildung 8.12: Menüpunkt zuordnen Klicken Sie auf den Link BEARBEITEN, um den Menüeintrag zum Forenbereich zu aktivieren und einem Menü Ihrer Wahl zuzuordnen. Nach dem Abspeichern erscheint der Menüeintrag auf der Website, und Sie haben einen Forenbereich (Abbildung 8.13).
204
8.3 WYSIWYG-Editoren erleichtern Benutzern das Leben
Abbildung 8.13: Forenbereich auf der Website
8.3
WYSIWYG-Editoren erleichtern Benutzern das Leben
Ein What You See Is What You Get-Editor kommt bei den Benutzern Ihrer Website immer gut an. Die Open Source-Projekte TinyMCE1 und FCKeditor2 werden oft für Content Management-Systeme RSS Feed eingesetzt, und auch Drupal verfügt über entspechende Module, um diese Editoren zu verwenden. Das Prinzip ist bei beiden Projekten gleich: Beide Editoren sind sich von der Leistungsfähigkeit her ebenbürtig. Die Entscheidung, welchen Editor man nimmt, ist in meinen Augen eher eine Gewöhnungs- und Geschmackssache. In diesem Kapitel zeige ich Ihnen ausführlich, wie der TinyMCE-Editor installiert wird. Den FCKeditor können Sie danach spielend allein installieren. Beide Editoren können im System verbleiben. Sie können beide ausprobieren und sich dann für einen entscheiden. Sie benötigen zum einen den Quellcode des Editors. Zum anderen müssen Sie ein Drupal-Modul, mit dem Sie die Konfiguration und
die Berechtigungen vornehmen können, installieren. Beide Editoren sind mit einem Dateimanager kombinierbar (IMCE-Modul), der es Ihren Benutzern erlaubt, Bilder über den Editor hochzuladen und automatisch klein rechnen zu lassen. Diese Bilder werden in einem eigenen Ordner pro Benutzer abgespeichert und können später von diesem Benutzer in anderen Inhalten wiederverwendet werden.
1 2
http://tinymce.moxiecode.com/ http://www.fckeditor.net/
205
8 Umfrage, Forum und WYSIWYG-Editoren
8.3.1
TinyMCE-Editor
Um den TinyMCE-Editor installieren zu können, benötigen Sie den Programmcode des Editors und das korrespondierende Drupal-Modul. Nach der Installation müssen Sie Berechtigungen vergeben und Benutzerprofile erstellen.
Schritt 1 – Installation des Drupal-Moduls TinyMCE Laden Sie sich zunächst das Drupal-Module TinyMCE von der CD oder der Projektseite.3 Entpacken Sie die Datei tinymce-6.x-1.1-dev.tar.gz in das Verzeichnis /sites/all/modules (Abbildung 8.14).
Abbildung 8.14: Speicherort des TinyMCE-Drupal-Moduls
Schritt 2 – Installation des Editors TinyMCE Jetzt benötigen Sie den eigentlichen TinyMCE-Editor. Sie finden Sie das Dateipaket auf der CD und natürlich auf der Projektseite von TinyMCE, und zwar auch als ganz normale ZIP-Datei.4 Entpacken Sie die Datei tinymce_3_0_9.zip in das TinyMCEModulverzeichnis. Sie haben danach zwei Ordner mit dem Namen TinyMCE (Abbildung 8.15), was zwar ein bisschen seltsam aussieht, aber völlig in Ordnung ist (siehe Abbildung 8.15).
Schritt 3 – Aktivierung des Moduls und Setzen der Berechtigungen Unter VERWALTEN – STRUKTURIERUNG – MODULE finden Sie einen neuen Eintrag. Aktivieren Sie dort das Modul TinyMCE und speichern Sie Ihre Wahl ab. Anschließend sollten Sie unter VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN entscheiden, wer grundsätzlich den Editor zu Gesicht bekommen darf (Abbildung 8.16).
3 4
http://drupal.org/project/tinymce http://tinymce.moxiecode.com/download.php
206
8.3 WYSIWYG-Editoren erleichtern Benutzern das Leben
Abbildung 8.15: Speicherort des TinyMCE-Editors
Abbildung 8.16: Zugriffsberechtigungen TinyMCE
Schritt 4 – Erstellen von Editorprofilen Unter VERWALTEN – STRUKTURIERUNG – EINSTELLUNGEN – TINYMCE müssen Sie jetzt mindestens ein Profil anlegen. Die Idee hinter diesen Profilen ist, dass unterschiedliche Rollen unterschiedliche Anforderungen an den Editor haben. Sie werden auf der Seite auch darauf hingewiesen (derzeit noch in englischer Sprache), ein Profil zu erstellen. Klicken Sie dazu auf den Link CREATE A NEW PROFILE. Sie sehen Einstellmöglichkeiten zu den Bereichen BASIC SETUP, SICHTBARBEIT, BUTPLUGINS EDITOR APPEARANCE, CLEANUP AND OUTPUT, CSS. Ich werde kurz die wichtigsten Einstellungen ansprechen:
TONS AND
BASIC SETUP: Hier legen Sie einen Namen für das Profil fest. Der Name kann aus
beliebigen Zeichen bestehen. Wählen Sie außerdem im Feld DEFAULT STATE den Wert enabled. Damit schalten Sie den Editor standardmäßig ein. Sie müssen hier mindestens einer Benutzerrolle erlauben, dieses Profil zu nutzen. SICHTBARKEIT: Hier wählen Sie, wann der Editor angezeigt werden soll und wann
nicht. Das Prinzip ist dasselbe wie bei den Blöcken (siehe Abschnitt 6.1, Blöcke). Lassen Sie auch diese Einstellungen unverändert. BUTTONS AND PLUGINS: Hier haben Sie die Möglichkeit, jedes Feature von Tiny-
MCE zu aktivieren oder zu deaktivieren. Sie können damit genau festlegen, welche Editor-Icons in den einzelnen Profilen erscheinen sollen. Wenn Sie hier nichts auswählen, erscheint eine Standardauswahl von Icons.
207
8 Umfrage, Forum und WYSIWYG-Editoren
EDITOR APPEARANCE: Hier wählen Sie, wo der Editor erscheinen soll. Ich bevorzuge die Editorleiste (TOOLBAR) im oberen Bereich (top) und die Ausrichtung linksbündig (TOOLBAR ALIGNMENT left). Standardmäßig befindet sich die Editorleiste im unteren Bereich (bottom) und in der Mitte (center). CLEANUP AND OUTPUT: Hier legen Sie fest, wie der HTML-Code aussehen soll. Die-
se Einstellungen sind unter anderem praktisch, um Daten, die per Copy & Paste eingefügt werden, zu säubern. CSS: Ein oft vergessener Parameter befindet sich im Bereich CSS. Die CSS-Dateien
mancher Themes »beißen« sich mit dem Editor. Das Layout wird im schlimmsten Fall gestört oder der Editor gar nicht angezeigt. Wenn Sie bei Editor-CSS tinyMCE default auswählen, wird das Editor-CSS explizit verwendet, und Sie liegen damit auf der sicheren Seite.
Schritt 5 – Texteingabe Der Editor steht jetzt bei der Texteingabe zur Verfügung (Abbildung 8.17).
Abbildung 8.17: TinyMCE-Editor mit Pressemeldung Am rechten unteren Rand des Editors befindet sich ein Anfasser, mit dem Sie das Editorfenster nach Bedarf größer und kleiner ziehen können. Die Bedienung des Editors ist weitgehend selbsterklärend. Auf der Projektseite von TinyMCE finden Sie ein Dokumentationswiki.5 5
http://wiki.moxiecode.com/index.php/Main_Page
208
8.3 WYSIWYG-Editoren erleichtern Benutzern das Leben
8.3.2
FCKeditor
Nach der Installation des TinyMCE werden Sie die Installation von FCKeditor lächelnd alleine durchführen können. Das Drupal FCKeditor-Modul liegt zum jetzigen Zeitpunkt (Juni 2008) bereits in einer stabilen, für produktive Websites geeigneten Version vor. Die Installation ist analog zu der des TinyMCE: FCKeditor-Drupal-Modul laden und installieren (fckeditor-6.x-1.2-1.tar.gz).6 FCKeditor-Quellcode laden und in das Verzeichnis des Moduls kopieren (FCKeditor_2.6.zip). Der Ordner /fckeditor/fckeditor besteht bereits.7 FCKeditor-Modul aktivieren (VERWALTEN – STRUKTURIERUNG – MODULE) und das
TinyMCE-Modul deaktivieren. Berechtigungen setzen (VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN). In VERWALTEN – EINSTELLUNGEN – FCKEDITOR ein Profil erstellen (optional, da be-
reits Standard-Profile gesetzt sind). Ausprobieren: Inhalt erstellen und Text im neuen Editor eingeben.
So weit, so einfach. Da das TinyMCE-Modul von Drupal erst in der Entwicklungsversion vorliegt, verzichte ich an dieser Stelle auf eine Konfiguration mit zwei Editoren und schlage vor, zunächst nur einen Editor im System zu verwenden. Sie können beide Editoren installiert lassen und einfach das TinyMCE-Modul deaktivieren und dafür das FCKeditor-Modul aktivieren. Der FCKeditor arbeitet ebenfalls mit Profilen und bringt nach der Installation bereits zwei vordefinierte Profile mit. Direkt nach der Aktivierung und Zuweisung der Benutzerrechte sollten Sie den Editor im Textfenster sehen (Abbildung 8.18). Exkurs: Wie geht das jetzt aber mit zwei Editoren im System? Es ist tatsächlich möglich, beliebig viele Editoren auf der Website zu verwenden. Die Situation ist auch gar nicht so selten. Benutzer haben immer so ihre Vorlieben, und oft benötigt man unterschiedliche Editoren für unterschiedliche Benutzer. Eine mögliche Lösung ist die Erstellung von drei Benutzerrollen (Rolle TinyMCE, Rolle FCKeditor, Rolle kein Editor). Anschließend müssen Sie die Benutzerberechtigungen an diese Rollen vergeben und die Zugriffsrechte dieser Rollen setzen. In den einzelnen Benutzerkonten müssen Sie dann die Rollenzugehörigkeiten per Checkbox setzen.
6 7
http://drupal.org/project/fckeditor http://www.fckeditor.net/download
209
8 Umfrage, Forum und WYSIWYG-Editoren
Abbildung 8.18: FCKeditor mit Pressemeldung
8.4
IMCE: Eine eigene Medienbibliothek für jeden Benutzer
In beiden Editoren befinden sich Icons für das Einfügen von Bildern und von Links. In beiden Fällen muss der Benutzer jedoch manuell eine URL eingeben. An dieser Stelle sind Benutzer oft überfordert und wären glücklich über einen eigenen Ordner mit allen Dateien, die man jemals hochgeladen hat, und am besten noch mit einer Möglichkeit, Bilder zu resizen, d. h. ihre Größe zu verändern. Sie als Administrator wären glücklich über eine Möglichkeit, den maximalen Upload pro Benutzerrolle zu begrenzen. Alle diese Möglichkeiten bietet das IMCE-Modul, das allerdings nicht im Drupalkern enthalten ist. Ich werde die Installation und Zusammenarbeit am Beispiel des FCKeditors zeigen.
210
8.4 IMCE: Eine eigene Medienbibliothek für jeden Benutzer
8.4.1
Schritt 1 – Installation des IMCE-Moduls
Sie müssen das IMCE8-Modul von der Projektseite oder der CD laden, auspacken, installieren und im Bereich VERWALTEN – STRUKTURIERUNG – MODULE aktivieren.
8.4.2
Schritt 2 – Benutzerberechtigungen für den FCKeditor
Jetzt sollten Sie die Benutzerberechtigungen für den FCKeditor überprüfen und ggfs. setzen, vor allem das Upload-Recht (Abbildung 8.19).
Abbildung 8.19: Upload-Berechtigungen im FCKeditor
8.4.3
Schritt 3 – IMCE Dateiverwalter im Editor aktivieren
Im Bereich VERWALTEN – EINSTELLUNGEN – FCKEDITOR – ADVANCED PROFILE BEARBEITEN müssen Sie die IMCE-Dateiverwaltung im Formularbereich FILE-BROWSER SETTINGS einschalten bzw. auf den Wert true setzen (Abbildung 8.20).
Abbildung 8.20: Dateimanager in FCKeditor 8
http://drupal.org/project/imce
211
8 Umfrage, Forum und WYSIWYG-Editoren
8.4.4
Schritt 4 – IMCE benutzen
Wenn Sie jetzt einen Inhalt bearbeiten (Ihre Pressemeldung beispielsweise), so können Sie durch einen Klick auf das Bild-Icon im Editor den Bild-Dialog aufrufen. In diesem Dialog sehen Sie einen neuen Button mit dem Namen BROWSE SERVER (Abbildung 8.21).
Abbildung 8.21: Dateiverwaltung (1) Wenn Sie auf diesen Button klicken, wird der Hintergrund ein wenig abgeblendet, und das Dateimanager-Fenster von IMCE wird angezeigt (Abbildung 8.22).
Abbildung 8.22: Dateiverwaltung (2)
212
8.5 Inhalte per Fernsteuerung bearbeiten
Sie können in diesem Fenster Ihre Dateien verwalten und per Mausklick in Ihren Inhalt einfügen. Sie können hier Dateien hochladen, Bilder resizen, Thumbnails erstellen etc. In Abbildung 8.23 sehen Sie die Ansicht des Administrators. Die Konfiguration von IMCE, die erlaubten Dateitypen, Benutzerrollen, maximalen Uploadgrößen können Sie im Bereich VERWALTEN – EINSTELLUNGEN – IMCE vornehmen.
8.5
Inhalte per Fernsteuerung bearbeiten
In Drupal ist ein Mechanismus mit dem kryptischen Namen XML-RPC9 eingebaut. Er bietet die Möglichkeit, Inhalte aus anderen Quellen per »Fernsteuerung« in Ihr Drupal einzustellen. Ganz konkret heißt das, Sie können Ihre Pressemeldung im Bürosoftwarepaket OpenOffice10 oder der Online-Text- und Tabellenverarbeitung Google Docs11 schreiben, Ihre Fotos bei der Fotocommunity Flickr12 und Ihre Videos bei Youtube13 hochladen, und all diese Daten können Sie dann »per Mausklick« an Ihre Website schicken.
8.5.1
Das Modul Blog API aktivieren
Das ist möglich durch das Modul Blog API. Es ist im Kern von Drupal enthalten, und Sie müssen es unter VERWALTEN – STRUKTURIERUNG – MODULE nur aktivieren. Nach der Aktivierung müssen Sie unter VERWALTEN – EINSTELLUNGEN – BLOG API die Inhaltstypen festlegen, für die Sie eine Fernsteuerung erlauben wollen (Abbildung 8.23).
Abbildung 8.23: Inhaltstypen für externe Postings freischalten
9 10 11 12 13
http://de.wikipedia.org/wiki/XMLRPC http://de.openoffice.org http://docs.google.com/ http://flickr.com http://de.youtube.com/
213
8 Umfrage, Forum und WYSIWYG-Editoren
Drupal unterstützt in dieser API das Meta Weblog-Format14 und das Blogger-Format. In allen externen Systemen wird außerdem noch der Endpunkt für die XML-RPCVerbindung benötigt. Dieser Endpunkt ist der »Ansprechpartner« des externen Systems, in unserem Fall die Datei xmlrpc.php. Da Ihr lokales Drupal vermutlich auch nur lokal, also in Ihrem eigenen Netzwerk, erreichbar ist, klappt die Kommunikation nur vom ebenfalls lokalen evtl. bei Ihnen vorhandenen OpenOffice aus, nicht aber von externen Diensten wie Flickr.com. Diese Dienste können mit der Domain http://localhost natürlich nichts anfangen. Wenn Sie nicht hinter einem DSL-Internet-Router sitzen, sondern eine Modem- oder ISDN-Verbindung Ihr Eigen nennen, könnte es sein, dass Ihre IP-Adresse aus dem Internet erreichbar ist. In diesem Fall können Sie auch mit den externen Diensten auf Ihr lokales Drupal zugreifen, wenn Sie Ihre IP-Adresse direkt als Endpunkt dort angeben. Um die Sache ein wenig zu vereinfachen, hier zwei mögliche Endpunkte zum Ausprobieren: Ihr lokales Drupal wäre: http://localhost/drupal62/xmlrpc.php Meine Buchwebsite im Internet: http://drupal.cocoate.com/xmlrpc.php
Außerdem benötigen Sie noch ein Benutzerkonto mit Benutzernamen und Passwort auf der Site zum Buch. Sie können gern die Buchseite zum Ausprobieren nutzen. Die Zugriffsberechtigungen werden von der externen Anwendung aus dem Benutzerkonto gelesen. Wenn Sie alle Daten beisammen haben, kann es losgehen.
8.5.2
Fotos von Flickr direkt auf Ihre Site posten
In Flickr liegen beispielsweise alle Screenshots aus diesem Buch. In Ihrem Flickr-Konto können Sie die Verbindung zu Ihrer Drupal-Website aufnehmen. Flickr merkt, dass Sie mehrere Inhaltstypen freigegeben haben und weist Sie darauf hin. Pro Inhaltstyp müssen Sie einen Eintrag in Ihrer Blogliste erstellen (Abbildung 8.24) und dann das entsprechende Foto auswählen und den besagten »Mausklick« ausführen (Abbildung 8.25). Das Ergebnis ist in diesem Fall ein Blogeintrag auf der Buchseite. http://drupal.cocoate.com/de/node/28 Flickr schickt HTML-Code mit den entsprechenden Dateiverweisen an Drupal. Die Bilddatei verbleibt physikalisch auf dem Flickr-Server.
14 http://en.wikipedia.org/wiki/MetaWeblog
214
8.5 Inhalte per Fernsteuerung bearbeiten
Abbildung 8.24: Verbundene XML-RPC-Websites auf Flickr
Abbildung 8.25: Aus Flickr an die Website senden
8.5.3
Google Docs
Wenn Sie jemals im Team mit Google Docs gearbeitet haben, sind Sie sicherlich fasziniert von den Möglichkeiten einer Online-Textverarbeitung, bei der viele Autoren an einem Text arbeiten können. In Abbildung 8.26 sehen Sie eine Beispieldatei in Google Docs. Auch Google bietet die Möglichkeit, die dort erstellten Texte in Ihre Website zu übertragen. Dabei ist es von Google Docs aus auch möglich, den Eintrag auf der Website zu aktualisieren und zu löschen (Abbildung 8.27). Der Eintrag wird wie bei Flickr auch als HTML Code übertragen. Auch hier verbleibt das Bild auf dem Google-Server. Unter http://drupal.cocoate.com/de/node/30 können Sie sich das Ergebnis ansehen. Das von Google gelieferte HTML lässt sich auch im FCKeditor gut bearbeiten (Abbildung 8.28).
215
8 Umfrage, Forum und WYSIWYG-Editoren
Abbildung 8.26: Text in Google Docs
Abbildung 8.27: Text aus Google in Ihrer Drupal-Website
Abbildung 8.28: Das Google-Dokument auf der Drupal-Website im FCKeditor
216
8.5 Inhalte per Fernsteuerung bearbeiten
8.5.4
OpenOffice.org
Für OpenOffice gibt es von Sun den Weblog Publisher, den Sie momentan allerdings für 9,99 US $ kaufen müssen und danach auf bis zu fünf Rechnern verwenden dürfen.15 Es geht mir hier darum, die Möglichkeiten zu demonstrieren. Die Idee ist, dass Sie OpenOffice als Frontend für Ihre Beiträge auf Ihrer Drupal-Website benutzen. Nach der üblichen Konfiguration mit XMP-RPC-Endpunkt, Benutzername und Passwort können Sie nicht nur einzelne Texte auf die Website übertragen, Sie können alle Einträge aus Ihrem Benutzerkonto mit dem in den Blogeinstellungen spezifizierten Inhaltstyp bearbeiten, also all Ihre Pressemeldungen, all Ihre Blogs etc. Um bei unserem Beispiel zu bleiben, hier die Übersicht der Einträge dieses Kapitels auf http:// drupal.cocoate.com (Abbildung 8.29).
Abbildung 8.29: Einträge aus Drupal-Websites bearbeiten Sie können also beispielsweise den Eintrag, den Sie mit Google Docs erstellt haben, in OpenOffice wieder ändern und dann in die Website zurückspeichern. Dazu müssen Sie nur das Blog und den entprechenden Eintrag auswählen (Abbildung 8.30). Wenn Sie den Inhaltstyp auf der Website für Versionierung (Revision) aktiviert haben (Abschnitt 5.5.1, Inhaltstypen bearbeiten und hinzufügen), so erzeugt Drupal sogar bei jeder neuen Aktualisierung eine Version des Inhalts, die natürlich auch wieder herstellbar ist.
15 http://extensions.services.openoffice.org/project/swp
217
8 Umfrage, Forum und WYSIWYG-Editoren
Abbildung 8.30: Inhaltsbearbeitung der Website-Inhalte in OpenOffice
8.6
Inhalt und die Zukunft?
Gerade die letzten drei Beispiele haben sicher deutlich gezeigt, wohin die Reise geht. Es kristallisiert sich immer mehr heraus, dass es Plattformen für »Rohstoffe« gibt und vermehrt geben wird. Diese Rohstoffplattformen können Texte, Bilder, Videos, Musikdateien, Landkarten oder was auch immer speichern und bieten ihrerseits APIs an, um auf die Daten wieder zugreifen zu können. Websites, die diese Rohstoffe benutzen und individuell kombinierbar machen, können Sie bereits lauffähig im Web bei iGoogle16 und Netvibes17 erleben. Bei den von uns verwendeten XML-RPC-Möglichkeiten werden Informationen noch teilweise redundant gespeichert. Was liegt da näher, als die Inhalte gleich per Eingabeformatfilter oder Abfragesprache im Inhaltstyp direkt einzubinden? Mit dem Flickr-Modul18 können Sie beispielsweise per Eingabeformatfilter sehr einfach FlickrBilder in Ihren Inhalt auf der Website einfügen. Solche Eingabeformatfilter existieren für die unterschiedlichsten Zwecke. Aber auch hier benötigen Sie immer noch einen Inhalt.
16 http://www.google.com/ig 17 http://www.netvibes.com/ 18 http://drupal.org/project/Flickr
218
8.6 Inhalt und die Zukunft?
In Drupal 7 wird es bereits im Kern ein neues Modul namens SPARQL geben.19 SPARQL ist eine Abfragesprache für so genannte RDF-Graphen.20 Ein RDF-Graph ist unabhängig von seiner Darstellungsform. Sie können also beispielsweise RDF-Graphen aus Wikipedia (Enzyklopädie) mit RDF-Graphen aus Google Maps (Landkarten) und dem RDF-Graph Ihrer Google Docs-Tabelle kombinieren, in der beispielsweise Namen und Adressen von Seminarteilnehmern oder Kunden stehen. Alles zusammen können Sie dann als Liste und als Kartendarstellung auf Ihrer Website anzeigen. Die RDF-Graphen und die Abfragesprache SPARQL ermöglichen die Basis für die Darstellung von Inhalten auf Ihrer Website. Sie benutzen damit nicht nur Ihre Datenbank, sondern quasi das gesamte Internet als Datenbank und Drupal als individuelle Benutzeroberfläche zur individuellen Kombination gemäß Ihres gewünschten Geschäftszwecks. Software wie Drupal übernimmt in diesem Szenario die Rolle eines einfach formbaren Klebstoffes für all diese Daten. Die Wahl des »Rohstofflieferanten«, der Hardware, des Betriebssystems und der Benutzeroberfläche ist dabei völlig in der Hand des Anwenders bzw. Serviceanbieters. Wenn Ihnen das ein wenig abstrakt erscheint, dann blättern Sie mal zurück zu Abschnitt 1.2.2, Das Web wird dynamisch. Mir kommt es so vor, als wenn die Ideen von Sun und ihrem Netzcomputer gerade mit der Idee von Microsoft, dass auf jedem Schreibtisch ein PC stehen wird, auf eine sehr elegante Art und Weise verschmelzen.
19 http://drupal.org/project/sparql 20 http://drupal.org/project/rdf
219
9 Nützliches im Core In diesem Kapitel sind wir an dem Punkt angelangt, wo bei Ihnen sicher der Funke der Begeisterung für Drupal übergesprungen ist :-). Die richtig tollen Sachen kommen auch noch in den folgenden Kapiteln. Außer diesen »angesagten« Themen wie beispielsweise Theme-Entwicklung, WYSIWYG-Editoren, CCK, Views, JQuery, Free Tagging und vieles andere mehr gibt es auch die eher unscheinbaren Dinge, die aber im Laufe der Zeit immer mehr an Bedeutung gewinnen und schnell zu Punkten werden, die darüber entscheiden, ob man dieses oder jenes CMS benutzt. Beginnen wir mit dem Hilfesystem.
9.1
Die eingebaute Hilfe: Verwalten – Hilfe
Ihnen ist sicher schon aufgefallen, dass man bei Drupal – ähnlich wie beim Fahrrad fahren – plötzlich mal das Gefühl hat: »Hey, es funktioniert – Ich falle nicht um«. Nach dieser freudigen Erkenntnis passiert es einem allerdings oft, dass man denkt: »Hm, was bedeutet nun wieder dieses Feld oder jene Einstellung?« Bei Core-Modulen befindet sich unter den entsprechenden Feldern und Einstellungen garantiert ein kleiner Hilfetext und meist auch ein Link zu weiterführenden Erklärungen. Jedes Feld hat einen Titel, einen Wert und eine Beschreibung. Diese Kleinigkeiten nimmt man anfangs gar nicht wahr, weiß sie aber schnell zu schätzen. An vielen Stellen können Sie als Administrator Ihren Benutzern helfen, indem Sie verständliche Beschreibungen für Inhaltstypen (VERWALTEN – INHALTSVERWALTUNG – INHALTSYTPEN – BEARBEITEN), griffige Texte in E-Mails (VERWALTEN – BENUTZERVERWALTUNG – BENUTZEREINSTELLUNGEN) und eine Beschreibung der Website erstellen (VERWALTEN – EINSTELLUNGEN – WEBSITE). Auch Ihr Drupal enthält ein Online-Handbuch, das Ihnen schnell weiterhelfen kann. Sie können es als Aministrator aufrufen unter VERWALTEN – HILFE (Abbildung 9.1). Jedes installierte Modul kann einen Hilfetext beisteuern und damit seine eigene Dokumentation mitbringen.
9 Nützliches im Core
Abbildung 9.1: Hilfetheme im Drupal-Handbuch
9.2
Gesammelte Infos: Verwalten – Berichte
Im Bereich VERWALTEN – BERICHTE geht es um Informationen, die Ihr System sammelt und die Sie hier einsehen können.
9.2.1
Neue Log-Einträge
Im Bereich NEUE LOG-EINTRÄGE finden Sie die Ergebnisse aus dem Database LoggingModul, das wir schon in Abschnitt 7.10, Logging and alerts, angesprochen haben (Abbildung 9.2).
Abbildung 9.2: Neueste Logeinträge
222
9.2 Gesammelte Infos: Verwalten – Berichte
Sie können die Meldungen filtern nach TYP und nach SCHWEREGRAD. Die neuesten Meldungen stehen standardmäßig oben auf der Liste. Sie können durch einen Klick auf die Überschrift die Sortierung ändern. Diese Meldungen können Gold wert sein, wenn Sie eine Drupal-Website betreiben. Schauen Sie unbedingt regelmäßig in diesem Bereich vorbei.
9.2.2
Häufigste »Nicht gefunden«-Fehler
In diesem Bereich finden Sie eine Auflistung der »nicht gefundenen« Seiten. Eine nicht gefundene Seite hat im HTTP-Protokoll den Code 404. Die Anzahl der Aufrufe merkt sich Drupal auch und sortiert die Liste gleich nach der Häufigkeit. Sehen Sie sich die Links an und versuchen Sie herauszubekommen, warum die Seiten nicht gefunden worden sind. Sie können übrigens eine individuelle »Nicht gefunden«Website definieren (siehe Abschnitt 7.6, Fehlermeldungen).
9.2.3
Häufigste »Zugriff verboten«-Fehler
In diesem Bereich finden Sie eine Auflistung der »Zugriff verboten«-Seiten. Eine solche Seite hat im HTTP-Protokoll den Code 403. Auch hier merkt sich Drupal die Aufrufe und sortiert die Liste. Diese Liste ist interessant, um Ihre Zugriffsberechtigungen zu überprüfen. In der Abbildung 9.3 beispielsweise wurde dreimal versucht, das Kontakformular aufzurufen, was Drupal mit einer »Zugriff verboten«-Meldung quittiert hat. Im Normalfall will man das ja eher nicht. Zur Lösung des Problems sollten Sie Gästen den Zugriff auf das Kontaktformular erlauben.
Abbildung 9.3: Fehlerliste
9.2.4
Statusbericht
Der Statusbericht ist eine praktische Sache. »Je grüner, desto gut«, könnte man sagen, wenn man den Bericht sieht (Abbildung 9.4). Der Statusbericht gibt Auskunft über: DRUPAL: Welche Version ist auf dieser Website installiert? AKTUALISIERUNGSBENACHRICHTIGUNGEN: Sie werden an verschiedenen Stellen auf
notwendige Modul-, Theme- und Systemaktualisierungen hingewiesen, beispielsweise wenn Sie VERWALTEN – STUKTURIERUNG – MODULE aufrufen.
223
9 Nützliches im Core
Abbildung 9.4: Statusbericht AKTUALISIERUNGSSTATUS DES DRUPAL-KERN: Wenn hier aktuell steht, arbeiten Sie mit
der neuesten Version eines Drupal-Zweigs (momentan Version 6.x oder 5.x). Wenn hier Handlungsbedarf besteht, müssen Sie ein System-Update einspielen und das update.php-Script laufen lassen (siehe Abschnitt 9.3.3, Schritt 3 – Datenbank-Update ausführen).
224
9.2 Gesammelte Infos: Verwalten – Berichte
AKTUALISIERUNGSSTATUS VON MODULEN UND THEMES: Wenn es hier rot eingefärbt
ist, gibt es für ein contributed Modul, das Sie benutzen, eine neue Version. Drupal unterscheidet dabei zwischen stabilen und Entwicklungsversionen und zwischen Sicherheitsupdates und »einfach« neuen Versionen (Abschnitt 9.2.5, Verfügbare Aktualisierungen). CRON-WARTUNGSAUFGABEN: Hier erfahren Sie, wann das letzte Mal ein Cron-Lauf
durchgeführt worden ist (siehe auch Abschnitt 6.4.2, Poormanscron: Regelmäßige Aufgaben ohne echten Cron). DATEISYSTEM: Sie sehen hier, ob der Ordner, den Sie als Dateibasis angegeben ha-
ben, vom Webserver beschreibbar ist (siehe Abschnitt 7.3, Dateisystem: Ordner für Uploads festlegen). Sollte das nicht der Fall sein, müssen Sie die Dateizugriffsrechte entsprechend ändern (siehe Exkurs in Abschnitt 2.7, Installation beim Provider). Außerdem wird Ihnen die Art der Download-Methode angezeigt (siehe Abschnitt 7.3, Dateisystem: Ordner für Uploads festlegen). DATENBANK-UPDATES: Immer, wenn Sie eine neue Version eines Moduls installieren, sollten Sie die Datei update.php aufrufen, um ein notwendiges Datenbank-Up-
date dieses Moduls zu veranlassen. KONFIGURATIONSDATEI: Hier wird untersucht, ob die Konfigurationsdatei in sites/ [websitename]/settings.php für den Webserver beschreibbar ist. Normalerweise
sorgt Drupal bei der Installation für diese Einstellung. Falls nicht, müssen Sie die Rechte entsprechend setzen (siehe Exkurs in Abschnitt 2.7, Installation beim Provider). GD-BIBLIOTHEK: Dies ist die Version der in Ihrem PHP-Interpreter integrierten GD
Library (siehe Abschnitt 7.2, Bild-Toolkit: Kompressionsdichte für JPG definieren). MYSQL-DATENBANK: Die Version Ihrer MySQL-Datenbank PHP: Die Version des PHP-Interpreters PHP REGISTER GLOBALS: Eine Einstellung in der PHP-Konfigurationsdatei, die glo-
bale Variablen betrifft. Vor der Version PHP 4.2 ein großes Sicherheitsthema, mittlerweile weitgehend entschärft.1 Hier sollte immer deaktiviert stehen. PHP-SPEICHERLIMIT: Der maximale Hauptspeicher, den ein Script belegen darf. Es handelt sich um die Einstellung memory_limit in der php.ini. Sie können den Wert in der Datei .htaccess durch die Zeile php_value memory_limit [gewünschter Speicher]M"
auf einen anderen Wert erhöhen. UNICODE-BIBLIOTHEK: Wer ist intern zuständig für die Unicode-Umwandlungen?
Bei PHP ist das die mbstring-Erweiterung.2
1 2
http://www.php-faq.de/q/q-sicherheit-global.html http://www.php.net/manual/de/intro.mbstring.php
225
9 Nützliches im Core
WEBSERVER: Webserver können so konfiguriert werden, dass sie im HTTP-Proto-
koll an den Browser eine Selbstauskunft geben. Darin wird beschrieben, welche Version der Webserver hat und was so alles installiert ist. Manchmal ist die Funktion aus Sicherheitsgründen deaktiviert. Der Wert, den Sie hier sehen, ist so eine Auskunft des Webservers. ZUGRIFF AUF UPDATE.PHP: Die Datei update.php darf nur durch den Administrator
aufrufbar sein. Das ist auch das Standardverhalten. Man kann diesen Schutz jedoch in der update.php deaktivieren. Hier sollte immer geschützt stehen.
9.2.5
Verfügbare Aktualisierungen
Es ist wichtig zu wissen, ob es Updates für Drupal oder installierte Module gibt. In Drupal 5 gab es zu diesem Zweck das Update Status-Modul als separat zu installierendes contributed module. In Drupal 6 hat dieses Modul den Weg in den Core geschafft und ist auch standardmäßig aktiviert. Das Modul überwacht die Versionen der installierten Module und Themes.
9.3
Wie aktualisiere ich ein Modul oder Theme?
Wie für dieses Kapitel geschaffen, gibt es auch prompt ein Update (Abbildung 9.5) für das Administrationsmenü aus Abschnitt 6.4.2, Neue Module installieren (contributed modules), und das Four Seasons-Theme von Jochen Meyer (siehe Abschnitt 6.6.2, Ein neues Theme installieren). Beim Drupal-Administrationsmenü gibt es eine interessante Situation. Das Modul, das wir in Abschnitt 6.4.2, Neue Module installieren (contributed modules), installiert haben, war eine Entwicklungsversion, erkennbar an dem -dev im Dateinamen. Jetzt existiert eine erste Beta-Version und weiterhin die Entwicklungsversion. Außerdem führt Sie ein Link zu den Release Notes, den in diesem Dateipaket erfolgten Änderungen. Sie haben jetzt drei Möglichkeiten: Sie lassen alles, wie es ist, und warten auf eine stabile Version. Sie aktualisieren auf die Beta-Version. Sie aktualisieren auf die aktuelle Entwicklungsversion.
Die erste Variante sollte eigentlich gar nicht auftauchen, weil es ratsam ist, online auf einem Produktionsserver nur stabile Versionen zu verwenden. Die letzte Variante entfällt ebenfalls, weil man nicht weiß, auf welchem Stand die Entwicklung gerade ist. Manchmal gibt es Hinweise in den Release Notes. Da wir momentan lokal arbeiten und neugierig auf die Änderungen sind, nehmen wir die Beta-Version.
226
9.3 Wie aktualisiere ich ein Modul oder Theme?
Abbildung 9.5: Updates von einem Modul und einem Theme
9.3.1
Schritt 1 – Anmeldung als Administrator
Melden Sie sich auf Ihrer Website mit dem Administrator-Konto an. Wenn Sie online arbeiten, versetzen Sie Ihre Website zunächst in den Wartungsmodus (siehe Abschnitt 7.13, Wartungsarbeiten). Wenn es irgendwie möglich ist, erstellen Sie zur Sicherheit ein Backup der Website (siehe Abschnitt A.1, Drupal-Backup und -Restore).
9.3.2
Schritt 2 – Admin Menü – Modul-Update einspielen
Laden Sie die Datei admin_menu-6.x-1.0-beta.tar.gz und entpacken Sie sie in das Verzeichnis /sites/all/modules. Wenn Sie direkt entpacken, werden alle alten Dateien überschrieben. Besser ist es, gerade bei Entwicklungs- und Beta-Versionen, wenn Sie das alte Verzeichnis admin_menu vorher löschen und dann das neue Verzeichnis einstellen. Sie laufen dann nicht Gefahr, dass Dateien von Vorversionen sich mit der neuen Version »mischen«. Wenn Sie diese Vorgehensweise bei einem Modul-Update Ihres WYSIWYG-Editors wählen, sollten Sie allerdings daran denken, dass in diesem Fall auch die eigentlichen Editor-Dateien verschwunden sind – also vorher sichern!
227
9 Nützliches im Core
Wenn Sie jetzt die Seite Verfügbare Aktualisierungen im Browser aktualisieren, verschwindet der rote Hinweistext. Drupal bemerkt das neue Modul. Im Statusbericht sehen Sie, dass kein Datenbank-Update notwendig ist.
9.3.3
Schritt 3 – Datenbank-Update ausführen
Obwohl der Statusbericht sagt, es sei nicht notwendig, schauen wir uns das Datenbank-Update mal an. Sie müssen als angemeldeter Administrator die Datei http://localhost/drupal62/update.php
ausführen und erhalten – momentan noch in englischer Sprache – Hinweise, die Website vor dem Update zu sichern. Der Update-Prozess verläuft in vier Schritten. Der erste Schritt dient zu Ihrer Information, was überhaupt passieren wird. Im zweiten Schritt sehen Sie die installierten Module, die Einfluss auf die Datenbank haben, mit einem evtl. Versionshinweis (in unserem Fall kein Hinweis) (Abbildung 9.6).
Abbildung 9.6: Datenbank-Update Schritt 2 Der dritte Schritt aktualisiert die Datenbank gemäß den Vorgaben und startet automatisch den vierten Schritt, in dem dann angezeigt wird, was geändert wurde. Von hier aus bringt Sie jeweils ein Link zurück auf die Website oder direkt in den Verwaltungsbereich. Exkurs Falls Sie Windows und XAMPP Lite benutzen, kann es sein, dass Sie hin und wieder Fehlermeldungen erhalten, die besagen, dass Sie scheinbar zu wenig Speicher zur Verfügung haben. Bei der Lösung dieses PHP-Konfigurationsproblems hilft Ihnen der Exkurs in Abschnitt 11.2, Installation der notwendigen Module.
228
9.4 Das Modul Statistics: Referrer, Seitenaufrufe und mehr
9.4
Das Modul Statistics: Referrer, Seitenaufrufe und mehr
Das Core-Modul Statistics bietet Ihnen weitere Daten über Ihre Website. Nach der Aktivierung des Moduls stehen Ihnen im Bereich VERWALTUNG – BERICHTE die fünf neuen Auswahlpunkte zur Verfügung. NEUESTE AUFRUFE – Hier sehen Sie die Liste der Pfade, die zuletzt auf Ihrer Website
aufgerufen worden sind. WICHTIGSTE REFERRER – Hier sehen Sie, von welcher Website die Besucher Ihrer
Website kommen WICHTIGSTE SEITEN – Hier sehen Sie die Inhalte mit den meisten Zugriffen. HÄUFIGSTE BESUCHER – Hier sehen Sie die Benutzer und bei Gästen die IP-Adresse
sowie die Häufigkeit der Besuche und die Zeit, die dieser Benutzer insgesamt auf der Website verbracht hat. ZUGRIFF AUF PROTOKOLLEINSTELLUNGEN – Bevor die Zugriffe gezählt werden,
müssen Sie die Zugriffsstatistik in diesem Bereich einschalten. In diesem Formular können Sie auch den Seitenzähler für die Ansicht auf der Website einschalten (Abbildung 9.7).
Abbildung 9.7: Zugriff auf Protokolleinstellungen
229
9 Nützliches im Core
Vergessen Sie nicht, in VERWALTEN – BENUTZERVERWALTUNG – BERECHTIGUNGEN die Berechtigung so zu setzen, dass die gewünschten Rollen den Beitrags-Zugriffzähler sehen (Abbildung 9.8).
Abbildung 9.8: Berechtigungen im Statistik-Modul
9.5
Tracker: Was tun denn eigentlich die Benutzer?
Was die Benutzer so auf der Webseite treiben, ist eine Frage, die alle gleichermaßen interessiert: Sie als Administrator, der wissen will, was auf der Website passiert, die Benutzer, die wissen wollen, was die anderen tun und die Gäste, die natürlich auch gern wissen möchten, ob es etwas Neues gibt.
Ein Modul, das all das bietet, ist das Tracker-Modul, das im Drupal-Core enthalten ist. Es stellt eine Liste der letzten Neuigkeiten zur Verfügung (Recent Posts). Das Interessante an dieser Liste ist, dass sie sortiert ist nach dem letzten Update. Dabei kann es sich um komplett neue Inhalte, einen gerade bearbeiteten Inhalt, einen neuen Kommentar oder einen bearbeiteten Kommentar handeln. Nach der Aktivierung des Tracker-Moduls (VERWALTEN – STRUKTURIERUNG – MODULE) finden Sie den Link zu der Liste Recent Posts deaktiviert im Navigationsmenü, den Sie aktivieren können (VERWALTEN – STRUKTURIERUNG – MENÜS – NAVIGATION). Hier ein Beispiel dieser Liste auf drupalcenter.de (Abbildung 9.9).
Abbildung 9.9: Neue Beiträge mit dem Tracker-Modul
230
9.6 Throttle: Lastreduzierung für Blöcke
Außer auf dieser Liste gibt es diese Informationen auch noch als Block und pro Benutzer auf dessen Profilseite im Reiter BEITRÄGE zu sehen. Wenn Sie mit dem Administrator-Konto eine Benutzerprofilseite aufrufen, sehen Sie zusätzlich den Reiter SEITENBESUCHE PROTOKOLLIEREN. Durch einen Klick auf diesen Reiter können Sie verfolgen, welche Seiten der Benutzer angesehen hat.
Abbildung 9.10: Seitenbesuche des Benutzers admin ansehen
9.6
Throttle: Lastreduzierung für Blöcke
Das Throttle-Modul ist ein Erbe aus älteren Drupal-Versionen, und Sie werden es vermutlich nicht benötigen. Trotzdem möchte ich die Funktionsweise das Moduls kurz erläutern. Das Throttle-Modul greift ein, wenn es eigentlich schon fast zu spät ist. Es schaltet bei zu großer Last auf dem Webserver ausgewählte Blöcke auf der Website einfach ab. Eine erhöhte Last tritt bei zu vielen Zugriffen auf die Website auf. Die Tatsache, dass die Blöcke deaktiviert werden, ist natürlich nicht gut, weil dann Gäste den Block nicht mehr sehen. Für den Webserver ist es aber eine Chance, den plötzlichen Andrang auf der Website evtl. ohne Absturz zu verkraften. Nach der Aktivierung des Throttle-Moduls können Sie die Blöcke, für die diese Regelung gelten soll, unter VERWALTEN – STRUKTURIERUNG – BLÖCKE durch Ankreuzen der Checkbox LASTREDUZIERUNG auswählen (Abbildung 9.11). In Abschnitt 7.8, Leistung: Performance erhöhen durch Caching, haben wir das Thema schon einmal im Zusammenhang mit Drupals Caching-Mechanismus angesprochen. So wie es momentan aussieht, wird das Throttle-Modul vermutlich in Drupal 7 entfallen und durch den Caching-Mechanismus ersetzt werden.
231
9 Nützliches im Core
Abbildung 9.11: Lastreduzierung für Blöcke
9.7
Ping: Suchmaschinen benachrichtigen
Das Ping-Modul ist ebenfalls ein Core-Modul und schickt nach seiner Aktivierung automatisch Nachrichten an die Website pingomatic.com. Der Dienst Ping-O-Matic wiederum leitet die Aktualisierung weiter an die großen Blog-Suchmaschinen (Abbildung 9.12).
Abbildung 9.12: Services, die »angepingt« werden
9.8
Search: Lassen Sie Ihre Website durchsuchen
Ihre Website muss durchsuchbar sein, und das Search-Modul bietet genau diese Funktionalität.
9.8.1
Das Suchmodul aktivieren
Nach der Aktivierung des search-Moduls in VERWALTEN – STRUKTURIERUNG – MODULE befindet sich im Navigationsmenü wieder ein deaktivierter Menülink, der zur Suche führt. Bei gesetzten Benutzerberechtigungen wird auch Gästen eine erweiterte Suche angeboten (Abbildung 9.13):
232
9.8 Search: Lassen Sie Ihre Website durchsuchen
Abbildung 9.13: Suchformular Das Modul bietet auch einen Such-Block an, der an beliebiger Stelle positioniert werden kann, der aber keinen direkten Zugang zur erweiterten Suche anbietet. Die erweiterte Suche taucht erst nach dem Suchvorgang über den Suchergebnissen wieder auf. Sehr viele Themes haben unabhängig von diesem Block bereits einen festen Platz für die Suche vorgesehen. Wie bei den Hauptlinks im Menü ist es auch bei der Suche möglich, sie in das Theme direkt im Quellcode einzubauen. Von dieser Möglichkeit machen viele Theme-Autoren Gebrauch. Die Anzeige des vordefinierten ThemeSuchfeldes lässt sich in der Konfiguration des Themes per Checkbox aktivieren. Wenn das search-Modul aktiviert ist, taucht die Auswahl Suche in der Theme-Konfiguration auf. Ist das Modul nicht aktiviert, bleibt die Auswahl im Theme grau hinterlegt und ist nicht ankreuzbar.
9.8.2
Die Einstellungen für das Suchmodul
Die Suche ist keine Volltextsuche, sondern funktioniert über einen Suchindex, was im Klartext bedeutet, dass neue Inhalte erst nach der nächsten Indizierung von der Suche erfasst werden. Dieser Index wird bei jedem Cron-Lauf aktualisiert.
233
9 Nützliches im Core
In den Sucheinstellungen (VERWALTEN – EINSTELLUNGEN – SUCHEINSTELLUNGEN) können Sie folgende Parameter beeinflussen: INDEXIERUNGSSTATUS: Hier sehen Sie, wie viel Prozent der Website bereits inde-
xiert sind. Durch einen Klick auf den Button SEITE NEU INDIZIEREN, löschen Sie den bestehenden Index, der dann nach und nach per Cron wieder aufgebaut wird. Bei kleineren Seiten erfolgt dieser Aufbau in einem Cron-Lauf. INDEXIERUNGSDROSSELUNG: Damit beim nächsten Cronjob Ihr Webserver nicht an
Überlastung leidet, können Sie hier angeben, wie viele Inhalte bei einem Cron-Lauf indexiert werden sollen. Bei Websites mit 30.000 Inhalten kann es durchaus ein wenig dauern, bis der neue Index aufgebaut ist. INDEXIERUNGSEINSTELLUNGEN: Hier legen Sie die minimale Wortlänge, die indi-
ziert werden soll, fest. Die Einstellung drei ist vernünftig. Außerdem können Sie hier die vereinfachte Behandlung der chinesischen, japanischen und koreanischen Sprache ankreuzen. In diesen Sprachen gibt es keine Leerräume zwischen den Worten, und Drupal hat einen Algorithmus eingebaut, der Inhalte in einzelne Worte trennen kann. INHALTSREIHENFOLGE: Die Inhaltsreihenfolge gewichtet über verschiedene Fakto-
ren die Inhalte Ihrer Website. Wenn die neuesten Beiträge bei der Suche zuerst erscheinen sollen, müssen Sie den jeweiligen Wert erhöhen. Normalerweise müssen Sie an diesen Parametern nichts verändern.
9.9
Multisite: Viele Sites mit einem Drupal
Etwas wirklich Nützliches im Core ist die Fähigkeit von Drupal, eine Multisite-Installation zu ermöglichen. Oft wird pro Website ein CMS installiert. Das ergibt bei 45 Kundenwebsites 45 Drupal-Installationen, 45 Konfigurationsvorgänge, 45 Updates etc. In einer MultisiteInstallation haben Sie nur eine Drupal-Installation, beliebig viele Kundenwebsites und einen Updatevorgang! Sie sparen also erheblich Zeit und Geld.
9.9.1
Die Ordner sites/default und sites/all
Sie haben sich bestimmt schon über das Verzeichnis sites/default und sites/all in Ihrem Drupal-Ordner gewundert: Im sites/default-Verzeichnis liegen alle Dateien, die explizit mit der ersten installierten Site zu haben, der Standardwebsite. Hochgeladene Dateien, Benutzerbilder etc. Außerdem finden Sie hier noch die Datei settings.php mit den Zugangsdaten zur Datenbank.
234
9.9 Multisite: Viele Sites mit einem Drupal
Jeder neue Ordner im sites-Verzeichnis repräsentiert eine neue Website, z. B. sites/meinersterkunde. Bestandteile, die nur für eine Website (spezifisches Theme) zugänglich sein sollen, werden hier abgelegt (sites/meinersterkunde/themes). Im sites/all-Verzeichnis werden alle Bausteine (Module, Themes) abgelegt, die für alle Websites dieser Installation benutzbar sein sollen, beispielsweise die bereits von uns installierten Module Administration Menu, Poormanscron und die Editoren. In diesem Verzeichnis werden später die meisten Module liegen. Wirklich selbst programmierte Module, die nur für eine Website eingesetzt werden, sind eher selten und oft »Notlösungen«. Bei Themes sieht es anders aus. Hier gibt es recht oft spezifische Themes für eine Website. Um so eine Installation mal durchzuspielen, möchte ich mit Ihnen unter XAMPP Lite und dem Betriebssystem Windows eine Multisite aufbauen.
9.9.2
Schritt 1 – Der Plan
Die Anforderungen sind zunächst ganz einfach. Nehmen wir an, Sie wollen zwei Websites mit einer Drupal-Installation aufbauen. Sie möchten die Standard-Website http://drupalbuch nennen und die erste Kundenwebsite http://meinersterkunde. Wenn Sie diese URLs in Ihrem lokalen Browser eingeben, sollen zwei unterschiedliche Websites erscheinen.
9.9.3
Schritt 2 – Die DNS-Auflösung unter Windows
In Windows finden Sie im Ordner c:\windows\system32\drivers\etc\hosts die Datei, die für die Domain-Namensauflösung zuständig ist. Um sie bearbeiten zu können, benötigen Sie Administrationsrechte. Starten Sie zuerst den Windows-Editor mit Administrationsrechten (rechte Maustaste auf das Editor-Icon oder den Editor-Menülink und AUSFÜHREN ALS ADMINISTRATOR wählen) (Abbildung 9.14).
Abbildung 9.14: Editor als Administrator öffnen
235
9 Nützliches im Core
Laden Sie dann die Datei c:\windows\system32\drivers\etc\hosts in den Editor. Achten Sie darauf, dass Sie dabei die Auswahl ALLE DATEIEN im Editor ausgewählt haben. Die hosts-Datei hat keine Endung, und der Editor erkennt sie mit den Normaleinstellungen nicht. Tragen Sie die folgenden Werte ein: 127.0.0.1 127.0.0.1 127.0.0.1
localhost drupalbuch meinersterkunde
Nach dem Speichern sind die Vorbereitungen abgeschlossen.
9.9.4
Schritt 3 – Den Apache-Webserver konfigurieren
Jeder Webserver muss konfiguriert werden und wissen, wohin er schauen soll, wenn Anfragen an ihn gestellt werden. In XAMPP Lite wird der Apache-Webserver benutzt, und der hat im Ordner c:\xampplite\apache\conf diverse Konfigurationsdateien. Fügen Sie in der Datei c:\xampplite\apache\conf\extra\httpd-vhosts.conf die folgenden Zeilen ein3 bzw. entfernen Sie die Doppelkreuze vor dem Befehl: # Use name-based virtual hosting. NameVirtualHost *:80 # VirtualHosts: # Geben Sie hier Ihre eigene E-Mail-Adresse ein ServerAdmin [email protected] DocumentRoot "c:\xampplite\htdocs" ServerName localhost # Geben Sie hier Ihre eigene E-Mail-Adresse ein ServerAdmin [email protected] DocumentRoot "c:\xampplite\htdocs\drupal62" ServerName drupalbuch ServerAlias meinersterkunde
Das, was Sie da tun, ist die Einrichtung zweier namensbasierter virtueller Server. Im Internet erledigt das Ihr Provider für Sie oder ein Programm wie Plesk oder Confixx. Wenn Sie jetzt im XAMPP Control Panel den Apache einmal stoppen und dann neu starten, sollte folgender Effekt auftauchen: Wenn Sie http://localhost aufrufen, sollte die Startseite von XAMPP Lite erscheinen. Wenn Sie http://drupalbuch oder http://meinersterkunde aufrufen, sollte die Startseite
Ihres installierten Drupals erscheinen. 3
Eine bereits geänderte vhosts.conf finden Sie auf der Buch-CD.
236
9.9 Multisite: Viele Sites mit einem Drupal
Hinweis Sie können die Namen der lokalen Domains völlig frei festlegen. Oft nennt man auch die lokale Version einer Website anstelle http://meinewebsite.de einfach http://meinewebsite.lokal.
9.9.5
Schritt 4 – Drupal konfigurieren
Als letzten Schritt müssen Sie in Ihrer Drupal-Installation im sites-Ordner den Ordner meinersterkunde für die gleichnamige Website anlegen. Die Website drupalbuch befindet sich im default-Ordner (Abbildung 9.15):
Abbildung 9.15: Multisite-Ordner Im Ordner meinersterkunde benötigen Sie die Datei settings.php im Originalzustand. Kopieren Sie sich die Datei /sites/default/settings.php in den Ordner /sites/ meinersterkunde. Die Datei ist auch unter Windows schreibgeschützt. Vor der Bear-
beitung müssen Sie per rechter Maustaste und einem Klick auf EIGENSCHAFTEN den Haken beim Attribut SCHREIBGESCHÜTZT entfernen. Löschen Sie die Zeile 93. Je nachdem, mit welchem Benutzer und Passwort Sie Ihr
Drupal installiert haben, steht hier etwas wie $db_url = 'mysqli://nobody:kaesekuchen@localhost/drupal62'
oder $db_url = 'mysqli://root@localhost/drupal62';
Sie können die Zeile löschen oder auskommentieren: /* $db_url = 'mysqli://root@localhost/drupal62'; */
Wenn Sie nach dem Speichern der Datei im Browser http://meinersterkunde/install.php aufrufen, können Sie Ihre erste Kundenwebsite einrichten. Drupal startet mit dem Webinstaller, der in der settings.php alle notwendigen Änderungen durchführt und die Datei danach wieder auf readonly (schreibgeschützt) setzt.
237
9 Nützliches im Core
In Abschnitt 2.6, Der Drupal-Webinstaller, finden Sie die Beschreibung des Installationsvorgangs. Denken Sie daran, dass die neue Website eine neue Datenbank benötigt, die Sie vor der Installation angelegt haben müssen.
9.9.6
Das Ergebnis
Das Ergebnis ist beeindruckend, wenn denn alles funktioniert hat. Sie können tatsächlich in 5 Minuten eine neue Drupal-Website einrichten und müssen jetzt nur noch die Module aktivieren, die Sie dort benutzen wollen, sie stehen ja im Ordner /sites/all auch für diese Website zur Verfügung. Außer der Tatsache, dass es funktioniert, werden natürlich sofort Wünsche wach: eine gemeinsame Benutzertabelle für alle Websites viele Domainnamen, aber nur ein Verzeichnis ...
Alles ist machbar. Allerdings – auch wenn das Prinzip einfach ist – kann die Einrichtung einer Multisite abhängig von Betriebssystem, Hardware-Umgebung, Provider und Domain-Verwaltung hin und wieder einige Zeit kosten. Sehen Sie mir bitte nach, dass ich nicht auf MAMP (Mac OS X), Linux, Unix, Strato, 1und1, Domainfactory, Hetzner, Ubuntu, SUSE, EeePC, iPhone,4 Nokia S60,5 NAS-Laufwerke und was einem sonst noch so einfällt, eingehe. Ich verspreche Ihnen hoch und heilig: Es funktioniert überall.
4 5
http://www.idude.org/2007/11/07/an-iphone-powered-apache-web-server-with-php/ http://wiki.opensource.nokia.com/projects/PAMP
238
Teil III Die Kür
10 Verändern Sie das Design – theming von Jochen Meyer Als Hagen mich fragte, ob ich Lust hätte, ein Gastkapitel über Theming in seinem neuen Drupal 6-Buch zu schreiben, fühlte ich mich geehrt, denn zu diesem Zeitpunkt war es erst eineinhalb Jahre her, dass ich das erste Mal von Drupal gehört hatte. Allerdings ist seitdem auch viel passiert. Auf der Suche nach einem geeigneten Content Management-System und nach einigen Projekten mit Wordpress, TYPO3 und Joomla! war ich schließlich über Drupal gestolpert. Drupal war irgendwie anders und flexibler. Allerdings wusste ich anfangs nicht so recht, wo bei Drupal vorne und hinten ist, denn Backend (Administrationsbereich) und Frontend verschmelzen bei Drupal, anders als bei vielen anderen CMSsen. Dies stellt auch besondere Anforderungen an das verwendete Theme. Ich verschlang Bücher und Podcasts (vor allem auf lullabot.com1) zum Thema Drupal und verliebte mich in den Gedanken einer weltweiten Open Source-Community. Im September 2007 flog ich dann zur Drupalcon nach Barcelona.2 Meine anfängliche Skepsis – »Was mache ich hier eigentlich?« – wich schnell der Begeisterung für die Drupal-Community. Und unter vielen netten Leuten aus der ganzen Welt lernte ich dort auch Hagen kennen. Eben diese Begeisterung, sowohl für Drupal als System als auch für die Menschen hinter Drupal, hat mich schließlich dazu bewegt, ein eigenes Theme (Four Seasons3) zu entwickeln und der Community zur Verfügung zu stellen. Die Beispiele zum Theming in diesem Kapitel beziehen sich deshalb auf Four Seasons und auf ein weiteres aktuelles Projekt mit dem Namen iwanttospeak.net.4 Ich möchte Ihnen zunächst ein paar Hintergründe und Erklärungen zum Thema Themes in Drupal 6 geben, bevor wir dann im Abschnitt 10.5, Erstellen eines eigenen Themes, in Drupal ein erstes eigenes Theme erstellen.
1 2 3 4
http://lullabot.com/podcast http://barcelona2007.drupalcon.org/ http://drupal.org/project/fourseasons http://iwanttospeak.net
10 Verändern Sie das Design – theming
Also, wenn Sie dieses Kapitel hier lesen und anfangs nur Bahnhof verstehen, keine Sorge. Wahrscheinlich werden am Ende Sie es sein, der/die das Buch Theming für Drupal 7 verfasst.
10.1
Theming: Das Aussehen der Websites anpassen
Auf dem Weg zu diesem Kapitel haben Sie gelernt, wie Sie mit Drupal Ihre eigenen Inhalte eingeben, strukturieren und verwalten können. Dabei ist Drupal, wie Sie gesehen haben, äußerst flexibel. Bei der Ausgabe dieser Inhalte mit einem StandardTheme stößt man jedoch schnell an die Grenzen der selbst gesetzten Ansprüche. Das Anpassen der Anzeige wird allgemein »Theming« genannt. Theming ist ein sehr weites Feld. Der Ausdruck »Theme« ist gleichbedeutend mit »Template« oder auf Deutsch »Schablone« oder »Vorlage«. Eine ausführliche Beschreibung würde den Rahmen dieses Buches sicherlich sprengen. Die komplette Umsetzung eines grafischen Entwurfs in valides XHTML und CSS kann nicht in einem Kapitel beschrieben werden. Dennoch will ich versuchen, Ihnen einen kompakten Einstieg in dieses spannende Feld zu geben.
10.2
Aufbau eines Themes in Drupal
In diesem Abschnitt möchte ich Ihnen die Eigenheiten von Drupal-Themes näher bringen.
10.2.1
Drupals Theme-Engine: PHPTemplate
Um eine Seite für die Browserausgabe vorzubereiten, werden von Drupal normalerweise mehrere Template-Dateien hintereinander aufgerufen. Die einzelnen Elemente einer Drupal-Seite wie Nodes und Blöcke besitzen jeweils eigene Template-Dateien. Welche Template-Dateien bei einem Seiten-Abruf in welcher Reihenfolge geladen werden, bestimmt die so genannte Theme-Engine (etwa: Anzeige-Maschine). Die Drupal-Entwickler haben eine eigene Theme-Engine entwickelt, die im Drupal-Core enthalten ist: PHPTemplate. PHPTemplate-Dateien haben immer die Datei-Endung tpl.php:
Die wichtigsten Template-Dateien eines Drupal Themes sind page.tpl.php: Dient als Rahmen der Seite und enthält strukturelle HTML-Elemente wie z. B. html, head und body sowie Informationen über eingebundene JavaScript-
und CSS-Dateien. node.tpl.php: Fast alle Inhalte werden in Drupal als Nodes in der Datenbank ge-
speichert. Bei der Ausgabe von Nodes, egal ob als Teaser oder seitenfüllend, wird diese Datei verwendet. block.tpl.php: Wird für die Ausgabe von Blöcken aufgerufen.
242
10.2 Aufbau eines Themes in Drupal
Abbildung 10.1: Aufbau eines typischen PHPTemplate Drupal-Themes Den Inhalt einer typischen Template-Datei sehen Sie in Listing 10.1, und zwar am Beispiel von block.tpl.php aus dem Ordner [drupal]/modules/system/. Die Datei besteht aus XHTML-Elementen und Platzhaltern in Form von PHP-Code (eingeschlossen in -Tags). Jedes Mal, wenn Drupal einen Block ausgibt, wird diese TemplateDatei aufgerufen und mit Inhalten befüllt. Listing 10.1: Aus dem Drupal-Core (modules/system/block.tpl.php) subject): ?>
subject ?>
content ?>
10.2.2
Aufbau eines Themes in Drupal 6
Drupal 6 erleichtert das Leben eines Themers im Vergleich zu den Vorgängerversionen deutlich und ermöglicht Änderungen am Theme auch für Menschen ohne tiefgehende PHP-Kenntnisse. Dies betrifft in erster Linie Funktionen, die in Drupal 5 noch die Datei template.php benötigten. Sie können jetzt teilweise bequem über die themename.info-Datei völlig ohne PHP-Kenntnisse konfiguriert werden. Als Beispiel verwende ich hier das Drupal-Core-Theme Garland. Um Änderungen zu veranschaulichen, habe ich den Inhalt des Ordners themes/garland in das Verzeichnis sites/all/themes/garland_new kopiert.
243
10 Verändern Sie das Design – theming
Hinweis Die mitgelieferten Core-Themes liegen im Ordner /drupal/themes, alle anderen Themes hingegen in sites/all/themes oder bei einer Multisite-Installation (siehe Abschnitt 9.9, Multisite: Viele Sites mit einem Drupal) im entsprechenden Website-Ordner.
Abbildung 10.2: Struktur des Drupal 6-Core-Themes »Garland Neu« (für dieses Kapitel modifiziert) Die Struktur des veränderten Garland-Themes können Sie Abbildung 10.2 entnehmen. Dabei ist rechts der Inhalt der für dieses Kapitel angepassten Datei garland_new.info abgebildet. Alle Regionen liefern eine Variable mit ihrem Inhalt, der in page.tpl.php ausgegeben wird. Seit Drupal 6 lassen sich die Regionen, die später auf der Block-Administrationsseite zur Verfügung stehen, hier definieren. Durch das Einfügen der Zeile regions[neue_region] = Neue Region
wird die Region automatisch von Drupal erzeugt. Der Inhalt dieser Region wird in der neu erzeugten Variable $neue_region ausgegeben. Durch entsprechende Verwendung des Platzhalters in der Datei page.tpl.php wird der Inhalt dieser Variablen im Browser ausgegeben.
244
10.3 Die Dateien eines typischen Drupal-Themes im Einzelnen
10.3
Die Dateien eines typischen Drupal-Themes im Einzelnen
Jetzt möchte ich Ihnen die Dateien eines typischen Drupal-Themes kurz vorstellen und ihre Funktion erklären.
10.3.1
Die Informationen zum Theme: themename.info
Ohne eine Datei themename.info wird Ihr Theme von Drupal nicht erkannt. Sie muss also vorhanden sein. Der Name dieser Datei ist im Beispiel garland_new.info. Der Vorname der Datei, also garland_new, wird zum Drupal-internen Namen des Themes. Auch das ist eine Änderung im Vergleich zu Drupal 5, wo der Name des Theme-Ordners zum internen Namen wurde. Es empfiehlt sich aber, für Theme-Ordner und themename.info den gleichen Namen zu verwenden. Die folgenden Einträge sind in themename.info-Dateien erlaubt bzw. müssen teilweise vorhanden sein: name (benötigt) name = Garland Neu
Dieser Name wird auf der Theme-Administrationsseite (admin/build/themes) angezeigt und muss nicht mit dem Namen der themename.info-Datei übereinstimmen, wird aber meistens gleich sein. description (empfohlen) description = Garland angepasst
Die Beschreibung wird auf der Theme-Administrationsseite (admin/build/themes) unter dem Namen angezeigt. screenshot (optional) screenshot = screenshot.png
Hier kann ein frei gewählter Pfad für einen Screenshot des Themes angegeben werden. Der Screenshot wird auf der Theme-Administrationsseite (admin/build/themes) neben dem Namen angezeigt. version (optional) version = 1.0
Eine frei gewählte Versionsnummer. Bei Themes, die auf drupal.org veröffentlicht werden, wird diese Versionsnummer automatisch von drupal.org vergeben. core (benötigt) name = 6.x
Die Drupal-Core-Version, mit der das Theme kompatibel ist. Für alle Drupal 6Themes muss hier 6.x stehen, sonst wird das Theme nicht angezeigt. engine (empfohlen) engine = phptemplate
Name der verwendeten Theme-Engine, in der Regel PHPTemplate.
245
10 Verändern Sie das Design – theming
base theme (optional) base theme = garland
Nur für Sub-Themes. Das Sub-Theme Minnelli hat hier z. B. den Eintrag garland. regions (optional) regions[left] = Left sidebar regions[right] = Right sidebar regions[content] = Content regions[header] = Header regions[footer] = Footer
Hier können die Regionen definiert werden, die dann auf der Block-Administrationsseite zur Verfügung stehen. Sind keine Regionen definiert, werden die oben angegebenen Standard-Regionen erzeugt. Drupal erzeugt den Inhalt in der PageVariable mit dem maschinenlesbaren Namen in Klammern. Achtung: Um eine Region im Browser auszugeben, muss der Platzhalter, wie anfangs beschrieben, in der page.tpl.php platziert werden. features (optional) features[] = logo features[] = name features[] = slogan features[] = mission features[] = node_user_picture features[] = comment_user_picture features[] = search features[] = favicon ; Durch das Auskommentieren durch Semikolon werden die ; Nachfolgenden Theme-Features ausgeblendet. ; features[] = primary_links ; features[] = secondary_links
Auf der Theme-Administrationsseite des jeweiligen Themes (admin/build/themes/ settings/ThemeName) stehen die Theme-Features zur Verfügung. Möchten Sie einige dieser Features deaktivieren, können Sie, wie oben, die entsprechenden Features durch Semikola auskommentieren. stylesheets (optional) stylesheets[all][] = MeineEigeneStyle.css
Hier kann die standardmäßig verwendete CSS-Datei definiert werden. Ist nichts definiert, wird style.css verwendet. scripts (optional) scripts[] = script.js
Hier kann eine standardmäßig verwendete JavaScript-Datei definiert werden. Wenn nichts definiert wird, wird keine .js-Datei standardmäßig eingebunden.
246
10.3 Die Dateien eines typischen Drupal-Themes im Einzelnen
php (optional) php = 4.3.3
Hier kann eine PHP-Mindestversion angegeben werden. Standardmäßig wird die von Drupal erforderliche PHP-Version angenommen. Der Inhalt dieser Datei wird von Drupal wie in Abbildung 10.3 dargestellt.
Abbildung 10.3: Anzeige auf der Theme-Administrationsseite Hinweis Der Inhalt der themename.info-Datei wird im System-Cache gespeichert. Änderungen werden nicht sofort sichtbar. Hierzu müssen Sie den Cache leeren. Dies geht z. B. auf der Seite admin/settings/performance.
Achtung Der Name Ihres Themes darf nicht mit dem Namen eines der installierten Module übereinstimmen, da sich dadurch intern Konflikte bei den PHP-Funktionsnamen ergeben können!
10.3.2
Dateien mit der Endung *.tpl.php
Wenn auch optional, sind die Template-Dateien mit der Endung tpl.php zusammen mit den CSS-Dateien das Herzstück eines Themes. Typischerweise enthält ein Theme zumindest folgende Dateien:
247
10 Verändern Sie das Design – theming
page.tpl.php (enthält das HTML-Grundgerüst der Seite) node.tpl.php (Ausgabe der einzelnen Nodes) block.tpl.php (Ausgabe der einzelnen Blöcke) comment.tpl.php (Ausgabe der Kommentare)
Werden keine eigenen Template-Dateien verwendet, nutzt Drupal die im Core enthaltenen Template-Dateien. Eine vollständige und aktuelle Liste der möglichen Template-Dateien, die Sie verwenden können, finden Sie auf drupal.org.5 Beim Aufruf der Template-Dateien geht PHPTemplate nach einer bestimmten Logik vor. Dabei sucht Drupal zuerst nach tpl.php-Dateien mit den oben erwähnten Namen. Um die Frontpage ihres Themes zum Beispiel anders zu gestalten, müssen Sie zusätzlich zur page.tpl.php im Theme-Ordner noch eine page-front.tpl.php anlegen. Weitere Möglichkeiten für die page.tpl.php-Dateien in absteigender Priorität: page-node-edit.tpl.php (das Formular zur Bearbeitung eines Inhalts) page-node-1.tpl.php (der Inhalt mit der ID 1) page-node.tpl.php (jeder Inhalt) page.tpl.php
Für die node.tpl.php zur Ausgabe von Nodes gibt es folgende Varianten: node-story.tpl.php (eigene Ausgabe für Story-Nodes) node-blog.tpl.php (eigene Ausgabe für Blog-Nodes) node-IhrNodetype.tpl.php (eigene Ausgabe für Nodes vom Typ IhrNodetype)
Auch für die block.tpl.php-Dateien gibt es diverse Möglichkeiten, die im Folgenden in absteigender Priorität gelistet werden: block-module-delta.tpl.php (delta ist die ID des Blocks) block-module.tpl.php block-region.tpl.php block.tpl.php
10.3.3
Die Datei template.php
In der Datei template.php werden Theme-spezifische PHP-Funktionen platziert. template.php muss mit einem PHP-Opening-Tag ist nicht nur unnötig, sondern sollte gar nicht verwendet werden, da es unter Umständen zu Fehlermeldungen führen kann.
5
http://drupal.org/node/190815
248
10.3 Die Dateien eines typischen Drupal-Themes im Einzelnen
Hinweis In den tpl.php-Dateien gibt es nur PHP-Platzhalter, in template.php hingegen fast nur PHP-Code!
Typische Funktionen, die in der template.php aufgerufen werden, bereiten beispielsweise Variablen für die Verwendung in den tpl.php-Dateien vor (»pre-processing«). Funktionen in der template.php-Datei werden schneller ausgeführt als in tpl.php-Dateien. Weitere Informationen zu den Preprocess-Funktionen finden Sie auf drupal.org.6 Ein Beispiel aus dem Theme Garland ist die Funktion phptemplate_breadcrumb(), die aus dem Array $breadcrumb die Breadcrumb-Links (Brotkrumen-Navigation) von Drupals Core-Theme Garland erzeugt (Listing 10.2). Listing 10.2: Funktion phptemplate_breadcrumb() in der template.php /** * Return a themed breadcrumb trail. * * @param $breadcrumb * An array containing the breadcrumb links. * @return a string containing the breadcrumb output. */ function phptemplate_breadcrumb($breadcrumb) { if (!empty($breadcrumb)) { return ''. implode(' › ', $breadcrumb) .'
'; } }
Falls Sie kein PHP sprechen und das Listing für Sie nur Gobbledygook ist, machen Sie sich keine Sorgen, denn diese Funktionen müssen Sie in der Regel nicht verändern.
10.3.4
Jedes Theme kann weitere Themes enthalten (Sub-Themes)
Ein weiteres Element, das in einem Theme-Ordner enthalten sein kann, ist ein SubTheme. Sub-Themes sind abhängig von dem jeweiligen Base-Theme, das in der subtheme.info-Datei definiert ist. Ein Beispiel aus dem Drupal-Core bietet das SubTheme Minnelli (eine Variante von Garland mit fester Breite). Zusätzlich zur CSS-Datei style.css von Garland lädt Minnelli die Datei minnelli.css durch folgenden Eintrag in der Datei minnelli.info: stylesheets[all][] = minnelli.css 6
http://drupal.org/node/223430
249
10 Verändern Sie das Design – theming
10.4
Veränderungen gegenüber Drupal 5
Prinzipiell hat sich an PHPTemplate bei der Weiterentwicklung von Drupal 5 zu Drupal 6 nichts geändert. Das erfolgreiche Konzept von PHPTemplate wurde aber weiterverfolgt und verbessert. Bei Drupal 5 wurden noch die meisten Anweisungen zur Ausgabe von Inhalten in Theme-Funktionen bestimmt. Diese Theme-Funktionen waren und sind zum Teil tief im PHP-Quellcode von Drupal »vergraben«. Um die Darstellung den eigenen Vorstellungen anzupassen, war es unumgänglich, diese Funktionen zu überschreiben. Dazu musste man die Funktionen erst einmal in den entsprechenden .module-Dateien finden, um sie dann zu kopieren und in einer eigenen Datei zu überschreiben. Diese Theme-Funktionen gibt es bei Drupal 6 immer noch. Man kann sie auch weiterhin in einer eigenen Datei überschreiben (template.php). Die Anweisungen zur Ausgabe von Inhalten werden ab Drupal 6 mehr und mehr in eigene Template-Dateien ausgelagert. Das heißt: Für die meisten Aufgabenstellungen reicht es bei Drupal 6, die entsprechende tpl.php-Datei zu überschreiben. Das Überschreiben von Funktionen ist nur noch in Spezialfällen nötig (siehe Abschnitt 10.6). Dies soll am Beispiel der Funktion, die die Kommentare unterhalb von Beiträgen und Seiten ausgibt, veranschaulicht werden. Zunächst die alte Variante: Bei Drupal 5 wurde die Ausgabe von Kommentaren noch durch die Funktion theme_comment() erledigt (Listing 10.3). Listing 10.3: aus dem Drupal 5-Core, die Funktion theme_comment() (modules/comment/comment.module, line 1772) status == COMMENT_NOT_PUBLISHED ? ' comment-unpublished' : '') .'">'; $output .= ''. l($comment->subject, $_GET['q'], NULL, NULL, "comment-$comment->cid") .' '. theme('mark', $comment->new) ."
\n"; $output .= ''. t('by %a on %b', array('%a' => theme('username', $comment), '%b' => format_date($comment->timestamp))) ."
\n"; $output .= ''. $comment->comment .'
'; $output .= ''. theme('links', $links) .'
'; $output .= '
Zunächst einmal war es schwer, diese Funktion im Quellcode der Datei comment.module zu finden. Und nach dem Finden musste man sie immer noch verstehen, bevor man sie ändern und anpassen konnte.
Das hat sich bei Drupal 6 enorm vereinfacht. Bei Drupal 6 findet man in dem Verzeichnis modules/comment/ eine Datei namens comment.tpl.php (Listing 10.4). Listing 10.4: aus dem Drupal 6-Core, die Datei comment.tpl.php (modules/comment/comment.tpl.php)
Die Datei comment.tpl.php von Drupal 6 macht das gleiche wie die Funktion theme_comment() bei Drupal 5. Die Struktur der neuen tpl.php-Datei von Drupal 6 ist allerdings um Welten leichter zu verstehen. Der Kommentar am Anfang der Datei listet zusätzlich alle zur Verfügung stehenden Variablen auf. Auch das Überschreiben der Ausgabe ist wesentlich einfacher. Man muss lediglich diese Datei in den Ordner seines eigenen Themes kopieren und dort anpassen. Ein Themer, der sich mit XHTML auskennt und weiß, wie er die XHTML-Struktur der Kommentare aufbauen möchte, kann die Platzhalter einfach in seine neue Struktur einbauen, ohne Theme-Funktionen erst suchen zu müssen und diese anschließend in einer PHP-Datei zu überschreiben.
Der erste Schritt bei der Erstellung eines eigenen Themes ist der schwerste. Wo soll man anfangen? Wie schon angesprochen, muss man beachten, dass ein DrupalTheme oft für Frontend und Backend eingesetzt wird, also die Anzeige der ReiterMenüs sowie der tabellarischen Übersichten für Module, Themes, Blöcke enthalten muss. Wie Sie ein separates Verwaltungs-Theme konfigurieren, erfahren Sie in Abschnitt 7.12, Verwaltungs-Theme. Eine Möglichkeit ist, ein bestehendes Theme abzuändern. Insbesondere dann, wenn man lediglich Farben, Titelbilder oder Logos usw. ändern möchte, empfiehlt sich diese Variante. Möchte man hingegen Drupal ein ganz eigenes Gewand verpassen, empfiehlt es sich, entweder bei Null anzufangen oder ein Theme zu verwenden, das von vornherein darauf ausgelegt ist, angepasst zu werden. Dafür ist vor allem das Zen-Theme7 geeignet, da der Quelltext komplett kommentiert ist. Hinweis Wenn Sie bereits mit dem CSS-Framework YAML von Dirk Jesse vertraut sind, dann sollten Sie sich unbedingt das Projekt YAML für Drupal von Alexander Hass einmal anschauen. YAML allgemein: http://yaml.de/ YAML für Drupal: http://www.yaml-fuer-drupal.de
Mit Drupal 6 stehen Werkzeuge zur Verfügung, die das Erstellen von eigenen Themes extrem erleichtern.
Das wichtigste dieser Werkzeuge ist das Devel-Modul mit dem mitgelieferten Theme developer-Modul8 (Beschreibung siehe Kapitel 13, Nützliche Module). Hinweis Sie müssen das Modul Admin Menu deaktivieren, damit das Theme Developer-Modul problemlos funktioniert.
Positionieren Sie den DEVELOPMENT-Block in der rechten Seitenleiste (Abbildung 10.4).
In drei Schritten erstellen Sie ein eigenes Theme, das Sie über die Oberfläche von Drupal aktivieren können. Für Ihr eigenes Theme ist lediglich eine themename.info-Datei nötig.
Schritt 1 Erstellen Sie einen neuen Ordner mit dem Namen neuestheme für Ihr Theme unter sites/all/themes.
Schritt 2 Erstellen Sie eine neue Datei mit dem Namen neuestheme.info mit dem Inhalt wie in Listing 10.5 im neuen Verzeichnis sites/all/themes/neuestheme: Listing 10.5: Inhalt der Datei neuestheme.info ; $Id:$ name = Neues Theme description = Unser neues Drupal 6 Theme. core = 6.x engine = phptemplate
Schritt 3 Aktivieren Sie Ihr neues Theme auf der Theme-Administrationsseite (Abbildung 10.5).
Abbildung 10.5: Aktivieren des neuen Themes Drei Schritte waren genug, und Sie haben ein eigenes Theme erstellt. Zugegeben, das Design entspricht sicherlich noch nicht Ihren Erwartungen, aber die nächsten Schritte schaffen schnell Abhilfe.
Wechseln Sie in Ihrem neuen Theme zur Block-Administrationsseite und überprüfen Sie, ob die Blockeinstellungen, die wir zuvor in Garland vorgenommen haben, für das neue Theme übernommen worden sind.
Hinweis Die Sidebars (Seitenleisten) sind noch nicht platziert, deshalb finden Sie das Menü noch unterhalb des Content-Bereichs unter der Überschrift DEVELOPMENT.
Aktivieren Sie nun das Theme Developer-Modul durch einen Klick auf den Link ENABLE THEME DEVELOPER im Development-Block. In der linken unteren Ecke sehen Sie nun eine Checkbox mit dem Namen THEMER INFO.
Abbildung 10.6: Aktivierte »Themer info«-Checkbox Durch das Ankreuzen der Checkbox THEMER INFO stehen Ihnen detaillierte Informationen über Ihr neues Theme zur Verfügung. Oben rechts erscheint eine Infobox, die uns mitteilt, dass wir durch einen Klick auf ein Element die zugehörigen TemplateDateien bzw. Theme-Funktionen angezeigt bekommen.
Zunächst wollen wir wissen, welche Template-Datei für die Ausgabe unseres Themes verantwortlich ist. Wir klicken auf ein beliebiges Element, z. B. auf den Link HOME unterhalb des Seitentitels Drupal (Abbildung 10.7). Im Fenster oben rechts erscheint nun die Information zu dem eben angeklickten Element. Die Funktion, die für die Ausgabe der Breadcrumb-Navigation zuständig ist, theme_breadcrumb(), wird eingeblendet. Für uns interessant ist aber zunächst die Zeile darüber. Hier wird die »zuständige« Template-Datei angezeigt. In unserem Fall ist das die Datei page.tpl.php.
Abbildung 10.7: Info zur Breadcrumb-Navigation durch Klick auf den Link »Home« Aber woher nimmt Drupal diese Datei? Wir haben doch noch keine Datei mit diesem Namen in unserem Theme! Drupal nutzt eine Standard-Datei, und ein einfacher Klick auf den Dateinamen in der THEMER INFO-Anzeige verrät uns, wo wir diese Datei finden (Abbildung 10.8).
Abbildung 10.8: Info zur verwendeten page.tpl.php Die THEMER INFO-Anzeige gibt an, dass die page.tpl.php-Datei im Verzeichnis modules /system/page.tpl.php zu finden ist. Für das Anpassen der Anzeige ist es zunächst aber gar nicht nötig, diese Datei zu überschreiben. Die obige Erklärung dient an dieser Stelle dazu, das Prinzip zu beschreiben, nach dem Drupal immer vorgeht. Drupal sucht zunächst im aktuellen Theme-Verzeichnis nach entsprechenden Template-Dateien oder Theme-Funktionen, die wir eventuell in der template.php-Datei überschrieben haben. Wenn dort nichts Entsprechendes gefunden wird, nimmt Drupal die im Drupal-Core enthaltenen Standard-Dateien. Und das Theme DeveloperModul informiert uns darüber, wo diese Dateien zu finden sind.
Wie kommen wir nun mit unserem Theme weiter? Zuerst deaktivieren wir das Theme Developer-Modul durch einen Klick auf den Link DISABLE THEME DEVELOPER im DEVELOPMENT-Block. Dieser Schritt ist nötig, weil das Theme Developer-Modul den Quelltext leicht umschreibt. Ein Blick mit der Firebug9-Funktion INSPECT ELEMENT in den Quelltext unserer Anzeige im Browser lässt schnell erkennen, warum unser Theme – nennen wir es mal – »unbefriedigend« aussieht. Wie im rechten Teil der Firebug-Anzeige zu erkennen ist, wird noch keine CSS-Datei für die wichtigsten Elemente unserer Seite wie oder '; } } ?>
Um zu verstehen, was die Funktion macht, ist ein klein wenig Wissen in PHP nötig. Die Funktion nimmt ein Array namens $breadcrumb und trennt die einzelnen Elemente in der Ausgabe durch das Zeichen ». Sogar die einzelnen Elemente des Arrays können wir uns durch einen einfachen Klick auf die FUNCTION ARGUMENTS in der THEMER INFO ansehen (Abbildung 10.12)! Wollen wir ein anderes Zeichen für die Trennung der einzelnen Breadcrumb-Links verwenden (z. B. das Pipe-Zeichen |), müssen wir diese Funktion überschreiben. Dazu erzeugen wir eine neue Datei namens template.php in unserem Theme-Verzeichnis (sites/all/themes/neuestheme) und kopieren die obige Funktion in die Datei, wobei wir die Funktion umbenennen. Auch hierfür macht uns das Theme Developer-Modul Vorschläge (Candidate function names): phptemplate_breadcrumb() oder noch spezifischer neuestheme_breadcrumb()(Abbildung 10.12). Damit ergibt sich folgender Inhalt für unsere Datei template.php (Listing 10.8):
Listing 10.8: template.php (ohne PHP closing-tag! »?>«) '. implode(' | ', $breadcrumb) .'
251
10 Verändern Sie das Design – theming