Drupal 6: Websites entwickeln und verwalten mit dem Open Source-CMS [1 ed.] 3827326087, 978-3-8273-2608-9 [PDF]


137 10 16MB

German Pages 345 Year 2008

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Drupal 6 - Websites entwickeln und verwalten mit dem Open Source-CMS......Page 1
Inhaltsübersicht......Page 4
1.5.2 Drupal als CMS Framework......Page 6
2.5.2 Datenbank mit dem MySQL-Monitor erstellen......Page 7
4.3.2 E-Mail-Einstellungen für Benutzer......Page 8
5.11 Upload......Page 9
7.5.2 Das Eingabeformat ?Filtered HTML? konfigurieren......Page 10
8.4.2 Schritt 2 - Benutzerberechtigungen für den FCKeditor......Page 11
9.9.6 Das Ergebnis......Page 12
11.7.2 Installation des Hilfsmoduls Content Template......Page 13
13.1.6 Werten Sie die Eingabe aus......Page 14
Stichwortverzeichnis......Page 15
Einleitung......Page 16
Für wen habe ich dieses Buch geschrieben?......Page 18
Und Drupal funktioniert wirklich?......Page 19
Und ohne Internetzugang?......Page 20
Und was will der Autor?......Page 21
Teil I Start......Page 22
1.1.1 Drupal ist vielseitig......Page 24
1.1.2 Drupal ist Open Source......Page 25
1.2.1 Das statische Web......Page 26
1.2.3 PHP und MySQL......Page 27
1.3.1 Vom Dorp zu Drupal......Page 29
1.3.2 Drupal und das Web 2.0......Page 30
1.3.3 Drupals Logo: Das Druplicon......Page 32
1.4.4 Die Drupal Association......Page 33
1.4.5 Drupal und die Zukunft......Page 34
1.5.1 Content Management-Systeme (CMS)......Page 35
1.5.3 Customer Relationship Management......Page 36
1.5.4 Social Software......Page 39
1.6.1 Drupal als Weblog......Page 40
1.6.2 Drupal in Universitäten......Page 41
1.6.4 Drupal in Kampagnen......Page 42
1.6.6 Drupal in Grassroot Movements......Page 43
1.6.8 Drupal als Business Websites......Page 45
1.6.10 Drupal als Shop......Page 49
1.7.2 Das virtuelle Dorf......Page 51
2.1.1 Webserver......Page 54
2.2 Serverumgebung wählen......Page 55
2.2.1 Welches Paket ist das richtige?......Page 56
2.3.1 Microsoft Windows Vista Home Premium und XAMPP Lite......Page 57
2.3.2 Linux......Page 64
2.4.2 Installationsverzeichnis: htdocs oder Unterordner?......Page 66
2.4.3 Installationsverzeichnis erstellen......Page 67
2.4.4 Drupal-Quellcode entpacken......Page 68
2.5.1 Datenbank mit phpMyAdmin erstellen......Page 69
2.5.2 Datenbank mit dem MySQL-Monitor erstellen......Page 71
2.6 Der Drupal-Webinstaller......Page 75
2.7 Installation beim Provider......Page 82
3 Eine Website mit Drupal......Page 86
3.1 Mehrsprachigkeit......Page 87
3.1.2 Inhaltstyp Artikel bearbeiten......Page 88
3.2.1 Einen neuen Artikel erstellen......Page 90
3.2.2 Den erstellten Artikel betrachten......Page 91
3.2.3 Die Übersetzung des Artikels......Page 92
3.3.1 Das Book-Modul aktivieren......Page 93
3.3.3 Einige Buchseiten erstellen und gliedern......Page 94
3.3.4 Ein Link auf das Buch im Menü......Page 95
3.3.5 Übersetzung des Buchs......Page 96
3.4.2 Konfiguration des Kontaktformulars......Page 97
3.5 Sprachumschaltung......Page 99
3.6.1 Aggregator-Modul aktivieren......Page 101
3.6.2 Newsfeeds eintragen......Page 102
3.6.3 Menülink in die Hauptlinks positionieren......Page 103
3.7 Andere Farben im Theme......Page 104
3.8 Fazit......Page 105
Teil II Der Core......Page 108
4 Benutzer verwalten......Page 110
4.1 Die Benutzerverwaltung von Drupal im Überblick......Page 111
4.2 Verwalten - Benutzerverwaltung - Benutzer......Page 112
4.3.1 Registrierungseinstellungen......Page 113
4.3.2 E-Mail-Einstellungen für Benutzer......Page 114
4.3.3 Signaturen......Page 115
4.3.4 Benutzerbilder......Page 116
4.4.1 Berechtigungen für Benutzer......Page 117
4.4.3 Zugriffsregeln......Page 118
4.5 Zusätzliche Profilfelder im Benutzerkonto......Page 119
4.6.1 Eine Liste mit freiem Format erstellen......Page 121
4.6.2 Die freie Liste in Aktion......Page 122
4.7 Ein Blog für jeden......Page 124
4.8 Benutzeranmeldung und -registrierung mittels OpenID (Modul OpenID)......Page 125
4.8.2 OpenID in Drupal verwenden......Page 126
5.1 Einstellungen für Beiträge......Page 128
5.2 Buch......Page 130
5.3 Feed Aggregator......Page 131
5.4 Inhalt - der Überblick......Page 133
5.5 Inhaltstypen......Page 134
5.5.1 Inhaltstypen bearbeiten und hinzufügen......Page 135
5.5.2 Einen neuen Inhaltstyp für Pressemeldungen erstellen......Page 137
5.7 RSS-Feeds......Page 138
5.8.1 Taxonomien - Ein Beispiel......Page 139
5.9 Eingabeformate......Page 144
5.10 Editoren......Page 145
5.11 Upload......Page 146
5.12.1 Bilder......Page 147
5.12.2 Videos und Podcasts......Page 149
5.13 Suchmaschinenfreundliche URLs......Page 150
6.1 Blöcke......Page 154
6.1.1 Neuen Block erstellen......Page 155
6.2 Kontaktformular......Page 158
6.3.1 Die Grundausstattung......Page 160
6.3.2 Ein neues Menü......Page 161
6.3.3 Zuordnung von Menüeinträgen (Links)......Page 162
6.4.2 Neue Module installieren (contributed modules)......Page 164
6.4.3 Module deinstallieren......Page 168
6.5.1 Übersetzen eines Strings »per Hand«......Page 169
6.5.3 Exportieren von .po Dateien......Page 170
6.6.1 Vorhandene Themes konfigurieren......Page 171
6.6.2 Ein neues Theme installieren......Page 172
7.1 Aktionen und Trigger......Page 174
7.1.2 Schritt 2 - Aktion erstellen......Page 175
7.1.3 Schritt 3 - Auslöser (Trigger) festlegen......Page 176
7.1.4 Das Ergebnis......Page 177
7.3 Dateisystem: Ordner für Uploads festlegen......Page 178
7.4 Datum und Uhrzeit......Page 179
7.5.1 Filtered HTML: Ein Filter im Detail......Page 181
7.5.2 Das Eingabeformat »Filtered HTML« konfigurieren......Page 182
7.6 Fehlermeldungen......Page 184
7.7 Hochgeladene Dateien......Page 185
7.8.1 Seitencache......Page 187
7.8.4 Cache leeren......Page 188
7.10 Logging and alerts......Page 189
7.11.1 Die Oberflächensprache......Page 190
7.11.2 Sprache bearbeiten und konfigurieren......Page 191
7.12 Verwaltungs-Theme......Page 192
7.13 Wartungsarbeiten......Page 193
7.14 Website-Informationen......Page 194
8.1 Das Modul Poll: Umfragen erstellen und auswerten......Page 196
8.1.3 Schritt 3 - Umfrage erstellen......Page 197
8.1.4 Schritt 4 - Umfrage-Block positionieren......Page 198
8.1.6 Schritt 6 - Umfrage beenden und auswerten......Page 199
8.2.2 Schritt 2 - Berechtigungen: Wer darf was?......Page 200
8.2.3 Schritt 3 - Einen Ordner für das Forum erstellen......Page 201
8.2.4 Schritt 4 - Ein neues Forum erstellen......Page 202
8.2.6 Schritt 6 - Den Forenbereich verlinken......Page 203
8.3 WYSIWYG-Editoren erleichtern Benutzern das Leben......Page 204
8.3.1 TinyMCE-Editor......Page 205
8.3.2 FCKeditor......Page 208
8.4 IMCE: Eine eigene Medienbibliothek für jeden Benutzer......Page 209
8.4.3 Schritt 3 - IMCE Dateiverwalter im Editor aktivieren......Page 210
8.4.4 Schritt 4 - IMCE benutzen......Page 211
8.5.1 Das Modul Blog API aktivieren......Page 212
8.5.2 Fotos von Flickr direkt auf Ihre Site posten......Page 213
8.5.3 Google Docs......Page 214
8.5.4 OpenOffice.org......Page 216
8.6 Inhalt und die Zukunft?......Page 217
9.1 Die eingebaute Hilfe: Verwalten - Hilfe......Page 220
9.2.1 Neue Log-Einträge......Page 221
9.2.4 Statusbericht......Page 222
9.3 Wie aktualisiere ich ein Modul oder Theme?......Page 225
9.3.2 Schritt 2 - Admin Menü - Modul-Update einspielen......Page 226
9.3.3 Schritt 3 - Datenbank-Update ausführen......Page 227
9.4 Das Modul Statistics: Referrer, Seitenaufrufe und mehr......Page 228
9.5 Tracker: Was tun denn eigentlich die Benutzer?......Page 229
9.6 Throttle: Lastreduzierung für Blöcke......Page 230
9.8.1 Das Suchmodul aktivieren......Page 231
9.8.2 Die Einstellungen für das Suchmodul......Page 232
9.9.1 Die Ordner sites/default und sites/all......Page 233
9.9.3 Schritt 2 - Die DNS-Auflösung unter Windows......Page 234
9.9.4 Schritt 3 - Den Apache-Webserver konfigurieren......Page 235
9.9.5 Schritt 4 - Drupal konfigurieren......Page 236
9.9.6 Das Ergebnis......Page 237
Teil III Die Kür......Page 238
10 Verändern Sie das Design - theming......Page 240
10.2.1 Drupals Theme-Engine: PHPTemplate......Page 241
10.2.2 Aufbau eines Themes in Drupal 6......Page 242
10.3.1 Die Informationen zum Theme: themename.info......Page 244
10.3.2 Dateien mit der Endung *.tpl.php......Page 246
10.3.3 Die Datei template.php......Page 247
10.3.4 Jedes Theme kann weitere Themes enthalten (Sub-Themes)......Page 248
10.4 Veränderungen gegenüber Drupal 5......Page 249
10.5 Erstellen eines eigenen Themes in Drupal......Page 251
10.5.3 Start in drei Schritten......Page 252
10.5.4 Die Website im neuen Theme......Page 253
10.5.5 Welche Datei ist für was verantwortlich?......Page 254
10.5.7 Eine style.css für Ihr neues Theme......Page 256
10.5.8 Den Kopfbereich für das Theme ändern......Page 258
10.6 Ein Beispiel zum Überschreiben von Theme- Funktionen in Drupal 6......Page 260
10.7 Veröffentlichen eines Themes auf Drupal.org......Page 261
10.7.2 Wie werde ich Drupal-Entwickler?......Page 262
11.1 Ein Beispiel......Page 266
11.2 Installation der notwendigen Module......Page 267
11.3 Zwei neue Inhaltstypen mit Zusatzfeldern erstellen......Page 269
11.4 Benutzerberechtigungen......Page 270
11.5 Dateneingabe......Page 271
11.6 Ansicht auf der Website......Page 272
11.7.1 Ein anderes Layout erstellen - direkt in PHP......Page 273
11.7.2 Installation des Hilfsmoduls Content Template......Page 274
11.8.1 Eine Slideshow für die Fahrzeuge......Page 276
12 Views: Ansichten erstellen......Page 280
12.1 Views: Installation und Konfiguration......Page 281
12.1.2 Vordefinierte Ansichten......Page 282
12.2.1 Ein zusätzliches Feld Erstellungsdatum für die »beliebten Inhalte«......Page 285
12.2.2 Felder in der Ansicht »beliebte Inhalte« umsortieren......Page 287
12.3 Wichtige Begriffe beim Bearbeiten einer Ansicht......Page 288
12.4.1 Schritt 1: Neue Ansicht erstellen......Page 289
12.4.2 Schritt 2: Standardeinstellungen für die Ansicht festlegen......Page 290
12.4.3 Schritt 3: Felder »Titel« und »Preis« hinzufügen......Page 291
12.4.4 Schritt 4: Filter »Inhaltstyp Fahrzeug« setzen......Page 292
12.5.1 Schritt 1: Anzeige »Seite« erstellen......Page 293
12.5.2 Schritt 2: Pfad und Menüeintrag definieren......Page 294
12.5.4 Schritt 4: Die Seitenanzeige bearbeiten......Page 295
12.6 Ansicht »Fahrzeugliste«: Erstellung der Anzeige RSS-Feeds......Page 298
12.7.1 Das Feld Standort nur für die Anzeige »Block« entfernen......Page 300
12.7.3 Änderung der Darstellung im Block......Page 301
12.7.4 Den Block positionieren und nur auf bestimmten Seiten darstellen......Page 303
12.8 Weitergabe von Ansichten......Page 304
13 Nützliche Module......Page 306
13.1.2 Konfiguration des Moduls......Page 307
13.1.3 Erstellen Sie ein neues Formular......Page 309
13.1.4 Erstellen Sie Formularfelder......Page 312
13.1.5 Füllen Sie Ihr Formular aus......Page 314
13.2 Node Clone: Inhalte kopieren......Page 316
13.3.1 Das Modul External Links......Page 317
13.3.2 Das Modul Smileys......Page 318
13.4 Google Analytics: externe Statistiken......Page 319
13.5.1 Mollom......Page 321
13.5.2 Das Captcha-Modul......Page 323
13.5.3 Beispiel: Ein Bild-Captcha für das Probefahrt-Formular......Page 324
13.6 i18n: Internationalisierung......Page 326
13.6.2 Beispiel 2: eine mehrsprachige Navigation mit unterschiedlichen Menüs......Page 328
13.6.3 Devel: Hilfe bei der Entwicklung neuer Themes und Module......Page 329
13.6.4 Devel Module......Page 330
13.6.6 Devel node access Module......Page 331
13.6.8 Theme developer Module......Page 332
A.1.1 Wie sichere ich am besten?......Page 334
A.2.2 Schritt 2 - Datenbank einlesen......Page 336
A.2.3 Schritt 3 - settings.php anpassen......Page 337
A.3.2 Das Update......Page 338
A.4 System-Update Drupal 5.x auf 6.x......Page 339
A.5 Inhalt der CD......Page 340
D......Page 342
M......Page 343
R......Page 344
Z......Page 345
Ins Internet: Weitere Infos zum Buch, Downloads, etc.......Page 0
Papiere empfehlen

Drupal 6: Websites entwickeln und verwalten mit dem Open Source-CMS [1 ed.]
 3827326087, 978-3-8273-2608-9 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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 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 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)