This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Liebe Leserin, lieber Leser, Contao, vormals TYPOlight, hat sich innerhalb kürzester Zeit vom Geheimtipp zu einem der beliebtesten CMS entwickelt. Die Gründe dafür sind vielfältig. So setzt Contao konsequent auf aktuelle Webstandards, Barrierefreiheit, Mehrsprachenfähigkeit, Personalisierbarkeit und suchmaschinenfreundliche URLs. Contao trennt konsequent zwischen Inhalt und Design mit CSS. Wer seine Website mit Contao umsetzen möchte, sollte daher auch souverän mit IDs und Klassen umgehen können. Peter Müller, vielen Lesern bekannt durch seine Einführung in CSS »Little Boxes«, stellt mit vielen Praxisbeispielen Installation, Konfiguration und Administration von Contao vor. Sein unnachahmlicher Stil garantiert Ihnen schnellen Lernerfolg und Unterhaltung auf jeder Seite. Schritt für Schritt begleitet er Sie bei der Erstellung Ihres Webauftritts. Angefangen von der Installation von Contao und einem Testsystem bis hin zur fertigen Website finden Sie alles, was Sie für einen erfolgreichen Start benötigen. Dieses Buch wurde mit großer Sorgfalt lektoriert und produziert. Sollten Sie dennoch Fehler finden oder inhaltliche Anregungen haben, scheuen Sie sich nicht, mit uns Kontakt aufzunehmen. Ihre Fragen und Änderungswünsche sind uns jederzeit willkommen. Viel Vergnügen beim Lesen! Wir freuen uns auf den Dialog mit Ihnen.
Ihr Stephan Mattescheck Lektorat Galileo Computing
Das ist Contao .........................................................
25
2
Schnelldurchlauf: So funktioniert Contao .................
31
TEIL II Contao installieren 3
XAMPP: Der Offline-Webspace ...............................
51
4
Die Installation von Contao .....................................
71
5
Ein kurzer Rundgang im Backend ............................ 101
TEIL III Schritt für Schritt zur ersten Website 6
Die erste Website mit Contao ................................. 117
7
Webseiten gestalten: Contao und CSS ..................... 155
8
Navigationen erstellen in Contao ............................ 193
TEIL IV Inhalte erstellen und verwalten 9
Inhaltselemente für Text und Bilder ......................... 233
10 Weitere nützliche Inhaltselemente .......................... 265 11 Kontakt: Formulare erstellen mit Contao ................. 289 12 Suchfunktion: Die Beispielsite durchsuchen ............. 317 13 Die Erweiterung »Nachrichten« ............................... 335 14 Die Erweiterungen »Kalender« und »FAQ« .............. 371 15 Die Erweiterung »Newsletter« ................................. 389 16 Die Startseite gestalten ........................................... 401 TEIL V Systemverwaltung 17 Der Theme-Manager in Aktion ................................ 421 18 Die Optimierung für Suchmaschinen ....................... 437 19 Mitglieder: Im Frontend angemeldete Besucher ...... 459 20 Benutzer: Im Backend angemeldete Mitarbeiter ...... 479 21 Die Website im Alltag ............................................. 495 22 Contao für Fortgeschrittene: Tipps und Tricks .......... 507
Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. ISBN
Das vorliegende Werk ist in all seinen Teilen urheberrechtlich geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion, der Vervielfältigung auf fotomechanischem oder anderen Wegen und der Speicherung in elektronischen Medien. Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Programmen verwendet wurde, können weder Verlag noch Autor, Herausgeber oder Übersetzer für mögliche Fehler und deren Folgen eine juristische Verantwortung oder irgendeine Haftung übernehmen. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen.
Inhalt Geleitwort des Fachgutachters ........................................................................ Vorwort ..........................................................................................................
19 21
TEIL I Contao kennenlernen 1
Das ist Contao .......................................................................... 25 1.1
1.2 1.3 1.4
2
Contao ist ein Content-Management-System ............................... 1.1.1 Brauchen Sie ein Content-Management-System? ............. 1.1.2 Contao unterstützt Sie bei Inhalt, Gestaltung und Funktionen ..................................................................... Die Website zum Programm: www.contao.org ............................ Ein paar Highlights von Contao .................................................... Die Community im Web: »www.contao-community.de« ..............
Das Frontend ist die Website ....................................................... Das Backend ist die Verwaltungsabteilung ................................... Die Seitenstruktur ist das Fundament der Website ....................... Themes bestimmen das Aussehen der Site ................................... Module erzeugen den Quelltext für das Frontend ........................ Jede Seite hat ein Seitenlayout ..................................................... Seitenlayouts verbinden die Seiten mit Stylesheets ...................... Jeder Artikel gehört zu einer Seite ............................................... Ein Artikel besteht aus Inhaltselementen ..................................... Das Backend ist für Redakteure sehr übersichtlich ........................ Zusammenfassung – so tickt Contao .............................................
32 33 35 36 37 38 41 42 43 46 47
TEIL II Contao installieren 3
XAMPP: Der Offline-Webspace ............................................... 51 3.1
3.2
XAMPP ist Webspace auf Ihrem Rechner ..................................... 3.1.1 Statische Webseiten: Der Webspace als Lagerhalle .......... 3.1.2 Content-Management-System: Der Webspace als Werkstatt ........................................................................ Die Installation von XAMPP Lite (Windows) ................................ 3.2.1 XAMPP Lite installieren ..................................................
51 51 52 53 54 5
Inhalt
3.3
3.4
3.5
3.6 3.7
4
54 56 57 57 58 60 60 62 62 63 66 66 67 68 69
Die Installation von Contao ..................................................... 71 4.1 4.2 4.3
4.4
4.5 4.6 4.7 4.8
6
3.2.2 Das XAMPP Control Panel .............................................. 3.2.3 Testen, ob der Webserver funktioniert ............................ Der Sicherheitscheck von XAMPP ................................................ 3.3.1 Den Sicherheitscheck aufrufen ........................................ 3.3.2 Einen Passwortschutz für MySQL und phpMyAdmin einrichten ....................................................................... 3.3.3 Passwortschutz für das XAMPP-Verzeichnis einrichten .... 3.3.4 Die neuen Sicherheitseinstellungen testen ....................... Der Webserver: Apache serviert Webseiten ................................. 3.4.1 DocumentRoot: »htdocs«, der Ordner für die Webseiten ...................................................................... 3.4.2 Der PHP-Übersetzer: Als Modul oder als CGI .................. MySQL serviert SQL-Datenbanken ............................................... 3.5.1 MySQL verwaltet mehrere Datenbanken ......................... 3.5.2 SQL ist die Sprache zur Verwaltung von Datenbanken ..... phpMyAdmin verwaltet die Datenbanken von MySQL ................. XAMPP-Matrix – die Komponenten im Überblick ........................
Vorbereitung: Die Systemvoraussetzungen ................................... Offline: Contao auf Ihrem Rechner installieren ............................. Online: Contao im Web installieren ............................................. 4.3.1 Informationen über Webhoster im Forum ....................... 4.3.2 Webspace prüfen: Das Contao-Systemdiagnosetool ........ 4.3.3 Dateien auf den Webspace kopieren ............................... 4.3.4 Zugangsdaten für die Datenbank ..................................... 4.3.5 Die Installation im Überblick ........................................... Safe Mode Hack: Der FTP-Modus von Contao ............................. 4.4.1 »Sie benötigen wahrscheinlich den Safe Mode Hack« ...... 4.4.2 Eine Alternative zum SMH: PHP als CGI oder Fast-CGI .... 4.4.3 Online: So richten Sie den Safe Mode Hack ein ............... 4.4.4 Offline-Webspace: SMH bei einer lokalen Installation umgehen ......................................................................... Alte PHP-Version: Parse error… ................................................... Sonstige potenzielle Probleme bei der Installation ....................... Umzug: Von XAMPP auf den Online-Webspace ........................... Know-how: Dateiberechtigungen – das 1x1 zu 644 ..................... 4.8.1 Besitzer, Benutzer und Berechtigungen: 644 und 755 ..... 4.8.2 PHP und Contao: Benutzerrechte, Modul und (Fast)CGI .........................................................................
Was der Safe Mode Hack genau macht ........................... Sicherheitsloch: »Alles auf 777« ist keine gute Idee .........
99 99
Ein kurzer Rundgang im Backend ............................................ 101 5.1 5.2 5.3 5.4 5.5
5.6
5.7
Überblick: Das Backend ............................................................... Ganz oben: Der Infobereich ......................................................... Links: Der Navigationsbereich (Backend-Module) ........................ Rechts: Der Arbeitsbereich .......................................................... »System 폷 Einstellungen« .............................................................. 5.5.1 Der »Titel der Webseite« ................................................. 5.5.2 Das Format für Angaben von Datum und Zeit ................. Der Dateimanager: »System 폷 Dateiverwaltung« ........................... 5.6.1 Ordner erstellen mit dem Dateimanager ......................... 5.6.2 Dateien mit dem Dateimanager hochladen ..................... Erweiterungen installieren ........................................................... 5.7.1 Die Erweiterungsliste auf »contao.org« ............................ 5.7.2 Erweiterungen aus dem Backend heraus installieren ........
Die erste Website mit Contao ................................................. 117 6.1
6.2
6.3
6.4
6.5
»No pages found« – Die Seitenstruktur erstellen .......................... 6.1.1 Der Startpunkt für eine neue Website ............................. 6.1.2 Sprachen-Fallback für den Startpunkt aktivieren .............. 6.1.3 Die Startseite für die Beispielsite erstellen ....................... 6.1.4 Die Seitenstruktur für die Beispielsite erweitern .............. »No layout found« – Theme und Seitenlayout erstellen ................ 6.2.1 Das erste Theme erstellen ............................................... 6.2.2 Das erste Seitenlayout erstellen ....................................... 6.2.3 Ein kurzer Blick in den Quelltext ..................................... Das erste Frontend-Modul: »Navigation – Hauptnavi« ................. 6.3.1 Ein Navigationsmodul erstellen ....................................... 6.3.2 Das Navigationsmodul im Seitenlayout einbinden ........... Frontend-Module für den Kopf- und den Fußbereich ................... 6.4.1 Module für den Kopf- und den Fußbereich erstellen ....... 6.4.2 Die Module für den Kopf- und den Fußbereich im Seitenlayout einbinden .................................................... Das erste Stylesheet erstellen und zuweisen ................................. 6.5.1 Das erste Stylesheet im Backend erstellen .......................
Webseiten gestalten: Contao und CSS .................................... 155 7.1
7.2
7.3
7.4
7.5
7.6
8
Stylesheet bearbeiten: Einen Style für »body« erstellen .... Das Stylesheet mit dem Seitenlayout verbinden .............. Weitere Styles für Kopfbereich, Hauptspalte und Fußbereich ...................................................................... Der erste Artikel und ein Inhaltselement ...................................... 6.6.1 Der Artikelbaum: Die Übersicht über alle Artikel ............. 6.6.2 Die Einstellungen für einen Artikel .................................. 6.6.3 Inhaltselemente zu einem Artikel hinzufügen .................. 6.6.4 Den Artikel mit dem Seitenlayout verbinden ................... Templates: Das HTML für den Quelltext ...................................... 6.7.1 Es gibt verschiedene Arten von Templates ....................... 6.7.2 Das HTML der Navigation im Quelltext ........................... 6.7.3 Backend-Modul »Templates«: Templates update-sicher anpassen ......................................................................... 6.7.4 Ein kurzer Blick in das Template »nav_default.tpl« ........... Das Contao-Prinzip: Altogether now ............................................
Übersicht: Contao und CSS .......................................................... 7.1.1 Gestatten: Das CSS-Framework von Contao .................... 7.1.2 Stylesheets bearbeiten: Interner oder externer Editor? ..... Arbeiten mit internen Stylesheets ................................................ 7.2.1 Der interne CSS-Editor: CSS per HTML-Formular ............. 7.2.2 Übung: Header und Footer mit dem internen CSSEditor gestalten ............................................................... 7.2.3 Tipps für die Arbeit mit dem internen CSS-Editor ............ 7.2.4 Integration von internen Stylesheets in »Seitenlayouts« ... Interne Stylesheets: CSS-Dateien importieren .............................. 7.3.1 Das Reset-Stylesheet »basic.css« herunterladen ............... 7.3.2 Das Reset-Stylesheet »basic.css« importieren ................... 7.3.3 Das Reset-Stylesheet »basic.css« im Detail ....................... Das Suchen und Filtern von Styles in internen Stylesheets ............ 7.4.1 Styles mit bestimmten Selektoren suchen ........................ 7.4.2 Filtern nach Kategorie ..................................................... Die Erweiterung »[csseditor]« ....................................................... 7.5.1 Die Erweiterung »[csseditor]« installieren und kennenlernen .................................................................. 7.5.2 Interne Stylesheets extern bearbeiten .............................. 7.5.3 Einschränkungen bei der Arbeit mit »[csseditor]« ............. Übung: Gestaltung der Navigation per CSS ..................................
Externe Stylesheets: CSS außerhalb der Datenbank ...................... 7.7.1 Vorgehensweise: Die Arbeit mit externen Stylesheets ...... 7.7.2 Integration von externen Stylesheets in »Seitenlayouts« .. Teamwork: Interne und externe Stylesheets zusammen ................ Fazit: Jeder kann so arbeiten wie er gerne möchte ....................... Know-how: Das CSS-Framework von Contao ............................... 7.10.1 Das HTML-Grundgerüst von Contao in »fe_page.tpl« ...... 7.10.2 »$this->framework«: Die Einstellungen aus dem Seitenlayout .................................................................... 7.10.3 Stylesheets einbinden: »$this->stylesheets« und »$this->head« ................................................................. 7.10.4 Das CSS-Framework von Contao aus Benutzersicht ......... 7.10.5 Der Kern des CSS-Frameworks: »system/contao.css« ....... 7.10.6 Patches für IE6 und 7: »system/iefixes.css« ......................
Übersicht: Seiten, Module und Artikel ......................................... Die Navigationsmodule im Überblick ........................................... Die Seitenstruktur der Beispielsite erweitern ................................ Vertikale Navigation mit zwei Ebenen .......................................... Horizontale Navigation mit zwei Ebenen ...................................... Horizontale und vertikale Navigation zusammen .......................... Metanavigation: Eine »Individuelle Navigation« ........................... Sitemap: Das Inhaltsverzeichnis der Website ................................ Weitere Navigationsmodule ......................................................... 8.9.1 Quicknavigation und Quicklink ....................................... 8.9.2 Navigationspfad: Die Breadcrumb-Navigation »Sie sind hier« ............................................................................... 8.9.3 Buchnavigation: Von einer Seite zur nächsten und zurück
193 194 195 197 203 211 215 221 226 226 227 228
TEIL IV Inhalte erstellen und verwalten 9
Inhaltselemente für Text und Bilder ........................................ 233 9.1 9.2 9.3
Artikel und Inhaltselemente im HTML-Quelltext .......................... Das Inhaltselement »Überschrift«: »ce_headline« .......................... Das Inhaltselement »Text«: »ce_text« ........................................... 9.3.1 Inhaltselement Text: Die Eingabemaske .......................... 9.3.2 Der Editor TinyMCE im Überblick .................................... 9.3.3 Hyperlinks erstellen im Editor TinyMCE ...........................
233 234 237 238 238 240
9
Inhalt
9.3.4 9.3.5 9.4
9.5
9.6 9.7
Das Inhaltselement »Text« mit einem Bild erweitern ........ Das HTML für das eingefügte Bild und ein CSSBilderrahmen .................................................................. Das Inhaltselement »Bild«: »ce_image« ........................................ 9.4.1 Das Inhaltselement »Bild« im Einsatz ............................... 9.4.2 »Bild-Einstellungen«: Die Möglichkeiten der Bildanpassung ................................................................. Das Inhaltselement »Galerie«: »ce_gallery« ................................... 9.5.1 Eine Bildergalerie erstellen .............................................. 9.5.2 Die Bildergalerie im HTML .............................................. 9.5.3 Beschriftung von Galerien: »meta.txt« ............................. Das Inhaltselement »Top-Link«: «ce_toplink» ............................... Syndikation: Artikel drucken und verbreiten ................................ 9.7.1 Die Links zur Syndikation aktivieren ................................ 9.7.2 Die Links zur Syndikation per CSS gestalten .....................
10 Weitere nützliche Inhaltselemente ......................................... 265 10.1
10.2
10.3
10.4
10
Das Inhaltselement »Tabelle«: ce_table ........................................ 10.1.1 Der Eingabeassistent für das Inhaltselement »Tabelle« ..... 10.1.2 Importieren der Daten mit einer CSV-Datei ..................... 10.1.3 Das HTML für das Inhaltselement »Tabelle« .................... 10.1.4 Das Inhaltselement »Tabelle« per CSS gestalten ............... Das Inhaltselement »Akkordeon«: »ce_accordion« ........................ 10.2.1 Seitenlayout vorbereiten und Artikel erstellen ................. 10.2.2 Das Eingabeformular für das Inhaltselement »Akkordeon« ................................................................... 10.2.3 Zugeschaut und mitgebaut: Drei Akkordeons erstellen .... 10.2.4 Das HTML für ein Akkordeon .......................................... 10.2.5 Das CSS zur Gestaltung eines Akkordeons ....................... 10.2.6 Optional: Grafiken zur Statusanzeige ............................... Externe Videos auf Webseiten einbinden ..................................... 10.3.1 Inhaltselement »Text«: Ein Link in einer Mediabox .......... 10.3.2 Das Inhaltselement »HTML«: »ce_html« .......................... Weitere Inhaltselemente im Überblick ......................................... 10.4.1 Das Inhaltselement »Code«: »ce_code« ............................ 10.4.2 Das Inhaltselement »Aufzählung«: »ce_list« ..................... 10.4.3 Das Inhaltselement »Modul« ........................................... 10.4.4 Die »Include«-Elemente im Kurzüberblick .......................
11 Kontakt: Formulare erstellen mit Contao ................................ 289 11.1 11.2
11.3
11.4
Ein Kontaktformular für die Beispielsite erstellen ......................... Das Kontakformular gestalten ...................................................... 11.2.1 Das HTML für das Kontaktformular ................................. 11.2.2 Das CSS für das Kontaktformular ..................................... Formularfelder: Die Feldtypen im Formulargenerator ................... 11.3.1 Formularfelder einfügen: Die Feldtypen im Überblick ...... 11.3.2 Überschrift und Erklärung für zusätzliche Informationen ................................................................. 11.3.3 Formularfelder gruppieren: »fieldset« und »legend« ......... 11.3.4 Das Passwortfeld: Automatisch mit Bestätigungsfeld ....... 11.3.5 Das Select-Menü: Auswahllisten per Klick ....................... 11.3.6 Das Radio-Button-Menü: Optionsfelder deluxe ............... 11.3.7 Das Checkbox-Menü: Kontrollkästchen deluxe ................ 11.3.8 »Datei-Upload«: Besucher können Dateien hochladen ..... 11.3.9 Die Sicherheitsfrage zur Spamvermeidung ....................... Sinnvolle Erweiterungen zur Arbeit mit Formularen .....................
12 Suchfunktion: Die Beispielsite durchsuchen ........................... 317 12.1 12.2 12.3
Teil 1: Eine Suchseite erstellen ..................................................... 318 Teil 2: Das Suchformular erstellen und einbinden ......................... 326 Die Syntax der Suchfunktion im Überblick ................................... 334
13 Die Erweiterung »Nachrichten« ............................................... 335 13.1 13.2
13.3
Übersicht: Die Zutaten für das Nachrichtensystem ....................... Das Backend-Modul »Nachrichten«: Beiträge erstellen ................. 13.2.1 »Newsarchiv«: Ein Nachrichtenarchiv erstellen ................ 13.2.2 Nachrichtenbeiträge schreiben ........................................ Beiträge auf den Webseiten ausgeben ......................................... 13.3.1 Eine neue Seite zur Anzeige eines Beitrags (Einzelansicht) ................................................................. 13.3.2 Das Modul »Nachrichten – Teaser anzeigen [Nachrichtenarchiv]« ....................................................... 13.3.3 Das Modul »Beitrag anzeigen [Nachrichtenleser]« ........... 13.3.4 Einbinden des Moduls »Nachrichten – Teaser anzeigen« .. 13.3.5 Einbinden des Moduls »Nachrichten – Beitrag anzeigen« ........................................................................
336 336 337 338 341 341 343 344 345 346
11
Inhalt
13.4
13.5 13.6 13.7
13.8
13.9
HTML und CSS: Teaser und Beiträge gestalten ............................. 13.4.1 Das HTML des Moduls »Nachrichten – Teaser anzeigen« ........................................................................ 13.4.2 Das CSS für das Modul »Nachrichten – Teaser anzeigen« ........................................................................ 13.4.3 Das HTML des Moduls »Nachrichten – Beitrag anzeigen« ........................................................................ 13.4.4 Das CSS für das Modul »Nachrichten – Beitrag anzeigen« ........................................................................ Bilder zu Teasern und Beiträgen hinzufügen ................................. Einen Feed zum Abonnieren der Beiträge erstellen ...................... Die Kommentarfunktion .............................................................. 13.7.1 Die Kommentarfunktion aktivieren .................................. 13.7.2 Kommentare schreiben und überprüfen .......................... 13.7.3 Kommentare und Fehlermeldungen gestalten ................. 13.7.4 Kommentare im Backend verwalten ................................ Navigation: Beiträge monatsweise auswählen .............................. 13.8.1 Das Modul »Monat auswählen [NachrichtenarchivMenü]« ........................................................................... 13.8.2 Das Modul »Nachrichten – Monat auswählen« einbinden ........................................................................ 13.8.3 Das HTML des Moduls »Nachrichten – Monat auswählen« ..................................................................... 13.8.4 Das CSS für das Modul »Nachrichten – Monat auswählen« ..................................................................... Übersicht: Nachrichten, Modultypen und Templates .................... 13.9.1 Die Modultypen und die Modultemplates »mod_news*.tpl« ............................................................. 13.9.2 Die vier Subtemplates »news_*.tpl« .................................
14 Die Erweiterungen »Kalender« und »FAQ« ............................. 371 14.1 14.2
14.3
12
Die Erweiterung »Kalender«: Termine verwalten .......................... 14.1.1 Die Erweiterung »Kalender« in der Übersicht ................... Einen Kalender gestalten ............................................................. 14.2.1 Das HTML vom Frontend-Modul »Kalender« ................... 14.2.2 Das CSS zum Gestalten eines Kalenders ........................... 14.2.3 HTML und CSS zur Gestaltung der Einzelansicht .............. Häufig gestellte Fragen: Die FAQ-Erweiterung ............................. 14.3.1 Die Kurzanleitung für die FAQ-Erweiterung .................... 14.3.2 Die FAQ-Erweiterung gestalten .......................................
371 372 377 377 379 383 384 384 386
Inhalt
15 Die Erweiterung »Newsletter« ................................................. 389 15.1
15.2
15.3
Das Backend-Modul »Newsletter« ............................................... 15.1.1 Einen Verteiler erstellen .................................................. 15.1.2 Abonennten verwalten: Die Empfänger des Newsletters ..................................................................... 15.1.3 Einen Newsletter erstellen ............................................... 15.1.4 Einen Newsletter versenden ............................................ Newsletter im Frontend anzeigen ................................................ 15.2.1 Die Kurzanleitung zur Darstellung der Newsletter auf der Site ........................................................................... 15.2.2 Das HTML der Frontend-Module zur Newsletterdarstellung ..................................................... Newsletter im Frontend abonnieren und kündigen ...................... 15.3.1 Die Kurzanleitung zum Abonnieren und Kündigen .......... 15.3.2 Das HTML der Frontend-Module »Abonnieren« und »Kündigen« .....................................................................
390 390 391 392 393 395 396 396 397 398 399
16 Die Startseite gestalten ........................................................... 401 16.1 16.2
16.3 16.4
16.5
16.6
Ein neues Layout für die Startseite ............................................... Inhalt für die Hauptspalte: Newsbeiträge und Termine ................. 16.2.1 Die Frontend-Module erstellen ....................................... 16.2.2 Die Frontend-Module auf der Startseite einbinden .......... 16.2.3 Newsbeiträge und Termine gestalten .............................. Artikel mit Teaser auf der Startseite ............................................. Sidebar erstellen: Lesetipps und Zufallsbild .................................. 16.4.1 Lesetipps mit einem Quicklink-Modul ............................. 16.4.2 Ein zufällig ausgewähltes Bild .......................................... 16.4.3 Die Sidebar gestalten ...................................................... Der Minikalender in der Sidebar .................................................. 16.5.1 Eine neue Seite mit dem Modul »Eventliste« erstellen ..... 16.5.2 Ein Modul für den Minikalender erstellen und einbinden ........................................................................ 16.5.3 Den Minikalender gestalten ............................................ Newsletter abonnieren in der Sidebar ..........................................
TEIL V Systemverwaltung 17 Der Theme-Manager in Aktion ................................................ 421 17.1
17.2 17.3 17.4
17.5
17.6
Ein Theme bestimmt das Aussehen der Website .......................... 17.1.1 Der Theme-Manager verwaltet bekannte Komponenten ................................................................. 17.1.2 »Blaues Theme« von der Beispielsite exportieren ............. 17.1.3 All-in-one: Das Innenleben einer CTO-Datei ................... 17.1.4 Was nicht in einem Theme enthalten ist .......................... Das »Cover Theme«: Die Beispielsite im neuen Look .................... Über die Anpassung von Themes ................................................. Sonderfall: In Artikeln eingebundene Module .............................. 17.4.1 Im Seitenlayout eingebundene Module sind unproblematisch ............................................................. 17.4.2 In Artikeln eingebundene Frontend-Module sind Inhalt .............................................................................. 17.4.3 Was mit in Artikeln eingebundenen Modulen schiefgehen kann ......................................................................... 17.4.4 Reparatur: Anpassung von in Artikeln eingebundenen Modulen ......................................................................... Sicherheitshinweise für Contao-Themes ....................................... 17.5.1 Das potenzielle Problem ................................................. 17.5.2 Vertrauenswürdige Quellen ............................................. 17.5.3 Ein Theme prüfen ............................................................ 17.5.4 Angriff von innen ............................................................ Fazit: Themes sind klasse .............................................................
18 Die Optimierung für Suchmaschinen ....................................... 437 18.1
18.2 18.3
14
Lesbare Adressen: URLs umschreiben .......................................... 18.1.1 Content-Management-Systeme und URLs ....................... 18.1.2 Die drei URL-Einstellungen von Contao ........................... 18.1.3 Drei Voraussetzungen zum Umschreiben der URLs .......... 18.1.4 Contao im Unterordner: Die »RewriteBase« in der ».htaccess« ...................................................................... 18.1.5 Die Rewrite-Regel zum URL-Umschreiben in der ».htaccess« ...................................................................... 18.1.6 So wird’s gemacht: URLs umschreiben in der Praxis ......... Flache oder hierarchische URLs? .................................................. Die Optimierung von Seiten ........................................................ 18.3.1 Seitenname und Seitenalias im Backend von Contao .......
438 438 439 440 441 442 442 444 445 445
Inhalt
18.4
18.5
18.3.2 Der Titel der Seite: » ... « ........................... 18.3.3 Die Beschreibung der Seite: »<meta name="description">« ..................................................... Abfangjäger: 404 und 403 ........................................................... 18.4.1 Statusmeldungen: Der Webserver schickt eine Nummer mit ................................................................... 18.4.2 404-Seite nicht gefunden: Darf’s vielleicht was anderes sein? ............................................................................... 18.4.3 403 Zugriff verweigert: Diese Seite gibt es, aber nicht für Sie .................................................................................. Eine XML-Sitemap für Google & Co .............................................
447 450 451 451 453 455 456
19 Mitglieder: Im Frontend angemeldete Besucher ..................... 459 19.1 19.2
19.3
19.4
19.5 19.6
Mitglieder und Benutzer: Der Unterschied ................................... Mitgliedergruppen und Mitglieder einrichten .............................. 19.2.1 Mitgliedergruppen einrichten .......................................... 19.2.2 Mitglieder einrichten ...................................................... Seiten und Module für die An- und Abmeldung erstellen ............. 19.3.1 Seiten zur An- und Abmeldung erstellen ......................... 19.3.2 Die Module zur Anmeldung im Überblick ....................... 19.3.3 Ein Modul für das Anmeldeformular: »[LoginFormular]« ...................................................................... 19.3.4 Ein Modul zur Abmeldung: »[Automatischer Logout]« ..... 19.3.5 Modul für den Link zur Anmeldeseite: »[Eigener HTML-Code]« ................................................................. 19.3.6 Anmeldenamen und Abmeldelink: »[Eigener HTMLCode]« ............................................................................ Die erstellten Module einbinden und gestalten ............................ 19.4.1 Die Module zum An- und Abmelden in Artikeln einbinden ........................................................................ 19.4.2 Module für den Fußbereich im Seitenlayout einbinden .... 19.4.3 An- und Abmeldung testen ............................................. 19.4.4 Das Anmeldeformular gestalten ...................................... Einen geschützten Downloadbereich einrichten ........................... Weitere Möglichkeiten zur Mitgliederverwaltung ........................ 19.6.1 Das Modul »Passwort vergessen« .................................... 19.6.2 Das Modul »Persönliche Daten« ...................................... 19.6.3 Die automatische Registrierung für Mitglieder .................
Benutzerverwaltung: Die Übersicht .............................................. Die Benutzergruppe »Redakteure – Nachrichten« ......................... Die Benutzerin »Helen Lewis« einrichten ...................................... 20.3.1 Testen der Einstellungen: Ein Klick, und Sie sind Helen Lewis .............................................................................. Die Benutzergruppe »Redakteure – Artikel« ................................. 20.4.1 Benutzergruppe »Redakteure – Artikel« einrichten .......... 20.4.2 Benutzer zuweisen und testen ......................................... Zugriffsrechte für Seiten und Artikel setzen .................................. 20.5.1 Zugriffsrechte: Was mit Seite und Artikel gemacht werden darf .................................................................... 20.5.2 Zugriffsrechte für die freigegebenen Seiten setzen ...........
479 480 485 487 489 489 490 491 491 492
21 Die Website im Alltag .............................................................. 495 21.1 21.2 21.3
21.4 21.5 21.6
Das System-Log protokolliert Aktivitäten von Contao .................. Webstatistiken mit Google Analytics ............................................ Den Cache in Contao kontrollieren .............................................. 21.3.1 Der Cache-Modus in »System 폷 Einstellungen« ................. 21.3.2 Cache-Einstellungen: Die Cachezeit für die Seiten definieren ....................................................................... 21.3.3 Systemwartung: Daten bereinigen ................................... 21.3.4 Systemwartung: Suchindex neu aufbauen ........................ 21.3.5 Daten in den Benutzereinstellungen bereinigen ............... Backups erstellen ......................................................................... Der Live Update Service: Das automatische Update ..................... Das manuelle Update per FTP ......................................................
495 496 497 497 498 499 500 501 501 503 504
22 Contao für Fortgeschrittene: Tipps und Tricks ........................ 507 22.1
22.2
16
Wichtige Konfigurationsdateien von Contao ................................ 22.1.1 Die Systemkonfiguration: localconfig.php ........................ 22.1.2 Data Container Arrays: Die »dcaconfig.php« .................... 22.1.3 Sprachkonfiguration: Die »langconfig.php« ...................... Tipps und Tricks zum TinyMCE .................................................... 22.2.1 Ein Stylesheet für den TinyMCE: »tl_files/tinymce.css« ..... 22.2.2 Textbausteine im TinyMCE: Inhalte aus Vorlage einfügen .......................................................................... 22.2.3 Die Symbolleisten des TinyMCE anpassen .......................
507 507 508 509 510 510 511 512
Inhalt
22.3
22.4
22.5
22.6
22.2.4 Konfiguration des TinyMCE pro Benutzergruppe anpassen ......................................................................... Anfahrtskizze mit Google Maps .................................................... 22.3.1 Die Konfiguration des Frontend-Moduls ......................... 22.3.2 Die Ermittlung der Koordinaten ...................................... Layouts für Fortgeschrittene ........................................................ 22.4.1 Eigene Layoutbereiche erstellen und aktivieren ............... 22.4.2 Eigene Seitentemplates erstellen ..................................... 22.4.3 Contao mit anderen CSS-Frameworks nutzen .................. Mehrere Websites in einer Contao-Installation ............................ 22.5.1 Ein Startpunkt für jede Website ....................................... 22.5.2 Mehrsprachige Website mit automatischer Sprachwahl ..................................................................... 22.5.3 Mehrere Domains in einer Contao-Installation ................ 22.5.4 Zusammenfassung: Mehrere Websites in mehreren Sprachen ......................................................................... Die Insert-Tags im Überblick ........................................................ 22.6.1 Insert-Tags für Link-Elemente .......................................... 22.6.2 Benutzereigenschaften: Insert-Tags für FrontendBenutzer ......................................................................... 22.6.3 Umgebungsvariablen ....................................................... 22.6.4 Include-Elemente ............................................................ 22.6.5 Verschiedenes: Datum, E-Mail und Sprachen ..................
Index ............................................................................................................ 529
17
Geleitwort des Fachgutachters
Peter Müller hat sich mit seiner Buchreihe »Little Boxes« schnell einen Namen in der Webdesign-Szene gemacht und war natürlich auch mir ein Begriff, als ich gefragt wurde, ob ich das Fachgutachten zu seinem Contao-Buch übernehmen möchte. Persönlich kennengelernt hatte ich ihn bis dahin noch nicht, sehr wohl war mir aber die fast ein wenig ehrfürchtige Art und Weise aufgefallen, in der die Leute über ihn sprachen. »Ja, Peter Müller. Little Boxes. Super Bücher. Erfolgsautor.« Wie würde wohl ein Buch zu einem CMS von ihm aussehen? Zum damaligen Zeitpunkt war ihm das wahrscheinlich selbst noch nicht im Detail klar. Allerdings hatte er schon vor über zehn Jahren, als Dreamweaver & Co. noch das Maß der Dinge waren, Bücher zum Thema »Webpublishing« geschrieben und wusste aus der langjährigen Erfahrung heraus, wie man ein solches Werk strukturiert und die Inhalte dem Leser verständlich vermittelt. Inzwischen ist das Manuskript fertig, und ich kann sagen, dass Peter der Brückenschlag zwischen der Veranschaulichung von Contao und »seinem« Thema CSS optimal gelungen ist. Vor allem die ganzheitliche Betrachtung der Frage, wie man Stylesheets in Contao am besten einbindet und bearbeitet, dürfte für viele Anwender ein interessantes Kapitel sein. Denn nicht jeder kommt mit dem in Contao gewählten Standardweg auf Anhieb zurecht. Das wurde auch auf dem Contao-Usertreffen im Mai 2010 deutlich, bei dem Peter zu unser aller Freude einen wohl unvergesslichen Gastvortrag zu diesem Thema gehalten hat. Für mich und die meisten anderen Teilnehmer war das der erste persönliche Kontakt mit ihm, und schnell stand fest, dass Peter nicht nur fachlich überzeugend ist, sondern auch Qualitäten als Entertainer hat – ein echtes Original eben. Seine humorvolle Art findet sich natürlich auch in seinen Büchern und Video-Trainings wieder. Eine gehörige Portion Humor und Gelassenheit war dann wohl auch notwendig, als die Namensänderung von TYPOlight in Contao verkündet wurde. Zu diesem Zeitpunkt hatte Peter die ersten Kapitel des Buches bereits fertig, und ihm wurde bewusst, dass er sie nun überarbeiten musste. Eine unbezahlte Mehrarbeit, die leider auch für alle anderen Autoren angefallen ist, die inzwischen Contao-Bücher schrieben. Mittlerweile haben sich aber alle Beteiligten von dem »Schock« erholt und sind mit der Entscheidung und dem neuen Namen zufrieden. Denn Contao ist weder ein »CMS für Einsteiger« noch eine »abgespeckte Version« irgendwel-
19
Geleitwort des Fachgutachters
cher anderer Blog- oder CMSysteme, wie das »light« im alten Namen vermehrt interpretiert wurde. Das vorliegende Buch »Websites erstellen mit Contao« ist ein praxisorientierter Leitfaden für Anwender und Administratoren, der Schritt für Schritt die Erstellung einer Website mit Contao beschreibt und dabei alle wichtigen Elemente und Vorgehensweisen erklärt. Es versteht sich nicht als vollständige Systemreferenz, sondern zeigt anhand eines konkreten Beispiels, welche Lösungen Contao für die gängigen Problemstellungen beim Bau von Webseiten bietet. Dabei weist Peter an vielen Stellen auch auf entsprechende Drittanbieter-Extensions hin, mit denen sich die Core-Funktionen sinnvoll ergänzen oder auf eine alternative Art und Weise nutzen lassen. Denn eines der schönsten Features von Contao ist seine Flexibilität, die den Anwender fast nie auf nur einen Lösungsweg beschränkt. Ich wünsche allen Lesern viel Spaß mit diesem Buch und genauso viel Freude beim Arbeiten mit Contao wie Peter Müller.
Leo Feyer Core-Entwickler des Content-Management-Sytems Contao München
20
Vorwort
Das erste Jahrzehnt dieses Jahrtausends habe ich wie so viele Webworker mit der Suche nach einem geeigneten Content-Management-System (CMS) verbracht, bis ich im Jahre 2008 Contao kennenlernte, das damals noch TYPOlight hieß. Nach einigen kleineren Sites habe ich im Sommer 2009 die Online-Version der CSSEinführung »Little Boxes« damit erstellt, und das erste Mal fand ich ein CMS nach einem Projekt besser als vorher. Anfang 2010 fragte Galileo Computing dann, ob ich Lust hätte, ein Buch zu Contao zu schreiben. Hatte ich, und so ist in den letzten Monaten dieses Buch entstanden, das Ihnen genau eine Sache näherbringen möchte, nämlich dass das Websites erstellen mit Contao Spaß macht und sehr effektiv ist. Für wen ist dieses Buch? Werfen Sie einen Blick auf die folgende Skala, und überlegen Sie kurz, wo Sie sich einordnen würden: Websurfer – Webbastler – Webdesigner – Webmaster – Webentwickler Okay? Weiter geht’s. Websurfer nutzen das Web. Sie kennen vielleicht Firefox und andere moderne Browser, beherrschen aber weder HTML noch CSS. Websurfer können nach einer kurzen Einführung die Inhalte einer Contao-Site verwalten, werden bei der Erstellung einer eigenen Website mit Contao aber wahrscheinlich mehr Hilfe benötigen, als dieses Buch geben kann. Webbastler, Webdesigner und Webmaster haben schon Webseiten erstellt, sei es als Hobby oder beruflich. Sie beherrschen mehr oder weniger HTML und CSS, kennen Add-Ons wie Firebug und haben zumindest Grundwissen zu Themen wie FTP. Sie können mit Contao, diesem Buch und der Community eigene Websites erstellen, auch wenn sie bislang wenig Erfahrung mit CMSystemen haben. Dieses Buch ist für Sie geschrieben. Webentwickler sprechen JavaScript und PHP und sind meist auch mit Datenbankentwicklung und Serververwaltung vertraut. Entwickler können mit Contao fast alles machen und die Funktionalität beliebig erweitern. Sie bekommen in diesem Buch eine gute Einführung in das CMS, werden sich aber einen Knopf zum
21
Vorwort
schnellen Vorlauf und mehr über Programmierung wünschen. Der schnelle Vorlauf ist drin, die Programmierung nicht. Die DVD im Buch Auf der DVD finden Sie neben einigen Programmen wie Contao, XAMPP und Editoren auch Links, Beispieldateien und Frontend-Templates. Links. Alle im Buch abgedruckten Webadressen sind als Verknüpfungen im Ordner buch_links gespeichert. Wenn Sie den Ordner beim Lesen im Hintergrund geöffnet halten, brauchen Sie die Adressen nicht abzutippen. Beispieldateien. Im Ordner beispieldateien finden Sie nach Kapiteln sortiert alle Dateien, die Sie zur Erstellung der Beispielsite benötigen. Frontend-Templates. Ab Kapitel 6 gibt es im Ordner beispieldateien für jedes Kapitel ein Frontend-Template, sodass Sie buchstäblich in jedem Kapitel einsteigen können. Das ist der schnelle Vorlauf. Eine genaue Anleitung finden Sie auf der DVD im Ordner beispieldateien. Video-Lektionen. Hier finden Sie weiterführende Lektionen aus dem Video-Training von Michael Herzog.
Vielen Dank An Erika Schiener und Dörte Neumann, die als Testleserinnen die Entstehung des Manuskriptes von Anfang bis Ende begleitet und mich mit zahlreichen Fragen, Vorschlägen und Kommentaren versorgt haben. Vielen, vielen Dank für Eure Energie, Mühe und Zeit. An Leo Feyer für die Entwicklung von Contao, das Kontrollieren des Buches als Fachgutachter und für die Anregungen, die daraus entstanden sind. An meinen Chef Dr. Manfred Fornfeist von der PROCON GmbH Seminare und Software, dessen Zeitspende den Schreibstress milderte. An Stephan Mattescheck für die Idee zu diesem Buch. Last but not least vielen Dank an Sie als Leser. Ohne Sie würde es keinen Spaß machen, und Sie lesen sogar das Vorwort. Wow. Ich wünsche Ihnen viel Spaß und Erfolg mit den kommenden Seiten. Take it easy, but take it. Die Website zum Buch Aktuelle Informationen zum Buch finden Sie auf der Website: http://www.websites-erstellen-mit-contao.de Made with Contao.
22
TEIL I Contao kennenlernen
In diesem Kapitel stelle ich Ihnen Contao kurz vor: Was sind die Gründe für ein CMS? Welche Highlights bietet Contao? Was sind die wichtigsten Ressourcen im Web?
1
Das ist Contao
Contao. Klingt gut, ist einfach zu behalten und hat auch noch eine Bedeutung: 왘
con sind die ersten Buchstaben von Content.
왘
ta.o kommt aus dem Vietnamesischen und bedeutet bilden, erzeugen, gestalten.
Content erzeugen. Kein schlechter Name für ein Programm, mit dem Content erzeugt, gestaltet und verwaltet wird.
1.1
Contao ist ein Content-Management-System
Content-Management-System (kurz CMS) ist der gängige Begriff für ein Programm zum Verwalten von Inhalten auf Websites. Ein CMS wie Contao ist eine Software, ein Werkzeug, ein Tool, mit dem man Websites erstellen und pflegen kann. Contao ist ein webbasiertes CMS, denn die Bedienung erfolgt über das Web und mithilfe eines Webbrowsers.
1.1.1
Brauchen Sie ein Content-Management-System?
Webseiten wurden früher manuell erstellt, auf den Webspace kopiert und dort vom Webserver unverändert ausgeliefert. Manuell erstellte, statische Webseiten sind sehr aufwendig in der Erstellung und der Pflege und sind deshalb immer seltener anzutreffen. Wer Websites aber bisher manuell erstellt hat, muss für die Einarbeitung in ein CMS je nach Vorwissen mehr oder weniger Zeit einplanen und bei Workflow und Gewohnheiten in vielen Punkten völlig umdenken. Die Frage ist bei einem Projekt daher häufig, ob sich der Einsatz eines CMS überhaupt lohnt. Folgende Kriterien können bei dieser Entscheidung hilfreich sein: 왘
Regelmäßige Aktualisierung des Inhalts Wenn Texte und Grafiken regelmäßig von Personen geändert werden müssen, die selbst keine Webseiten bauen, lohnt sich ein CMS auch bei einer kleinen Site.
25
1
Das ist Contao
왘
Größe der Website Wo genau die Grenze zu »größer« liegt, ist schwer zu sagen, aber bei größeren Sites ohne CMS wird zum Beispiel eine nachträgliche Änderung an der Navigation sehr aufwendig. Bei mehr als ein paar einzelnen Seiten lohnt sich ein CMS meistens, auch wenn die Inhalte sich nicht oft ändern.
왘
Anzahl der Mitarbeiter Wenn bei der Inhaltspflege mehr als zwei bis drei Leute beteiligt sind, lohnt sich ein CMS, denn sonst kommt es beim Hochladen des Inhalts früher oder später zu Katastrophen. Idealerweise hat das CMS eine gute Benutzerverwaltung und eine detaillierte Rechteverwaltung, damit jeder nur das sieht, was er sehen soll.
왘
Ortsunabhängige Pflege des Inhalts Ein webbasiertes CMS läuft in der Regel auf dem Webspace und wird per Browser bedient. So lassen sich Inhalte unabhängig vom Aufenthaltsort pflegen. Einzige Voraussetzungen sind ein Internetanschluss und ein Browser.
Diese Kriterien geben Ihnen einen ersten Anhaltspunkt, ob ein CMS sich lohnen könnte. Der Übergang von »Nein« über »Vielleicht« bis zu »Ja, sicher« ist fließend, aber wenn mehrere Mitarbeiter an verschiedenen Orten die Inhalte einer eher großen Site aktualisieren sollen, ist die Lage ziemlich eindeutig. Für Semiprofis und Agenturen beschleunigt ein CMS schlicht und einfach die Erstellung von Prototypen, Klickmodellen und ganzen Sites.
1.1.2
Contao unterstützt Sie bei Inhalt, Gestaltung und Funktionen
Contao ist ein schlankes, aber leistungsfähiges und einfach erweiterbares Content-Management-System, das relativ leicht zu lernen ist und sich für kleine, mittlere und auch ziemlich große Websites eignet. Bei der Erstellung und der anschließenden Verwaltung einer Website müssen Sie sich über drei Bereiche Gedanken machen: Inhalte, Gestaltung und Funktionen. Contao unterstützt Sie in allen drei Bereichen: 왘
Inhalt Content ist der Grund, warum Besucher auf eine Website kommen. Contao vereinfacht die Verwaltung der Inhalte mit einer übersichtlichen Baumstruktur, dem genialen Konzept der Inhaltselemente und nützlichen Erweiterungen, z. B. für Nachrichten oder Termine.
왘
Gestaltung Layout. Design. Das Aussehen einer Website. Contao unterstützt Sie beim Layouten mit einem integrierten CSS-Framework und dem Theme Manager, mit dem Sie fertige Layouts importieren können.
26
Die Website zum Programm: www.contao.org
왘
Funktionen sind die interaktiven Bestandteile einer Website: Suchfunktion, Kontaktformular, Kommentarfunktion und vieles mehr. Contao bietet zahlreiche vorgefertigte Module, die Sie nur noch konfigurieren und einbinden müssen.
Contao ist also nicht nur ein hervorragendes Content-Management-System, sondern unterstützt Sie bei der Erstellung und Verwaltung der gesamten Website. Klingt gut? Ist gut. Los geht’s.
1.2
Die Website zum Programm: www.contao.org
Contao ist eine Erfindung des Programmierers Leo Feyer aus München und ein noch recht junges System.
Abbildung 1.1 »www.contao.org« – die zentrale Anlaufstelle für Contao
Die erste Version erschien vor wenigen Jahren, am 28. Februar 2006, unter dem Namen TYPOlight. Der Grund für die im Juni 2010 erfolgte Umbenennung waren zwei chronische Missverständnisse, die immer mehr zu einem Ärgernis wurden: 왘
TYPOlight war keine abgespeckte Version von TYPO3.
왘
Das light stand nicht für einen geringen Funktionsumfang.
27
1.2
1
Das ist Contao
Unter dem neuen Namen Contao wächst und gedeiht das Projekt und gewinnt nicht zuletzt dank der guten Pflege des engagierten Core-Teams eine immer größere Fangemeinde. Erste Anlaufstelle für Contao im Web ist: 왘
http://www.contao.org/
Auf dieser mehrsprachigen Website können Sie alles rund um Contao Entdecken, Herunterladen, Verstehen, Erweitern und Nachfragen:
1.3
Ein paar Highlights von Contao
In diesem Abschnitt möchte ich Ihnen zur Einführung ein paar Highlights von Contao zeigen, auch wenn diese nur einen unzureichenden Einblick in den Charme des Systems geben. Was Contao bei seiner stetig wachsenden Fangemeinde so beliebt macht, ist die Art und Weise, wie es Ihnen im Alltag bei der Erstellung und Pflege einer Website zur Hand geht, und das lässt sich nicht auf eine Liste besonderer Features reduzieren. Trotzdem folgen hier ein paar ausgewählte Highlights: 왘
Contao ist ein seitenbasiertes Content-Management-System. Anders als bei Blogsystemen wie WordPress, kategoriebasierten Systemen wie Joomla oder nodebasierten Programmen wie Drupal ist Contao ein seitenbasiertes CMS. Der Kern einer Contao-Installation ist eine hierarchisch aufgebaute Seitenstruktur. In diesem Seitenbaum können Sie Seiten mit wenigen Klicks verschieben, kopieren, bearbeiten, verstecken, mit einem Passwort schützen, zeitgesteuert veröffentlichen und vieles mehr.
왘
Komfortable Editierfunktionen Es macht richtiggehend Spaß, mit Contao Inhalte zu verwalten. Sie können Inhaltselemente, Artikel und Seiten via Zwischenablage kopieren und verschieben, mehrere Datensätze auf einmal bearbeiten (genial, wenn es man es einmal entdeckt hat) und ältere Versionen mit einem Klick wiederherstellen. Alles geht locker von der Hand.
Auch nicht webaffine Redakteure können dank der leicht zu verstehenden Inhaltselemente gut aussehende Bildergalerien, Tabellen oder andere Inhaltstypen erstellen. Und zum Schreiben von Texten gibt es mit dem TinyMCE einen hervorragend integrierten WYSIWYG-Editor, dem man sogar Vorlagen für komplexe HTML-Strukturen mit auf den Weg geben kann. 왘
28
Barrierefrei in Front- und Backend Contao erzeugt nicht irgendwelche seltsamen unmotivierten HTML-Strukturen oder Layout-Tabellen und ermöglicht so die Erstellung einer barrierefreien
Ein paar Highlights von Contao
Website. Der Webdesigner hat mithilfe von Templates die volle Kontrolle über den erzeugten Quelltext und kann somit eine barrierefreie Website erstellen. Aber auch das Backend ist barrierefrei. Der geschickte Einsatz von Technologien wie Ajax sorgt im Backend für hohen Bedienkomfort, aber auch ohne JavaScript lässt sich das Backend problemlos bedienen. 왘
Schlanker Kern, viele Erweiterungen Wichtige Module wie Nachrichten, Kalender (jeweils mit RSS-Feeds) und Newsletter sind in den Kern von Contao integriert und stehen sofort nach der Installation zur Verfügung.
Zusätzlich gibt es im zentralen Erweiterungskatalog Hunderte von Erweiterungen, die die Funktionalität des Kerns beliebig erweitern und sich komfortabel aus dem Backend heraus installieren lassen. 왘
Ein integriertes CSS-Framework – oder doch lieber eigene Styles? Contao hat ein gut durchdachtes, integriertes CSS-Framework, mit dem Sie sehr einfach statische oder flexible mehrspaltige Seitenlayouts erstellen können. Sie können aber auch mit komplett eigenen Styles oder anderen CSS-Frameworks arbeiten.
왘
Mit Themes blitzschnell das Aussehen ändern Ein Theme bestimmt das Aussehen einer Website und kann mit wenigen Klicks verändert werden. Der Theme-Installer von Contao perfektioniert die Trennung von Inhalt und Gestaltung. Ohne dass Sie den Inhalt verändern, bekommt eine Website im Nu ein neues Kleid.
왘
Detaillierte Rechte- und Benutzerverwaltung Für Websites, an denen mehrere Personen arbeiten, wird die umfangreiche Benutzerverwaltung von Contao wichtig. Geschützte Bereiche mit KundenLogin sind ebenso leicht zu realisieren wie ein schlankes Backend für Redakteure. Jeder sieht nur das, was er sehen soll, bis hinunter zu einzelnen Formularfeldern in Eingabemasken.
왘
Einfaches Live Update Nach der Site ist vor der Site. Um aktuelle Installationen auf dem Laufenden zu halten, kann Contao entweder manuell oder über ein bequemes Live Update aktualisiert werden. Dieser Service ist zwar nicht kostenlos, aber so günstig, dass er sich wirklich für fast alle Sites lohnt.
왘
Mehrsprachigkeit und Multi-Domain Man kann mit einer Contao-Installation sowohl mehrere Websites betreiben als auch eine Website in mehreren Sprachen. Oder mehrere Websites in mehreren Sprachen.
29
1.3
1
Das ist Contao
1.4
Die Community im Web: »www.contao-community.de«
Die Contao-Community ist eigentlich ein Highlight für sich. Sie hat sich in den letzten Jahren den Ruf einer sehr freundlichen Gemeinschaft erworben, was sich auch im Umgangston im Forum widerspiegelt, der im Allgemeinen sehr angenehm ist. Im Web finden Sie die deutschsprachige Contao-Community unter folgender URL: http://www.contao-community.de/
왘
Abbildung 1.2 »contao-community.de« – die deutschsprachige Community
Im Forum gibt es übrigens auch einen Bereich Was kann Contao?, in dem Sie vor einer Installation konkret nachfragen können, ob Contao für die von Ihnen geplante Site geeignet ist. Lieber auf Englisch? Contao kommt zwar aus deutschen Landen frisch auf den Tisch, ist aber auch in vielen anderen Sprachen erhältlich. Eine englischsprachige Community finden Sie unter folgender URL: 왘
http://www.contao-community.org/
Weitere Sprachen finden Sie auf http://www.contao.org/netzwerk.html.
30
In diesem Kapitel sehen Sie anhand der Online-Demo, wie Contao tickt. Begriffe wie Frontend, Backend, Seitenstruktur, Themes, Module, Seitenlayouts, Artikel und Inhaltselemente werden kurz erklärt und in Aktion gezeigt.
2
Schnelldurchlauf: So funktioniert Contao
Anhand der Online-Demo Music Academy möchte ich Ihnen in diesem Kapitel einen schnellen Überblick geben, damit Sie gleich zu Anfang eine Vorstellung davon bekommen, wie Contao tickt: 왘
CMS-Einsteiger werden vielleicht nicht gleich jedes Detail verstehen und richtig einordnen können, lernen hier aber die wichtigsten Begriffe und Zusammenhänge kennen, ohne gleich das CMS installieren zu müssen.
왘
CMS-Umsteiger finden die Funktionsprinzipien von Contao auf wenigen Seiten komprimiert und können sie beim Lesen mit bereits bekannten Systemen vergleichen.
Auf den folgenden Seiten machen Sie Bekanntschaft mit den Begriffen Frontend, Backend, Seitenstruktur, Themes, Modul, Seitenlayouts, Artikel, Inhaltselement und Rechteverwaltung und sehen, wie diese Komponenten zusammenarbeiten. Dieses Kapitel können Sie online oder offline lesen Die Abbildungen in diesem Kapitel sind so gewählt, dass die Lektüre ohne Internetzugang problemlos möglich ist. Mehr Spaß macht es aber wahrscheinlich, wenn Sie während der Lektüre die »Music Academy« im Browser öffnen und die Maus bereithalten: http://demo.contao.org/ Die Live-Demo lebt übrigens wirklich, und falls etwas nicht so ist wie hier beschrieben, liegt das eventuell daran, dass gleichzeitig noch andere Neugierige etwas ausprobieren. Die Demo wird stündlich wieder zurückgesetzt. Die Demo-Site Music Academy ist auch im Download-Paket von Contao enthalten, sodass Sie sie selbst installieren und genau untersuchen können.
31
2
Schnelldurchlauf: So funktioniert Contao
2.1
Das Frontend ist die Website
Contao besteht aus einem Frontend und einem Backend. Das Frontend ist die eigentliche Website, so wie ein Besucher sie sieht. Um das Frontend im Browser zu sehen, geben Sie die ganz normale Adresse der Website ein: 왘
http://demo.contao.org/ (ohne www davor)
Das Frontend sieht so aus wie in Abbildung 2.1. Diese Webseite lag nicht fix und fertig auf dem Webspace, sondern ist nach der Eingabe der URL von Contao automatisch erstellt worden.
Abbildung 2.1 Das Frontend der Online-Demo »Music Academy«
Registrierte Benutzer wie zum Beispiel die Studenten der Music Academy können sich im Frontend anmelden (Front End Login) und haben dann Zugriff auf Informationen, die für nicht angemeldete Besucher (Gäste) unsichtbar bleiben. Die Studentin Donna Evans (Benutzername »d.evans«, Passwort »donnaevans«) sieht nach einem Login zum Beispiel Informationen über ihren Kurs Violin Master Class (Abbildung 2.2).
32
Das Backend ist die Verwaltungsabteilung
Abbildung 2.2 Ein angemeldeter Frontend-Benutzer sieht mehr ...
2.2
Das Backend ist die Verwaltungsabteilung
Das Backend ist der Administrationsbereich, also die Verwaltungsabteilung der Website. Im Backend wird aber nicht nur verwaltet, sondern auch richtig gearbeitet. Die Struktur der Website, das Seitenlayout und die Inhalte für die einzelnen Webseiten, alles wird hier im Backend erstellt und verwaltet. Zutritt zum Backend haben nur Mitarbeiter, und deshalb werden am Eingang Benutzername und Passwort kontrolliert. Um das Backend aufzurufen, hängen Sie an die URL des Frontends einfach /contao/ hinten dran: 왘
http://demo.contao.org/contao/
Am besten öffnen Sie das Backend in einem neuen Tab oder einem zweiten Browserfenster, damit Sie leicht zwischen Front- und Backend hin- und herwechseln können. Abbildung 2.3 zeigt das Anmeldeformular für das Backend. Der Administrator der Music Academy heißt Kevin Jones, und nach einer Anmeldung mit dem Benutzernamen »k.jones« und dem Passwort »kevinjones« sehen Sie das Backend aus Abbildung 2.4.
33
2.2
2
Schnelldurchlauf: So funktioniert Contao
Abbildung 2.3 Die Anmeldung zum Backend von Contao
Abbildung 2.4 Das Backend nach erfolgreicher Anmeldung als k.jones
Im Backend gibt es drei Bereiche, die Sie später genauer kennenlernen: 1 Infobereich (oben) 2 Navigationsbereich (links) 3 Arbeitsbereich (rechts) Kevin Jones ist der Administrator der Site und hat Zugriff auf das gesamte Backend. Der Administrator ist der Chef und darf alles. Die Benutzer Helen Lewis
34
Die Seitenstruktur ist das Fundament der Website
und James Wilson hingegen sehen nur den Teil des Backends, den sie für ihre Arbeit benötigen (siehe 2.10, »Das Backend ist für Redakteure sehr übersichtlich«, ab Seite 46). Das Backend lernen Sie später genauer kennen Beim Schnelldurchlauf in diesem Kapitel machen Sie nur ein paar ausgesuchte Zwischenstopps im Backend. In Kapitel 5, »Ein kurzer Rundgang im Backend«, lernen Sie das Backend genauer kennen (ab Seite 101).
2.3
Die Seitenstruktur ist das Fundament der Website
Contao ist ein seitenbasiertes Content-Management-System, und ein hierarchisch aufgebauter Seitenbaum bildet das Rückgrat der Website. Wie ein Skelett einem Körper so verleiht der Seitenbaum einer Website sowohl Stabilität als auch Flexibilität. Unter anderem dient die Seitenstruktur als Grundlage für die Navigation. Abbildung 2.5 zeigt oben die Navigation im Frontend und darunter die Seitenstruktur im Backend.
Abbildung 2.5 Navigation im Frontend und Seitenstruktur im Backend
35
2.3
2
Schnelldurchlauf: So funktioniert Contao
Die in der Navigation hervorgehobenen Webseiten finden Sie im Backend im Bereich Seitenstruktur. Mithilfe der Seitenstruktur können Sie die Site ganz einfach verwalten und mit wenigen Klicks neue Seiten hinzufügen oder die Reihenfolge der vorhandenen Seite verändern. Änderungen in der Seitenstruktur wirken sich direkt auf die Navigation aus. In der Online-Demo können Sie das live ausprobieren: 왘
Löschen Sie zum Beispiel die Seite Teachers im Backend, indem Sie auf das rote x rechts daneben klicken.
왘
Wechseln Sie zum Frontend, und laden Sie die Startseite neu.
Die Seite Teachers ist in der Navigation nicht mehr zu sehen. Versehentliche Bearbeitungsschritte kann man rückgängig machen Die Online-Demo ist unkaputtbar, und nach dem stündlichen Reset ist die Seite Teachers wieder da. Contao bietet aber auch eine sehr komfortable Funktion, um versehentliche Bearbeitungsschritte rückgängig zu machen: Im Navigationsbereich gibt es unten links im Bereich Benutzerfunktionen einen Menüpunkt namens Rückgängig. Probieren Sie ihn ruhig aus.
2.4
Themes bestimmen das Aussehen der Site
Das Aussehen einer Contao-Site wird von einem Theme bestimmt. Das wird »ßiehm« gesprochen, mit einem wunderschönen »Tie-Eitsch« am Anfang und einem ziemlich langen »ieh« in der Mitte. Nach einem Klick auf das BackendModul Themes im Navigationsbereich, sehen Sie in der Online-Demo das Theme Music Academy (Abbildung 2.6).
Abbildung 2.6 Das Backend-Modul »Themes« im Überblick
36
Module erzeugen den Quelltext für das Frontend
Ein Theme besteht aus Stylesheets, Modulen und Seitenlayouts, die mit einem Klick auf die entsprechenden Symbole rechts neben dem Theme bearbeitet werden können.
2.5
Module erzeugen den Quelltext für das Frontend
Module sind in Contao kleine Programme, die den Quelltext für das Frontend erzeugen. Um zum Beispiel aus dem Seitenbaum die Navigation im Frontend zu erstellen, kommt ein solches Modul zum Einsatz. Eine Übersicht über verwendete Module finden Sie im Backend in Themes 폷 Module. Die in diesem Bereich gelisteten Module erzeugen allesamt HTML für das Frontend und werden deshalb auch Frontend-Module genannt. Auf der Beispielsite sieht es dort so aus wie in Abbildung 2.7.
Abbildung 2.7 Die Frontend-Module der Music Academy
Sie müssen die Frontend-Module natürlich nicht selbst programmieren. Für alle wichtigen Funktionen stehen fertige Modultypen bereit, deren Name hellgrau in eckigen Klammern hinter den Modulnamen steht. Rechts am Rand gibt es für jedes Modul farbige Symbole zum Bearbeiten, Duplizieren, Verschieben, Löschen und für Detailinformationen.
37
2.5
2
Schnelldurchlauf: So funktioniert Contao
Die Hauptnavigation im Frontend wird zum Beispiel von dem Modul Navigation – Main navigation erzeugt, das auf dem Modultyp [Navigationsmenü] basiert und mit wenigen Einstellungen einsatzbereit ist. Zur Bearbeitung eines Moduls klicken Sie auf das in Abbildung 2.7 rechts unten hervorgehobene gelbe Bleistiftsymbol. Sie sehen dann die Eingabemaske aus Abbildung 2.8.
Abbildung 2.8 Das Modul »Navigation – Main navigation«
Was bei einem Navigationsmenü die Optionen wie Startlevel, Stoplevel und Hard Limit genau bedeuten, erfahren Sie in Kapitel 8 ab Seite 199. Templates definieren, welches HTML die Module erzeugen Frontend-Module werden bequem per Eingabemaske im Backend konfiguriert. Welches HTML ein Modul genau erzeugt, wird über Templates gesteuert. Mehr dazu lesen Sie in Kapitel 6.7, »Templates: Das HTML für den Quelltext«, ab Seite 150.
2.6
Jede Seite hat ein Seitenlayout
Jede Seite basiert auf einem Seitenlayout, das die Seite in Layoutbereiche einteilt. Wenn Sie in der Online-Demo im Backend-Modul Themes 폷 Seitenlayouts rechts neben Default layout [Standard] auf den gelben Bleistift klicken, können Sie die Einstellungen für das Layout bearbeiten. Abbildung 2.9 zeigt drei wichtige Einstellungen aus dem Standardlayout der Music Academy. Sie können die einzelnen Bereiche auf dieser Seite wie z. B. Titel und
38
Jede Seite hat ein Seitenlayout
Standard oder Kopf- und Fusszeile mit einem Klick auf die grünen Überschriften komfortabel ein- und ausblenden, sodass die Seite immer übersichtlich bleibt.
Abbildung 2.9 Ein Seitenlayout – die wichtigsten Einstellungen
Diese Einstellungen erzeugen folgendes Seitenlayout: 1 eine Kopfzeile mit einer festen Höhe von 273px 2 ein zweispaltiges Layout mit einer 200px breiten linken Spalte 3 ein zentriertes, statisches Layout mit einer Breite von 870px Abbildung 2.10 zeigt dieses Seitenlayout im Frontend. Aber ein Seitenlayout teilt die Seite nicht nur in Layoutbereiche ein, sondern bestimmt auch, wo die einzelnen Elemente erscheinen. In Abbildung 2.10 können Sie sehen, dass die Hauptnavigation innerhalb der Kopfzeile sitzt. Das wird im Seitenlayout definiert. Wenn Sie das Default layout [Standardlayout] bearbeiten, können Sie im Bereich Frontend-Module sehen, dass das Modul Navigation – Main navigation dem Bereich Kopfzeile zugeordnet ist (Abbildung 2.11).
39
2.6
2
Schnelldurchlauf: So funktioniert Contao
Abbildung 2.10 Das Seitenlayout im Frontend
Abbildung 2.11
40
Modul »Navigation – Main navigation« in »Kopfzeile«
Seitenlayouts verbinden die Seiten mit Stylesheets
2.7
Seitenlayouts verbinden die Seiten mit Stylesheets
In einem Seitenlayout passiert aber noch mehr, denn Seitenlayouts verbinden die Seiten auch mit den Stylesheets. Im Backend-Modul Themes 폷 Stylesheets sind die drei Stylesheets basic, music_academy und print gespeichert, mit denen die Music Academy gestaltet wird. In Klammern dahinter wird jeweils der definierte Medientyp angezeigt. Abbildung 2.12 zeigt das Backend-Modul Themes 폷 Stylesheets mit den drei Stylesheets.
Abbildung 2.12 Im Backend-Bereich »Stylesheets« gibt es drei Stylesheets.
Im Backend-Modul Themes 폷 Seitenlayouts werden für jedes definierte Seitenlayout die gewünschten Stylesheets ausgewählt. Abbildung 2.13 zeigt, dass für das Default layout [Standardlayout] die beiden Stylesheets basic und music_academy aktiviert wurden.
Abbildung 2.13 Mit dem »Default layout« sind zwei Stylesheets verbunden.
41
2.7
2
Schnelldurchlauf: So funktioniert Contao
Probieren Sie es einmal aus: 왘
Deaktivieren Sie im Seitenlayout die Stylesheets basic und music_academy.
왘
Klicken Sie unten auf der Seite auf die Schaltfläche Speichern.
왘
Rufen Sie das Frontend im Browser auf, und laden Sie es neu.
Nach dieser Aktion sieht das Frontend im Browser etwas anders aus, denn die Formatierungen aus den beiden Stylesheets fehlen.
2.8
Jeder Artikel gehört zu einer Seite
In Contao werden Inhalte in Artikeln gespeichert, und ein Artikel gehört immer zu einer bestimmten Seite. Zur Illustration zeigt Abbildung 2.14 einen Artikel mit der Überschrift Impressions auf der gleichnamigen Seite im Frontend.
Abbildung 2.14 Der Artikel »Impressions« im Frontend
42
Ein Artikel besteht aus Inhaltselementen
Im Backend-Modul Artikel sehen Sie die bereits bekannte Seitenstruktur, aber dieses Mal mit den dazugehörigen Artikeln (Abbildung 2.15). Mit einem Klick auf die Plus- und Minus-Zeichen können Sie diesen Artikelbaum bei Bedarf ein- und ausklappen. Auf der Seite Impressions wird ein gleichnamiger Artikel gelistet, der in der [Hauptspalte] erscheint.
Abbildung 2.15 Der Artikel »Impressions« auf der Seite »Impressions«
Ein Artikel ist genau genommen nur ein »Container«, ein Bereich auf einer Webseite, der ein oder mehrere Inhaltselemente enthält. Die eigentlichen Inhalte (Texte, Grafiken etc.) werden in diesen Inhaltselementen aufbewahrt. Ohne Inhaltselemente ist ein Artikel im Frontend nur ein leerer Bereich und nicht zu sehen. Mehrere Artikel pro Seite Auf einer Seite können natürlich auch mehrere Artikel erscheinen. Und umgekehrt kann ein Artikel auch auf verschiedenen Seiten auftauchen, ohne dass er kopiert werden muss.
2.9
Ein Artikel besteht aus Inhaltselementen
Artikel bestehen also aus Inhaltselementen, in denen die eigentlichen Inhalte gespeichert werden. Contao stellt für verschiedene Inhaltstypen vorgefertigte Inhaltselemente bereit. So gibt es zum Beispiel spezielle Inhaltselemente für Überschriften, Texte (mit und ohne Bildern), Bildergalerien, Tabellen, Listen und vieles mehr.
43
2.9
2
Schnelldurchlauf: So funktioniert Contao
Abbildung 2.16 zeigt, dass der Artikel Impressions aus drei Inhaltselementen besteht. So können Sie die Abbildung in Ihrem Browser sehen: 왘
Öffnen Sie im Backend das Backend-Modul Artikel.
왘
Suchen Sie im Seitenbaum den Artikel Impressions [Hauptspalte].
왘
Klicken Sie auf das gelbe Bleistiftsymbol, um den Artikel zu bearbeiten.
Jetzt sehen Sie die Inhaltselemente des Artikels (Abbildung 2.16).
Abbildung 2.16
Der Artikel »Impressions« – Einstellungen und Inhaltselemente
Im oberen Bereich werden die Einstellungen des Artikels angezeigt, auch Metadaten genannt. Dazu zählen z. B. der Titel des Artikels, der Autor und das Änderungsdatum. Diese Einstellungen werden im Frontend nicht angezeigt. Unterhalb der Einstellungen sehen Sie drei Inhaltselemente: 1 ein Inhaltselement vom Typ Text mit Überschrift und Fließtext 2 ein Inhaltselement vom Typ Galerie mit ein paar Fotos 3 noch ein Inhaltselement vom Typ Text, dieses Mal ohne Überschrift
44
Ein Artikel besteht aus Inhaltselementen
Abbildung 2.17 zeigt diese drei Inhaltselemente im Frontend.
Abbildung 2.17
Der Artikel »Impressions« – Inhaltselemente im Frontend
Ein Artikel wird durch Inhaltselemente bildlich gesprochen in Scheibchen unterteilt, und diese Scheibchen können einzeln bearbeitet werden. Für Redakteure ist der Vorteil, dass sie nie den ganzen Artikel in einem Editorfenster bearbeiten, sondern sich immer nur um einen Teil kümmern müssen: Divide et impera. Soll zum Beispiel die Bildergalerie unterhalb der Textelemente am Ende des Artikels erscheinen, klicken Sie einfach auf das Inhaltselement Galerie und ziehen es mit der Maus nach unten, bis es unterhalb des Inhaltelements Text steht. Einfacher geht es nicht. Probieren Sie es aus.
45
2.9
2
Schnelldurchlauf: So funktioniert Contao
Inhaltselemente erleichtern den Redakteuren die Arbeit Die Sache mit den Inhaltselementen ist ungewohnt, aber ziemlich pfiffig und ein wichtiger Grund, warum Redakteuren die Bearbeitung der Inhalte in Contao leichter fällt als in vielen anderen CMSystemen, in denen immer der ganze Artikel in einem Editorfenster erscheint.
2.10
Das Backend ist für Redakteure sehr übersichtlich
Contao hat ein sehr ausgefeiltes Rechtesystem, sodass jeder Mitarbeiter nur den Teil des Systems sieht, den er benötigt bzw. sehen soll. Neben den Frontend-Benutzern, die Sie auf Seite 32 schon kennengelernt haben, gibt es noch BackendBenutzer, die bei der Verwaltung der Website helfen. Professor James Wilson zum Beispiel unterrichtet den Kurs Elements of Jazz Piano und ist verantwortlich für die inhaltliche Pflege der Seiten unterhalb von Courses. Wenn er sich mit seinem Benutzernamen »j.wilson« und seinem Passwort »jameswilson« anmeldet, sieht das Backend aus wie in Abbildung 2.18.
Abbildung 2.18 Übersichtlich – das Backend für James Wilson
Auch im Backend-Modul Dateiverwaltung sieht Professor Wilson nur die Dateien für den von ihm betreuten Bereich der Website.
46
Zusammenfassung – so tickt Contao
2.11
Zusammenfassung – so tickt Contao
In Contao arbeiten mehrere Komponenten zusammen, um eine Webseite zu erstellen: 왘
Texte, Grafiken etc. werden in Inhaltselementen gespeichert.
왘
Inhaltselemente gehören zu einem Artikel, der sie zusammenfasst.
왘
Artikel gehören zu einer Seite, auf der sie dargestellt werden.
왘
Die Seitenstruktur definiert, welche Seiten es gibt.
왘
Jede Seite basiert auf einem Seitenlayout, das diverse Dinge definiert: 왘
welche Layoutbereiche es auf einer Seite gibt
왘
welches Modul in welchem Layoutbereich erscheint
왘
welche Stylesheets zur Gestaltung der Seiten benutzt werden
왘
Module erzeugen den HTML-Quelltext für das Frontend.
왘
Stylesheets bestimmen das Aussehen der Webseiten und werden über das Seitenlayout mit einer Seite verbunden.
Soweit dieser Schnelldurchlauf. Natürlich gibt es in Contao noch eine Menge anderer interessanter Abteilungen wie z. B. Nachrichten, Kalender, Events, Systemverwaltung und dergleichen mehr, aber das Buch hat ja auch gerade erst angefangen.
47
2.11
TEIL II Contao installieren
In diesem Kapitel erfahren Sie, warum Sie XAMPP benötigen, wie Sie es installieren und wie Sie einen Sicherheitscheck machen. Danach werden der Webserver, PHP und die Datenbank kurz vorgestellt.
3
XAMPP: Der Offline-Webspace
XAMPP ist die Abkürzung für eine gängige Kombination von Komponenten, die beim Einsatz von Webanwendungen benötigt werden. Es wird »ksamp« oder etwas anglophiler »iks-ämp« ausgesprochen: 왘
X ist ein Platzhalter für das verwendete Betriebssystem: Linux, Windows oder MAC OS.
왘
A ist der erste Buchstabe des Webservers Apache.
왘
M steht für den Datenbankserver MySQL.
왘
PP steht für die Programmiersprachen PHP und Perl.
Bevor Sie XAMPP installieren, möchte ich kurz erklären, warum Sie es überhaupt benötigen. Wenn Sie ausschließlich auf einem Online-Webspace arbeiten, können Sie dieses Kapitel getrost überspringen.
3.1
XAMPP ist Webspace auf Ihrem Rechner
XAMPP ist die einfachste Möglichkeit, eine lokale Entwicklungsumgebung einzurichten. Lokal bedeutet in diesem Zusammenhang auf Ihrem Rechner und hat nichts mit einer Gaststätte zu tun.
3.1.1
Statische Webseiten: Der Webspace als Lagerhalle
Beim traditionellen Webpublishing werden die Webseiten in der Regel auf dem eigenen Rechner erstellt, auf den Webspace kopiert und dann unverändert vom Webserver ausgeliefert. Da die Webseiten auf dem Webspace nicht verändert werden, spricht man von statischen Webseiten (Abbildung 3.1).
51
3
XAMPP: Der Offline-Webspace
Statische Webseiten Browser
Internet
Webserver (Apache)
Webspace Abbildung 3.1 Statische Webseiten – der Webspace als Lagerhalle
Die Webseite ist im Moment der Anforderung durch den Browser bereits fix und fertig. Der Webspace dient als Lagerhalle zur Aufbewahrung der Webseiten, und es gibt dort nur den Webserver und die Webseiten.
3.1.2
Content-Management-System: Der Webspace als Werkstatt
Ein Content-Management-System (CMS) ist ein Programm, das auf dem Webspace läuft und die Webseiten kurz vor der Auslieferung zusammenbaut. Die Webseiten liegen nicht mehr statisch auf dem Webspace, sondern werden dynamisch auf Anforderung erstellt. Der Webspace ist somit keine Lagerhalle mehr, sondern gleicht eher einer Werkstatt. In dieser Werkstatt arbeitet ein ganzes Team daran, die Webseiten so schnell wie möglich zu erstellen und zu liefern. Statt vieler fertiger Webseiten gibt es dort nur eine Vorlage, eine Datei mit zahlreichen Platzhaltern namens index.php, die je nach Anforderung des Browsers mit verschiedenen Parametern unterschiedlich zusammengebaut wird. Zum Team gehören neben dem Webserver noch ein paar andere Mitarbeiter: 왘
PHP-Interpreter Ein Interpreter ist ein Übersetzer. Contao wurde in der Programmiersprache PHP geschrieben, und damit ein in PHP geschriebenes Programm funktioniert, muss auf dem Webspace ein PHP-Interpreter vorhanden sein. PHP arbeitet sehr eng mit dem Webserver zusammen.
왘
Content-Management-System Ein CMS wie Contao ist der Motor der Website und koordiniert die Erstellung der Webseiten, bevor der Webserver sie ausliefert.
왘
Datenbank Viele Webanwendungen bewahren ihre Daten in einer Datenbank auf. Weit verbreitet und auch bei Contao im Einsatz ist MySQL.
Abbildung 3.2 zeigt das gesamte Team im Überblick.
52
Die Installation von XAMPP Lite (Windows)
index.php Browser
Internet
Webserver (Apache)
P H P
Contao (CMS)
MySQL (Datenbank)
Webspace Abbildung 3.2
Das Content-Management-System – der Webspace als Werkstatt
Um eine dynamisch erstellte Website offline auf dem eigenen Rechner erstellen zu können, müssen Sie einen solchen Webspace auf Ihrem Rechner simulieren, und dazu benötigen Sie außer Contao noch einen Webserver, einen PHP-Interpreter und MySQL. Ein solcher Offline-Webspace wird oft auch Entwicklungsumgebung genannt. Da es ziemlich mühsam ist, alle Komponenten einzeln zu installieren und dann auch noch zur Zusammenarbeit zu bewegen, haben die Betreiber von apachefriends.org Ihnen diese Arbeit abgenommen, ein Komplett-Paket geschnürt und es unter dem Namen namens XAMPP kostenlos veröffentlicht. Dieses Paket werden Sie jetzt installieren.
3.2
Die Installation von XAMPP Lite (Windows)
XAMPP für Windows gibt es in einer Voll- und in einer Lite-Version. Für eine Contao-Entwicklungsumgebung reicht XAMPP Lite völlig aus. Sie können XAMPP Lite von der Buch-DVD installieren oder von der Website herunterladen, am besten als EXE-Datei: http://apachefriends.org/de/xampp-windows.html#631
왘
Falls Sie bereits eine ältere Version von XAMPP installiert haben, prüfen Sie bitte, ob die Voraussetzungen für Contao erfüllt sind: PHP ab V5.2 und MySQL ab V4.1 (besser V5.x). Details dazu finden Sie in Kapitel 4, »Die Installation von Contao«. Apache, PHP und MySQL für MAC OS X Ein MAC mit OS X hat als Unix-Abkömmling eigentlich bereits alle Komponenten an Bord, aber wer keine Lust hat, alles selbst zu konfigurieren, kann auf eines der beiden komfortablen Installationspakete zurückgreifen: 왘
XAMPP für Mac OS X http://www.apachefriends.org/de/xampp-macosx.html
왘
MAMP: Mac – Apache – MySQL – PHP http://www.mamp.info/de/mamp/
53
3.2
3
XAMPP: Der Offline-Webspace
Schauen Sie sich beide Seiten an, und nehmen Sie die, die Sie sympathischer finden. Überall ist dasselbe drin: Apache, PHP, MySQL.
3.2.1
XAMPP Lite installieren
So installieren Sie XAMPP Lite auf Ihrem Rechner: 1. Starten Sie die Installationsdatei mit einem Doppelklick. Als Ziel der Installation wird C:\ vorgeschlagen, wodurch XAMPP Lite in den Ordner C:\xampplite installiert wird. 2. Starten Sie die Installation mit einem Klick auf Install. Daraufhin werden die Dateien entpackt, was ein bisschen dauern kann. 3. Nach dem Entpacken öffnet sich das XAMPP-Setup in einem DOS-Fenster. Darin müssen Sie ein paar Fragen zur Konfiguration mit (Y) für »Yes« oder (N) für »No« beantworten und mit (Return) bestätigen. Im Zweifelsfall übernehmen Sie einfach die Vorgaben. 4. Am Ende der Fragenliste erscheint eine Liste mit fünf Optionen. Wählen Sie hier bitte die erste Option start XAMPP Control Panel, indem Sie eine »1« eingeben und mit (Return) bestätigen. Kurz darauf erscheint das Kontrollzentrum von XAMPP. 5. Das XAMPP-Setup selbst verlassen Sie mit (X) für Exit und (Return).
3.2.2
Das XAMPP Control Panel
Falls das XAMPP Control Panel nicht automatisch gestartet wurde, können Sie es mit einem Doppelklick auf die Desktop-Verknüpfung oder auf die Datei xamppcontrol.exe im Ordner c:\xampplite aufrufen. Wenn das Control Panel zu sehen ist, starten Sie Apache und MySQL: 왘
Starten Sie zuerst den Webserver Apache mit einem Klick auf die Schaltfläche Start. Kurze Zeit später erscheint der hellgrün hinterlegte Hinweis Running, und die Schaltfläche heißt jetzt Stop.
왘
Falls sich beim Starten eine Firewall meldet, sollten Sie einen Moment inne halten, die Meldung lesen und dann die Ausführung von Apache erlauben, denn sonst wird er nicht funktionieren.
왘
Starten Sie danach den Datenbankserver MySQL. Falls sich beim Apache eine Firewall gemeldet hat, kommt jetzt wahrscheinlich wieder eine Meldung. Erlauben Sie auch MySQL, denn sonst funktioniert es nicht.
Sieht das XAMPP Control Panel so ähnlich aus wie in Abbildung 3.3, hat alles geklappt.
54
Die Installation von XAMPP Lite (Windows)
Abbildung 3.3
Das XAMPP Control Panel – Apache und MySQL laufen.
Ein Klick auf das X rechts oben im Fenster beendet XAMPP übrigens nicht, sondern verkleinert nur das Control Panel und schickt es rechts unten in den Infobereich von Windows. Um das Control Panel zu beenden, stoppen Sie zuerst alle aktiven Server und klicken dann auf die Schaltfläche Exit. Mit der Schaltfläche Explore können Sie sich die Ordnerstruktur unterhalb von C:\xampplite im Windows Explorer anzeigen lassen (Abbildung 3.4).
Abbildung 3.4 Die Ordnerstruktur von XAMPP Lite
55
3.2
3
XAMPP: Der Offline-Webspace
Wenn der Apache nicht startet Falls der Apache nicht startet, ist ziemlich sicher der Port 80, den ein Webserver braucht, schon belegt. Kandidaten hierfür sind Fernwartungs- oder Telefonieprogramme wie z. B. Skype. Zur Behebung des Problems starten Sie einfach zuerst den Apache und dann Skype. Oder Sie ändern die Skype-Einstellungen auf einen anderen Port.
3.2.3
Testen, ob der Webserver funktioniert
Um zu testen, ob alles geklappt hat, starten Sie einen Browser Ihrer Wahl und geben in der Adressezeile folgende URL ein: 왘
http://localhost/
http heißt frei übersetzt »Gehe zu einem Webserver«, und localhost ist ein anderes Wort für »der Computer, an dem ich gerade arbeite«. Die URL ruft also die Startseite des Webservers auf Ihrem Computer auf, und nachdem Sie Deutsch als Sprache gewählt haben, gelangen Sie zur Startseite von XAMPP. Diese sollte ungefähr so aussehen wie in Abbildung 3.5.
Abbildung 3.5 Die Startseite von XAMPP Lite
In der orange hinterlegten Navigationsleiste am linken Rand können Sie mit einem Klick auf Status nachschauen, ob der Datenbankserver MySQL ebenfalls aktiviert ist. Das Ausprobieren der anderen in der Navigation angebotenen Beispiele und Tools ist freiwillig. Machen Sie sich ob der angebotenen Vielfalt keine Sorgen, Sie werden längst nicht alles benötigen. Wirklich wichtig ist nur, dass Apache und MySQL funktionieren.
56
Der Sicherheitscheck von XAMPP
3.3
Der Sicherheitscheck von XAMPP
Der große Gegenspieler von Sicherheit ist die Bequemlichkeit. Ein Rechner ohne jeglichen Passwortschutz ist bequem zu bedienen, aber nicht besonders sicher. XAMPP ist als Entwicklungsumgebung nach der Installation absichtlich eher bequem als sicher konfiguriert. Wenn Ihr Rechner durch eine gut konfigurierte Firewall oder einen DSL-Router (oder beides) vom Internet getrennt ist, wird das Sicherheitsrisiko überschaubar, und die Gefahr beschränkt sich auf Zugriffe aus einem eventuell vorhandenen lokalen Netzwerk. Auf einem Laptop mit ständig wechselnden und zum Teil auch direkten Internetzugängen hingegen sieht die Sache schon anders aus. In diesem Abschnitt stopfen Sie die potenzielle Sicherheitslöcher von XAMPP.
3.3.1
Den Sicherheitscheck aufrufen
In der Navigationsleiste von XAMPP gibt es einen Sicherheitscheck, der in einem neuen Tab oder Fenster geöffnet wird. In der Übersichtstabelle taucht dreimal der rot markierte Status unsicher auf (Abbildung 3.6).
Abbildung 3.6
Der Sicherheitscheck von XAMPP
57
3.3
3
XAMPP: Der Offline-Webspace
Allgemeingültige Empfehlungen zu Sicherheitseinstellungen sind schwierig, weil die Balance zwischen »sicher« und »bequem« immer ein Kompromiss ist, der sowohl von der Arbeitsumgebung als auch vom persönlichen Paranoia-Level abhängt. Hier zunächst ein paar Anmerkungen zu den Meldungen: 왘
Diese XAMPP-Seiten sind über’s Netzwerk erreichbar Wenn Ihr Rechner einen direkten Internetzugang hat, kann man vom Internet aus problemlos den Webserver auf Ihrem Rechner aufrufen. Als Schutz bietet sich ein Passwort für das XAMPP-Verzeichnis an. Sitzen Sie hingegen hinter einem DSL-Router, ist Ihr Rechner nicht direkt aus dem Internet erreichbar, und dann ist dieser Schutz nicht so wichtig.
왘
MySQL Admin user »root« hat kein Passwort Der Datenbankserver hat einen Hauptbenutzer mit dem schönen Namen »root«, der noch kein Passwort hat. Falls Sie ein Passwort für »root« vergeben, sollten Sie es sich in irgendeiner Form notieren, eventuell gleich hier im Buch. Dieses Passwort braucht Contao in Kapitel 4 bei der Installation, um eine Verbindung zur Datenbank herstellen zu können.
왘
PhpMyAdmin ist über das Netzwerk erreichbar phpMyAdmin ist eine Webanwendung zur Verwaltung von MySQL-Datenbanken, die Sie weiter unten in diesem Kapitel noch kennenlernen. Wer Zugriff auf phpMyAdmin hat, hat Zugriff auf die Datenbank, und auch das kann man mit einem Passwort schützen.
3.3.2
Einen Passwortschutz für MySQL und phpMyAdmin einrichten
Auf der Seite mit dem Sicherheitscheck finden Sie unterhalb der Übersichtstabelle einen Link, mit dem alle drei Lücken geschlossen werden können: 왘
http://localhost/security/xamppsecurity.php
Nach einem Klick auf diesen Link erscheint die Seite Security Konsole MySQL | XAMPP Verzeichnis Schutz (Abbildung 3.7).
58
Der Sicherheitscheck von XAMPP
Abbildung 3.7 Sicherheitslücken in XAMPP stopfen
Der erste Abschnitt auf der Seite heißt MySQL Sektion: »Root« Passwort, und darin geht es um die Sicherheit von MySQL und phpMyAdmin: 1 Geben Sie ein Passwort für den MySQL SuperUser ein (»root«), und wiederholen Sie das Passwort. Notieren Sie sich dieses Passwort, damit Sie es nicht vergessen. Benutzername: root Passwort: …………………… 2 Checken Sie, ob die phpMyAdmin Authentifikation auf cookie und das zufällige Passwort für den phpMyAdmin User ’pma’ auf Ja gesetzt sind. Dieses Passwort wird nur im Hintergrund benutzt, und Sie müssen es sich weder merken noch selbst irgendwo eingeben. 3 Sie sollten das MySQL-Root-Passwort nicht im Klartext in einer Datei auf Ihrer Festplatte speichern. Notieren ist besser. 4 Klicken Sie auf die Schaltfläche Passwort ändern. Danach erhalten Sie eine Meldung, dass das »root Passwort« erfolgreich geändert wurde und der MySQL Server neu gestartet werden muss, damit die Änderungen wirksam werden. Das machen Sie über das XAMPP Control Panel: Klicken Sie einmal auf Stop, einmal auf Start, und schon ist der MySQL-Server neu gestartet.
59
3.3
3
XAMPP: Der Offline-Webspace
3.3.3
Passwortschutz für das XAMPP-Verzeichnis einrichten
In der unteren Hälfte des Sicherheitschecks geht es um den XAMPP-Verzeichnisschutz (Abbildung 3.8).
Abbildung 3.8
Passwortschutz für das XAMPP-Verzeichnis einrichten
1 Geben Sie im Feld Benutzer (User) den von Ihnen gewünschten Benutzernamen ein. 2 Geben Sie im Feld Passwort das gewünschte Passwort ein. Achten Sie auf Groß- und Kleinbeschreibung. Notieren Sie sich Benutzername und Passwort, damit Sie beide nicht vergessen: Benutzername: ………………………… Passwort: ……………………………… 3 Kreuzen Sie das Kontrollkästchen Passwort in Klartext in Datei speichern? nicht an. Das ist zu unsicher, und Sie haben es sich in Schritt 2 sowieso schon notiert. 4 Klicken Sie auf die Schaltfläche XAMPP Verzeichnis sichern. Wenn alles geklappt hat, erhalten Sie eine Erfolgsmeldung, in der auch der Speicherort der zum Verzeichnisschutz benötigten Dateien xampp.users und .htaccess angezeigt wird. Diese müssen Sie sich nicht merken.
3.3.4
Die neuen Sicherheitseinstellungen testen
Wenn Sie in der orangefarbenen Navigationsleiste links oben wieder auf Sicherheitscheck klicken, sollten alle drei Optionen grün markiert sein (Abbildung 3.9).
60
Der Sicherheitscheck von XAMPP
Abbildung 3.9
XAMPP ist jetzt sicher.
Nach diesen beiden Schritten sind zwar die größten Sicherheitslücken in Ihrer lokalen XAMPP-Installation gestopft, aber die alltägliche Arbeit ist dadurch auch ein klein bisschen unbequemer geworden, denn Sie müssen an zwei Stellen jeweils einen Benutzernamen und ein Passwort eingeben. Probieren Sie es ruhig einmal aus: 왘
Nach dem Aufruf von http://localhost/ greift der XAMPP–Verzeichnisschutz, und im Browserfenster erscheint ein Fenster zur Authentifizierung, in das Sie den von Ihnen vergebenen Benutzernamen und das dazu passende Passwort eingeben müssen. Der Browser merkt sich die Anmeldung für eine Sitzung.
왘
Wenn Sie in der XAMPP-Navigationsleiste in der Gruppe Tools das Programm phpMyAdmin starten, müssen Sie auf der folgenden Seite im Bereich Anmeldung den Benutzernamen »root« und das von Ihnen vergebene »Root«-Passwort für MySQL eingeben.
So viel zur Sicherheit. In den folgenden Abschnitten möchte ich Ihnen die einzelnen Komponenten von XAMPP kurz vorstellen. Ungeduldig? Die Installation von Contao beginnt auf Seite 71. Nach dem Sicherheitscheck ist XAMPP als Entwicklungsumgebung einsatzbereit. Sie können die folgenden Erläuterungen zu den Komponenten von XAMPP auch überspringen und gleich zur Installation von Contao weitergehen. Falls irgendetwas unklar ist, kommen Sie einfach wieder zurück.
61
3.3
3
XAMPP: Der Offline-Webspace
3.4
Der Webserver: Apache serviert Webseiten
Ein Webserver ist ein Webseiten-Servierprogramm, ein Programm, das auf Anfrage Webseiten ausliefert. Im Alltag ist mit Webserver zwar oft auch der Computer gemeint, auf dem das Programm läuft, aber eigentlich ist der Webserver nur das Programm. Der Apache ist ein Open-Source-Projekt, und seine Entwicklung wird von der Apache Software Foundation koordiniert, die auf apache.org zu Hause ist. Der Name wurde laut FAQ aus Respekt vor dem Stamm der Apachen gewählt. Nicht ganz korrekt, aber weit verbreitet ist die Variante, dass sich der Name vom Ausdruck »a patchy server« ableitet, was so viel heißt wie »ein zusammengeflickter Server«. Laut der Web Server Survey von Netcraft ist der Apache der meistbenutzte Webserver im Internet: 왘
In XAMPP finden Sie in der orangefarbenen Navigation den Bereich Dokumentation. Dort gibt es auch einen Link zur deutschsprachigen Übersicht der Apache-Dokumentation.
3.4.1
DocumentRoot: »htdocs«, der Ordner für die Webseiten
Wenn ein Webserver Webseiten servieren soll, muss er wissen, wo sie aufbewahrt werden, und dazu gibt es auf der Festplatte einen speziellen Ordner, in dem die zu servierenden Webseiten liegen. In XAMPP Lite ist das der Ordner c:\ xampplite\htdocs. Beim Apache wird dieser Ordner als DocumentRoot bezeichnet, was so viel heißt wie »Hauptordner für Webseiten«. In der Praxis läuft das Servieren von Webseiten ungefähr so ab: 왘
Sie geben im Browser http://localhost/ ein. Der einfache Schrägstrich am Ende der URL steht für die DocumentRoot des Webservers.
왘
Der Webserver schaut in seiner Konfigurationsdatei nach, welcher Ordner als DocumentRoot eingetragen ist, und findet c:\xampplite\htdocs.
Alle Webprojekte werden am besten in einem eigenen Ordner unterhalb der DocumentRoot abgelegt. Probieren Sie testweise einmal das Anlegen eines neuen Ordners aus: 왘
Erstellen Sie unterhalb von htdocs einen Ordner namens test.
왘
Geben Sie im Browser http://localhost/test/ ein.
62
Der Webserver: Apache serviert Webseiten
Der Apache zeigt Ihnen jetzt im Browser den leeren Ordner an. Wenn es in dem Ordner test eine Datei namens index.html gibt, wird der Webserver diese anzeigen. Ist eine solche Datei nicht vorhanden, listet der Apache in XAMPP Lite alle Dateien im Ordner auf (Directory Listing). Manchmal sind Webserver nicht ganz so bequem konfiguriert und zeigen beim Fehlen einer Index-Seite die Meldung »403 – Zugriff verweigert«. Sie können den Ordner test übrigens gerne wieder löschen. Er wird nicht mehr gebraucht. Falls der Apache nicht so will, wie er soll: »error.log« Der Webserver protokolliert im Hintergrund so ziemlich alles mit, was er tut, und falls irgendetwas nicht richtig funktioniert, hilft oft ein Blick in die Log-Datei mit den Fehlermeldungen: 왘
c:\xampplite\apache\logs\error.log
Die neuesten Meldungen finden Sie immer ganz unten in der Datei. Manchmal gibt einer der Einträge den entscheidenden Hinweis, auch wenn man nicht jedes Detail versteht.
3.4.2
Der PHP-Übersetzer: Als Modul oder als CGI
Mit dem Begriff PHP ist im Alltag zweierlei gemeint: erstens die Programmiersprache, die das Web im Sturm erobert hat, und zweitens der Interpreter, der die PHP-Befehle ausführt. PHP ist wie der Apache Open Source, und die Entwicklung wird auf php.net koordiniert (Abbildung 3.10).
Abbildung 3.10 »php.net« – hier wird die Entwicklung von PHP koordiniert.
63
3.4
3
XAMPP: Der Offline-Webspace
Auf http://php.net/manual/de können Sie übrigens bei Bedarf alle PHP-Befehle nachschlagen, aber in diesem Abschnitt geht es nicht um die Programmiersprache, sondern um eine wichtige Einstellung für den PHP-Interpreter. Es gibt zwei Arten, wie Apache und PHP zusammenarbeiten können: als Modul oder als CGI. Diese Einstellung wird in Kapitel 4 bei der Installation von Contao eventuell wichtig. Abbildung 3.11 zeigt links PHP als CGI und rechts PHP als Apache-Modul.
Webserver (Apache)
C G I
P H P
PHP als CGI
Webserver (Apache)
P H P
PHP als Modul
Abbildung 3.11 PHP als CGI und Modul
Beide Methoden haben verschiedene Vor- und Nachteile: 왘
Wenn der PHP-Interpreter über die CGI-Schnittstelle aufgerufen wird, sind Webserver und Interpreter zwei völlig getrennte Einheiten. Der Nachteil ist, dass der PHP-Interpreter immer wieder gestartet und beendet werden muss. Der Servercomputer verbringt dadurch einen nicht unerheblichen Teil seiner Rechenzeit einfach nur mit dem Starten und Beenden des PHP-Interpreters. Das klingt nicht besonders effektiv und ist es auch nicht, aber unter dem Namen FastCGI gibt es inzwischen eine schnellere CGI-Variante, die diesen Nachteil aufhebt.
왘
Wenn PHP als Apache-Modul betrieben wird, rücken Interpreter und Webserver buchstäblich enger zusammen. PHP wird quasi Teil des Servers und muss nicht jedes Mal neu gestartet werden, um einen Befehl auszuführen. Dadurch ist er natürlich eine ganze Ecke schneller als CGI, aber dafür laufen alle PHPProgramme unter dem Benutzernamen des Webservers, was – wie Sie bei der Installation von Contao sehen werden – wieder andere Nachteile mit sich bringt.
Viele Webhoster betreiben PHP als (Fast-)CGI, weil es sehr stabil ist und auf einem Webserver mit vielen Kunden relativ einfach zu verwalten ist. PHP-Programme laufen unter dem Namen des angemeldeten Benutzers und nicht unter dem des Webservers.
64
Der Webserver: Apache serviert Webseiten
Bei der Installation von Contao auf dem Webspace werden beide Möglichkeiten wieder erwähnt. Momentan ist nur wichtig, dass es sie gibt. Auf der Startseite von XAMPP gibt es in der Navigationsleiste einen Link namens phpinfo(), mit dem Sie sich unter anderem die Konfiguration des PHP-Übersetzers bei XAMPP anschauen können:
Abbildung 3.12 Unter XAMPP Lite läuft PHP als Apache-Modul.
In der sechsten Zeile ist bei Server API der Wert Apache 2.0 Handler eingetragen, und das bedeutet, dass der PHP-Interpreter als Apache-Modul betrieben wird. Wenn PHP als CGI oder FastCGI läuft, würden diese Buchstaben dort in irgendeiner Form auftauchen. Den eigenen Webspace erkunden: phpinfo.php So können Sie die PHP-Einstellungen auf Ihrem Webspace analysieren: 왘
Erstellen Sie mit einem Editor eine neue, komplett leere Datei.
왘
Schreiben Sie nur die Zeile in die Datei.
왘
Speichern Sie die Datei zum Beispiel als phpinfo.php.
왘
Laden Sie die Datei per FTP auf Ihren Webspace.
왘
Rufen Sie die Datei im Browser auf.
Und schon sehen Sie die PHP-Einstellungen. Die Datei sollten Sie danach wieder entfernen, denn die PHP-Einstellungen auf Ihrem Webspace gehen nur Sie und Ihren Provider etwas an.
65
3.4
3
XAMPP: Der Offline-Webspace
3.5
MySQL serviert SQL-Datenbanken
MySQL ist ein Datenbankserver für SQL-Datenbanken und sehr weit verbreitet. Es ist ebenfalls ein Open-Source-Projekt, arbeitet gut mit der Programmiersprache PHP zusammen und ist pfeilschnell:
Abbildung 3.13 mysql.de – die deutschsprachige Startseite zu MySQL
MySQL ist keine Datenbank, sondern ein Datenbankserver, der sich nach dem Starten als mysqld.exe im Arbeitsspeicher Ihres Computers befindet. Der Name ist übrigens nicht besonders originell. Ein Datenbankserver für SQL-Datenbanken namens MySQL ist ein bisschen so wie ein Hund, den man »MeinHund« nennt.
3.5.1
MySQL verwaltet mehrere Datenbanken
MySQL verwaltet meist mehrere Datenbanken und speichert die dazugehörigen Daten jeweils in einem eigenen Ordner auf der Festplatte. In XAMPP Lite ist das der Ordner c:\xampplite\mysql\data, in dem für jede Datenbank ein Ordner erstellt wird (Abbildung 3.14). Nach der Installation von XAMPP Lite gibt es drei Datenbanken und dementsprechend auch drei Ordner: cdcol für das Beispiel der CD-Verwaltung, mysql für den Server selbst und phpmyadmin für die MySQL-Benutzeroberfläche, die Sie gleich noch kennenlernen.
66
MySQL serviert SQL-Datenbanken
Abbildung 3.14 MySQL erstellt in »\data« pro Datenbank einen Ordner.
MySQL selbst ist von der Ausstattung her eher spartanisch, und so gibt es keinerlei Benutzeroberfläche. Sie müssten in der MySQL-Konsole also manuell SQL-Befehle eintippen, um zum Beispiel eine neue Datenbank zu erstellen. Wenn Sie nicht zufällig fließend SQL sprechen, macht das wenig Spaß.
3.5.2
SQL ist die Sprache zur Verwaltung von Datenbanken
SQL selbst ist eine Sprache zur Verwaltung von Datenbanken. Die drei Buchstaben stehen für Structured Query Language und werden im Deutschen meist »eskuh-ell« gesprochen. Im Englischen gibt es neben der Aussprache »es-kju-ell« noch die Variante »sie-kwell«, mit einem scharfen »ß« am Anfang (wie das Wort sequel). Mit SQL-Befehlen kann man Daten aus einer Datenbank holen oder in einer Datenbank speichern bzw. sie verändern. Hier ist ein einfaches Beispiel: SELECT title FROM tl_article WHERE id =36;
Dieser SQL-Befehl selektiert den Inhalt des Feldes title in der Datenbanktabelle tl_article, und zwar beim Datensatz mit der ID 36. Sie werden mit SQL-Befehlen kaum direkten Kontakt haben, aber SQL wird von Webanwendungen wie phpMyAdmin oder Contao im Hintergrund die ganze Zeit benutzt.
67
3.5
3
XAMPP: Der Offline-Webspace
3.6
phpMyAdmin verwaltet die Datenbanken von MySQL
Da die manuelle Eingabe von SQL-Befehlen nicht jedermanns Sache ist, enthält XAMPP Lite eine Webanwendung namens phpMyAdmin. Das Programm erleichtert das Leben eines jeden Webentwicklers, aber auch hier ist der Name zumindest für Einsteiger verwirrend. Das Programm ist eine in PHP geschriebene Webanwendung zur Administration von MySQL-Datenbanken und phpMySQLAdmin wäre wohl ein deutlicherer Name. Als Webanwendung wird phpMyAdmin über den Browser bedient: 왘
Geben Sie http://localhost/ ein, um die XAMPP-Startseite aufzurufen.
왘
Klicken Sie in der Navigation unten auf den Link phpMyAdmin.
Daraufhin erscheint die Startseite von phpMyAdmin. Falls Sie beim XAMPP-Sicherheitscheck ab Seite 58 ein Root-Passwort vergeben haben, müssen Sie in der Anmeldung als Benutzernamen »root« und das von Ihnen vergebene Passwort eintragen (Abbildung 3.15).
Abbildung 3.15 Die Startseite von phyMyAdmin
phpMyAdmin wird bei der Arbeit mit Contao im Idealfall nur benötigt, um vor der Installation von Contao eine Datenbank anzulegen. In dieser Datenbank werden dann vom Contao-Installtool automatisch die benötigten Tabellen und Felder angelegt. Sie können das Erstellen einer Datenbank am besten gleich einmal üben: 1. Geben Sie in das Eingabefeld unterhalb von Neue Datenbank anlegen den gewünschten Namen der Datenbank an, z. B. db_test. 2. Klicken Sie auf die Schaltfläche Anlegen.
68
XAMPP-Matrix – die Komponenten im Überblick
Fertig. Links in der Sidebar ist jetzt der Eintrag db_test (0) zu sehen, und auf der Festplatte wurde der Ordner c:\xampplite\mysql\data\db_test angelegt. Falls Sie die eben erstellte Datenbank wieder löschen möchten, ist auch das mit phpMyAdmin ganz einfach: 1. Klicken Sie auf der Startseite von phpMyAdmin links in der Übersicht auf die zu löschende Datenbank db_test. 2. Klicken Sie rechts oben auf den knallroten Link Löschen. Es erscheint die Frage, ob Sie den Befehl DROP DATABASE 'db_test' wirklich ausführen möchten. 3. Sie möchten! Bestätigen Sie die Frage mit einem Klick auf OK. Und schon ist die Datenbank wieder weg. Starten von phpMyAdmin Um phpMyAdmin zu starten, gibt es auch noch zwei Alternativen: 왘
Im XAMPP Control Panel genügt ein Klick auf die Schaltfläche Admin für den MySQLServer.
왘
Im Browser führt die URL http://localhost/phpmyadmin direkt dorthin.
Wichtig ist nur, dass Sie einen Weg kennen, um das Programm zu starten.
3.7
XAMPP-Matrix – die Komponenten im Überblick
Die folgende Abbildung zeigt eine Übersicht der XAMPP-Komponenten und ihrer wichtigsten Einstellungen:
Abbildung 3.16 Die XAMPP-Matrix – Überblick der Komponenten
Die Konfigurationsdateien sind nur der Vollständigkeit halber gelistet. Dort werden Sie normalerweise nichts ändern müssen.
69
3.7
In diesem Kapitel erfahren Sie alles über die Installation von Contao, zuerst lokal auf Ihrem Rechner und dann auf dem echten Webspace. Danach gibt es Hinweise zum Troubleshooting und die Anleitung zum Transfer einer Website von Ihrem Rechner auf den Online-Webspace.
4
Die Installation von Contao
In diesem Kapitel installieren Sie Contao – zunächst lokal auf dem mit XAMPP erstellten Offline-Webspace auf Ihrem Rechner und dann live auf einem OnlineWebspace.
4.1
Vorbereitung: Die Systemvoraussetzungen
Damit Contao reibungslos funktioniert, müssen auf dem Webspace folgende Voraussetzungen erfüllt sein: 왘
PHP ab Version 5.2
왘
MySQL ab Version 4.1 (Besser und schneller ist Version 5.x.)
Außerdem sollten zwei PHP-Erweiterungen installiert sein: 왘
GDlib, damit Contao hochgeladene Bilder bearbeiten kann
왘
SOAP zur Installation von Erweiterungen aus dem Backend heraus
Mit dem Contao-Systemdiagnosetool können Sie ganz einfach überprüfen, ob alle Voraussetzungen erfüllt sind. Ab Seite 83 wird geschildert, wie das gemacht wird. Contao herunterladen Vor einer Installation von Contao sollten Sie in der Regel die aktuelle Version herunterladen: 왘
http://www.contao.org/herunterladen.html
Auf dieser Seite steht immer die neueste Version zur Verfügung, und bei Bedarf gibt es noch ein paar weiterführende Links zum Thema.
71
4
Die Installation von Contao
4.2
Offline: Contao auf Ihrem Rechner installieren
Zum Kennenlernen von Contao installieren Sie es in diesem Abschnitt auf Ihrem Rechner, sodass Sie auch offline damit arbeiten können. Im Ordner contaobuch werden Sie eine leere Website erstellen, die Sie im Laufe der nächsten Kapitel nach und nach entwickeln. Schritt 1: Contao-Dateien in den Ordner »contaobuch« kopieren Im ersten Schritt erstellen Sie einen neuen Ordner für das neue Projekt und kopieren die Contao-Dateien in diesen Ordner. Online würde man das mit einem FTP-Programm machen, offline reichen der Windows Explorer oder Apples Finder. ToDo: Dateien in den Ordner »contaobuch« kopieren 1. Erstellen Sie einen Ordner namens contaobuch unterhalb der DocumentRoot des Apache: c:\xampplite\htdocs\contaobuch\ 2. Laden Sie die aktuelle Contao-Version von contao.org herunter. 3. Entpacken Sie das ZIP-Archiv in einen Ordner auf Ihrer Festplatte. 4. Öffnen Sie den Ordner contao-2.9.*, wobei das Sternchen für die aktuelle Versionsnummer steht. 5. Kopieren Sie die Dateien aus diesem Ordner in den Ordner contaobuch.
Der Ordner contaobuch sollte nach diesen Schritten ungefähr so aussehen wie in Abbildung 4.1.
Abbildung 4.1 Der Ordner »contaobuch« enthält die Dateien von Contao.
72
Offline: Contao auf Ihrem Rechner installieren
Im Ordner contaobuch liegen die index.php, einige Stylesheets und eine Datei mit dem etwas seltsamen Namen .htaccess.default. Außerdem gibt es die Ordner plugins, system, templates, tl_files und contao, in denen wiederum jede Menge Dateien und Unterordner enthalten sind. Alles zusammen ist Contao. Schritt 2: Datenbank erstellen mit phpMyAdmin Vor der eigentlichen Installation legen Sie mit phpMyAdmin zunächst eine Datenbank an. Auf Seite 68 haben Sie das im Abschnitt über phpMyAdmin testweise vielleicht schon einmal gemacht. ToDo: Datenbank erstellen mit phpMyAdmin 1. Öffnen Sie phpMyAdmin im Browser: http://localhost/phpmyadmin/ 2. Falls Sie bei der Installation von XAMPP dem MySQL-Benutzer root ein Passwort gegeben haben, müssen Sie sich jetzt anmelden. 3. Suchen Sie auf der Startseite von phpMyAdmin das Eingabefeld unterhalb der Überschrift MySQL localhost. 4. Geben Sie hier den Namen der Datenbank ein, die angelegt werden soll: »db_contaobuch« 5. Prüfen Sie eine Zeile tiefer, ob der Zeichensatz utf8_general_ci ist. 6. Erstellen Sie mit einem Klick auf Anlegen die Datenbank.
Wenn alles geklappt hat, sollte die Seite im Browser so aussehen wie in Abbildung 4.2.
Abbildung 4.2
phpMyAdmin – die Datenbank »db_contaobuch« wurde erzeugt.
73
4.2
4
Die Installation von Contao
Die Nachricht »Es wurden keine Tabellen in der Datenbank gefunden« ist völlig okay, denn das Erstellen der Tabellen in der Datenbank erledigt das Contao-Installationstool in Schritt 6. Der Datenbankname beginnt mit »db_« Die Datenbank muss nicht unbedingt db_contaobuch heißen, aber der Name ist auch nicht zufällig gewählt. Durch das Kürzel db_ am Anfang wissen Sie immer, dass der Name für eine Datenbank steht. Ohne das db_ könnte contaobuch auch ein Ordnername oder etwas völlig anderes sein.
Schritt 3: Das Passwort für das Installtool ändern Das Installationsprogramm liegt im Unterordner contaobuch/contao/ und heißt install.php. Um es zu starten, geben Sie im Browser folgende URL ein: 왘
http://localhost/contaobuch/contao/install.php
Wenn alles geklappt hat, erscheint die »GNU Lesser General Public License«. Nach einem Klick auf Lizenz akzeptieren beginnt dann die Installation, und zwar mit einer Passworteingabe für das Installtool selbst. Das Installtool kommt nicht nur bei der ersten Installation zum Einsatz, sondern auch bei späteren Updates. Deshalb bleibt es in der Regel auf dem Webspace liegen und wird mit einem Passwort geschützt. Falls Sie nicht die Lizenz sehen, gibt es folgende Möglichkeiten: 왘
Sie werden gebeten, Ihre FTP-Zugangsdaten einzugeben. Bei einer Installation auf einem Unix-basierten System (also auch auf Mac OS X) kann das durchaus passieren. Lesen Sie ab Seite 87 Abschnitt 4.4 über den FTP-Modus von Contao. Sie müssen vor der Installation von Contao noch etwas erledigen.
왘
Sie sehen eine Fehlermeldung 404 oder Not Found. Prüfen Sie die URL und die Pfadangabe im Dateisystem. Denken Sie daran, dass der erste einfache Slash nach localhost für den Ordner htdocs steht.
왘
Sie sehen eine Fehlermeldung Verbindung konnte nicht aufgebaut werden. Der Webserver ist nicht gestartet. Lesen Sie auf Seite 56 Abschnitt 3.2.3, »Testen, ob der Webserver funktioniert«.
Wenn die Ursache für die Meldung behoben wurde, geht es weiter zum folgenden ToDo.
74
Offline: Contao auf Ihrem Rechner installieren
ToDo: Das Passwort für das Installtool ändern 1. Rufen Sie im Browser das Installtool auf: http://localhost/contaobuch/contao/install.php 2. Bestätigen Sie die »GNU Lesser General Public License« mit einem Klick auf Lizenz akzeptieren. 3. Geben Sie bei der ersten Anmeldung das Standardpasswort »contao« (ohne Anführungsstriche) ein, und klicken Sie dann auf Anmelden. 4. Geben Sie im Feld Passwort ein neues Passwort ein. 5. Wiederholen Sie die Passworteingabe im Feld Bestätigung. 6. Notieren Sie das Passwort. Wenn Sie wollen, gleich hier: Passwort für das Installtool: ……………………………… 7. Klicken Sie auf Passwort speichern (Abbildung 4.3).
Abbildung 4.3 Passwort für das Installtool ändern
Zusätzliche Sicherheitsmaßnahmen zum Schutz der Installation Wenn jemand Zugriff auf das Installtool hat, kann er die komplette Website löschen. Falls Ihnen ein Passwort als Schutz nicht ausreicht, werden oberhalb der Passworteingabe zwei zusätzliche Sicherheitsmaßnahmen erwähnt: 왘
install.php umbenennen. Am besten in einen schlecht zu erratenden Dateinamen wie zum Beispiel 43r7za.php.
왘
install.php komplett vom Webspace entfernen. Falls das Installtool bei einem Update wieder benötigt wird, laden Sie es einfach wieder hoch.
Sie können den Zugriff auf den Ordner contao auch mit einer .htaccess schützen. Viele Webhoster stellen ein Hilfsprogramm zum Erstellen eines Verzeichnisschutzes bereit. Das sind aber wie gesagt alles reine Vorsichtsmaßnahmen.
75
4.2
4
Die Installation von Contao
Schritt 4: Einen Verschlüsselungsschlüssel erstellen Nach der Änderung des Passwortes erscheint in Grün die Meldung Das Standardpasswort wurde geändert und darunter gleich der nächste Schritt, Einen Verschlüsselungsschlüssel erstellen. In einem kleinen Browserfenster müssen Sie eventuell etwas nach unten scrollen, um den in Abbildung 4.4 dargestellten Schritt sehen zu können.
ToDo: Einen Verschlüsselungsschlüssel erstellen 1. Um einen zufälligen Verschlüsselungsschlüssel zu generieren, lassen Sie das Eingabefeld Verschlüsselungsschlüssel leer. 2. Klicken Sie einfach auf die Schaltfläche Schlüssel erstellen bzw. speichern direkt unterhalb des leeren Eingabefeldes.
Durch diesen Klick wird eine ziemlich lange, zufällige Zeichenfolge wie z. B. d548ea51fd715c7b41cbe32776f391c5 generiert und in der Datenbank gespeichert. Der Schlüssel findet nur intern Verwendung. Sie müssen ihn nirgendwo selbst eingeben und brauchen ihn deshalb momentan auch nicht unbedingt zu notieren. Der Verschlüsselungsschlüssel steht später auch im Backend Der während der Installation erzeugte Schlüssel wird in der Datenbank gespeichert und ist später bei Bedarf auch im Backend abrufbar: 왘
System 폷 Einstellungen 폷 Sicherheitseinstellungen
Dort heißt er übrigens Hashwert für Verschlüsselung. Sie sollten ihn nicht nachträglich ändern.
76
Offline: Contao auf Ihrem Rechner installieren
Schritt 5: Kontakt mit der Datenbank aufnehmen In diesem Schritt geben Sie die Zugangsdaten zur Datenbank ein, damit Contao eine Verbindung herstellen kann (Abbildung 4.5). Die in Rot erscheinende Meldung Keine Verbindung zur Datenbank möglich! ist kein Grund zur Sorge, da Sie ja noch gar nicht probiert haben, eine Verbindung herzustellen.
Abbildung 4.5 Zugangsdaten für die Datenbank eingeben
Im folgenden ToDo geben Sie die Zugangsdaten zur Datenbank ein. ToDo: Kontakt mit der Datenbank aufnehmen 1. Im Feld Treiber wird der gewünschte Datenbankserver gewählt. Mit Treiber ist das PHP-Modul gemeint, das Kontakt mit MySQL aufnimmt. Ideal ist MySQLi, mit »i« wie »improved« (verbessert) am Ende. Falls das nicht klappt, probieren Sie MySQL ohne das »i« hinten dran. 2. Im Feld Host geben Sie den Namen des Rechners ein, auf dem der Datenbankserver läuft: »localhost«. 3. Im Feld Benutzername tragen Sie »root« ein. Das ist der MySQL-Benutzer, der Zugriff auf die Datenbank hat.
77
4.2
4
Die Installation von Contao
ToDo: Kontakt mit der Datenbank aufnehmen (Forts.) 4. Im Feld Passwort tragen Sie das auf Seite 58 beim Sicherheitscheck von XAMPP vergebene Passwort für den MySQL-Benutzer root ein. Das Passwort erscheint bei der Eingabe im Klartext, um Tippfehler zu vermeiden. Haben Sie kein Passwort vergeben, lassen Sie das Feld leer. 5. Im Feld Datenbank tragen Sie den Namen der auf Seite 73 in Schritt 2 erstellen Datenbank ein: »db_contaobuch« 6. Die Felder Dauerhafte Verbindung, Zeichensatz und Portnummer lassen Sie unverändert. Der Zeichensatz UTF-8 heißt bei MySQL wirklich UTF8, ohne Bindestrich. »Korrigieren« Sie das nicht! 7. Überprüfen Sie Ihre Eingaben noch einmal. Wenn alles korrekt ist, bestätigen Sie sie mit einem Klick auf Einstellungen speichern (Abbildung 4.5).
Jetzt versucht das Installtool, Kontakt mit der Datenbank aufzunehmen. Wenn alles geklappt hat, erscheint wie in Abbildung 4.5 in grünen Lettern die Meldung Datenbankverbindung ok. Unterhalb der Schaltfläche Einstellungen speichern haben Sie noch die Möglichkeit zur Änderung der Kollation. Bei der Erstellung der Datenbank mit phpMyAdmin am Anfang der Installation haben Sie bereits sichergestellt, dass der Zeichensatz für die Datenbank auf utf8_general_ci steht und müssen hier nichts aktualisieren. Kollation: Zeichensatz und Sortierung Vereinfacht gesagt geht es bei der Kollation um den verwendeten Zeichensatz, die Sortierung der Daten in der Datenbank und solche Sachen. Die Einstellung utf8_general_ci bewirkt unter anderem, dass man bei der Anmeldung am Backend beim Benutzernamen nicht auf Groß- und Kleinschreibung achten muss (»ci« wie case insensitive): »k.jones«, »K.JONES« oder »K.Jones« funktioniert alles. Wenn Sie das nicht möchten, können Sie stattdessen »utf8_bin« verwenden.
Schritt 6: Die Datenbanktabellen anlegen Wenn das Installtool eine Verbindung mit der Datenbank hergestellt hat, kann es in diesem Schritt die von Contao benötigten Tabellen und Felder in der Datenbank einrichten. Die in Rot erscheinende Meldung Die Datenbank ist nicht aktuell! ist nicht schlimm, denn bei einer Erstinstallation ist die Datenbank ja noch komplett leer und deshalb natürlich nicht auf dem neuesten Stand.
78
Offline: Contao auf Ihrem Rechner installieren
ToDo: Tabellen aktualisieren und in der Datenbank anlegen 1. Scrollen Sie ein paar Bildschirmseiten langsam nach unten, bis die Schaltfläche Datenbank aktualisieren ins Bild kommt. 2. Prüfen Sie dabei, ob alle Kontrollkästchen vor den SQL-Befehlen Create Table '...' angekreuzt sind. 3. Klicken Sie auf die Schaltfläche Datenbank aktualisieren, um die angezeigten SQLBefehle auszuführen (Abbildung 4.6).
Abbildung 4.6
Neue Datenbanktabellen anlegen
Nach einem Klick auf Datenbank aktualisieren führt das Installtool die angezeigten SQL-Befehle aus und erzeugt die von Contao benötigten Tabellen und Felder in der Datenbank. Vorsicht, wenn sich mehrere Anwendungen diese Datenbank teilen Wenn das Contao-Installtool anbietet, »fremde« Tabellen aus der Datenbank zu entfernen, sollten Sie vorsichtig sein, falls die Datenbank auf Ihrem Server auch noch von anderen Anwendungen benutzt wird. SQL-Befehle zum Löschen wie DROP TABLE sollten Sie nur ankreuzen, wenn Sie sich mehr als hundertprozentig sicher sind, dass die Tabellen nicht benötigt werden.
79
4.2
4
Die Installation von Contao
Schritt 7: Kein Frontend-Template importieren Nach dem Anlegen der Datenbankstrukturen bietet Ihnen das Installtool an, ein Template zu importieren (Abbildung 4.7).
Abbildung 4.7 (K)ein Template importieren
Mit Template ist an dieser Stelle ein Frontend-Template gemeint. Das ist eine komplette, vorkonfigurierte Website, und ein Importieren überschreibt alle eventuell vorhandenen Daten in der Datenbank. Da Sie bei dieser Installation eine leere Site erstellen möchten, die im Laufe des Buches weiterentwickelt wird, importieren Sie hier bitte nichts und gehen gleich weiter zum nächsten Schritt. Für jedes Buchkapitel gibt es ein Frontend-Template auf der DVD Auf der Buch-DVD finden Sie im Ordner beispieldateien ab Kapitel 6 für jedes Kapitel ein Frontend-Template, sodass Sie buchstäblich bei jedem Kapitel anfangen können. Eine genaue Anleitung zur Vorgehensweise finden Sie auf der DVD in beispieldateien/ anleitung_frontend_templates.txt.
Schritt 8: Ein Administratorkonto anlegen Zum Abschluss der Installation erstellen Sie noch ein Administratorkonto. Falls Sie bezüglich Benutzernamen und Passwort keine besonderen Wünsche haben, können Sie für die lokale Installation der Beispielsite ruhig »k.jones« und »kevinjones« nehmen wie in der Online-Demo. Auf einem Online-Webspace wäre das keine so gute Idee. ToDo: Administratorkonto anlegen 1. Tragen Sie im Feld Benutzername einen Benutzernamen für den Administrator ein. 2. Im Feld Name geben Sie den vollen Namen des Administrators ein. 3. Das Feld E-Mail-Adresse muss ausgefüllt werden, auch wenn bei einer lokalen Installation kein Mailserver vorhanden ist, der Meldungen an den Admin schicken könnte. 4. Geben Sie ein Passwort ein, und bestätigen Sie es im Feld Bestätigung.
80
Offline: Contao auf Ihrem Rechner installieren
ToDo: Administratorkonto anlegen (Forts.) 5. Notieren Sie die Zugangsdaten für das Administratorkonto: Admin-Benutzername: …………………………… Name: …………………………… E-Mail-Adresse: …………………………… Admin-Passwort: ………………………………… 6. Klicken Sie auf Ein Administratorkonto erstellen.
Abbildung 4.8 zeigt die Eingabemaske im Browser.
Abbildung 4.8
Ein Administratorkonto anlegen
Wenn alles geklappt hat, können Sie sich mit einem Klick auf den Link Contao Backend-Login ganz rechts unten am Backend anmelden. In den nächsten Kapiteln lernen Sie das Backend genauer kennen. Wenn Sie mit http://localhost/contaobuch das Frontend der frisch installierten Website aufrufen, ist dort außer der Meldung »No pages found« noch nichts zu sehen. Das ist okay und wird bald geändert. Im Ordner auf der Festplatte befinden sich noch einige Dateien für die Beispielsite Music Academy, die für eine leere Site nicht benötigt werden: 왘
die Datei templates/music_academy.sql
왘
der Ordner tl_files/music_academy/
왘
basic.css, music_academy.css und print.css im Hauptordner
Diese Dateien und Ordner können Sie löschen, wenn Sie die Beispielsite Music Academy nicht installieren.
81
4.2
4
Die Installation von Contao
Ungeduldig? Kapitel 5, »Ein kurzer Rundgang im Backend« Falls Sie im Moment nur offline arbeiten möchten, können Sie die folgenden Abschnitte über die Installation auf einem Online-Webspace, die dabei möglichen Probleme und den Umzug einer lokalen Site ins Web auch später lesen. Dann springen Sie jetzt zu Seite 101 mit Kapitel 5, »Ein kurzer Rundgang im Backend«.
4.3
Online: Contao im Web installieren
Für die ersten Schritte und zur Entwicklung von Websites ist eine lokale Installation gut geeignet, aber früher oder später wird Contao auf einem online erreichbaren Webspace installiert.
4.3.1
Informationen über Webhoster im Forum
Hosting ist laut Wikipedia »die Unterbringung von Internetprojekten, die sich in der Regel auch öffentlich durch das Internet abrufen lassen«, und ein Webhoster oder Provider ist eine Firma, die die »Unterbringung von Internetprojekten« ermöglicht, indem sie Ihnen Webspace zur Verfügung stellt.
Abbildung 4.9
82
Das Forum »Erfahrungen mit Webhostern«
Online: Contao im Web installieren
Bevor Sie Contao auf einem Online-Webspace installieren, sollten Sie eventuell kurz im Forum nachschauen, ob andere Forenmitglieder im Bereich Erfahrungen mit Webhostern vielleicht bereits etwas über Erfahrungen mit Contao bei Ihrem Provider veröffentlicht haben (Abbildung 4.9).
4.3.2
Webspace prüfen: Das Contao-Systemdiagnosetool
Mit einem kleinen PHP-Programm können Sie prüfen, ob der Webspace alle Voraussetzungen für Contao erfüllt. Dazu laden Sie zunächst einmal die Datei system-check-2.9.x.zip mit der passenden Versionsnummer herunter: 왘
Entpacken Sie die ZIP-Datei. Darin enthalten ist die Datei contao-check.php, die Sie gleich benötigen. ToDo: Webspace testen mit »contao-check.php« 1. Kopieren Sie die Datei contao-check.php von Ihrer Festplatte per FTP in das Verzeichnis, in das Sie Contao installieren möchten. 2. Rufen Sie das Systemdiagnosetool im Browser auf. Falls Sie die Datei in das Hauptverzeichnis des Webservers (DocumentRoot) kopiert haben, geben Sie dazu folgende URL ein: http://ihre-domain.de/contao-check.php Ersetzen Sie ihre-domain.de dabei durch Ihre eigene Domain.
Falls die Datei nicht gefunden wird und Sie einen 404-Error bekommen, stimmt eventuell der Ordner nicht. Das Hauptverzeichnis für Webseiten heißt bei XAMPP htdocs, kann auf dem Webspace aber verschiedene Namen haben: webseiten, html, httpdocs, public_html oder etwas ganz anderes. Fast nichts ist unmöglich. Wenn es klappt, zeigt der Browser den Contao system check (Abbildung 4.10). Der Contao system check überprüft zwei Dinge: 왘
Im ersten Teil geht es um die PHP-Konfiguration. In Abbildung 4.10 ist hier alles hellgrün hinterlegt.
왘
Im zweiten Teil werden Dateiberechtigungen (»File permissions«) überprüft. Im Beispiel ist auch hier alles im grünen Bereich.
Weiter unten gibt es noch einen dritten Teil, in dem geprüft wird, ob alle von Contao benötigten Dateien (»Files«) vorhanden sind und die nötigen Berechtigungen haben. Da noch keine Dateien vorhanden sind, haben momentan alle einen hellroten Hintergrund. Diese Warnungen können Sie momentan ignorieren, aber nach der Installation sind sie sehr nützlich.
83
4.3
4
Die Installation von Contao
Abbildung 4.10 Der »Contao system check«
Safe Mode Hack empfohlen? Keine Panik – siehe Seite 87! Falls das Diagnosetool vermeldet, dass Sie einen Safe Mode Hack benötigen, erschrecken Sie nicht. Ab Seite 87 wird beschrieben, wie das geht.
4.3.3
Dateien auf den Webspace kopieren
Die Installation von Contao auf dem Webspace bei Ihrem Webhoster verläuft abgesehen von kleinen Unterschieden genau wie eine lokale Installation. Der erste wichtige Unterschied ist, dass Sie die Dateien mit einem FTP-Programm wie FileZilla oder WinSCP auf den Webspace kopieren. Nach dem Kopieren können Sie mit contao-check.php überprüfen, ob alle Dateien korrekt hochgeladen wurden. ToDo: Die Contao-Dateien auf den Webserver kopieren 1. Starten Sie Ihr FTP-Programm, und stellen Sie eine Verbindung zum Webspace her. 2. Kopieren Sie die Contao-Dateien in den gewünschten Ordner auf dem Webspace. Falls Contao nicht im Hauptverzeichnis installiert werden soll, müssen Sie zuerst einen entsprechenden Ordner anlegen.
84
Online: Contao im Web installieren
ToDo: Die Contao-Dateien auf den Webserver kopieren (Forts.) 3. Starten Sie nach dem Kopiervorgang contao-check.php, und überprüfen Sie im dritten Teil, Files, ob alle Dateien kopiert worden sind, welche Dateiberechtigungen (CHMOD) sie haben und wer der Besitzer (Owner) ist.
In Abbildung 4.11 steht der Status für alle gezeigten Dateien auf Validated. Alles okay.
Abbildung 4.11 Der Systemcheck überprüft die hochgeladenen Dateien.
Das Systemdiagnosetool erstellt auf dem Webspace den Ordner contao-check und die Datei contao-check.txt. Beide können Sie wieder löschen, denn sonst fragen Sie sich irgendwann später, woher diese kommen. Auch das Diagnosetool contaocheck.php selbst sollte nach Benutzung wieder entfernt werden. Andere ContaoAdmins und Hacker kennen das Tool auch und könnten dadurch wertvolle Informationen über das System erhalten. Versteckte Dateien: Wenn ».htaccess« nicht mitkopiert wurde Einige FTP-Programme übertragen standardmäßig keine versteckten Dateien. Besonders betroffen davon sind Dateien mit dem Namen .htaccess. Falls das Diagnosetool meldet, dass diese Dateien fehlen, liegt das wahrscheinlich an den Einstellungen in Ihrem FTP-Programm. Die .htaccess-Dateien sorgen dafür, dass bestimmte Dateien und Ordner wie z. B. die Log- oder Cache-Dateien nicht von jedem Besucher eingesehen werden können, und gewährleisten so die Sicherheit des Systems.
85
4.3
4
Die Installation von Contao
4.3.4
Zugangsdaten für die Datenbank
Wenn mit den Dateien alles in Ordnung ist, geht es weiter mit der Datenbank. Falls bereits eine Datenbank vorhanden ist, halten Sie die Zugangsdaten bereit, die in den Unterlagen stehen sollten, die Sie von Ihrem Webhoster bekommen haben: 왘
Datenbankname: ………………………………
왘
Benutzername: ………………………………
왘
Passwort: ………………………………
Auf dem Online-Webspace kann es noch zwei zusätzliche Details geben: 왘
Hostname: ……………………………… Wenn Contao und MySQL nicht auf demselben Rechner laufen, lautet der Hostname nicht localhost, sondern dbserver.provider.de oder ähnlich.
왘
Portnummer: …… Eventuell kommuniziert die MySQL-Datenbank nicht auf dem Standardport 3306. Das passiert selten, kann aber vorkommen.
Wenn Sie diese Informationen nicht finden können, fragen Sie einfach Ihren Webhoster. Falls es noch keine Datenbank gibt, müssen Sie mit phpMyAdmin oder einem vergleichbaren Tool vor der Installation eine Datenbank anlegen. Wie das geht, wird auf Seite 73 beschrieben.
4.3.5
Die Installation im Überblick
Die eigentliche Installation verläuft online genau wie die bereits beschriebene Offline-Installation. Das folgende ToDo zeigt eine kurze Zusammenfassung. ToDo: So installieren Sie Contao auf einem Online-Webspace 1. Starten Sie das Installationsprogramm von Contao. Liegt Contao nicht im Hauptverzeichnis, müssen Sie nach dem ersten einfachen Slash noch entsprechende Ordnernamen ergänzen: http://ihre-domain.de/contao/install.php 2. Wenn nach dem Aufruf des Installtools statt der Passworteingabe das Dialogfeld Dateien via FTP bearbeiten erscheint, informieren Sie sich ab Seite 87 zunächst über den Safe Mode Hack. 3. Das Installtool ist passwortgeschützt. Geben Sie zunächst das Standard-Passwort »contao« ein.
86
Safe Mode Hack: Der FTP-Modus von Contao
ToDo: So installieren Sie Contao auf einem Online-Webspace (Forts.) 4. Ändern Sie das Passwort für das Installtool, und notieren Sie es: Passwort für das Installtool (online): ……………………………… 5. Klicken Sie auf Passwort speichern. 6. Lassen Sie das Eingabefeld für den Verschlüsselungsschlüssel leer, und klicken Sie auf Schlüssel erstellen bzw. speichern. 7. Geben Sie die Zugangsdaten für die Datenbank ein, und klicken Sie auf Einstellungen speichern, um eine Verbindung zur Datenbank herzustellen. Lassen Sie die Kollation unverändert auf utf8_general_ci. 8. Aktualisieren Sie die Datenbanktabellen, indem Sie nach unten scrollen, die Schaltfläche Datenbank aktualisieren suchen und anklicken. 9. Importieren Sie (k)ein Frontend-Template. Bei der Erstinstallation ist das Importieren ungefährlich, aber bei einem späteren Import werden alle bereits bestehenden Daten in der Datenbank überschrieben.
Haben Sie ein Frontend-Template importiert, brauchen Sie kein Admin-Konto anzulegen, weil dies in einem Frontend-Template bereits enthalten ist. Der Standard-Admin von Contao-Installationen ist der Benutzer k.jones mit dem Passwort kevinjones. Falls Sie kein Frontend-Template importiert haben, müssen Sie noch ein AdminKonto eröffnen. Notieren Sie sich in beiden Fällen die Zugangsdaten: Admin-Benutzername (online): ……………………… Name: …………………………… E-Mail-Adresse: …………………………… Admin-Passwort (online): ……………………… Melden Sie sich danach am Backend an, um zu testen, ob alles geklappt hat. Nach dem Import eines Frontend-Templates sollte auch das Frontend bereits »in voller Blüte« erscheinen; ohne den Import eines Templates erscheint lediglich die Mitteilung »No pages found«, weil es noch keine Seiten gibt. Zugriff auf das Verzeichnis während der Entwicklung schützen Während der Entwicklung sollten Sie den Zugriff auf den Ordner schützen. Insbesondere Suchmaschinenrobots werden so vorerst draußen gehalten. Viele Webhoster stellen für einen solchen Verzeichnisschutz komfortable Tools zur Verfügung.
4.4
Safe Mode Hack: Der FTP-Modus von Contao
Dieser Abschnitt ist nur relevant, wenn das Intalltool Sie mit der Aufforderung zur Eingabe der FTP-Daten begrüßt oder wenn das Systemdiagnosetool die Mel87
4.4
4
Die Installation von Contao
dung You will most likely not be able to run Contao without the Safe Mode Hack. ausgibt. Vereinfacht gesagt kommt die Meldung, weil Contao seine eigenen Dateien nicht ändern darf. Das ist nötig, um zum Beispiel Konfigurationsdateien zu speichern oder mit dem integrierten Dateimanager Bilder und Dokumente zu verwalten. Der Grund dafür ist wahrscheinlich, dass PHP als Modul betrieben wird und unter einem anderen Benutzernamen läuft als der FTP-Benutzer, dem die Dateien gehören. Details in »Know-how: Dateiberechtigungen – das 1x1 zu 644« Wenn Sie genau wissen wollen, was es mit dem Safe Mode Hack auf sich hat, lesen Sie bitte Abschnitt 4.8, »Know-how: Dateiberechtigungen – das 1x1 zu 644«, ab Seite 97.
4.4.1
»Sie benötigen wahrscheinlich den Safe Mode Hack«
Abbildung 4.12 zeigt den Contao system check für einen Webspace, bei dem der Safe Mode Hack (SMH) benötigt wird. Mit vollem Namen heißt der SMH übrigens Dateien via FTP bearbeiten oder auch FTP für den Dateizugriff verwenden.
Abbildung 4.12 »Sie werden ziemlich sicher den SMH benötigen«
88
Safe Mode Hack: Der FTP-Modus von Contao
Nach der Einrichtung merken Sie nichts vom Safe Mode Hack Der SMH wird von Contao nur verwendet, wenn es Dateien auf dem Webspace verändern muss. Das kann zum Beispiel eine Änderung in der Konfiguration sein, wenn Bilder automatisch verkleinert werden oder im Dateimanager Dateien hochgeladen werden. Nach der Einrichtung arbeitet der SMH im Hintergrund, und Sie merken davon nichts.
4.4.2
Eine Alternative zum SMH: PHP als CGI oder Fast-CGI
Bei einigen Webhostern gibt es die Möglichkeit, mithilfe der .htaccess den PHPInterpreter nachträglich von Modul auf CGI/Fast-CGI umzustellen. Schauen Sie sich im Contao-Forum nach Erfahrungen mit Ihrem Provider um, oder fragen Sie ihn direkt. Das wäre eine Alternative zum SMH. Beim Webhoster all-inkl.com geht das zum Beispiel so: 왘
Benennen Sie die mitgelieferte Datei .htaccess.default im Hauptverzeichnis von Contao in .htaccess um. Die Datei muss punkthtaccess heißen, nichts davor, nichts dahinter und keine Leerstelle.
왘
Öffnen Sie die Datei im Editor, und schreiben Sie folgenden Befehl in die erste Zeile der Datei: AddHandler php-fastcgi .php
왘
Speichern Sie die Datei .htaccess, und laden Sie sie hoch.
왘
Rufen Sie erneut den contao-check.php auf.
Die Meldung bezüglich des SMH sollte verschwunden sein. Bei anderen Webhostern heißen die Befehle eventuell anders. Fragen Sie einfach nach. Die Datei ».htaccess« konfiguriert den Apache Die Datei .htaccess kann für viele verschiedene Dinge benutzt werden – unter anderem dazu, den Apache zu konfigurieren, ohne Zugriff auf dessen Konfigurationsdatei httpd.conf zu haben. Sie spielt auch eine wichtige Rolle beim Erzeugen von lesbaren URLs in Kapitel 18.1, »Lesbare Adressen: URLs umschreiben«.
4.4.3
Online: So richten Sie den Safe Mode Hack ein
Wenn Sie auf Ihrem Online-Webspace den Safe Mode Hack benötigen, erscheint beim Aufrufen des Installtool das Dialogfeld Dateien via FTP bearbeiten (Abbildung 4.13).
89
4.4
4
Die Installation von Contao
Abbildung 4.13 FTP-Zugangsdaten für den Safe Mode Hack eingeben
Tragen Sie in dieses Formular die ganz normalen FTP-Zugangsdaten ein, mit denen Sie sich auch mit Ihrem FTP-Programm bei Ihrem Webspace anmelden, und klicken Sie auf die Schaltfläche FTP-Einstellungen speichern. Wenn alles geklappt hat, müssen Sie im nächsten Schritt die Lizenz akzeptieren und können dann mit der eigentlichen Installation beginnen. Contao wird bei Bedarf im Hintergrund Dateien via FTP ändern und speichern, ohne dass Sie davon etwas merken. Falls es nicht geklappt hat, erscheint die Meldung »Keine Verbindung zum FTPServer möglich«, und Sie dürfen es noch einmal probieren. Besonders fehleranfällig ist die Eingabe im Feld Relativer Pfad zum Contao-Verzeichnis. Dieser Pfad muss aus Sicht des FTP-Programms angegeben werden und unbedingt mit einem Backslash enden. Sollten Sie sich nicht sicher sein, probieren Sie einfach aus, welcher Pfad der richtige ist: 왘
Starten Sie Ihr FTP-Programm.
왘
Loggen Sie sich mit den im Formular eingetragenen Daten ein.
왘
Schauen Sie, in welchem Verzeichnis Sie nach der Anmeldung landen.
왘
Falls Sie nicht im Contao-Ordner sind, merken Sie sich die Namen der Ordner auf dem Weg dorthin.
90
Safe Mode Hack: Der FTP-Modus von Contao
Wenn Sie zum Beispiel nach der FTP-Anmeldung im Hauptordner landen und danach erst in den Unterordner www wechseln müssen, um Contao zu finden, geben Sie im Installtool den relativen Pfad www/ ein, mit einem Backslash hinten dran. Anleitung für den Safe Mode Hack (SMH) im Forum Falls es irgendwelche Probleme geben sollte, gibt es im Forum einen Thread, der sich speziell mit dem SMH beschäftigt: 왘
Safe Mode Hack anlegen http://bit.ly/bZ2CzN
Dort wird auch beschrieben, wie Sie den SMH manuell in die Konfigurationsdatei eintragen und wie Sie testen können, ob er wirklich funktioniert.
4.4.4
Offline-Webspace: SMH bei einer lokalen Installation umgehen
Auf Unix-basierten Systemen kann es passieren, dass Sie auch bei einer lokalen Offline-Installation mit der Bitte um Eingabe der FTP-Zugangsdaten begrüßt werden. Da MAC OS X auch ein Unix-basiertes System ist, gilt das auch für MAMP oder XAMPP für den Mac. Prinzipiell gäbe es mehrere Möglichkeiten, das Problem zu lösen: 왘
Sie könnten einen lokalen FTP-Server einrichten und dann im Installtool die entsprechenden FTP-Zugangsdaten eingeben. Wenn Sie wissen, wie das geht, spricht nichts dagegen.
왘
Sie könnten versuchen, das PHP in MAMP oder XAMPP nicht als Modul, sondern als (Fast-)CGI zu betreiben. Auch hier gilt: Wenn Sie wissen, wie das geht, spricht nichts dagegen.
Am einfachsten ist es aber, den ganzen Webserver und damit auch das als Modul betriebene PHP unter Ihrem Benutzerkonto und mit Ihren Berechtigungen laufen zu lassen. Auf einem Online-Webspace ist dies jedoch nicht empfehlenswert, denn der Webserver hat nicht ohne Grund sein eigenes Benutzerkonto, aber offline auf Ihrem Rechner ist das eine gute und vergleichsweise einfache Lösung. So ändern Sie die Konfiguration des Apache: 왘
Suchen Sie zunächst die Konfigurationsdatei des Apache. Diese heißt in jedem Fall httpd.conf und liegt wahrscheinlich im Ordner etc/ unterhalb der MAMP/ XAMPP-Installation. Dieser Ordner ist nicht identisch mit dem Systemordner /etc, in dem Sie auf keinen Fall irgendetwas ändern sollten. Das kann den kompletten Rechner zerstören.
91
4.4
4
Die Installation von Contao
왘
Suchen Sie in der httpd.conf die Zeilen, in denen der Benutzername und die Benutzergruppe festgelegt wird, unter denen der Webserver läuft: User daemon Group daemon
왘
Ersetzen Sie in der ersten Zeile das »daemon« durch den Benutzernamen, mit dem Sie sich an Ihrem Computer anmelden. Die »Group« lautet wahrscheinlich »admin«. Mögliche Werte wären also: User peter Group admin
Geben Sie dabei statt peter bitte Ihren Benutzernamen ein. 왘
Um die Änderungen wirksam werden zu lassen, müssen Sie die httpd.conf speichern und den Apache einmal neu starten.
Wenn alles geklappt hat, können Sie die Offline-Installation jetzt auf Seite 74 mit dem Aufruf des Contao-Installtools fortsetzen, die Lizenz bestätigen und das Passwort ändern.
4.5
Alte PHP-Version: Parse error…
Contao benötigt mindestens die PHP-Version 5.2 und versteht in dieser Beziehung auch keinen Spaß. Sollten Sie beim Aufrufen des Installtools eine Fehlermeldung bekommen, die mit den Worten »Parse error: syntax error« (Abbildung 4.14) beginnt, läuft auf Ihrem Webspace ziemlich sicher eine alte PHP-Version.
Abbildung 4.14 Diese Fehlermeldung deutet auf eine alte PHP-Version hin.
Bei vielen Webhostern ist eine passende PHP-Version bereits von vornherein aktiviert, bei anderen muss sie erst eingeschaltet werden. Dazu gibt es im Prinzip zwei Möglichkeiten: 왘
Sie ändern die PHP-Version in der Verwaltungsoberfläche Ihres Webspace.
왘
Sie schalten die PHP-Version mithilfe der .htaccess um.
92
Sonstige potenzielle Probleme bei der Installation
Das Umschalten der PHP-Version mit der .htaccess geht so ähnlich wie das weiter oben beschriebene Umschalten vom PHP-Modul auf Fast-CGI. Sie müssen dazu in der .htaccess einen entsprechenden Befehl einfügen, der von Provider zu Provider variiert. Vielleicht gibt es im Contao-Forum Hinweise für Ihren Webhoster, vielleicht gibt es auch eine FAQ oder Wissensdatenbank, in der der Wechsel zu PHP5 beschrieben steht. Listing 4.1 zeigt Kandidaten zur Umschaltung auf PHP5 per .htaccess: AddHandler x-httpd-php5 .php AddHandler php5-cgi .php AddHandler php-cgi2 .php AddHandler php-fastcgi5 .php AddType x-mapp-php5 .php AddType application/x-httpd-php5 .php Action php /cgi-php5/php Listing 4.1
Möglichkeiten zur Aktivierung von PHP5
Am besten rufen Sie die folgende URL im Browser auf und kopieren die Zeilen aus Listing 4.1 von der Webseite. Damit vermeiden Sie Tippfehler. 왘
Probieren Sie immer nur jeweils eine Zeile aus, nicht mehrere auf einmal.
4.6
Sonstige potenzielle Probleme bei der Installation
Die häufigsten Probleme sind der SMH und die falsche PHP-Version, was allerdings kaum noch vorkommt, da PHP5 weit verbreitet ist. Bei weiteren Problemen wie dem Erscheinen wirrer Zeichen auf dem Bildschirm oder einer komplett weißen Seite gibt es folgende Anlaufpunkte: 왘
Im Forum können Sie lesen, suchen und Fragen stellen. Gerade Fragen zur Installation sind schon häufig gestellt worden. Die Suchfunktion hilft beim Finden. Wenn Sie trotz ausführlicher Suche nichts gefunden haben, nehmen Sie sich bitte die Zeit, um den Sachverhalt und die Fragen so präzise wie möglich zu formulieren. Der Name des Providers, der Tarif, die Contao-Version und eine Beschrei-
93
4.6
4
Die Installation von Contao
bung der bisherigen Maßnahmen gehören auf jeden Fall dazu. Bei einer lokalen Installation ist das Betriebssystem genauso wichtig wie die verwendeten Versionen von Apache, PHP und MySQL. Das kostet zwar alles Zeit und Mühe, und durch die Installationsprobleme ist man sowieso schon gefrustet, aber denken Sie bitte daran, dass die anderen Forumsteilnehmer die von Ihnen gestellten Fragen freiwillig und in ihrer Freizeit beantworten. Eine gut formulierte Frage erhöht die Chance auf eine gut formulierte Antwort. Wenn Sie sich die Zeit nehmen, den Sachverhalt genau zu beschreiben, sind andere eher dazu bereit, sich mit Ihrem Problem zu beschäftigen.
4.7
Umzug: Von XAMPP auf den Online-Webspace
Wenn Sie eine Website in einer lokalen Umgebung entwickelt haben, muss diese irgendwann auf den Online-Webspace umziehen. Dazu benötigen Sie nur ein bisschen Zeit, ein FTP-Programm zum Übertragen der Dateien und phpMyAdmin zum Exportieren und Importieren der Daten aus der Datenbank. Schritt 1: Dateien auf den Online-Webspace übertragen Dieser Schritt ist einfach: 왘
Starten Sie Ihr FTP-Programm.
왘
Stellen Sie eine Verbindung zum Online-Webspace her.
왘
Kopieren Sie alle Dateien der lokalen Contao-Installation in den gewünschten Ordner auf dem Online-Webspace.
Fertig. Damit sind alle benötigten Dateien an Ort und Stelle. Schritt 2: Die lokale Datenbank exportieren Um die Daten aus der Datenbank von Ihrem Rechner in die Datenbank auf dem Online-Webspace zu transferieren, exportieren Sie zunächst die Daten aus der lokalen Datenbank. Das Ergebnis ist ein SQL-Dump, eine Datei mit der Endung .sql, die jede Menge SQL-Befehle enthält. Diese Datei wird auf dem Online-Webspace wieder importiert. Los geht es aber erst einmal mit dem Exportieren der lokalen Datenbank: 왘
Starten Sie phpMyAdmin im Browser: http://localhost/phpmyadmin/.
왘
Öffnen Sie die gewünschte Datenbank, und klicken Sie oben auf das Register Exportieren.
94
Umzug: Von XAMPP auf den Online-Webspace
왘
Ändern Sie gegebenenfalls die Einstellungen wie in Abbildung 4.15 gezeigt.
왘
Klicken Sie rechts unten auf OK.
Abbildung 4.15 Die Datenbank der Website exportieren
Speichern Sie die Datei auf der Festplatte, und merken Sie sich Ordner und Dateinamen. Schritt 3: Den SQL-Dump auf dem Webspace importieren In diesem Schritt werden die exportierten Daten in die Datenbank auf dem Online-Webspace importiert: 왘
Starten Sie phpMyAdmin auf dem Online-Webspace. Die URL zum Starten von phpMyAdmin erfahren Sie von Ihrem Webhoster.
왘
Klicken Sie links in der Übersicht auf die Datenbank, in die die SQL-Datei importiert werden soll.
왘
Klicken Sie auf das Register Importieren.
95
4.7
4
Die Installation von Contao
왘
Wählen Sie mit einem Klick auf Durchsuchen die in Schritt 2 exportierte SQL-Datei aus, die Sie auf Ihrer Festplatte gespeichert haben.
왘
Klicken Sie rechts unten auf OK.
Abbildung 4.16 Datenbank auswählen und SQL-Datei importieren
Die SQL-Exportdatei wird jetzt auf den Server übertragen und ihr Inhalt in die ausgewählte Datenbank eingelesen. Wenn alles glattgeht, ist die Datenbank kurz danach mit den Daten aus dem SQL-Dump gefüllt worden. Schritt 4: Das Contao-Installtool starten Im vierten und letzten Schritt müssen Sie das Contao-Installtool starten und die letzten Feinheiten erledigen: 왘
Starten Sie das Contao-Installtool auf dem Online-Webspace.
왘
Geben Sie das Passwort für das Contao-Installtool ein, das Sie in der XAMPPInstallation auf Ihrem Rechner benutzt haben.
왘
Falls die Datenbank auf dem Online-Webspace einen anderen Namen oder andere Zugangsdaten hat, müssen Sie die Zugangsdaten zur Datenbank im Installtool aktualisieren.
왘
Prüfen Sie die anderen Einstellungen des Installtools.
Wenn alles okay ist, können Sie sich jetzt am Backend anmelden und die Website online administrieren. Der Umzug ist damit abgeschlossen.
96
Know-how: Dateiberechtigungen – das 1x1 zu 644
4.8
Know-how: Dateiberechtigungen – das 1x1 zu 644
Die meisten Webhoster haben Linux-Server, und unter Linux gibt es ein recht ausgeklügeltes Sicherheitssystem. Das folgende kurze Einmaleins zu Linux-Dateiberechtigungen lesen Sie als Neuling im Bereich Serververwaltung am besten ganz langsam und wenn Sie wirklich wach und aufnahmefähig sind. Los geht’s.
4.8.1
Besitzer, Benutzer und Berechtigungen: 644 und 755
Jeder Ordner und jede Datei hat unter Linux einen Besitzer (Owner). In der Regel ist das der Benutzer, der den Ordner oder die Datei erstellt hat. Dieser Besitzer kann bei Bedarf aber auch nachträglich geändert werden, und zwar mit dem Befehl chown (change owner). Außerdem gibt es für Ordner und Dateien Zugriffsberechtigungen (file permissions), mit denen festgelegt wird, wer was damit machen darf. Diese Berechtigungen kann man mit dem Befehl chmod (change mode) ändern. Auf einem Linux-Server gibt es neben dem Administrator oft noch jede Menge andere Benutzer. Auf einem Shared-Hosting-Server teilen sich viele Kunden einen Server, und in der Regel ist jeder Kunde ein Benutzer. Bei den Dateiberechtigungen werden die Benutzer in drei Klassen eingeteilt: 왘
in den Besitzer einer Datei
왘
in die Gruppe, zu der er gehört
왘
in alle anderen Benutzer auf dem Server
Auch bei den Zugriffsrechten gibt es drei Möglichkeiten, die jeweils eine unterschiedliche Punktzahl bekommen: Recht
Punkte
Lesen
4
Schreiben (ändern, speichern etc.)
2
Ausführen
1
Tabelle 4.1
Dateiberechtigungen unter Linux – Übersicht
Die Punkte für die Zugriffsrechte werden einfach addiert und für alle drei Benutzerklassen hintereinander geschrieben. Zwei weit verbreitete Beispiele sind die Kürzel 644 und 755:
97
4.8
4
Die Installation von Contao
왘
644 bedeutet, dass der Besitzer die Datei lesen und schreiben (4 + 2) darf, die Gruppe und alle anderen hingegen dürfen nur lesen. Das ist bei Dateien auf einem Webspace der Normalfall.
왘
755 heißt, dass der Besitzer alles darf, die Gruppe und alle anderen auf dem Server dürfen nur lesen und ausführen. Ordner haben online oft die Berechtigung 755.
777 bedeutet, dass jeder Benutzer auf dem Server alles damit machen darf. Dateiberechtigungen per FTP-Programm ändern Viele FTP-Programme können dazu benutzt werden, auf dem Webspace die Berechtigungen für Dateien und Ordner zu ändern. Klicken Sie einfach mal mit der rechten Maustaste auf eine Datei, und schauen Sie sich das Kontextmenü an. Vielleicht steht da etwas von CHMOD. Bei FileZilla heißt der Befehl übrigens ganz einfach Dateiberechtigungen...
4.8.2
PHP und Contao: Benutzerrechte, Modul und (Fast)CGI
So weit, so gut, aber warum ist das nun ein Problem? Contao muss, um reibungslos funktionieren zu können, Schreibrechte für seine eigenen Dateien haben, um diese ändern und speichern zu dürfen. Normalerweise wird Contao per FTP hochgeladen. Die dabei erstellten Ordner und Dateien gehören nach dem Hochladen zu Ihrem Benutzernamen, zum Beispiel w0091673. Der Webserver läuft aber unter einem anderen Benutzernamen, zum Beispiel unter wwwrun oder nobody. Spannend wird diese Geschichte nun, wenn der PHP-Interpreter ins Spiel kommt, denn Contao wird vom PHP-Interpreter ausgeführt hat, dieselben Zugriffsrechte, und deshalb ist es so wichtig, unter welchem Benutzernamen PHP läuft: 왘
Wenn der PHP-Interpreter unter einem anderen Benutzer läuft als der FTPBenutzer, dem die Dateien gehören, darf Contao seine eigenen Dateien nicht ändern. Das ist oft der Fall, wenn PHP als Modul läuft.
왘
Wenn der PHP-Interpreter und somit Contao unter dem Namen des FTPBenutzers laufen, gibt es keine Probleme. Das ist bei CGI und FastCGI normalerweise der Fall.
Bei einigen Webhostern gibt es auch Konfigurationen, bei denen PHP als Modul läuft und trotzdem kein Safe Mode Hack benötigt wird, wie zum Beispiel bei iNetRobots.com, der Firma von Contao-Gründer Leo Feyer, und anderen Contao-Partnern. Das ist natürlich im Grunde genommen ideal: Sie haben den schnellen Modulmodus und benötigen trotzdem keinen SMH.
98
Know-how: Dateiberechtigungen – das 1x1 zu 644
4.8.3
Was der Safe Mode Hack genau macht
Dateien haben als Standardzugriffsrecht meist den Wert »644« und Ordner »755«. Das bedeutet, dass sie nur vom Besitzer geändert werden können, alle anderen Benutzer auf dem Server dürfen sie nur lesen. Im Klartext: 왘
Wenn PHP unter einem anderen Benutzernamen läuft als der FTP-Benutzer, darf Contao bei den sicheren Zugriffsrechten 644 und 755 seine eigenen Dateien nicht ändern.
왘
Läuft PHP hingegen unter dem gleichen Namen wie der FTP-Benutzer, hat Contao dessen Rechte und alles funktioniert reibungslos.
Der Safe Mode Hack greift nun, wenn PHP unter einem anderen Benutzernamen als der FTP-Benutzer läuft, und bewirkt, dass Contao beim Ändern der Dateien eine FTP-Verbindung aufbaut und als FTP-Benutzer agiert. Das ist wie erwähnt ganz schön pfiffig und um Klassen besser als ein Sicherheitsloch namens »777«.
4.8.4
Sicherheitsloch: »Alles auf 777« ist keine gute Idee
Die »Triple Seven« von Boeing ist ein wunderbar geräumiges Flugzeug für Langstreckenflüge mit viel Beinfreiheit, die »Triple Seven« als Dateiberechtigung auf einem Webspace ist hingegen keine so gute Idee: Dateien und Ordner mit der Zugriffsberechtigung 777 dürfen von jedem Benutzer auf dem Servercomputer verändert werden. Beim Shared Hosting teilen Sie sich den Server mit vielen anderen Kunden, und ein irgendwo auf diesem Server installiertes bösartiges Programm darf dann auch bei Ihnen sein Unwesen treiben: 왘
777-Dateien können geändert oder gelöscht werden.
왘
777-Ordner sind eine Einladung für »Kuckuckseier«. Fremde Dateien mit dubiosen Inhalten, die in einem Ordner auf Ihrem Webspace liegen und von dort aus serviert werden, ohne dass Sie etwas davon ahnen.
Sie merken schon: 777 ist sehr bequem, aber keine gute Idee, außer für Ordner, in denen temporäre Dateien aufbewahrt werden, die regelmäßig gelöscht werden. Viele Webanwendungen haben aber kein Äquivalent zum Safe Mode Hack anzubieten und empfehlen deshalb, die Zugriffsrechte für bestimmte Dateien und Ordner auf 777 zu stellen, damit die Anwendung überhaupt funktioniert. Auch in Foren wird das manchmal ganz locker als Lösung für alle Probleme empfohlen: »Einfach alles auf 777 setzen, dann funzt das.«
99
4.8
4
Die Installation von Contao
Eine bequeme Lösung ist aber selten eine sichere. Der Contao system check sagt zu diesem Thema: Under no circumstances should you try to solve this problem by changing the file permissions! Versuchen Sie keinesfalls, das Problem durch eine Änderung der Dateiberechtigungen zu lösen! Die Meldung erscheint zwar in kleiner, hellgrauer Schrift, aber die Aussage ist deutlich: Just don’t do it. Vielleicht erzählt Ihnen in einem Forum ein freundlicher Experte, dass 777 nicht wirklich gefährlich sei. Überlegen Sie einfach, ob Sie auf Empfehlung dieses Experten zur Hauptverkehrszeit mit verbundenen Augen eine gut befahrene, mehrspurige Schnellstraße überqueren würden. Wenn nicht, dann ist 777 nichts für Sie. Sie sind dann nicht gutgläubig genug und besitzen zu wenig Risikobereitschaft.
100
In diesem Kapitel machen Sie einen kurzen Rundgang durch das Backend der frisch installierten, noch leeren Website. Dabei erledigen Sie gleich ein paar wichtige Einstellungen und lernen den Dateimanager und die Erweiterungsverwaltung kennen.
5
Ein kurzer Rundgang im Backend
Das Backend ist, wie in Kapitel 2, »Schnelldurchlauf: So funktioniert Contao«, erwähnt wurde, der Administrationsbereich von Contao. Im Backend wird aber nicht nur verwaltet, sondern auch richtig gearbeitet. Bevor Sie im nächsten Kapitel die erste eigene Site mit Contao erstellen, möchte ich Ihnen jetzt das Backend kurz vorstellen.
5.1
Überblick: Das Backend
Rufen Sie im Browser das Backend von Contao auf: 왘
http://localhost/contaobuch/contao/
Nach einer Anmeldung als Administrator sieht das Backend aus wie in Abbildung 5.1.
Abbildung 5.1 Das Backend nach einer Anmeldung als Administrator
101
5
Ein kurzer Rundgang im Backend
Das Backend ist sehr übersichtlich und in drei große Bereiche eingeteilt: 왘
Der Infobereich (oben) enthält die Benutzereinstellungen, eine Frontend-Vorschau, einen Link zur Backend-Startseite und die Abmeldung.
왘
Der Navigationsbereich (links) enthält fünf Gruppen mit Backend-Modulen, die in diesem Kapitel weiter unten kurz vorgestellt werden.
왘
Der Arbeitsbereich (rechts) zeigt jeweils Detailinformationen zum ausgewählten Backend-Modul.
Diese drei Bereiche werden im Folgenden kurz vorgestellt.
5.2
Ganz oben: Der Infobereich
Der Infobereich oben im Backend ist recht schmal und nicht besonders auffällig. Er enthält aber einige nützliche Links.
Abbildung 5.2 Der Infobereich im Backend
Links oben steht zunächst einmal die Versionsnummer von Contao. In der Zeile darunter gibt es, rechtsbündig ausgerichtet, vier Links: 왘
Benutzer zeigt, welcher Benutzer gerade angemeldet ist.
왘
Frontend-Vorschau öffnet das Frontend in einem neuen Tab oder Browserfenster. Dies ist insbesondere dann nützlich, wenn Sie mit verschiedenen Benutzern oder unveröffentlichten Elementen arbeiten.
왘
Startseite führt immer zurück zur Startseite des Backends.
왘
Mit einem Klick auf Abmelden können Sie, ja, genau das.
Nach einem Klick auf den Link Benutzer sehen Sie die Seite Persönliche Daten aus Abbildung 5.3. Auf dieser Seite kann jeder Benutzer seine persönlichen Einstellungen ändern, und zwar Name (den vollständigen, nicht den Benutzernamen), E-Mail-Adresse und Passwort-Einstellungen. Außerdem kann man hier auch die Backend-Einstellungen wie zum Beispiel die im Backend verwendete Sprache festlegen und den Cache leeren. In Abbildung 5.3 steht ganz oben groß, grün und mit einem Pfeil davor die ID des gerade bearbeiteten Datensatzes. Eine ähnliche Mitteilung werden Sie des Öfteren sehen, denn in Contao ist alles ein Datensatz, egal ob Benutzer, Seite, Artikel oder Inhaltselement, und jeder Datensatz hat eine ID.
102
Links: Der Navigationsbereich (Backend-Module)
Abbildung 5.3 »Persönliche Daten« von Administrator Kevin Jones
Ganz unten gibt es in Abbildung 5.3 zwei Schaltflächen zum Speichern: Speichern speichert die aktuellen Einstellungen in der Datenbank, lässt das Formular aber geöffnet. Speichern und schliessen macht genau das, was draufsteht. Der Aufbau des Arbeitsbereiches Der übersichtliche, zweispaltige Aufbau des Arbeitsbereiches ist typisch für Contao. Die einzelnen Rubriken können Sie mit einem Klick auf die grüne Überschrift ein- und ausblenden. Contao merkt sich diese Einstellungen, und zwar pro Benutzer.
5.3
Links: Der Navigationsbereich (Backend-Module)
Der Navigationsbereich ordnet die zur Verfügung stehenden Backend-Module in fünf Kategorien:
103
5.3
5
Ein kurzer Rundgang im Backend
왘
Inhalte. In dieser Kategorie befinden sich alle Module, die Inhalt für die Webseiten erzeugen: Artikel, Nachrichten und einiges mehr.
왘
Layout. Die Module in dieser Kategorie haben mit Struktur und Aussehen der Site zu tun.
왘
Benutzerverwaltung. Contao kennt Mitglieder (Frontend-Benutzer) und Benutzer (Backend-Benutzer).
왘
System enthält diverse Module zur Konfiguration und Wartung der ContaoInstallation.
왘
Benutzerfunktionen zeigt Module für den angemeldeten Benutzer.
Mit einem Klick auf das Minus- bzw. Plus-Zeichen vor dem Namen der Kategorie können Sie die Bereiche einfach ein- und ausblenden, je nachdem, wie Sie es gerade gern hätten. Die einzelnen Backend-Module lernen Sie im weiteren Verlauf des Buches ausführlich kennen.
5.4
Rechts: Der Arbeitsbereich
Der Arbeitsbereich trägt seinen Namen nicht zu Unrecht, denn nach der Auswahl des gewünschten Backend-Moduls links im Navigationsbereich geht es rechts an die Arbeit. Hier werden Sie einen Großteil Ihrer Zeit verbringen. Auf der Startseite enthält der Arbeitsbereich unter anderem eine Übersicht der wichtigsten Tastenkürzel. Mausfans dürfen natürlich auch weiterhin gern auf die entsprechenden Links und Schaltflächen klicken, aber die Tastaturkürzel sind eine echte Arbeitserleichterung. Windows
Mac
Aktion
(Alt)+ (s)
(Ctrl) + (s)
Speichern
(Alt)+ (c)
(Ctrl) + (c)
Speichern und schließen (Close)
(Alt)+ (e)
(Ctrl) + (e)
Speichern und bearbeiten (Edit)
(Alt)+ (n)
(Ctrl) + (n)
Neues Element
(Alt)+ (b)
(Ctrl) + (b)
Zurück (Back)
(Alt)+ (t)
(Ctrl) + (t)
Nach oben (Top)
(Alt)+ (f)
(Ctrl) + (f)
Frontend-Vorschau
(Alt)+ (q)
(Ctrl) + (q)
Abmelden (Quit)
Tabelle 5.1
104
Die wichtigsten Tastenkürzel im Backend
»System 폷 Einstellungen«
Probieren Sie es einfach einmal aus: 왘
Rufen Sie den Bereich Persönliche Daten auf (im Infobereich).
왘
(Alt)+ (c) entspricht einem Klick auf Speichern und schliessen.
Je nach Browser und Betriebssystem können diese Kürzel ein bisschen abweichen. So müssen Sie in Mozilla Firefox und Google Chrome unter Windows gleichzeitig (Alt) + (ª) drücken und gedrückt halten. Die (ª)-Taste wird übrigens manchmal auch (Shift) genannt und dient zum Großschreiben einzelner Buchstaben. Nacheinander gedrückt dient die Kombination (Alt) + (ª) unter Windows übrigens zum Wechseln zwischen installierten Tastaturlayouts (Englisch, Deutsch, Niederländisch etc.). Wenn Ihre Tastatur also plötzlich keine Umlaute ausgibt und »y« und »z« vertauscht sind, drücken Sie einfach noch ein- oder zweimal (Alt) + (ª). Mozilla Firefox: Kürzel nur mit (ALT)-Taste aufrufen Wenn Sie auch im Firefox die Tastenkürzel lieber nur mit der (Alt)-Taste eingeben möchten (statt mit (Alt) + (ª)), können Sie das ändern: 왘
Geben Sie im Firefox in der Adresszeile »about:config« ein.
왘
Bestätigen Sie die Meldung, dass Sie vorsichtig sein werden (und seien Sie es auch wirklich).
왘
Geben Sie oben im Filter die Zeichen »ui.« ein. Das steht für user interface, auf Deutsch Benutzeroberfläche, und danach sehen Sie nur noch Einstellungen, die mit diesen Zeichen beginnen.
왘
Doppelklicken Sie in der Zeile ui.key.chromeAccess auf den Wert, und ändern Sie ihn von »4« auf »5«.
왘
Ändern Sie in der Zeile ui.key.contentaccess darunter den Wert von »5« auf »4«.
Die Änderungen werden nach der Bestätigung mit OK ohne Speicherung und ohne Neustart des Firefox sofort wirksam. Probieren Sie es aus.
5.5
»System 폷 Einstellungen«
Im Backend-Modul System 폷 Einstellungen werden die wichtigsten Systemeinstellungen vorgenommen. Auch hier können Sie mit einem Klick auf den grünen Titel die einzelnen Rubriken ein- und ausblenden. In diesem Kapitel lernen Sie erst einmal die allerwichtigsten Bereiche kennen.
105
5.5
5
Ein kurzer Rundgang im Backend
5.5.1
Der »Titel der Webseite«
Gleich die allererste Option heißt Titel der Webseite (Abbildung 5.4).
Abbildung 5.4 Neulich im »Backend 폷 System 폷 Einstellungen«
Der hier eingegebene Titel der Webseite wird bei der Erstellung des für Suchmaschinen wichtigen title-Elements im Head einer Website verwendet, und zwar zusammen mit dem Titel der einzelnen Webseiten, den Sie später bei der Erstellung der Seiten definieren. Dabei benutzt Contao zuerst den Titel der Seite und dann nach einem Bindestrich den hier definierten »Titel der Webseite«. Im folgenden ToDo ändern Sie diesen Titel der Webseite. ToDo: »Titel der Webseite« ändern 1. Öffnen Sie das Backend-Modul System 폷 Einstellungen. 2. Ändern Sie den Titel in »Websites erstellen mit Contao«. 3. Klicken Sie weiter unten auf Speichern und schliessen (oder probieren Sie das oben beschriebene Tastaturkürzel (Alt) + (c)).
Klicken Sie nach dem Speichern rechts oben im Infobereich auf Startseite. Auf der Backend-Startseite sehen Sie links oben im Arbeitsbereich gleich zweimal den neuen Titel Websites erstellen mit Contao, einmal in Weiß und einmal in Grün (Abbildung 5.5). Der hier eingegebene Titel der Website kann später in einem sogenannten Startpunkt einer Webseite überschrieben werden. Mehr dazu finden Sie in Kapitel 6, »Die erste Website mit Contao«.
106
»System 폷 Einstellungen«
Abbildung 5.5 Der »Titel der Webseite« auf der Startseite des Backends
Webseite vs. Website Die Begriffe rund um das Webpublishing stammen aus dem Englischen, und bei der Übertragung ins Deutsche passieren manchmal seltsame Dinge. So wurde eine web page auf Deutsch zu einer Webseite, aber das englische web site als Bezeichnung für eine Menge zusammengehörender Webseiten hat keine wirklich gelungene deutsche Entsprechung gefunden. In der deutschen Übersetzung von Contao meint der Begriff Webseite denn auch nicht nur eine einzelne Webseite, sondern manchmal auch die Website. Diese doppelte Bedeutung von Webseite findet man im deutschsprachigen Web häufiger, aber bisweilen führt es zu Verwirrungen, wie hier bei Titel der Webseite. Ich werde an den entsprechenden Stellen darauf hinweisen oder gleich die Begriffe Site bzw. Website benutzen.
5.5.2
Das Format für Angaben von Datum und Zeit
Der nächste Bereich in System 폷 Einstellungen heißt Datum und Zeit.
Abbildung 5.6 »System 폷 Einstellungen 폷 Datum und Zeit«
Die Standardvorgabe ist dort Y-m-d, was auf einer Webseite als 2010-07-23 dargestellt wird. Dieses Datumsformat ist zwar sehr praktisch, aber eher ungewöhnlich. Mit einem Klick auf das rot umrandete Dreieck bekommen Sie eine kurze Hilfestellung zu den möglichen Datumsformaten. Für eine deutsche Website ist zum Beispiel d.m.Y nicht schlecht, was als 22.07.2010 dargestellt wird. Für die Uhrzeit ergibt H:i das Format 14:58.
107
5.5
5
Ein kurzer Rundgang im Backend
ToDo: Das Datumsformat einstellen 1. Öffnen Sie das Backend-Modul System 폷 Einstellungen. 2. Geben Sie als Datumsformat das Kürzel d.m.Y ein. 3. Das Zeitformat soll H:i sein. 4. Datums- und Zeitformat ist die Kombination: d.m.Y H:i 5. Zeitzone ist Europe/Berlin, wenn der Computer, auf dem der Webserver läuft, in Deutschland steht. 6. Speichern und schliessen.
Genau wie der Titel können die Einstellungen für Datum und Uhrzeit später in einem Startpunkt einer Webseite überschrieben werden. Speicherzeiten: Die Verfallszeit einer Session eventuell erhöhen Im Bereich Speicherzeiten regelt die Verfallszeit einer Session, wie lange Sie im Backend inaktiv sein können, bevor Sie sich wieder anmelden müssen. Gemessen wird in Sekunden, und die Standardeinstellung ist 3600. Falls Sie sich während der Lektüre dieses Buches im Backend zu oft wieder anmelden müssen, erhöhen Sie diese Zahl auf z. B. 36000. Später sollten Sie die letzte Null wieder entfernen.
5.6
Der Dateimanager: »System 폷 Dateiverwaltung«
In diesem Abschnitt lernen Sie die Dateiverwaltung von Contao kennen. Dahinter verbirgt sich ein Dateimanager, mit dem Sie ohne FTP-Programm Dateien von einem lokalen Rechner auf den Servercomputer übertragen und dort verwalten können. Der Zugriff des Dateimanagers ist aus Sicherheitsgründen auf den Upload-Ordner tl_files und dessen Unterordner begrenzt. Alle Dateien, die Sie für Ihre Website benötigen und die nicht zur Contao-Installation gehören, werden unterhalb dieses Ordners gespeichert: zum Beispiel Grafiken für das Theme, Fotos für Artikel oder zum Download angebotene PDFs. »tinymce.css« und »tiny_templates« gibt es schon Bereits vorhanden sind die Datei tinymce.css und ein Ordner namens tiny_templates. Mehr zu diesen beiden erfahren Sie in Kapitel 22.2, »Tipps und Tricks zum TinyMCE«, bei der Optimierung des Editors TinyMCE.
108
Der Dateimanager: »System 폷 Dateiverwaltung«
5.6.1
Ordner erstellen mit dem Dateimanager
In diesem Abschnitt erstellen Sie eine Ordnerstruktur zur Ablage von Dateien (Abbildung 5.7).
Abbildung 5.7 Empfohlene Ordnerstruktur unterhalb von »tl_files«
Diese Ordner werden Sie im weiteren Verlauf des Buches benutzen: 왘
In beispielsite/content/ bewahren Sie alle für den Inhalt der Beispielsite relevanten Medien, wie z. B. Fotos und Bilder, auf.
왘
Für beispielsite/downloads/ erstellen Sie in Kapitel 19.5 einen geschützten Download-Bereich.
왘
Der Ordner importieren ist eine Zwischenstation für alles, was im Verlaufe des Buches in Contao importiert wird.
왘
Im Unterordner themes/blaues_theme speichern Sie alle Dateien, die zu diesem Theme gehören.
Im folgenden ToDo erstellen Sie diese Ordnerstruktur. ToDo: Eine Ordnerstruktur für die Beispielsite anlegen 1. Öffnen Sie das Backend-Modul Dateiverwaltung. 2. Klicken Sie oben im Arbeitsbereich auf Neuer Ordner. Daraufhin erscheinen am rechten Rand braun hinterlegte, leicht blinkende weiße Pfeile. 3. Klicken Sie auf den Pfeil neben Dateisystem, um einen Ordner auf der obersten Ebene einzufügen. 4. Geben Sie den Namen »beispielsite« ein. 5. Klicken Sie auf Speichern und schliessen. 6. Erstellen Sie auf diese Art und Weise die in Abbildung 5.7 dargestellte Ordnerstruktur.
109
5.6
5
Ein kurzer Rundgang im Backend
Falls nicht gleich alles auf Anhieb funktioniert, können Sie die Ordner mit dem blauen Pfeil verschieben und mit dem roten X löschen. Bevor Sie im nächsten Abschnitt ein paar Dateien hochladen, erstellen Sie noch schnell einen Ordner unterhalb von templates, den Sie später bei der Erstellung des ersten Themes benötigen. Dazu wechseln Sie in das Backend-Modul Templates, da der Dateimanager nur unterhalb des Ordners tl_files zuständig ist. ToDo: Einen neuen Ordner anlegen 1. Wechseln Sie in das Backend-Modul Templates. 2. Klicken Sie oben im Arbeitsbereich auf Neuer Ordner. 3. Klicken Sie rechts neben Dateisystem auf das braune Symbol mit dem weißen Pfeil nach rechts. 4. Der Name des Ordners soll »blaues_theme« sein. 5. Speichern und schliessen Sie.
5.6.2
Dateien mit dem Dateimanager hochladen
Nach dem Erstellen der Ordnerstruktur laden Sie in diesem Abschnitt mit dem Dateimanager ein paar Dateien auf den Webspace hoch. Als Übungsobjekt dienen dabei ein Vorschaubild namens screenshot.jpg und zwei Grafiken mit einem Farbverlauf (engl. gradient). header_gradient.jpg enthält einen dunkelblauen Balken mit einem leichten blauen Farbverlauf darunter und wird in Kapitel 8, »Navigationen erstellen in Contao«, zur Gestaltung des Kopfbereichs eingesetzt. graydient.jpg ist ein grauer Farbverlauf und kommt erst in Kapitel 16 auf der Startseite zum Einsatz. Im folgenden ToDo laden Sie diese Grafiken hoch. ToDo: Dateien mit dem Dateimanager hochladen 1. Öffnen Sie das Backend-Modul Dateiverwaltung. 2. Klicken Sie oben im Arbeitsbereich auf Datei-Upload. 3. Wählen Sie den Ordner themes/blaues_theme/grafiken mit einem Klick auf den braun hinterlegten, blinkenden Pfeil daneben. 4. Wählen Sie per Durchsuchen die drei Grafikdateien von der Buch-DVD aus dem Ordner grafiken für Kapitel 5. 5. Klicken Sie auf Dateien hochladen und zurück.
110
Der Dateimanager: »System 폷 Dateiverwaltung«
Abbildung 5.8
Der Dateimanager mit den hochgeladenen Grafiken
Falls Sie die Vorschaubilder für die Grafiken nicht sehen möchten, können Sie diese in den Benutzereinstellungen deaktivieren. Dazu klicken Sie entweder oben im Infobereich auf den Benutzernamen oder links unten im Navigationsbereich auf Benutzerfunktionen 폷 Persönliche Daten. In beiden Fällen kommen Sie in eine Eingabemaske, in der Sie im Bereich Backendeinstellungen die Option Vorschaubilder anzeigen sehen und bei Bedarf ausstellen können. Wenn Sie Grafiken hochladen, werden diese automatisch auf 800 × 600 Pixel verkleinert. Die Standardeinstellungen für den Upload von Dateien können Sie im Backend-Modul System 폷 Einstellungen ändern, und zwar in den Bereichen Dateien und Bilder und Datei-Uploads. »FancyUpload« aktivieren Falls Sie oft mehrere Dateien auf einmal hochladen, können Sie in den Benutzereinstellungen (Persönliche Daten) das Häkchen bei FancyUpload aktivieren setzen. Daraufhin erscheint beim Hochladen von Dateien statt einzelner Durchsuchen-Felder ein FlashProgramm, mit dem Sie mehrere Dateien auf einmal hochladen können.
111
5.6
5
Ein kurzer Rundgang im Backend
5.7
Erweiterungen installieren
In der Einleitung haben Sie gelesen, dass wichtige Erweiterungen wie Nachrichten, Kalender und Newsletter im Kern von Contao integriert sind und sofort nach der Installation zur Verfügung stehen. Zusätzlich gibt es Hunderte von Erweiterungen, die die Funktionalität des Kerns fast beliebig erweitern und die sich komfortabel aus dem Backend heraus installieren lassen.
5.7.1
Die Erweiterungsliste auf »contao.org«
Die Erweiterungen zu Contao werden in einer zentralen Erweiterungsliste auf contao.org gesammelt, die auch unter dem Namen Extension Repository bekannt ist. Sie müssen also auf der Suche nach einer bestimmten Erweiterung nicht das ganze Web durchsuchen, sondern nur zu einer Adresse surfen: 왘
http://www.contao.org/erweiterungsliste.html
Abbildung 5.9
Der Erweiterungskatalog auf »contao.org«
Noch besser ist, dass Sie vom Backend aus Zugriff auf das Extension Repository haben und den Katalog durchsuchen können.
5.7.2
Erweiterungen aus dem Backend heraus installieren
Um den Erweiterungskatalog und die Erweiterungsverwaltung kennenzulernen, installieren Sie in diesem Abschnitt die Erweiterung [BackupDB] von Hagen
112
Erweiterungen installieren
Klemp, die eine bequeme Sicherung der Contao-Datenbank aus dem Backend heraus ermöglicht (siehe auch Kapitel 21.4, »Backups erstellen«).
Abbildung 5.10 Der Erweiterungskatalog im Backend
ToDo: Die Erweiterung »[BackupDB]« installieren 1. Öffnen Sie das Backend-Modul System 폷 Erweiterungskatalog. 2. Falls Sie die Erweiterung [BackupDB] nicht bereits sehen, geben Sie oben im Arbeitsbereich im Feld Suchen das Wort »backup« ein. 3. Klicken Sie in der Liste der gefundenen Erweiterungen auf die grünen Buchstaben [BackupDB], um sich Details zu dieser Erweiterung anzeigen zu lassen. 4. Klicken Sie nach dem Lesen der Infos links unten auf die Schaltfläche Installieren. 5. Auf der nächsten Seite sehen Sie eine kurze Zusammenfassung. Bestätigen Sie die Infos mit einem Klick auf Weiter. 6. Nach der Installation landen Sie im Backend-Modul Erweiterungsverwaltung, in dem die neue Erweiterung bereits angezeigt wird.
Nach diesem ToDo sieht das Backup-Modul System 폷 Erweiterungsverwaltung so aus wie in Abbildung 5.11.
Abbildung 5.11 Die Erweiterungsverwaltung mit der Erweiterung »[BackupDB]«
113
5.7
5
Ein kurzer Rundgang im Backend
In der Erweiterungsverwaltung erhalten Sie einen Überblick über die installierten Erweiterungen und können sie mit den Symbolen rechts daneben bearbeiten, löschen oder aktualisieren. Sobald im Erweiterungskatalog eine neuere Version der Erweiterung vorliegt, wird der Status von Aktuell auf Neue Version verfügbar gesetzt, und Sie können die Erweiterung mit einem Klick auf den grün hinterlegten weißen Haken ganz rechts aktualisieren. Backup erstellen Wenn Sie im Verlauf des Buches ein Backup von der Beispielsite erstellen möchten, finden Sie in Kapitel 21.4, »Backups erstellen«, eine kurze Anleitung dazu.
114
TEIL III Schritt für Schritt zur ersten Website
In diesem Kapitel erstellen Sie die erste Site mit Contao. Die Reise beginnt mit der Erstellung einer Seitenstruktur und geht über Themes und Seitenlayouts weiter zu Frontend-Modulen bis zum ersten Stylesheet. Sie endet mit einem Artikel sowie einem Blick auf ein Template. Den Abschluss bildet ein Überblick über das Zusammenspiel der Komponenten von Contao.
6
Die erste Website mit Contao
Anfangs kommen einem bei der Arbeit mit Contao Begriffe wie Seite, Theme, Seitenlayout, Frontend-Modul, Stylesheet, Artikel und Inhaltselement wie einzelne Puzzleteile vor, die oft nicht so richtig zusammenpassen wollen. Dieses Kapitel erläutert das Zusammenspiel dieser Komponenten und hilft Ihnen bei der Eingewöhnung.
6.1
»No pages found« – Die Seitenstruktur erstellen
Wenn Sie unter der Adresse http://localhost/contaobuch das Frontend der frisch installierten Beispielsite aufrufen, ist es recht übersichtlich. Links oben steht die Meldung »No pages found«, und sonst ist nichts zu sehen (Abbildung 6.1).
Abbildung 6.1 Das Frontend nach der Installation einer leeren Site
117
6
Die erste Website mit Contao
Das ist nicht gerade spektakulär, aber der Befund »No pages found« entspricht den Tatsachen, denn im Backend gibt es tatsächlich noch keine Seiten.
6.1.1
Der Startpunkt für eine neue Website
Die erste Seite, die Sie im Seitenbaum erstellen, ist gleich etwas ganz Besonderes, nämlich ein sogenannter Startpunkt einer Webseite. Mit Webseite ist in diesem Fall die Website gemeint, denn Contao kann in einer Installation mehrere Websites verwalten, und im Seitenbaum beginnt jede Site mit einem solchen Startpunkt. Mit Startpunkt ist übrigens nicht die Startseite für Besucher im Frontend gemeint. Ein Startpunkt dient lediglich zu Verwaltungszwecken im Backend und taucht im Frontend nicht auf. ToDo: Den »Startpunkt einer Webseite« erstellen 1. Rufen Sie das Backend von Contao auf, und melden Sie sich als Administrator an: http://localhost/contaobuch/contao/ 2. Öffnen Sie das Backend-Modul Seitenstruktur. 3. Klicken Sie im Arbeitsbereich oben auf Neue Seite. 4. Daraufhin erscheint eine Zeile mit dem in System 폷 Einstellungen vergebenen Titel der Webseite: Websites erstellen mit Contao. 5. Klicken Sie in dieser Zeile ganz rechts auf das blinkende braune Symbol mit dem Pfeil nach rechts, um eine neue Seite einzufügen. 6. Geben Sie im Feld Seitenname »Beispielsite Contaobuch« ein. 7. Wählen Sie als Seitentyp die Option Startpunkt einer Webseite. 8. Aktivieren Sie im Bereich Veröffentlichung weiter unten das Kontrollkästchen Seite veröffentlichen. 9. Bestätigen Sie die Einstellungen mit Speichern und Schliessen.
Abbildung 6.2 zeigt diese Einstellungen im Überblick. Das Häkchen bei Seite veröffentlichen ist wichtig, denn sonst wird zwar in der Datenbank eine Seite angelegt, diese bleibt aber offline. Nach dem Klick auf Speichern und Schliessen sieht der Seitenbaum im Backend so aus wie in Abbildung 6.3. Am rechten Seitenrand sehen Sie Symbole zur Bearbeitung der Seite. Wenn Sie mit der Maus kurz über einem Symbol verweilen, bekommen Sie einen kleinen Hinweis. Für den folgenden Abschnitt ist der gelbe Bleistift ganz links am wichtigsten. Ein Klick darauf öffnet die Seite zur Bearbeitung.
118
»No pages found« – Die Seitenstruktur erstellen
Abbildung 6.2 Den Startpunkt einer Webseite erstellen
Abbildung 6.3 Die Seitenstruktur mit dem Startpunkt einer Webseite
6.1.2
Sprachen-Fallback für den Startpunkt aktivieren
Viele der zahlreichen Einstellungen für einen Startpunkt, die Sie in Abbildung 6.2 sehen, werden erst wichtig, wenn in einer Contao-Installation mehrere Websites verwaltet werden. Eine Sache hingegen sollte sofort erledigt werden, damit sie
119
6.1
6
Die erste Website mit Contao
später nicht zu Problemen führt, und das ist der Sprachen-Fallback. Im folgenden ToDo ändern Sie diese Einstellung. ToDo: Sprachen-Fallback für den Startpunkt definieren 1. Öffnen Sie das Backend-Modul Seitenstruktur. 2. Klicken Sie neben dem Startpunkt Beispielsite Contaobuch auf den gelben Bleistift, um die Seite zu bearbeiten. 3. Blenden Sie den Bereich DNS ein, in dem Sie auf die grüne Überschrift klicken. DNS steht für Domain Name System. 4. Lassen Sie das Feld Domainname frei. 5. Überprüfen Sie, ob im Feld Sprache der Wert »de« steht. 6. Aktivieren Sie das Kontrollkästchen Sprachen-Fallback. 7. Speichern Sie die Einstellungen mit Speichern und Schliessen.
Abbildung 6.4 Sprachen-Fallback für den Startpunkt definieren
Der Hintergrund dieser Einstellung ist, dass ein Browser dem Webserver mitteilt, in welcher Sprache er die Webseiten am liebsten hätte. Die bevorzugte Sprache kann man in jedem Browser einstellen, im Firefox zum Beispiel unter Extras 폷 Einstellungen 폷 Inhalt 폷 Sprachen. Ist im Startpunkt nur die Sprache de eingetragen, werden die Webseiten von Contao nur an Browser ausgeliefert, die sich als Sprache Deutsch wünschen. Ausländische Browser mit anderen Sprachwünschen bekämen die Meldung »No pages found«, da in der vom Browser gewünschten Sprache keine Seiten existieren. Sie selbst merken davon nichts, solange in Ihrem Browser de als erste Sprache eingestellt ist. Das Häkchen bei Sprachen-Fallback bewirkt, dass die Webseiten unterhalb dieses Startpunktes angezeigt werden, wenn es keine passende Sprache gibt.
120
»No pages found« – Die Seitenstruktur erstellen
6.1.3
Die Startseite für die Beispielsite erstellen
Nachdem der Startpunkt der Webseite jetzt eingerichtet ist, erstellen Sie in diesem Abschnitt die Startseite für die Besucher der Website. ToDo: Eine Startseite für die Beispielsite erstellen 1. Öffnen Sie das Backend-Modul Seitenstruktur. 2. Klicken Sie im Arbeitsbereich oben auf Neue Seite. 3. Klicken Sie in der Zeile Beispielsite Contaobuch ganz rechts auf das blinkende braune Symbol mit dem Pfeil nach rechts, um die neue Seite als Unterseite des Startpunktes einzufügen. 4. Schreiben Sie im Bereich Name und Typ in das Feld Seitenname das Wort »Startseite«. 5. Prüfen Sie, ob bei Seitentyp die Option Reguläre Seite ausgewählt ist. 6. Aktivieren Sie weiter unten im Bereich Veröffentlichung die Option Seite veröffentlichen. 7. Sie können sich die zahlreichen anderen Optionen auf dieser Seite gerne anschauen, aber lassen Sie sie vorerst unverändert. Diese Optionen kommen später an die Reihe. 8. Beenden Sie die Bearbeitung mit einem Klick auf Speichern und Schliessen, um zum Seitenbaum zurückzukehren.
Nach diesem ToDo sieht der Seitenbaum so aus wie in Abbildung 6.5. Falls Sie nicht alle Seiten sehen, klicken Sie auf das Pluszeichen vor dem Startpunkt oder oben im Arbeitsbereich auf Alle öffnen/schliessen.
Abbildung 6.5 Der Seitenbaum mit Startpunkt und Startseite
Wie Sie sehen, hat die Startseite ein anderes Symbol und ist etwas nach rechts eingerückt. Wenn Sie auf das Minus-Zeichen vor dem Startpunkt Beispielsite Contaobuch klicken, sollte die Startseite nicht mehr zu sehen sein. Sehen Sie die Startseite trotzdem noch, befinden sich die Startseite und der Startpunkt auf einer
121
6.1
6
Die erste Website mit Contao
Ebene. Verschieben Sie dann die Startseite mit einem Klick auf den blauen Pfeil, und fügen Sie sie mit den braun hinterlegten Pfeilen an der richtigen Stelle wieder ein. Eine Seite ist auch nur ein Datensatz Wenn Contao eine Seite erstellt, dann ist das keine statische Webseite, die als Datei irgendwo auf dem Webspace gespeichert wird, sondern nur ein Datensatz in einer Datenbanktabelle. Deshalb heißt die Startseite hier auch nicht index.html oder index.php, sondern einfach nur Startseite. Eine im Browser sichtbare Webseite wird daraus erst durch das am Ende dieses Kapitels beschriebene Zusammenspiel aller Komponenten.
6.1.4
Die Seitenstruktur für die Beispielsite erweitern
Eine Contao-Website kann aus Hunderten oder Tausenden von Webseiten bestehen, aber zum Üben fangen Sie erst einmal mit vier Seiten an. Später werden es dann noch mehr. ToDo: Die Seitenstruktur für die Beispielsite erweitern 1. Öffnen Sie das Backend-Modul Seitenstruktur. 2. Klicken Sie im Arbeitsbereich oben auf den Link Neue Seite. 3. Klicken Sie in der Zeile Startseite rechts auf das kleine braune Symbol mit dem Pfeil nach unten, um die neue Seite auf derselben Ebene wie die Startseite einzufügen. 4. Schreiben Sie im Bereich Name und Typ in das Feld Seitenname den Wert »Downloads«. 5. Prüfen Sie, ob bei Seitentyp Reguläre Seite ausgewählt ist. 6. Aktivieren Sie weiter unten im Bereich Veröffentlichung die Option Seite veröffentlichen. 7. Beenden Sie die Bearbeitung dieses Mal der Abwechslung halber mit einem Klick auf Speichern und neu. Sie bekommen dann sofort das Formular für die nächste neue Seite. 8. Erstellen Sie zwei weitere reguläre Seiten mit den Seitennamen »Kontakt« und »Impressum«. 9. Vergessen Sie nicht, die Seiten zu veröffentlichen. 10.Beenden Sie die Erstellung der letzten Seite mit einem Klick auf die Schaltfläche Speichern und Schliessen.
122
»No pages found« – Die Seitenstruktur erstellen
Nach diesem ToDo sieht der Seitenbaum im Backend so aus wie in Abbildung 6.6.
Abbildung 6.6 Der erweiterte Seitenbaum mit vier Seiten
Und so setzt sich dieser übersichtliche kleine Seitenbaum zusammen: 왘
Ganz oben steht die nicht anklickbare Überschrift Websites erstellen mit Contao. Das ist der Name für die gesamte Contao-Installation, den Sie in System 폷 Einstellungen festgelegt haben.
왘
Darunter gibt es einen Startpunkt der Webseite mit dem Namen Beispielsite Contaobuch. Das ist der Name der Website.
왘
Unterhalb des Startpunktes gibt es vier reguläre Webseiten: Startseite, Downloads, Kontakt und Impressum.
Diese vier Webseiten sollten übrigens alle auf derselben Ebene liegen und gerade untereinander stehen, mit keinerlei Einrückungen nach links oder rechts. Drei Klick-Tipps für die Arbeit mit dem Seitenbaum Bei der Arbeit mit dem Seitenbaum gibt es einige sehr hilfreiche Klicks: 왘
Ein Klick auf das Symbol vor dem Seitennamen zeigt eine Vorschau dieser Seite in einem neuen Tab oder Browserfenster an. Momentan kommt zwar nur die Meldung No layout specified, aber später werden Sie diese Vorschau oft benutzen.
왘
Ein Klick auf den Seitennamen verkürzt den Seitenbaum und beginnt ihn mit der angeklickten Seite. Die vorherigen Ebenen stehen als Navigationspfad hellgelb hervorgehoben über dem Seitenbaum.
왘
Ein Klick auf das letzte Symbol ganz rechts bringt Sie später direkt zur Bearbeitung der Artikel für diese Seite. Momentan gibt es da noch nicht so viel zu tun, aber später ist das sehr praktisch.
123
6.1
6
Die erste Website mit Contao
6.2
»No layout found« – Theme und Seitenlayout erstellen
Falls Sie nach der Erstellung des Seitenbaums das Frontend bereits im Browser betrachtet haben, sehen Sie zwar immer noch keine Webseite, aber die Meldung links oben hat sich geändert und lautet jetzt »No layout specified« (Abbildung 6.7).
Abbildung 6.7 »No layout specified« – neue Meldung im Frontend
Im Schnelldurchlauf am Anfang des Buches haben Sie gesehen, dass jede Seite aus dem Seitenbaum auf einem Seitenlayout basiert. Zur Beseitigung der Fehlermeldung benötigen Sie also ein Seitenlayout, und da ein solches Seitenlayout immer zu einem Theme gehört, müssen Sie zunächst einmal ein Theme erstellen.
6.2.1
Das erste Theme erstellen
Ein Theme bestimmt das Aussehen der Website und ist eine Sammlung aus Seitenlayouts, Stylesheets und Frontend-Modulen, die durch Templates und LayoutGrafiken ergänzt werden. Mit einem Theme kann man einer Site ein anderes Design geben, ohne den Inhalt zu verändern. Ein Theme muss zunächst einen Namen haben und wissen, in welchen Ordnern die dazugehörigen Dateien aufbewahrt werden. Das Theme, das Sie im folgenden ToDo erstellen, heißt schlicht und einfach Blaues Theme, da Blau die Farbe der Wahl für die Beispielsite ist, die Sie in den nächsten Kapiteln erstellen. ToDo: Ein neues Theme erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Klicken Sie im Arbeitsbereich oben auf den Link Neues Theme. 3. Geben Sie im Feld Theme-Titel »Blaues Theme« ein.
124
»No layout found« – Theme und Seitenlayout erstellen
ToDo: Ein neues Theme erstellen (Forts.) 4. Geben Sie im Feld Autor Ihren Namen ein. 5. Wählen Sie als Ordner themes/blaues_theme/. Dieser Ordner liegt unterhalb von tl_ files und enthält den Ordner mit den Layout-Grafiken. 6. Klicken Sie im Bereich Templates-Ordner auf Datei auswählen, und wählen Sie den Ordner blaues_theme. Dieser Ordner liegt unterhalb von templates und enthält speziell für das Theme angepasste Templates. 7. Wählen Sie als Bildschirmfoto folgende Datei aus: themes/blaues_theme/grafiken/screenshot.png 8. Beenden Sie die Erstellung des Themes mit Speichern und Schliessen.
Nach der Erstellung des Themes und dem Schließen des Dialogfeldes sieht das Backend-Modul Themes so aus wie in Abbildung 6.8.
Abbildung 6.8 Das frisch erstellte Theme im Backend
Unter »B« wie »Blaues Theme« wird das neue Theme gelistet. Das Bildschirmfoto hat eine Größe von 175 × 120 Pixel. Die Abbildung ist ihrer Zeit ein bisschen voraus, aber so wissen Sie schon einmal ungefähr, wohin die Reise geht. Rechts sehen Sie sieben Symbole, die zum Bearbeiten des Themes dienen. Das sind der Reihe nach: 왘
Bearbeiten der Theme-Einstellungen Der gelbe Bleistift steht für die Bearbeitung. Hier können Sie die Einstellungen für das aktuelle Theme ändern: Name, Autor und die zugewiesenen Ordner.
왘
Theme löschen Ein Klick auf das rote X löscht das Theme. Es erscheint eine Sicherheitsfrage, und danach wird gelöscht.
125
6.2
6
Die erste Website mit Contao
왘
Details zum Theme anzeigen Ein Klick auf das kleine »i« im blauen Kreis zeigt alle Details zum Theme in einer kleinen Übersicht.
왘
Stylesheets erstellen und bearbeiten Mit dem CSS-Symbol können Sie die Stylesheets für das Theme erstellen. Das werden Sie in diesem Kapitel auch noch tun.
왘
Frontend-Module erstellen und bearbeiten Ein Klick auf das fünfte Symbol führt Sie zur Bearbeitung der FrontendModule, die den Quelltext für das Frontend erzeugen. Auch das werden Sie in diesem Kapitel noch kennenlernen.
왘
Seitenlayouts erstellen und bearbeiten Ein Seitenlayout sorgt für die Darstellung der Seite. Direkt im Anschluss an diesen Abschnitt erstellen Sie das erste Seitenlayout.
왘
Theme exportieren Ein Theme zu »exportieren« bedeutet, dass alle Stylesheets, Frontend-Module, Seitenlayouts und auch die beiden zum Theme gehörenden Ordner in ein ZIPArchiv gepackt und lokal gespeichert werden. Dieses ZIP-Archiv kann auf einer anderen Contao-Site wieder importiert werden.
So viel zur Erstellung eines Themes. In den folgenden Abschnitten werden Sie der Reihe nach ein Seitenlayout, ein paar Frontend-Module und ein erstes Stylesheet erstellen.
6.2.2
Das erste Seitenlayout erstellen
Das erste Seitenlayout ist ein echter Klassiker: zentriert, 960 Pixel breit, mit 3 Spalten sowie einem Header und einem Footer. ToDo: Ein Seitenlayout erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Seitenlayouts zur Bearbeitung (2. Symbol von rechts). 3. Klicken Sie im Arbeitsbereich rechts oben auf Neues Layout. 4. Geben Sie als Titel für das Layout »Standardlayout« ein. 5. Aktivieren Sie das Kontrollkästchen Standardlayout. 6. Aktivieren Sie im Bereich Kopf- und Fusszeile die Kontrollkästchen Kopfzeile einfügen und Fusszeile einfügen, vergeben Sie aber für beide keine Höhe. 7. Wählen Sie im Bereich Spaltenkonfiguration das dreispaltige Layout ganz rechts. Geben Sie für die Breite der linken und der rechten Spalte jeweils ##»182px« ein.
126
»No layout found« – Theme und Seitenlayout erstellen
ToDo: Ein Seitenlayout erstellen (Forts.) 8. Überspringen Sie die folgenden Bereiche, und prüfen Sie, ob im Bereich ExpertenEinstellungen das Seitentemplate fe_page und die Dokumentyp-Definition XHTML Strict eingestellt sind. 9. Aktivieren Sie in den Skript-Einstellungen das MooTools-Template moo_mediabox. Das ist ein JavaScript-Programm, das später zur Erzeugung einer sogenannten »Lightbox« benötigt wird. 10. Aktivieren Sie im Bereich Statisches Layout das gleichnamige Kontrollkästchen. Das Layout soll eine Gesamtbreite von »960px« haben, mit der Ausrichtung »zentriert«. 11. Beenden Sie die Bearbeitung mit Speichern und Schliessen.
Wenn Sie nach der Erstellung des Seitenlayouts ganz oben im Infobereich auf Frontend-Vorschau ((Alt) + (f)) klicken, wird ein neues Fenster geöffnet, in dem Sie einen gelben Balken und eine leere weiße Seite sehen (Abbildung 6.9).
Abbildung 6.9 Seitenlayout erstellt – leere Seite in der Frontend-Vorschau
Der gelbe Balken am oberen Bildschirmrand enthält einen Frame mit Bedienelementen für die Frontend-Vorschau, die später bei der Arbeit mit mehreren Benutzern und unveröffentlichten Elementen richtig praktisch werden. Mit einem Klick auf das X ganz rechts können Sie diesen Frame bei Bedarf entfernen. Dann sehen Sie nur noch die leere Webseite. Es ist vielleicht schwer zu glauben, aber diese leere Seite ist ein echter Fortschritt. Erstens gibt es keine störende Meldung mehr, und zweitens ist das Grundgerüst der Seite bereits da. Im Quelltext.
6.2.3
Ein kurzer Blick in den Quelltext
Der Quelltext ist nicht irgendwo auf dem Webspace gespeichert, sondern wird erst auf Anforderung des Browsers dynamisch von Contao erstellt. Da es bis jetzt noch keinerlei Artikel oder andere Inhalte gibt, wird die Seite leer ausgeliefert,
127
6.2
6
Die erste Website mit Contao
aber das Grundgerüst ist im Quelltext bereits vorhanden. Listing 6.1 zeigt die wichtigsten div-Elemente:
Listing 6.1 HTML-Grundgerüst der Startseite
Die fünf großen Layoutbereiche, die Contao standardmäßig zur Verfügung stellt, sind in Listing 6.1 hervorgehoben: 왘
Kopfzeile:
왘
Linke Spalte:
왘
Rechte Spalte:
왘
Hauptspalte:
왘
Fußzeile:
Bei Bedarf können Sie später auch eigene Layoutbereiche einrichten, aber meistens reichen diese fünf. Der Quelltext wird später genauer erläutert Falls Sie im Quelltext überraschende Dinge wie z. B. einen Styleblock oder seltsame Elemente wie
finden, nehmen Sie sie erst einmal hin. In Kapitel 7, Webseiten gestalten: Contao und CSS, werden diese Dinge im Detail erläutert.
6.3
Das erste Frontend-Modul: »Navigation – Hauptnavi«
In Contao gibt es zwei Sorten von Modulen: 왘
128
Backend-Module finden Sie im Navigationsbereich des Backends. Sie dienen zur Verwaltung der Site und sind in die fünf Gruppen Inhalte, Layout, Benutzerverwaltung, System und Benutzerfunktionen aufgeteilt.
Das erste Frontend-Modul: »Navigation – Hauptnavi«
왘
Frontend-Module sind, vereinfacht gesagt, kleine PHP-Programme, die irgendetwas machen und als Ergebnis HTML-Quelltext für das Frontend ausgeben. Sie werden im Backend-Modul Themes verwaltet.
Wenn Sie irgendwo in Contao einfach nur das Wort Module lesen, sind fast immer Frontend-Module gemeint. In diesem Abschnitt erstellen Sie ein Frontend-Modul, das aus dem Seitenbaum eine Navigation erzeugt und das über das Seitenlayout so eingebunden wird, dass es in der linken Spalte erscheint.
6.3.1
Ein Navigationsmodul erstellen
Das Erstellen der Hauptnavigation besteht aus zwei Schritten: Zuerst müssen Sie das Modul erstellen und konfigurieren, danach wird im Seitenlayout festgelegt, in welchem Bereich das Modul erscheinen soll. ToDo: Ein Navigationsmodul erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie für »Blaues Theme« die Frontend-Module zur Bearbeitung (3. Symbol von rechts). 3. Klicken Sie im Arbeitsbereich oben auf Neues Modul. 4. Geben Sie im Feld Titel »Navigation – Hauptnavi« ein. 5. Lassen Sie das Feld Überschrift einfach leer, da die Navigation keine Überschrift haben soll. 6. Prüfen Sie, ob als Modultyp Navigationsmenü ausgewählt ist. 7. Lassen Sie alle anderen Optionen wie Startlevel, Stoplevel und Hardlimit unverändert, und denken Sie nicht zu viel darüber nach. Damit befassen Sie sich in Kapitel 8, »Navigationen erstellen in Contao«. 8. Überprüfen Sie, ob im Bereich Template-Einstellungen das Navigationstemplate nav_ default ausgewählt ist. 9. Klicken Sie auf Speichern und Schliessen.
Abbildung 6.10 zeigt die im ToDo gemachten Einstellungen im Überblick. Das Modul Navigation – Hauptnavi ist nach wenigen Klicks fertig zum Einsatz, aber noch gibt es im Browser nichts zu sehen, denn Contao muss noch wissen, in welchen Layoutbereich die Navigation eingebaut werden soll. Das Modul muss übrigens nicht unbedingt Navigation – Hauptnavi heißen, aber wenn alle Navigationsmodule mit Navigation beginnen, stehen sie später alle schön ordentlich untereinander und lassen sich so besser von anderen Modulen für Events, News, FAQ oder für das Layout unterscheiden.
129
6.3
6
Die erste Website mit Contao
Abbildung 6.10 Einstellungen für das Modul »Navigation – Hauptnavi«
Das Template nav_default Im Template nav_default wird festgelegt, welches HTML das Navigationsmodul erzeugen soll. Mehr dazu erfahren Sie am Ende dieses Kapitels. Momentan ist es nur wichtig, dass es ein solches Template gibt.
6.3.2
Das Navigationsmodul im Seitenlayout einbinden
In diesem Abschnitt wird das soeben erstellte Navigationsmodul mit dem Seitenlayout verbunden oder, wie es im Contao-Jargon heißt, »eingebunden«. Nach dem folgenden ToDo erscheint die Navigation im Frontend. ToDo: Das Navigationsmodul im Seitenlayout einbinden 1. Öffnen Sie das Backend-Modul Themes 폷 Seitenlayouts. 2. Klicken Sie rechts neben dem Standardlayout [Standard] auf den gelben Bleistift, um die Einstellungen zu bearbeiten. 3. Blenden Sie den Bereich Frontend-Module ein. Dort ist bereits eine Zeile vorhanden: Modul Artikel und Spalte Kopfzeile. 4. Ändern Sie diese Zeile, und wählen Sie in der Liste Modul Navigation – Hauptnavi und in der Liste Spalte die Linke Spalte. 5. Lassen Sie alle anderen Einstellungen unverändert. 6. Klicken Sie auf Speichern und Schliessen.
130
Das erste Frontend-Modul: »Navigation – Hauptnavi«
Jetzt weiß Contao, dass der vom Navigationsmodul erzeugte Quelltext in der linken Spalte dargestellt werden soll. Abbildung 6.11 zeigt, wie das in der Frontend-Vorschau aussieht.
Abbildung 6.11
Die Navigation erscheint in der linken Spalte.
Die vier Webseiten aus dem Seitenbaum werden als ungeordnete Liste dargestellt. Klicken Sie sich am besten einmal durch die Navigation. Der Titel der Webseiten ändert sich, und die jeweils aktuelle Seite ist kein Link mehr. Alles automatisch. Um ein bisschen Gefühl für die Flexibilität des Navigationsmoduls zu bekommen, erweitern Sie im folgenden ToDo die Seitenstruktur. ToDo: Die Seitenstruktur um die Seite »Nachrichten« erweitern 1. Schließen Sie die Frontend-Vorschau. 2. Fügen Sie im Backend-Modul Seitenstruktur unterhalb der Startseite eine neue Seite vom Typ Reguläre Seite ein. 3. Der Seitenname ist »Nachrichten«. 4. Aktivieren Sie weiter unten die Option Seite veröffentlichen. 5. Klicken Sie auf Speichern und Schliessen.
Die Navigation in der Frontend-Vorschau sieht jetzt so aus wie in Abbildung 6.12. In Contao erstellen Sie mit wenigen Klicks und ohne selbst zu programmieren eine sehr flexible Navigation. Gestaltet wird sie später per CSS.
131
6.3
6
Die erste Website mit Contao
Abbildung 6.12
6.4
Die Hauptnavigation bildet den Seitenbaum ab.
Frontend-Module für den Kopf- und den Fußbereich
In diesem Abschnitt erstellen Sie den Inhalt für die Kopf- und die Fußzeile der Webseiten. Dazu kommt ein Frontend-Modul namens Eigenes HTML zum Einsatz, in das Sie, wie der Name andeutet, eigenes HTML schreiben, das dann auf der Seite eingebunden wird.
6.4.1
Module für den Kopf- und den Fußbereich erstellen
In den folgenden ToDos erstellen Sie einen Kopfbereich und einen Fußbereich, die im nächsten Abschnitt in das Seitenlayout eingebunden werden. ToDo: Das Modul »Layout – Header« erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Frontend-Module zur Bearbeitung (3. Symbol von rechts). 3. Klicken Sie im Arbeitsbereich oben auf Neues Modul. 4. Geben Sie im Feld Titel »Layout – Header« ein. 5. Wählen Sie als Modultyp den Eintrag Eigener HTML-Code, den Sie ganz am Ende der Liste in der Rubrik Verschiedenes finden. 6. Geben Sie in das Feld HTML-Code den folgenden Quelltext ein:
Beispielsite
Websites erstellen mit Contao
7. Klicken Sie auf Speichern und Schliessen, um das Modul zu speichern.
So viel zum Header-Modul. Der Fußbereich folgt gleich im nächsten ToDo.
132
Frontend-Module für den Kopf- und den Fußbereich
ToDo: Das Modul »Layout – Footer« erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Frontend-Module zur Bearbeitung. 3. Duplizieren Sie das Modul Layout – Header mit einem Klick auf das grüne Kreuz rechts neben dem gelben Bleistift. 4. Nach dem Kopieren erscheint rechts oben im Arbeitsbereich der Link Ablage leeren und darunter ein braunes Symbol mit einem weißen Pfeil nach unten. 5. Fügen Sie das Modul mit einem Klick auf diesen Pfeil nach unten ein. 6. Ändern Sie im Feld Titel in »Layout – Footer«. 7. Ändern Sie den Quelltext im Feld HTML-Code wie folgt:
Made with Contao.
8. Klicken Sie auf Speichern und Schliessen.
Im Backend sehen Sie jetzt die drei Module Layout – Footer, Layout – Header und Navigation – Hauptnavi. Hinter jedem der Module steht in eckigen Klammern und hellgrauer Schrift der Modultyp, auf dem das Modul basiert. Ablage leeren: Kopieren oder Verschieben abbrechen Um einen Kopier- oder Verschiebevorgang abzubrechen, klicken Sie einfach oben im Arbeitsbereich auf den Link Ablage leeren.
6.4.2
Die Module für den Kopf- und den Fußbereich im Seitenlayout einbinden
Nachdem Sie die beiden Module erstellt haben, müssen Sie sie in das Seitenlayout einbinden, damit Contao weiß, in welchem Layoutbereich sie erscheinen sollen. Die Entscheidung ist in diesem Fall ziemlich einfach, denn das Modul Layout – Header soll in der Kopfzeile stehen und Layout – Footer in der Fußzeile. ToDo: Die beiden Module im Seitenlayout einbinden 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Seitenlayouts zur Bearbeitung (2. Symbol von rechts). 3. Klicken Sie im Arbeitsbereich rechts neben dem Seitenlayout Standardlayout auf den gelben Bleistift, um die Einstellungen zu bearbeiten. 4. Blenden Sie den Bereich Frontend-Module ein. 5. Klicken Sie im Bereich Eingebundene Module zweimal auf das grüne Kreuz rechts neben der Liste Spalte, um die vorhandene Zeile zweimal zu duplizieren. 6. Wählen Sie in der ersten Zeile aus der Liste Modul den Eintrag Layout – Header und in der Liste Spalte die Kopfzeile.
133
6.4
6
Die erste Website mit Contao
ToDo: Die beiden Module im Seitenlayout einbinden (Forts.) 7. Wählen Sie in der dritten Zeile aus der Liste Modul den Eintrag Layout – Footer und in der Liste Spalte die Fußzeile. 8. Lassen Sie alle anderen Einstellungen unverändert. 9. Klicken Sie auf Speichern und Schliessen.
Im Frontend sehen die Seiten jetzt so aus wie in Abbildung 6.13.
Abbildung 6.13 Die Startseite mit Header und Footer
Im nächsten Abschnitt machen Sie die Layoutbereiche auf der Webseite mit ein paar einfachen Styles sichtbar.
6.5
Das erste Stylesheet erstellen und zuweisen
Contao erzeugt schon jede Menge Quelltext, aber das schönste HTML nützt nichts ohne ein bisschen CSS, und es wird Zeit für das erste Stylesheet. Das Ziel dieses ersten Stylesheets ist es, das Backend-Modul zur Erstellung von Styles kennenzulernen und dabei mit ein paar Rahmenlinien die Layoutbereiche auf den Webseiten sichtbar zu machen. Ungewohnt: CSS schreiben per HTML-Formular Wenn Sie es gewohnt sind, CSS in einem Editor zu schreiben, sollten Sie sich schon einmal auf eine kleine Überraschung vorbereiten. Im Backend von Contao erstellen Sie Styles durch Ausfüllen eines HTML-Formulars. In Kapitel 7 erfahren Sie mehr über den Themenkomplex »Contao und CSS«, und wenn Sie möchten, können Sie das CSS dann auch wieder in einem Editor schreiben.
134
Das erste Stylesheet erstellen und zuweisen
6.5.1
Das erste Stylesheet im Backend erstellen
In diesem Abschnitt erstellen Sie das erste Stylesheet im Backend von Contao. Genau wie die Seitenlayouts und die Frontend-Module gehören auch die Stylesheets immer zu einem Theme. ToDo: Das erste Stylesheet im Backend erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Stylesheets zur Bearbeitung (4. Symbol von rechts). 3. Klicken Sie im Arbeitsbereich oben auf Neues Stylesheet. 4. Geben Sie im Feld Name das Wort »bildschirm« ein, und zwar ohne die Endung .css. 5. Aktivieren Sie für das Stylesheet den Medientyp screen. 6. Klicken Sie auf Speichern und Schliessen.
Der Medientyp definiert, für welche Medien das Stylesheet gilt, und die Auswahl Screen beschränkt die Gestaltung auf den Bildschirm. Das eben erstellte Stylesheet bildschirm wird also vom Browser zum Beispiel beim Ausdrucken der Webseite nicht verwendet. Über Conditional Comments Bei der Erstellung eines Stylesheets gibt es die Möglichkeit, einen Conditional Comment zu aktivieren. Das ist für Stylesheets gedacht, die nur an bestimmte Versionen des Internet Explorer ausgeliefert werden sollen. Da im Kern des Contao-Frameworks schon eine Patch-Datei namens iefixes.css für den IE enthalten ist, werden Sie nur selten noch ein ganzes Stylesheet für weitere Patches schreiben müssen. Mehr zur IE-Patchdatei finden Sie in Abschnitt 7.10, »Know-how: Das CSS-Framework von Contao«.
6.5.2
Stylesheet bearbeiten: Einen Style für »body« erstellen
Im folgenden ToDo erstellen Sie im neuen Stylesheet den ersten Style, der bei Contao Formatdefinition genannt wird und den Text im body der Webseiten gestaltet: 왘
Als Schriftart wird Verdana gewünscht. Falls diese nicht vorhanden ist, bieten Sie dem Browser der Reihe nach Arial, Helvetica oder irgendeine andere Schriftart ohne die Serifen genannten Häkchen an den Buchstaben (sans-serif) an.
왘
Die Schriftgröße wird etwas reduziert. Der Wert von »81.25 %« reduziert den Browser-Standardwert von 16px auf angenehm lesbare 13px.
Außerdem erzeugen Sie mit der CSS3-Eigenschaft overflow-y in modernen Browsern einen inaktiven Scrollbalken, der auch auf kurzen Webseiten angezeigt
135
6.5
6
Die erste Website mit Contao
wird. Das verhindert bei zentrierten Layouts ein Hin- und Herspringen der Seiten. Diese Formatierungsanweisungen erledigt das folgende ToDo. ToDo: Einen Style für »body« erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Stylesheets zur Bearbeitung. 3. Öffnen Sie das Stylesheet bildschirm mit einen Klick auf den gelben Bleistift rechts daneben. Sie sehen dann einige Informationen zum Stylesheet wie Name, Änderungsdatum und die gewählten Medientypen. 4. Klicken Sie im Arbeitsbereich oben auf Neue Formatdefinition. Rechts oben im Arbeitsbereich erscheint daraufhin der Link Ablage leeren und darunter ein kleines braunes Symbol mit einem weißen Pfeil nach unten darin. 5. Klicken Sie auf dieses kleine braune Symbol, um den neuen Style am Anfang des Stylesheets einzufügen. Es erscheint ein Formular zur Definition des Styles. 6. Geben Sie im Feld Selektor den Selektor »body« ein (ohne Anführungsstriche). 7. Aktivieren Sie im Bereich Hintergrund das gleichnamige Kontrollkästchen. 8. Geben Sie als Hintergrundfarbe »d9d9d9« ein (ohne # davor). 9. Aktivieren Sie das Kontrollkästchen Schrift. 10. Geben Sie bei Schriftarten den Wert »Verdana, Arial, Helvetica, sans-serif« ein (ohne Anführungsstriche und ohne Semikolon am Ende). 11. Die Schriftgrösse soll den Wert »81.25« mit der Einheit % bekommen. 12. Geben Sie im Feld Eigener Code die folgende Anweisung ein: "overflow-y: scroll;" 13. Klicken Sie auf Speichern und Schliessen.
Fertig ist der erste Style. Falls Sie schon mal geschaut haben und sich wundern: Im Frontend ist noch keine Änderung zu sehen. Ja genau: Das Stylesheet ist noch nicht mit dem Seitenlayout verbunden. Bevor Sie das tun, erstellen Sie noch schnell zwei Styles mit einer weißen Hintergrundfarbe für #wrapper und einem rechten und linken Margin von jeweils 18px für #container. ToDo: Styles für »#wrapper« und »#container« erstellen 1. Öffnen Sie das Stylesheet bildschirm zur Bearbeitung. 2. Erstellen Sie eine neue Formatdefinition, indem Sie rechts neben dem Style für body auf das weiße Kreuz im grünen Kreis klicken. 3. Der Selektor soll »#wrapper« heißen. 4. Aktivieren Sie im Bereich Hintergrund das gleichnamige Kontrollkästchen.
136
Das erste Stylesheet erstellen und zuweisen
ToDo: Styles für »#wrapper« und »#container« erstellen (Forts.) 5. Geben Sie als Hintergrundfarbe »ffffff« ein (ohne # davor). 6. Speichern Sie die Einstellungen mit Speichern und neu. 7. Der Selektor für den neuen Style ist »#container«. 8. Aktivieren Sie im Bereich Abstand und Ausrichtung das Kontrollkästchen Margin, Padding und Ausrichtung. 9. Geben Sie bei Margin (Aussenabstand) im zweiten und vierten Eingabefeld die Zahl »18« ein. 10. Wählen Sie als Einheit aus der Liste den Wert px. 11. Klicken Sie auf Speichern und Schliessen.
Nach diesen Schritten sieht das Stylesheet im Backend aus wie in Abbildung 6.14.
Abbildung 6.14 Das Stylesheet »bildschirm« mit Formatdefinitionen
Der CSS-Validator des W3C und die Eigenschaft »overflow-y« Die Eigenschaft overflow-y ist nicht in CSS2.1 enthalten, und deshalb wird der CSS-Validator vom W3C meckern. Das ist nicht weiter schlimm, da der Validator kein Selbstzweck, sondern ein Hilfsmittel ist. Wenn aber ein grüner Balken vom Validator wichtiger ist als ein nicht hüpfendes Layout, sollten Sie die Eigenschaft overflow-y nicht einsetzen.
6.5.3
Das Stylesheet mit dem Seitenlayout verbinden
Um die Styles auf die Seite anzuwenden, verknüpfen Sie jetzt das Stylesheet bildschirm mit dem Seitenlayout.
137
6.5
6
Die erste Website mit Contao
ToDo: Das Stylesheet im Seitenlayout einbinden 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Seitenlayouts zur Bearbeitung (2. Symbol von rechts). 3. Öffnen Sie das Standardlayout [Standard] zur Bearbeitung. 4. Blenden Sie den Bereich Stylesheets ein. 5. Aktivieren Sie das Stylesheet bildschirm. 6. Aktivieren Sie die Option tl_files/tinymce.css ignorieren. 7. Lassen Sie alle anderen Einstellungen unverändert. 8. Klicken Sie auf Speichern und Schliessen.
Jetzt sollte im Frontend das Stylesheet aktiv sein. Der Hintergrund der Seite ist grau, der Wrapper weiß, und der Text erscheint in Verdana (Abbildung 6.15).
Abbildung 6.15
Die Startseite mit dem Stylesheet »bildschirm«
Mehr zum Stylesheet tl_files/tinymce.css erfahren Sie übrigens in Kapitel 22.2 bei der Optimierung des Editors TinyMCE. Die Deaktivierung an dieser Stelle ist eine reine Vorsichtsmaßnahme, damit das Stylesheet nicht versehentlich am Layout mitwirkt. Stylesheet und Formatdefinitionen sind auch nur Datensätze Auch das Stylesheet und die darin enthaltenen Styles sind Datensätze in einer Datenbanktabelle. Contao erzeugt aus diesen Datensätzen im Hintergrund automatisch die Datei bildschirm.css im Hauptordner der Installation. Der Browser benutzt diese Datei zur Darstellung der Webseite. Mehr dazu erfahren Sie in Kapitel 7, »Webseiten gestalten: Contao und CSS«.
138
Das erste Stylesheet erstellen und zuweisen
6.5.4
Weitere Styles für Kopfbereich, Hauptspalte und Fußbereich
In diesem Abschnitt erstellen Sie zur Übung ein paar Styles für den Kopfbereich, die Hauptspalte und den Footer. Diese Styles machen hauptsächlich die Layoutbereiche auf den Webseiten mit ein paar Rahmenlinien sichtbar. ToDo: Styles für »#header« erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Stylesheets zur Bearbeitung (4. Symbol von rechts). 3. Öffnen Sie das Stylesheet bildschirm zur Bearbeitung (gelber Bleistift). 4. Klicken Sie ganz rechts außen im Style für #wrapper auf das weiße Kreuz im grünen Kreis, um darunter ein neues Element einzufügen. 5. Geben Sie im Feld Selektor den Selektor #header ein. 6. Fügen Sie den Kommentar »Rahmenlinien oben und unten« hinzu. 7. Aktivieren Sie im Bereich Abstand und Ausrichtung das Kontrollkästchen Margin, Padding und Ausrichtung. 8. Definieren Sie im darunter erscheinenden Formular einen oberen margin von »1«. Wählen Sie aus der Liste rechts daneben als Einheit em. 9. Definieren Sie ein padding-left von 18px. 10. Aktivieren Sie etwas weiter unten im Bereich Rahmen das gleichnamige Kontrollkästchen. 11. Geben Sie im darunter erscheinenden Formular eine Rahmenbreite von »2« für oben und »1« für unten ein. Wählen Sie aus der Liste rechts daneben die Einheit px. 12. Wählen Sie als Rahmenstil aus der Liste den Wert solid. 13. Setzen Sie die Rahmenfarbe auf »89adcd« (Farbwert ohne # vorweg). 14. Klicken Sie auf Speichern und Schliessen.
Sie können gerne schon mal in die Frontend-Vorschau schauen, aber vor der nächsten Abbildung erstellen Sie noch schnell Styles für den Footer und die Hauptspalte. ToDo: Style für »#footer« erstellen 1. Öffnen Sie das Backend-Modul Themes 폷 Stylesheets. 2. Öffnen Sie das Stylesheet bildschirm zur Bearbeitung. 3. Klicken Sie rechts neben dem Style für #header auf das grüne Kreuz rechts neben dem gelben Bleistift, um den Style zu duplizieren. 4. Fügen Sie die Kopie mit einem Klick auf das ganz rechts neu erschienene braune Symbol mit dem Pfeil nach unten ein. 5. Ändern Sie den Selektor in »#footer«.
139
6.5
6
Die erste Website mit Contao
ToDo: Style für »#footer« erstellen (Forts.) 6. Lassen Sie den Kommentar unverändert. 7. Entfernen Sie die Werte für margin. Das linke padding von 18px soll erhalten bleiben. 8. Ändern Sie die Breite der Rahmenlinien, sodass diese oben 1px und unten 2px dick sind. 9. Klicken Sie auf Speichern und Schliessen.
Nach einem Blick in die Frontend-Vorschau, in der immer mehr blaue Linien auftauchen, geht es weiter mit einem Style für die Hauptspalte #main. ToDo: Style für »#main« erstellen 1. Öffnen Sie gegebenenfalls das Stylesheet bildschirm zur Bearbeitung. 2. Duplizieren Sie den Style für #header, und fügen Sie ihn direkt unterhalb ein (braunes Symbol mit weißem Pfeil). 3. Ändern Sie den Selektor in »#main«, um die Hauptspalte zu gestalten. 4. Ändern Sie den Kommentar in »Rahmenlinien links und rechts«. 5. Öffnen Sie den Bereich Margin, Padding und Ausrichtung. 6. Entfernen Sie die Werte bei Margin, und definieren Sie ein Padding links und rechts von jeweils 10px. 7. Ändern Sie die Breite der Rahmenlinien auf links 1px und rechts 1px. Oben und unten sollten keine Rahmenlinien vorhanden sein. 8. Aktivieren Sie das Kontrollkästchen Schrift, und geben Sie eine Zeilenhöhe von »1.7« ein (line-height ohne Einheit). 9. Definieren Sie im Bereich Eigener Code eine Mindesthöhe von 300px: »min-height: 300px;« 10. Klicken Sie auf Speichern und Schliessen.
Das Stylesheet sieht im Backend etwa so aus wie in Abbildung 6.16. Die Reihenfolge der Formatdefinitionen können Sie per Drag & Drop verändern: einfach mit der Maus draufklicken und ziehen. Die mit diesen Styles formatierten Webseiten sehen inzwischen so aus wie in Abbildung 6.17, in der die Rahmenlinien die Begrenzungen der im Seitenlayout definierten Bereiche sichtbar machen.
140
Das erste Stylesheet erstellen und zuweisen
Abbildung 6.16
Das Stylesheet wächst und gedeiht.
Abbildung 6.17
Die Startseite mit sichtbar gemachten Layoutbereichen
141
6.5
6
Die erste Website mit Contao
6.6
Der erste Artikel und ein Inhaltselement
In diesem Abschnitt machen Sie den ersten Abstecher in die Gruppe Inhalte, in der Sie nach der Erstellung und Freischaltung der Site wahrscheinlich die meiste Zeit zubringen werden. In dieser Gruppe sind alle Backend-Module versammelt, die mit der Erstellung von Inhalten zu tun haben. Das wichtigste steht gleich am Anfang und heißt Artikel.
6.6.1
Der Artikelbaum: Die Übersicht über alle Artikel
Contao zeigt Ihnen im Backend-Modul Inhalte 폷 Artikel mit dem Artikelbaum eine Übersicht aller vorhandenen Artikel, die auf den ersten Blick eine verblüffende Ähnlichkeit mit dem Seitenbaum hat. Falls der Artikelbaum bei Ihnen nicht wie in Abbildung 6.18 in voller Länge zu sehen ist, klicken Sie im Arbeitsbereich oben auf den Link Alle öffnen/schliessen.
Abbildung 6.18 Der Artikelbaum – Übersicht über die Artikel
Bei genauerem Hinsehen ist der Artikelbaum eine erweiterte Version des Seitenbaums aus dem Backend-Modul Seitenstruktur. Der Artikelbaum zeigt alle in diesem Kapitel erstellten Seiten und darunter jeweils einen gleichnamigen Artikel mit dem hellgrauen Zusatz [Hauptspalte] und einigen Symbolen zur Bearbeitung daneben. Wenn Sie sich wundern, woher diese Artikel stammen: Contao erstellt beim Anlegen einer Seite automatisch einen gleichnamigen Artikel in der Hauptspalte. Da diese Kombination im Alltag mit Abstand am häufigsten benötigt wird, ist das eine sehr praktische Sache.
142
Der erste Artikel und ein Inhaltselement
6.6.2
Die Einstellungen für einen Artikel
Nach einem Klick auf den gelben Bleistift rechts neben dem Artikel Startseite [Hauptspalte] sehen Sie unterhalb der Bedienelemente zum Filtern und Suchen die Artikel-Einstellungen und den Hinweis Keine Einträge gefunden. Mit Einträge sind Inhaltselemente gemeint, und das stimmt, denn in diesem Artikel gibt es noch keine Inhaltselemente (Abbildung 6.19).
Abbildung 6.19 Die Einstellungen für den Artikel »Startseite«
Zur Bearbeitung der Artikel-Einstellungen klicken Sie wie immer auf den gelben Bleistift. Daraufhin erscheint das in Abbildung 6.20 dargestellte Formular.
Abbildung 6.20 Die wichtigsten Einstellungen für einen Artikel
143
6.6
6
Die erste Website mit Contao
Die wichtigsten Einstellungen für einen Artikel sind die folgenden: 왘
Titel: Der Artikeltitel erscheint im Artikelbaum und wird als Überschrift verwendet, wenn der Teasertext angezeigt wird. Ohne aktivierten Teaser erscheint dieser Titel nicht auf der Webseite.
왘
Autor: Hier geben Sie den Autor des Artikels ein. Vorgegeben ist der momentan angemeldete Benutzer.
왘
Artikelalias wird meist leergelassen und von Contao automatisch generiert. Kann benutzt werden, um einen Artikel direkt aufzurufen.
왘
Anzeigen in: Hier können Sie auswählen, in welchem Layoutbereich der Artikel dargestellt werden soll. Damit der Artikel dort auch wirklich erscheint, muss dem Bereich im Backend-Modul Seitenlayouts das Modul Artikel zugewiesen werden.
왘
Falls Sie Suchbegriffe eingeben, erscheinen diese automatisch im Meta-Element keywords, allerdings gibt es kaum noch eine Suchmaschine, die diese tatsächlich auswertet.
왘
Artikel veröffentlichen: Sobald Sie das Kontrollkästchen aktivieren, wird der Artikel im Frontend angezeigt (sofern auch die dazugehörige Seite veröffentlicht ist). Bei einer Live-Site kann es durchaus sinnvoll sein, dass Sie das erst tun, wenn der Artikel fertig ist. Mit der Frontend-Vorschau oben im Infobereich können Sie sich auch unveröffentlichte Artikel anschauen.
왘
Mit den Feldern Anzeigen von und Anzeigen bis können Sie das Erscheinen eines Artikels zeitlich eingrenzen.
In dieser Aufzählung nicht erwähnte Einstellungen wie Teasertext und die Kontrollkästchen zur Syndikation in den Experten-Einstellungen kommen später noch dran. Abkürzung: Rechtsklick zur Bearbeitung der Artikel-Einstellungen Wenn Sie im Artikelbaum mit der rechten Maustaste auf den gelben Bleistift neben einem Artikel klicken, erscheint im Kontextmenü der Befehl Artikel – Einstellungen bearbeiten, mit dem Sie direkt zu den Einstellungen für den Artikel gelangen.
6.6.3
Inhaltselemente zu einem Artikel hinzufügen
In Abschnitt 2.9 haben Sie gelesen, dass Artikel aus Inhaltselementen bestehen und die eigentlichen Inhalte in diesen Inhaltselementen gespeichert werden. In diesem Abschnitt fügen Sie dem Artikel ein erstes Inhaltselement hinzu. Da der Inhalt des Textes momentan keine große Rolle spielt, benutze ich durchgehend
144
Der erste Artikel und ein Inhaltselement
sogenannten Blindtext. Der bekannteste ist wahrscheinlich »Lorem ipsum ...«, den Sie z. B. von http://lipsum.com herunterladen können. Im folgenden ToDo fügen Sie dem Artikel ein Inhaltselement hinzu: eine Überschrift mit ein bisschen Text darunter. ToDo: Ein Inhaltselement zu einem Artikel hinzufügen 1. Öffnen Sie das Backend-Modul Inhalte 폷 Artikel. 2. Klicken Sie im Arbeitsbereich rechts auf den gelben Bleistift neben dem Artikel Startseite [Hauptspalte]. 3. Klicken Sie im Arbeitsbereich oben auf den Link Neues Element. Danach erscheint oben rechts in den Artikel-Einstellungen ein kleines braunes Symbol mit einem Pfeil nach unten. 4. Klicken Sie auf das kleine braune Symbol, um das Inhaltselement direkt nach den Artikel-Einstellungen einzufügen. 5. Prüfen Sie, ob in der Liste Elementtyp der Eintrag Text ausgewählt ist. 6. Geben Sie im Feld Überschrift den Text »Willkommen auf der Beispielsite« ein. 7. Wählen Sie aus der Liste daneben die Überschriftebene h1. 8. Unterhalb der Überschrift sehen Sie den Editor TinyMCE, in den Sie Fließtext eingeben und formatieren können. 9. Geben Sie im Editor zwei kurze Absätze beliebigen Blindtext ein. 10. Klicken Sie auf Speichern und Schliessen.
Nach dem Speichern kehren Sie zur Seite mit den Einstellungen für den Artikel zurück. Darunter erscheint jetzt, wie in Abbildung 6.21 zu sehen, das soeben erstellte Inhaltselement. Falls Sie statt der beiden Absätze nur wenige Zeilen Text sehen, klicken Sie auf den grünen Pfeil links unten, um das ganze Inhaltselement anzuzeigen. Artikel und Inhaltselement erscheinen noch nicht im Frontend, da die Artikel noch nicht im Seitenlayout eingebunden sind. Details zu Inhaltselementen folgen später In Contao gibt es für viele Inhaltstypen wie Überschriften, Texte (mit Bildern und ohne), Bildergalerien, Tabellen, Listen und vieles mehr vorgefertigte Elemente. Wann man welche wie wo am besten einsetzt, erfahren Sie in Kapitel 9, »Inhaltselemente für Text und Bilder«, und 10, »Weitere nützliche Inhaltselemente«.
145
6.6
6
Die erste Website mit Contao
Abbildung 6.21 Das erste selbst erstellte Inhaltselement
6.6.4
Den Artikel mit dem Seitenlayout verbinden
Das folgende ToDo bindet Artikel in das Seitenlayout ein und sorgt dafür, dass der eben erstellte Artikel in der Hauptspalte erscheint. ToDo: Den Artikel im Seitenlayout einbinden 1. Öffnen Sie das Backend-Modul Themes 폷 Seitenlayouts. 2. Öffnen Sie Standardlayout [Standard] zur Bearbeitung. 3. Blenden Sie den Bereich Frontend-Module ein. Hier sind momentan drei Zeilen für Header, Hauptnavigation und Footer zu sehen. 4. Duplizieren Sie die zweite Zeile, Navigation – Hauptnavi, in Linke Spalte, indem Sie auf das grüne Kreuz rechts daneben klicken. 5. Wählen Sie in der neuen Zeile aus der Liste Modul den Eintrag Artikel und aus der Liste Spalte die Hauptspalte. 6. Lassen Sie alle anderen Einstellungen unverändert. 7. Klicken Sie auf Speichern und Schliessen.
Contao ordnet die Zeilen nach dem Speichern in der Reihenfolge, in der sie im Quelltext auftreten. Viel wichtiger ist aber, dass nach diesen Schritten der Artikel im Frontend in der Hauptspalte erscheint (Abbildung 6.22).
146
Templates: Das HTML für den Quelltext
Abbildung 6.22 Der Artikel erscheint in der Hauptspalte.
Die eben im Seitenlayout erstellte Zuweisung, dass das Modul Artikel in der Spalte Hauptspalte erscheinen soll, gilt übrigens nicht nur für den eben erstellten Artikel, sondern auch für alle weiteren. Mehrere Artikel werden auf der Webseite untereinander dargestellt, und zwar in der im Artikelbaum festgelegten Reihenfolge.
6.7
Templates: Das HTML für den Quelltext
Zum Abschluss dieses Kapitels lernen Sie noch Templates kennen.
6.7.1
Es gibt verschiedene Arten von Templates
Der Begriff Template meint in Contao zum Teil sehr verschiedene Dinge. Zunächst einmal gibt es eine grobe Unterscheidung in zwei große Gruppen: 왘
Frontendtemplates – Endung .sql Ein Frontendtemplate ist eine Datei mit der Endung .sql und eine komplette Website inklusive Inhalt, Stylesheets, Benutzer und allem drum und dran und wird auch Websitetemplate genannt. Ein Frontendtemplate wird mit dem Installtool importiert, und das Importieren überschreibt alle in der Datenbank
147
6.7
6
Die erste Website mit Contao
vorhandenen Daten. Sie können in einer bestehenden Installation also nicht mal eben so ein neues Frontendtemplate ausprobieren. Neues Frontendtemplate = Inhalt weg. 왘
Alle anderen Templates – Endung .tpl Alle anderen Templates sind Dateien mit der Endung .tpl und erzeugen HTML für das Frontend, das vollständig auf solchen Templates basiert.
Templates mit der Endung .tpl kann man wiederum in drei Untergruppen aufteilen, die für unterschiedliche Bereiche einer Webseite zuständig sind: 왘
Seitentemplates wie fe_page.tpl Seitentemplates sind für die HTML-Struktur einer ganzen Webseite zuständig und werden im Contao-Jargon manchmal auch Layouts genannt, was aber eher missverständlich sein dürfte. In der Regel gibt es pro Website nur ein einziges Seitentemplate, und sofern nichts wirklich Wichtiges dagegenspricht, sollte dass fe_page.tpl sein.
왘
Modultemplates wie nav_default.tpl Modultemplates kümmern sich um das HTML für ein Frontend-Modul oder ein Inhaltselement und werden auch Views genannt. Es gibt sehr viele Modultemplates, denn in Contao basiert die HTML-Ausgabe für alle Module und Inhaltselemente auf einem Template.
왘
Subtemplates wie news_short.php Subtemplates sind sehr viel seltener als Modultemplates und werden auch Partials genannt. Sie sind für einen Teil der HTML-Ausgabe eines Moduls zuständig. Beispiele für Subtemplates finden Sie z. B. in Kapitel 13, »Die Erweiterung »Nachrichten««.
Templates werden gut versteckt in den Unterordnern von system\modules aufbewahrt. Dort hat jedes Modul einen Unterordner namens templates. Geändert und angepasst werden Templates aber niemals direkt in diesen Ordnern, sondern immer über das Backend-Modul Templates. Gleich folgt mehr dazu, aber zunächst werden wir noch einen Blick auf das HTML der Navigation. Templates vs. Frontend-Templates Wenn ich in diesem Buch von Templates spreche, meine ich immer die Dateien mit der Endung .tpl. Ein Frontend-Template mit der Endung .sql wird als Frontend-Template oder Website-Template bezeichnet.
148
Templates: Das HTML für den Quelltext
6.7.2
Das HTML der Navigation im Quelltext
Der Quelltext für die Navigation wird vom Modultemplate nav_default.tpl erzeugt:
Die Navigation ist im Quelltext von einem div mit den Klassen .mod_navigation und .block umgeben.
왘
Am Anfang und am Ende befindet sich ein zweiteiliger Skiplink, der mit der Klasse .invisible ausgeblendet wird.
왘
Den Kern der Navigation ist eine ungeordnete Liste mit der Klasse .level_1.
왘
Die Listenpunkte dieser Liste enthalten alle einen Hyperlink.
왘
Der aktive Navigationspunkt bekommt im li die Klasse .active zugewiesen. Außerdem wird der Link durch ein span ersetzt, das ebenfalls die Klasse .active hat.
왘
Der erste und der letzte Listenpunkt haben zusätzlich noch die Klassen .first bzw. .last.
Es handelt sich also um eine klassische ungeordnete Liste mit einem umgebenden div und einem integrierten Skiplink. Durch die geschickte Vergabe der Klassen
im HTML ist es später ziemlich leicht, die Navigation per CSS nach Wunsch zu
149
6.7
6
Die erste Website mit Contao
stylen. Die seltsamen URLs wie z. B. index.php/startseite.html werden Sie in Kapitel 18, »Die Optimierung für Suchmaschinen«, ändern. ist für die interne Suchmaschine Falls Ihnen im Quelltext der Seite die beiden Zeilen und aufgefallen sind: Das sind Anweisungen für die interne Suchmaschine von Contao, damit diese die Navigation nicht mit in den Suchindex aufnimmt.
In der Konfiguration für das Frontend-Modul Navigation – Hauptnavi wird festgelegt, dass Contao das Template nav_default verwenden soll. Dahinter verbirgt sich eine Datei namens nav_default.tpl, die im Ordner system\modules\frontend\ templates\ aufbewahrt wird. Der Name nav_default.tpl setzt sich wie folgt zusammen: Das Template (tpl) ist die Normaleinstellung (default) für die HTML-Ausgabe der Navigation (nav). Templates in Ordnern unterhalb des Systemordners sollten Sie unter keinen Umständen ändern. Erstens ist es gefährlich, mit der bloßen Hand in einen laufenden Motor zu greifen, und zweitens werden Änderungen in diesem Ordner beim nächsten Update von Contao überschrieben. Für update-sichere Änderungen an Templates gibt es das Backend-Modul Templates, das im Ordner \templates direkt unterhalb des Hauptordners eine Kopie des Original-Templates aus dem Systemordner anlegt. Diese Kopie können Sie nach Belieben untersuchen, bearbeiten und verändern. Bei einem Update lässt Contao die Templates in diesem Ordner in Ruhe. Contao sucht ein Template zunächst im Ordner \templates, wo die von Ihnen geänderten Templates aufbewahrt werden. Gibt es das gesuchte Template dort, wird es benutzt. Gibt es das gesuchte Template nicht, läuft Contao schnell weiter zum Systemordner und nimmt das Original. Langer Rede kurzer Sinn: 왘
Um sich das Template nav_default.tpl anzuschauen, öffnen Sie nicht das Original aus dem Systemordner im Editor. Das ist viel zu gefährlich.
왘
Sie erstellen mit dem Backend-Modul Templates eine Kopie von nav_ default.tpl und untersuchen diese Kopie.
Genau das machen Sie im folgenden ToDo.
150
Templates: Das HTML für den Quelltext
ToDo: Eine Kopie des Seitentemplates »nav_default.tpl« erstellen 1. Öffnen Sie in der Gruppe Layout das Backend-Modul Templates. 2. Klicken Sie im Arbeitsbereich oben auf den Link Neues Template. 3. Wählen Sie in der beeindruckend langen Liste der templates das Template nav_ default.tpl aus der Gruppe Frontend. 4. Das Zielverzeichnis soll der Ordner templates/blaues_theme sein. 5. Klicken Sie auf die Schaltfläche Template erstellen.
Nach diesem ToDo erscheint im Backend-Modul Templates ein Template mit dem Namen nav_default.tpl. Rechts daneben gibt es fünf Symbole: 왘
Der gelbe Bleistift dient zum Umbenennen des Templates.
왘
Mit dem grünen Kreuz können Sie eine Kopie des Templates erstellen.
왘
Der blaue Pfeil dient dazu, das Template in einen anderen Ordner zu verschieben.
왘
Ein blau-weißes Symbol dient zum Bearbeiten des Templates in einem Editor.
왘
Last, but not least gibt es ein rotes X: Damit löschen Sie das Template.
Abbildung 6.23 zeigt das Template und die fünf Symbole im Backend.
Abbildung 6.23 Eine Kopie des Modultemplates« nav_default.tpl«
Im Dateisystem auf Ihrem Webspace wurde im Ordner templates direkt unterhalb des Root-Ordners die Datei nav_default.tpl erstellt, und zwar mit einem Speicherdatum, das noch nicht allzu lange her sein dürfte. Das Originaltemplate nav_default.tpl liegt nach wie vor ungeändert im Systemordner. Wenn also nach der Untersuchung des Templates im nächsten Abschnitt wider Erwarten etwas völlig danebengehen sollte und Contao im Frontend keine Navigation mehr darstellt, dann löschen Sie einfach im Backend-Modul Templates die Kopie von nav_default.tpl, und alles ist wieder so wie vorher.
151
6.7
6
Die erste Website mit Contao
6.7.4
Ein kurzer Blick in das Template »nav_default.tpl«
Falls Sie noch nie eine PHP-Anweisung wie gesehen haben, erschrecken Sie sich bitte nicht: 왘
PHP-Anweisungen beginnen im Quelltext mit .
왘
PHP-Anweisungen werden vom PHP-Interpreter abgearbeitet und durch Quelltext ersetzt.
Der Befehl echo hat nichts mit der Akustik in gebirgigen Gegenden zu tun, sondern ist PHP für »Schreibe in den Quelltext«. Die Anweisung schreibt also einfach das Wort Hallo in den Quelltext, ohne die Anführungsstriche. Das Grundprinzip des Quelltextes in nav_default.tpl ist wie folgt: 왘
Zuerst wird eine ungeordnete Liste erstellt. Diese Liste bekommt die Ebene der Seite in der Seitenstruktur gleich als Klasse mitgeliefert. Für die erste Ebene lautet das Ergebnis
.
왘
Nach
folgt ein foreach, und vor
steht das entsprechende endforeach. Das bedeutet nichts anderes, als dass der ganze Block dazwischen für jeden Menüpunkt wiederholt wird. For each heißt für jeden. Programmierer nennen das eine Schleife.
왘
Bei der Erstellung der Listenpunkte li innerhalb der Schleife wird zwischen aktiven und nicht aktiven Menüpunkten unterschieden: 왘
Die Bedingung if ($item['isActive']) lautet frei übersetzt »Wenn das Ding aktiv ist«, also wenn der Menüpunkt für die gerade dargestellte Seite steht.
왘
In dem Fall wird im Listenpunkt statt eines Hyperlinks ein span erzeugt, und sowohl das li als auch das span bekommen die Klasse active (und noch ein paar andere, falls welche definiert wurden).
왘
Ist der Menüpunkt nicht aktiv, gilt der Block unterhalb von else.
왘
Hier wird ein li mit einem Hyperlink a erstellt, bei dem abgefragt wird, ob Klassen wie accesskey oder tabindex eingebaut werden sollen.
Das ist der Aufbau des Templates für die Navigation. Wie gesagt: Wenn Sie PHPBefehle vorher noch nie gesehen haben, wirkt das ein bisschen – sagen wir mal – unübersichtlich. Wer mit PHP vertraut ist, wird keine Schwierigkeiten haben, hier seine eigenen Änderungen und Wünsche umzusetzen.
152
Das Contao-Prinzip: Altogether now
Backend-Modul Templates: Die Kopie von »nav_default.tpl« löschen Sie haben in diesem Abschnitt das Prinzip der Templates kennengelernt und dabei eine Kopie des Templates nav_default.tpl erstellt. Diese Kopie benötigen Sie vorerst nicht mehr, und Sie sollten sie gleich wieder löschen. Contao benutzt dann wieder das Original aus dem Systemordner.
6.8
Das Contao-Prinzip: Altogether now
Die erste Seite ist erstellt. Sie ist zwar weder fertig noch besonders hübsch, aber auch so eine provisorische Seite ist für ein CMS bereits harte Arbeit. Die folgende Übersicht zeigt, was dabei genau passiert. Los geht es immer mit dem Aufruf der URL im Browser: 왘
Der Besucher gibt im Browser eine URL ein: http://localhost/contaobuch/
왘
Der Browser braust daraufhin los, sucht den Webserver und findet ihn auf demselben Rechner.
왘
Der Webserver schaut in den Ordner htdocs/contaobuch, sieht, dass dort Contao zuständig ist, und sagt Bescheid, dass da eine Seite gewünscht wird. Wenn möglich auf Deutsch.
왘
Contao prüft die Seitenstruktur. Dort gibt es einen Startpunkt mit der Sprache de. Passt.
왘
Zu diesem Startpunkt gehören mehrere Seiten. Contao nimmt, weil in der URL keine bestimmte Seite gewünscht wurde, die erste Reguläre Seite unterhalb des Startpunktes, die den Status veröffentlicht hat, und das ist die Startseite.
왘
Zur Darstellung dieser Seite im Frontend benutzt Contao ein Theme, das aus Seitenlayouts, Stylesheets und Frontend-Modulen besteht.
왘
Da für die Startseite nichts anderes definiert wurde, nimmt Contao als Seitenlayout das Standardlayout [Standard].
왘
Das Seitenlayout definiert die Layoutstruktur der Webseite: 왘
Die Seite hat ein zentriertes, dreispaltiges Layout. Breite 960px.
왘
Die linke und rechte Spalte haben eine Breite von jeweils 182px.
왘
Es gibt einen Kopf- und einen Fußbereich.
왘
Gestaltet wird die Seite mit dem Stylesheet bildschirm.
153
6.8
6
Die erste Website mit Contao
왘
Außerdem legt das Seitenlayout fest, welche Module in welchem Layoutbereich (Spalte) erscheinen: 왘
Das HTML aus dem Modul Layout – Header kommt in die Kopfzeile.
왘
Das Modul Navigation – Hauptnavi erscheint in der linken Spalte. Welches HTML das Modul erzeugt, wird über das Template nav_default geregelt.
왘
Das Modul Artikel sorgt dafür, dass Artikel, die zur Seite gehören, den Status veröffentlicht haben und der Hauptspalte zugeordnet sind, auch tatsächlich in der Hauptspalte erscheinen.
왘
Das HTML aus dem Modul Layout – Footer erscheint in der Fußzeile.
Mit all diesen Informationen erstellt Contao den Quelltext der Webseite, den der Webserver dann an den Besucher ausliefert. Fazit: Ohne Seitenstruktur geht in Contao gar nichts, aber der eigentliche Drehund Angelpunkt ist das Seitenlayout. Es verbindet die Seitenstruktur, FrontendModule, Stylesheets und Artikel miteinander, sodass aus all diesen Komponenten im Browser eine scheinbar ganz normale Webseite wird. Eigentlich ist es ganz einfach, wenn man es einmal begriffen hat.
154
In diesem Kapitel erfahren Sie alles über die Arbeit mit CSS in Contao: interne Stylesheets, externe Stylesheets und wie man die beiden am besten kombiniert. Zum Schluss lernen Sie das Contao-CSS-Framework im Detail kennen.
7
Webseiten gestalten: Contao und CSS
Dieses Kapitel erläutert die verschiedenen Möglichkeiten, wie Contao und CSS zusammenarbeiten können. Los geht es zunächst mit einer kleinen Übersicht.
7.1
Übersicht: Contao und CSS
Zunächst eine kleine Übersicht über das CSS-Framework von Contao und ein paar Anmerkungen über den Unterschied zwischen den Begriffen interne Stylesheets und externe Stylesheets.
7.1.1
Gestatten: Das CSS-Framework von Contao
Contao verfügt über ein eingebautes CSS-Framework, mit dem sich nahezu alle gewünschten Webdesigns umsetzen lassen, und Sie haben dieses CSS-Framework bei der Erstellung der Beispielsite in Kapitel 6 bereits benutzt. Im Backend-Modul Themes 폷 Seitenlayouts haben Sie festgelegt, wie das Layout aussehen soll. Header, Footer, Spaltenkonfiguration, Breite und Ausrichtung wurden dabei bequem per Mausklick definiert. Contao hat aus diesen Angaben im Hintergrund das entsprechende HTML und CSS erzeugt, sodass in allen Browsern ein stabiles Layout angezeigt wird. Aus Benutzersicht gibt es im Backend-Modul Seitenlayouts vier Bereiche, die für die Arbeit mit dem CSS-Framework relevant sind: 왘
Kopf- und Fusszeile
왘
Spaltenkonfiguration
왘
Stylesheets
왘
Statisches Layout (Breite und Ausrichtung)
155
7
Webseiten gestalten: Contao und CSS
Gerade beim Kennenlernen von Contao ist die Benutzung dieses eingebauten Frameworks sehr zu empfehlen, denn Sie müssen dann zur Erstellung eines Layouts weder ein eigenes Seitentemplate anlegen noch das für die Layoutstruktur benötigte CSS selbst schreiben.
7.1.2
Stylesheets bearbeiten: Interner oder externer Editor?
Wenn Sie das eingebaute CSS-Framework verwenden, gibt es in Contao zwei grundsätzlich verschiedene Möglichkeiten, das CSS zur Gestaltung der Webseiten zu schreiben: 왘
Interne Stylesheets (siehe ab Abschnitt 7.2, Seite 156) Interne Stylesheets werden im Backend-Modul Themes 폷 Stylesheets erstellt, in der Datenbank gespeichert und in der Regel mit dem internen CSS-Editor bearbeitet. Existierende Stylesheet-Dateien können importiert werden und die Erweiterung [csseditor] ermöglicht die Arbeit im Quelltext.
왘
Externe Stylesheets (siehe Abschnitt 7.7, Seite 176) Externe Stylesheets sind ganz normale Stylesheet-Dateien, die in einem ganz normalen Editor bearbeitet werden. Nachdem Sie die Arbeit mit internen Stylesheets kennengelernt haben, erfahren Sie in diesem Abschnitt, wie man externe Stylesheets am besten in Contao einbindet.
Natürlich kann man interne und externe Stylesheets auch miteinander kombinieren, und in der Praxis ist diese ab Seite 182 beschriebene Zusammenarbeit oft die effektivste Lösung. Aber zunächst einmal geht es um eine Spezialität von Contao: interne Stylesheets.
7.2
Arbeiten mit internen Stylesheets
Das Backend-Modul Themes 폷 Stylesheets, mit dem Sie im vorherigen Kapitel bereits die ersten Styles erstellt haben, speichert die Stylesheets und die darin enthaltenen Formatdefinitionen in der Datenbank. Aus diesen Datensätzen werden im Hintergrund CSS-Dateien im Root-Ordner der Installation generiert, die der Browser zur Darstellung der Webseiten benutzt. Abbildung 7.1 stellt diesen Sachverhalt dar.
Backend-Modul THEMES • STYLESHEETS
Datensätze in Datenbank
CSS-Datei im Hauptordner
Abbildung 7.1 Interne Stylesheets werden in der Datenbank gespeichert.
156
Arbeiten mit internen Stylesheets
Sie können sich die im Hauptordner automatisch erzeugten CSS-Dateien wie bildschirm.css in einem normalen CSS-Editor anschauen und bearbeiten. Die Änderungen werden nach dem Speichern sogar im Browser angezeigt, und alles scheint in Ordnung zu sein. Aber früher oder später gibt es bei dieser Methode eine Überraschung, denn bei der nächsten automatischen Generierung des Stylesheets im Backend werden die Änderungen, die Sie im externen Editor vorgenommen haben,wieder überschrieben. Der in Abbildung 7.1 dargestellte Weg von der Datenbank zur CSS-Datei ist eine Einbahnstraße. Die Bearbeitung von internen Stylesheets in einem externen Editor ist zwar grundsätzlich möglich, aber mit Vorsicht zu genießen und wird erst weiter hinten in diesem Kapitel beschrieben. Konzentrieren Sie sich zunächst darauf, den internen Editor kennenzulernen. Interne Stylesheets ohne Dateiendung, externe mit ».css« Da im Folgenden manchmal ein Stylesheet in der Datenbank und manchmal eine CSSDatei auf dem Webspace gemeint ist, gilt folgender Grundsatz: 왘
»Das Stylesheet bildschirm« ohne die Endung .css meint ein Stylesheet im Backend oder in der Datenbank.
왘
»Das Stylesheet bildschirm.css« mit der Endung .css meint eine CSS-Datei in einem Ordner auf dem Webspace.
7.2.1
Der interne CSS-Editor: CSS per HTML-Formular
Erstellt und bearbeitet werden die Formatdefinitionen im Backend-Modul Themes 폷 Stylesheets mit einem HTML-Formular, das Sie in Abschnitt 6.5, »Das erste Stylesheet erstellen und zuweisen«, bereits kennengelernt haben. Dazu müssen Sie zweimal auf ein Bleistift-Symbol klicken: 왘
Der erste Klick öffnet das Stylesheet zur Bearbeitung.
왘
Der zweite Klick dient dazu, den Style selbst zu bearbeiten.
Abbildung 7.2 zeigt die Bearbeitung der Formatdefinition für body. CSS per HTML-Formular zu schreiben ist zwar ungewohnt, hat aber den Vorteil, dass später bei der Pflege der Webseiten auch unerfahrene, mit der genauen Syntax von CSS nicht vertraute Benutzer Änderungen am CSS vornehmen können.
157
7.2
7
Webseiten gestalten: Contao und CSS
Abbildung 7.2 Der interne CSS-Editor – CSS per HTML-Formular
7.2.2
Übung: Header und Footer mit dem internen CSS-Editor gestalten
In diesem Abschnitt ändern und erweitern Sie das bereits vorhandene interne Stylesheet bildschirm, um den internen Editor besser kennenzulernen. Sie können bei der Bearbeitung eines Styles vorherige Versionen wiederherstellen, indem Sie im Arbeitsbereich ganz rechts oben die gewünschte Version auswählen und dann auf die Schaltfläche Wiederherstellen klicken. Denken Sie auch an die Tastenkürzel für Speichern ((Alt) + (s)) und Speichern und Schliessen ((Alt) + (c)). ToDo: Styles im Stylesheet »bildschirm« erstellen und bearbeiten 1. Öffnen Sie im Stylesheet bildschirm den Style #header. 2. Ergänzen Sie ein padding von »18px« für alle vier Seiten. 3. Ergänzen Sie als Hintergrundfarbe »89adcd«. 4. Deaktivieren Sie das Kontrollkästchen Rahmen, um die Rahmenlinien zu entfernen. Sollten Sie es später wieder aktivieren, sind die alten Werte dann sofort wieder da. Das ist sehr praktisch zum schnellen Testen. 5. Beenden Sie die Bearbeitung mit Speichern und Schliessen. 6. Klicken Sie neben dem Style für #header ganz rechts auf das weiße Kreuz im grünen Kreis, um darunter einen neuen Style einzufügen.
158
Arbeiten mit internen Stylesheets
ToDo: Styles im Stylesheet »bildschirm« erstellen und bearbeiten (Forts.) 7. Geben Sie als Selektor »#header h1« ein. 8. Setzen Sie den oberen Margin für die Überschrift auf »0«. 9. Speichern und Schliessen Sie ((Alt) + (c)). 10. Öffnen Sie den Style für #main, und entfernen Sie die Rahmenlinien, indem Sie wieder das Kontrollkästchen Rahmen deaktivieren. 11. Klicken Sie auf Speichern und Schliessen. 12. Öffnen Sie den Style für #footer. 13. Definieren Sie ein unteres margin von 1em. 14. Definieren Sie ein padding von 18px für oben, rechts und links und 9px für unten. 15. Geben Sie als Hintergrundfarbe z. B. »89adcd« ein. 16. Entfernen Sie die Rahmenlinien für den Footer. 17. Setzen Sie im Bereich Schrift die Schriftfarbe auf 000. 18. Klicken Sie auf Speichern und Schliessen.
Nach diesem ToDo sieht die Startseite im Browser ungefähr so aus wie in Abbildung 7.3.
Abbildung 7.3 Das Frontend mit gestyltem Header und Footer
Mit ein bisschen Übung ist der interne Editor richtig gut und besonders für ungeübte CSS-Schreiberlinge, die nicht täglich Styles schreiben, eine echte Hilfe. Aber er hat auch seine Grenzen:
159
7.2
7
Webseiten gestalten: Contao und CSS
왘
Bei den Boxmodell-Eigenschaften ist nur eine Einheit für alle Seiten möglich. Eine Mischung wie padding-left:18px und padding-top:1em kann man per Formular nicht eingeben.
왘
Bei Rahmenlinien ist im Formular nur eine Farbe pro Style möglich. Getrennte Farben für oben und unten sind zum Beispiel nicht möglich.
Für solche und andere Fälle gibt es ganz unten im internen Editor das Feld Eigener Code. Dort können Sie alles reinschreiben, was Sie möchten – solange es valides CSS ist.
7.2.3
Tipps für die Arbeit mit dem internen CSS-Editor
Um Ihnen die Eingewöhnung etwas zu erleichtern, zeige ich Ihnen im Folgenden zunächst ein paar einfache Tricks zur Arbeit mit dem internen Editor. Am effektivsten ist eine Kombination aus Maus- und Tastaturbedienung: 왘
Blenden Sie die einzelnen Bereiche per Maus mit einem Klick auf die grüne Überschrift je nach Bedarf ein- und aus.
왘
Ein Sprung in einen anderen Bereich geht am einfachsten mit der Maus. Innerhalb eines Bereiches hingegen ist die Tastatur schneller: (ÿ) springt weiter ins nächste Feld, (ª) + (ÿ) bringt Sie wieder zurück.
왘
Bei einer Dropdown-Liste für Einheiten können Sie den gewünschten Wert einfach per Buchstabe eingeben: Drücken Sie (p) für px oder (e) für em.
왘
Per Tastatur können Sie eine Auswahlliste mit (Alt) + (Pfeil¼) ausklappen. Mit (Pfeil½) bzw. (Pfeil¼) wählen Sie den gewünschten Eintrag, und mit (Enter) bestätigen Sie diesen.
Tastaturfans lassen beim Bearbeiten der Styles die linke Hand in ständiger Bereitschaft links unten über der (Alt)-Taste schweben: 왘
(Alt) + (s) speichert. Auch mal eben zwischendurch. (Alt) + (c) speichert, schließt das Formular und kehrt zur Liste der Styles zurück.
왘
(Alt) + (f) startet die Frontend-Vorschau. (Strg) + (w) schließt sie wieder.
왘
(Alt) + (n) öffnet nach dem Speichern die Eingabemaske für die nächste For-
matdefinition. 왘
(Alt) + (b) entspricht einem Klick auf den grünen Zurück-Pfeil rechts oben im Arbeitsbereich und geht zur vorherigen Seite zurück, ohne die Änderungen zu speichern.
Mit diesen Kürzeln geht die Arbeit im internen Editor nach kurzer Zeit buchstäblich locker von der Hand.
160
Arbeiten mit internen Stylesheets
In einigen Browsern gibt es etwas andere Tastenkombinationen In einigen Browsern und auf dem Mac funktionieren diese Tastenkürzel ein bisschen anders. In Abschnitt 5.4 ab Seite 104, »Rechts: Der Arbeitsbereich«, wird das näher erläutert.
7.2.4
Integration von internen Stylesheets in »Seitenlayouts«
Bei der Verwendung von internen Stylesheets können Sie im Backend-Modul Seitenlayouts alle vier relevanten Bereiche nutzen, um ein Seitenlayout zu erstellen. Sie können 왘
eine Kopf- und Fußzeile generieren.
왘
die Spaltenkonfiguration definieren.
왘
die Stylesheets ins Seitenlayout einbinden.
왘
im Bereich »Statisches Layout« die Breite und Ausrichtung des Layouts festlegen.
Interne Stylesheets arbeiten also perfekt mit dem CSS-Framework von Contao zusammen. Abbildung 7.4 zeigt diesen Sachverhalt in der Übersicht.
Abbildung 7.4 Integration von internen Stylesheets in Seitenlayouts
»Stylesheets zusammenfassen«: Als eine Datei ausliefern Im Backend-Modul Seitenlayouts können Sie im Bereich Stylesheets mit einem simplen Mausklick auf Stylesheets zusammenfassen alle internen Stylesheets in einer Datei zusammenfassen, um die Ladezeit der Seiten zu verbessern.
161
7.2
7
Webseiten gestalten: Contao und CSS
7.3
Interne Stylesheets: CSS-Dateien importieren
Stylesheets, die als CSS-Datei bereits fix und fertig vorliegen, müssen Sie nicht Style für Style in den internen Editor übertragen. Mit der Funktion CSS importieren können Sie diese bequem in die Datenbank importieren. Zu importierende Stylesheet-Dateien müssen zunächst unterhalb von tl_files gespeichert werden. Das Importieren selbst verwandelt die externe CSS-Datei in ein internes in der Datenbank gespeichertes Stylesheet, das mit dem internen CSSEditor bearbeitet werden kann.
7.3.1
Das Reset-Stylesheet »basic.css« herunterladen
Viele Webdesigner benutzen ein im Laufe der Zeit gereiftes Reset-Stylesheet zur Normalisierung der Abstände von margin und padding und zur grundlegenden Formatierung der Webseiten. In diesem Abschnitt lernen Sie die CSS-Importfunktion anhand eines auf www.contao.org erhältlichen Reset-Stylesheets namens basic.css kennen, das sich gut für die Arbeit mit Contao eignet. Im folgenden ToDo laden Sie das zu importierende Stylesheet herunter und speichern es im Ordner tl_files/importieren, in dem alle zu importierenden Dateien zwischengelagert werden. ToDo: Das Reset-Stylesheet »basic.css« herunterladen und speichern 1. Surfen Sie zur Downloadseite auf www.contao.org: http://www.contao.org/herunterladen.html 2. Laden Sie unter der Überschrift Das CSS Framework erweitern das Reset-Stylesheet (2,3kb) herunter. 3. Speichern Sie das Stylesheet basic.css in tl_files/importieren.
In den nächsten Abschnitten importieren Sie dieses Stylesheet in die Datenbank und lernen es dabei genauer kennen.
7.3.2
Das Reset-Stylesheet »basic.css« importieren
Im folgenden ToDo importieren Sie basic.css, ändern den Medientyp auf screen und verbinden es dann als erstes zu ladendes Stylesheet mit dem aktuellen Seitenlayout.
162
Interne Stylesheets: CSS-Dateien importieren
ToDo: Das Reset-Stylesheet »basic.css« importieren und einbinden 1. Öffnen Sie das Backend-Modul Themes 폷 Stylesheets. 2. Klicken Sie im Arbeitsbereich oben rechts auf CSS importieren. 3. Aktivieren Sie in der Zeile Dateisystem ganz rechts das Kontrollkästchen Auswahl ändern. Contao zeigt Ihnen daraufhin den Inhalt des Ordners tl_files. 4. Wechseln Sie in den Unterordner importieren, und aktivieren Sie das Kontrollkästchen für basic.css. 5. Klicken Sie auf die Schaltfläche CSS-Import. Jetzt wird das Stylesheet in die Datenbank importiert. 6. Klicken Sie mit der rechten Maustaste auf den gelben Bleistift neben dem Stylesheet basic [all], und wählen Sie den Befehl Stylesheet-Einstellungen bearbeiten. 7. Ändern Sie den Medientyp von all auf screen, und beenden Sie die Bearbeitung mit Speichern und zurück. 8. Um das Stylesheet mit einem Seitenlayout zu verbinden, öffnen Sie im BackendModul Themes 폷 Seitenlayouts das Standardlayout [Standard] zur Bearbeitung. 9. Aktivieren Sie im Bereich Stylesheets das Kontrollkästchen für das Stylesheet basic. 10. Ändern Sie die Reihenfolge der Stylesheets mit den grünen Pfeilen nach unten bzw. oben, sodass das Stylesheet basic zuerst geladen wird. 11. Speichern Sie die Änderungen mit Speichern und Schliessen.
Nach einer Aktualisierung sieht das Frontend im Browser danach ungefähr so aus wie in Abbildung 7.5. Die Schriftarten haben sich geändert, die Aufzählungspunkte in der Navigation sind verschwunden und bei einigen Elementen wurden die Außen- und Innenabstände (margin und padding) entfernt.
Abbildung 7.5 Die Startseite der Beispielsite mit »basic.css«
163
7.3
7
Webseiten gestalten: Contao und CSS
Nach dem Importieren stehen die Styles im Backend übersichtlich untereinander und haben rechts einen Satz Symbole zur Bearbeitung (Abbildung 7.6).
Abbildung 7.6 Das importierte Stylesheet »basic« im Backend
Die Symbole selbst sind zum größten Teil selbsterklärend: 왘
Der gelbe Bleistift öffnet den Style zur Bearbeitung.
왘
Das grüne Kreuz dient zum Duplizieren des Styles.
왘
Der blaue Pfeil dient zum Verschieben eines Styles. Der Style wird in die Ablage kopiert und kann auch in einem anderen Stylesheet wieder eingefügt werden.
왘
Das rote X löscht den Style.
왘
Das grüne Auge blendet einen Style vorübergehend aus.
왘
Das blau hinterlegte »i« zeigt alle Eigenschaften und Werte des Styles auf einen Blick und ist übersichtlicher als das HTML-Formular.
왘
Das weiße Kreuz im grünen Kreis ganz rechts außen fügt unterhalb des Styles eine neue Formatdefinition ein.
Sehr praktisch ist der »Augen-Klick«, mit dem Sie einen Style kurz ausblenden können, um dessen Auswirkung im Frontend zu studieren:
164
Interne Stylesheets: CSS-Dateien importieren
왘
Wenn Sie auf das grüne Auge klicken, wird es grau, um zu signalisieren, dass der Style inaktiv ist.
왘
Nach dem Neuladen zeigt der Browser die Webseite ohne diesen Style.
Bei jeder Änderung, also auch bei einem Klick auf das Auge, erzeugt Contao im Hintergrund in Windeseile das Stylesheet basic.css im Hauptordner aufs Neue, sodass die Browser immer die aktuelle Version benutzen. Wenn Sie genau wissen möchten, ob und wann Contao ein Stylesheet generiert hat, können Sie das im Backend-Modul System-Log nachschauen. Achten Sie auf die in Grün erscheinende Meldung »Generated style sheet«. Einschränkungen beim Importieren von Stylesheets Der Import eines Stylesheets verläuft in den meisten Fällen recht reibungslos, aber manchmal sind ein paar vorbereitende Maßnahmen hilfreich, damit es beim Import keine Probleme gibt: 왘
Farbnamen wie white werden in das Feld Eigener Code importiert. Am besten ersetzen Sie Farbnamen vor dem Importieren durch hexadezimale Werte wie #ffffff. Die Kurzform #fff geht auch.
왘
Auch andere Keywords wie z. B. das small in font-size: small bereiten Schwierigkeiten und sollten ebenfalls besser durch Zahlwerte ersetzt werden (13px oder 81.25 %).
왘
Kurzschreibweisen werden teilweise nicht richtig verstanden. Die Werte für border sollten z. B. immer die Reihenfolge 1px solid #ccc haben (width, style, color). Andere Reihenfolgen werden nicht korrekt erkannt, auch wenn sie valide sind.
왘
Ironie am Rande: Die Anweisung @import geht beim Import verloren.
Sie sollten das interne Stylesheet also einmal in Ruhe daraufhin anschauen, ob nach dem Importieren noch alles stimmt.
7.3.3
Das Reset-Stylesheet »basic.css« im Detail
In diesem Abschnitt werfen Sie einen kurzen Blick auf das Stylesheet basic.css, das Sie eben importiert haben. Es besteht aus vier großen Teilen. Teil 1 ist nur ein einziger Style, der das margin und padding für zahlreiche Elemente auf 0 setzt (Reset): /* Reset margins */ body, div, h1, h2, h3, h4, h5, h6, p, blockquote, pre, code, ol, ul, li, dl, dt, dd, table, th, td, form, fieldset, legend, input, textarea { margin: 0; padding: 0; } Listing 7.1
Der »Reset« – Teil 1 des Reset-Stylesheets »basic.css«
165
7.3
7
Webseiten gestalten: Contao und CSS
Im zweiten Teil folgt nach dem Kommentar /* Format basic elements */ eine Grundformatierung. Diese besteht aus zwölf Styles mit grundlegenden Formatierungen für Tabellen, Hyperlinks und andere Elemente: /* Format basic elements */ table {border-collapse: collapse; border-spacing: 0;} caption, th, td {text-align: left; vertical-align: top;} abbr, acronym { font-variant: normal; border-bottom: 1px dotted #666; cursor: help; } blockquote, q {quotes: none;} fieldset, img {border: 0;} li {list-style-type: none;} sup {vertical-align: text-top;} sub {vertical-align: text-bottom;} del {text-decoration: line-through;} ins {text-decoration: none;} a {color: #00f;} :focus {outline: 0;} Listing 7.2
Die »Grundformatierung« – Teil 2 von »basic.css«
Der dritte Teil des Stylesheets beginnt nach dem Kommentar /* Font settings */ und umfasst neun Styles mit einer grundlegenden Schriftformatierung: /* Font settings */ body { font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif; font-size: 12px; color: #000; } input, button, textarea, select { font-family: inherit; font-size: 99 %; font-weight: inherit; } pre, code { font-family: "Lucida Console", Monaco, monospace; font-size: 12px; } h1, h2, h3, h4, h5, h6 { font-size: 100 %;
166
Das Suchen und Filtern von Styles in internen Stylesheets
»Schriftformatierung« – Teil 3 des Reset-Stylesheets »basic.css«
Im letzten Teil werden nach dem Kommentar /* Default margins */ für einige Elemente noch ein paar Standardabstände definiert: /* Default margins */ h1, h2, h3, h4, h5, h6 {margin-top: 1em;} h1, h2, h3, h4, h5, h6, p, pre, blockquote, table, ol, ul, form { margin-bottom: 12px; /* Should match the font size */ } Listing 7.4
»Standardabstände« – Teil 4 des Reset-Stylesheets »basic.css«
So viel zum Inhalt des Reset-Stylesheets basic.css. Andere Reset-Stylesheets Sie können natürlich auch Ihr eigenes Reset-Stylesheet importieren oder sich ein anderes Reset-Stylesheet ausleihen. Neben dem Klassiker von Eric Meyer gibt es noch ein paar andere interessante Beispiele: 왘
die Übersicht: »Vier CSS-Resets« (Dr. Web) http://www.drweb.de/magazin/vier-css-resets/
왘
die einfache Variante: »CSS Reset – a simpler option« (Russ Weakley) http://www.maxdesign.com.au/articles/css-reset/
왘
kein Reset: »Setting rather than Resetting …« (Thierry Koblentz) http://bit.ly/dqvh64
7.4
Das Suchen und Filtern von Styles in internen Stylesheets
In diesem Abschnitt zeige ich noch zwei einfache, aber effektive Hilfsmittel zur Arbeit mit dem Backend-Modul Themes 폷 Stylesheets: das Suchen und Filtern von Styles.
167
7.4
7
Webseiten gestalten: Contao und CSS
7.4.1
Styles mit bestimmten Selektoren suchen
Wenn ein Stylesheet zur Bearbeitung geöffnet ist, sehen Sie ganz oben im Arbeitsbereich die in Abbildung 7.7 hervorgehobene Zeile zum Suchen und Filtern von Styles.
Abbildung 7.7 »Suchen« und »Filtern« – oben im Arbeitsbereich
Rechts am Rand sehen Sie, dass momentan 24 Styles angezeigt werden. Die beiden goldfarbenen Pfeile ganz außen bewirken, dass die Anzeige des Stylesheets nach einer Suche und Filterung entsprechend geändert wird (entspricht (Enter)). Sie können die Anzeige der Styles mit einer Suche nach einer Kategorie, einem Kommentar oder einem Selektor einschränken. Die Auswahl Kategorie lernen Sie im nächsten Abschnitt beim Filtern kennen, einen Kommentar haben Sie bisher noch nicht eingegeben, also probieren Sie im folgenden ToDo die Suche nach einem bestimmten Selektor. ToDo: So suchen Sie im Stylesheet nach bestimmten Selektoren 1. Wählen Sie oben im Arbeitsbereich in der Auswahlliste des Feldes Suchen den Eintrag Selektor. 2. Geben Sie im Eingabefeld nach dem Gleichheitszeichen den Selektor »body« ein. 3. Drücken Sie (Enter), oder klicken Sie auf die beiden Pfeile ganz rechts. 4. Es werden nur noch zwei Styles angezeigt, die beide den Selektor body enthalten. Beachten Sie dabei, dass die beiden Suchfelder hellgelb hinterlegt sind, um anzuzeigen, dass ein Suchfilter aktiv ist. 5. Ändern Sie die Suche, und suchen Sie zum Beispiel nach dem Selektor »h1«. Im Stylesheet basic gibt es fünf Styles mit h1. 6. Um wieder alle Styles zu sehen, entfernen Sie den Suchfilter wieder, indem Sie mit einem Doppelklick den Selektor im Suchfeld markieren, (ENTF) drücken und das Löschen mit (Enter) bestätigen.
168
Das Suchen und Filtern von Styles in internen Stylesheets
7.4.2
Filtern nach Kategorie
Wenn Sie einen Style zur Bearbeitung öffnen, sehen Sie gleich im ersten Bereich, Selektor und Kategorie, ein Eingabefeld namens Kategorie (Abbildung 7.8).
Abbildung 7.8 Das Eingabefeld »Kategorie« beim Bearbeiten von Styles
In diesem Feld können Sie Styles durch Zuweisen einer Kategorie wie zum Beispiel Layout, Navigation oder Formulare gruppieren und anschließend in der Übersicht mit dem Filter nur jeweils eine Kategorie anzeigen lassen. Im Reset-Stylesheet basic eignen sich als Kategorie zum Beispiel die vier Teile Reset, Grundformatierung, Schriftformatierung und Standardabstände. Diese Kategorien werden den Styles zugewiesen, und danach können Sie per Klick eine bestimmte Kategorie anzeigen lassen. Alle anderen Styles werden dann vorübergehend ausgeblendet, was die Übersicht bei längeren Stylesheets enorm erhöht. Zur Zuweisung der Kategorien müssten Sie normalerweise jeden Style einzeln öffnen, die Kategorie eingeben und den Style wieder speichern. Das ist nicht sehr erquicklich, und deshalb lernen Sie im folgenden ToDo quasi nebenbei eine echte Arbeitserleichterung kennen: die Funktion Mehrere bearbeiten. Diese Funktion gibt es in Contao an vielen Stellen, und sie erleichtert das Leben eines ContentManagers ungemein. ToDo: Kategorien mit der Funktion »Mehrere bearbeiten« zuweisen 1. Öffnen Sie gegebenenfalls das Stylesheet basic zur Bearbeitung. 2. Klicken Sie im Arbeitsbereich rechts oben auf Mehrere bearbeiten. 3. Aktivieren Sie auf der folgenden Seite das Kontrollkästchen Alle auswählen. 4. Scrollen Sie ganz nach unten, und klicken Sie auf Bearbeiten. 5. Aktiveren Sie auf der folgenden Seite die Kontrollkästchen für die Felder Selektor und Kategorie, und klicken Sie dann unten auf Weiter.
169
7.4
7
Webseiten gestalten: Contao und CSS
ToDo: Kategorien mit der Funktion »Mehrere bearbeiten« zuweisen (Forts.) 6. Auf der folgenden Seite sehen Sie für alle 24 Styles jeweils die Felder Selektor und Kategorie untereinander. 7. Weisen Sie den ersten Style der Kategorie »Reset« zu. 8. Die nächsten zwölf von table bis inklusive :focus bekommen die Kategorie »Grundformatierung«. 9. Die Kategorie »Schriftformatierung« wird den nächsten neun Styles zugewiesen, von body bis einschließlich caption, th. 10. Die letzten beiden Formatdefinitionen bekommen die Kategorie »Standardabstände«. 11. Speichern Sie die Änderungen mit Speichern und Schliessen.
Nach diesem ToDo können Sie in der Stylesheet-Übersicht mit der Liste Filtern jeweils nur eine der vier Kategorien anzeigen lassen. Abbildung 7.9 zeigt den Filter mit der Kategorie »Schriftformatierung«.
Abbildung 7.9 Der Filter mit der Kategorie »Schriftformatierung« in Aktion
Um den Filter wieder außer Kraft zu setzen, wählen Sie in der Auswahlliste die Option Kategorie und klicken danach auf den goldenen Doppelpfeil ganz rechts außen.
170
Die Erweiterung »[csseditor]«
7.5
Die Erweiterung »[csseditor]«
Den internen CSS-Editor von Contao haben Sie bereits kennengelernt. In diesem Abschnitt möchte ich Ihnen die Erweiterung [csseditor] vorstellen, die die Arbeit im Quelltext von internen Stylesheets ermöglicht. Die Erweiterung [csseditor] ist vollständig kompatibel mit dem internen CSS-Editor (der Bearbeitung von CSS über das HTML-Formular), sodass Sie beliebig zwischen den beiden wechseln können.
7.5.1
Die Erweiterung »[csseditor]« installieren und kennenlernen
Im folgenden ToDo installieren Sie zunächst die Erweiterung [csseditor]. ToDo: Die Erweiterung »[csseditor]« installieren 1. Öffnen Sie das Backend-Modul System 폷 Erweiterungskatalog. 2. Geben Sie oben im Arbeitsbereich im Feld Suchen »css« ein. 3. Klicken Sie in der Ergebnisliste auf das grüne [csseditor]. 4. Installieren Sie die Erweiterung mit einem Klick auf die Schaltfläche Installieren am unteren Fensterrand. 5. Bestätigen Sie die Installation mit einem Klick auf Weiter. 6. Klicken Sie nach erfolgreicher Installation auf Weiter. 7. Bestätigen Sie die Meldung »Die Datenbank ist aktuell« mit OK.
Nach erfolgreicher Installation sehen Sie im Modul Erweiterungsverwaltung das Modul [csseditor]. Nach der Installation der Erweiterung gibt es in System 폷 Einstellungen einen neuen Bereich namens CSS Editor settings, in dem Sie z. B. die Schriftart und die Fenstergröße für den Editor einstellen können. Außerdem ist bei der Bearbeitung der Stylesheets im Backend-Modul Themes 폷 Stylesheets ein neues Symbol aufgetaucht (Abbildung 7.10). Um den Quelltext eines internen Stylesheets zu bearbeiten, klicken Sie statt auf den gelben Bleistift auf das blau-weiße Symbol rechts daneben. Abbildung 7.11 zeigt das Stylesheet bildschirm im [csseditor]. Die Symbolleiste oberhalb des Editorfensters enthält einige nützliche Befehle: zu einer bestimmten Zeile springen, Suchen und Ersetzen, Syntax-Highlighting einund ausschalten und neu laden, und im Vollbildmodus arbeiten.
171
7.5
7
Webseiten gestalten: Contao und CSS
Abbildung 7.10 Die neuen Symbole öffnen Stylesheets im »[csseditor]«.
Abbildung 7.11 Das Stylesheet »bildschirm« in »[csseditor]«
172
Die Erweiterung »[csseditor]«
7.5.2
Interne Stylesheets extern bearbeiten
Die Erweiterung [csseditor] ermöglicht noch eine Variante der CSS-Bearbeitung, die viele Autoren gerne einsetzen: 왘
Sie bearbeiten die von Contao generierten Stylesheets im Hauptordner mit einem externen Editor.
왘
Anschließend kopieren Sie das CSS über [csseditor] wieder zurück in die Datenbank.
Dieser Weg erleichert das »Zurück in die Datenbank« der editierten Styles. Drei einfache (Strg)-Kombinationen reichen aus: 1. Markieren Sie im externen Editor mit (Strg) + (a) alle Styles. 2. Kopieren Sie sie mit (Strg) + (c) in die Zwischenablage, 3. Fügen Sie sie mit (Strg) + (v) in den [csseditor] ein. Die Erweiterung [csseditor] speichert die Styles dann in der Datenbank, genau wie es bei einem CSS-Import der Fall wäre. Ein potenzieller Nachteil dieses Workflow ist es, dass die im Hauptordner von Contao generierten CSS-Dateien sehr platzsparend formatiert sind und weder Kommentare noch Kategorien enthalten. Wenn diese Stylesheets bearbeitet und zurück in die Datenbank kopiert werden, bleiben Kommentare und Kategorien meist früher oder später auf der Strecke. Teamwork: »[csseditor]« und »Firebug« oder »Web Developer Toolbar« Wenn Sie mit dem Firefox und den Add-Ons Firebug oder Web Developer Toolbar arbeiten, können Sie sich sogar den externen Editor sparen. Beide Add-Ons bieten Ihnen die Möglichkeit, das CSS direkt im Browser zu editieren und die Auswirkungen der Styles ohne Speicherung direkt im Browser zu sehen.
7.5.3
Einschränkungen bei der Arbeit mit »[csseditor]«
Quelltextfans werden aufatmen und sich ein Stück weit zu Hause fühlen, aber beim Speichern im [csseditor] gelten ähnliche Einschränkungen wie beim internen Editor, die hier nicht unerwähnt bleiben sollen: 왘
Die Reihenfolge der Deklarationen innerhalb eines Styles wird nach dem Speichern geändert. Das ist zwar nicht schlimm, aber wissenswert.
왘
Sie können für Boxmodell-Eigenschaften im [csseditor] zwar für oben, unten, links und rechts getrennte Einheiten eingeben, diese erscheinen nach dem Speichern in der Datenbank aber nicht mehr korrekt.
173
7.5
7
Webseiten gestalten: Contao und CSS
왘
Untereinander stehende, doppelte Deklarationen mit unterschiedlichen Werten zum Testen kann man zwar hinschreiben, beim Speichern wird aber die zuerst notierte Deklaration gelöscht.
왘
Mit einem Klick auf das Auge vorübergehend ausgeblendete Styles werden im [csseditor] nicht angezeigt. So weit ist das okay. Beim Speichern werden sie aber gelöscht. Oops.
Trotz dieser (und vielleicht noch anderer) Einschränkungen ist die Erweiterung [csseditor] bei der Bearbeitung von internen Stylesheets im Backend ein sehr nützliches Werkzeug.
7.6
Übung: Gestaltung der Navigation per CSS
Nach dieser Einführung in die Arbeit mit internen Stylesheets und dem BackendModul Themes 폷 Stylesheets gibt es jetzt eine kleine Übung für zwischendurch. Die Navigation in der linken Spalte soll mit den folgenden Styles gestaltet werden, wobei die Kommentare nur zur Erläuterung dienen und nicht unbedingt übertragen werden müssen: /* ============================= Vertikale Navigation ========================== */ #left div.mod_navigation { float: left; width: 142px; font-size: 12px; margin: 32px 0 0 0; } #left .mod_navigation ul{ background-color: #fff; padding: 0; margin: 0; } #left .mod_navigation li{ margin: 0; list-style-type: none; } /* Menüpunkte gestalten */ #left .mod_navigation a, #left .mod_navigation span { display: block; text-decoration: none; background-color: #ADCBE6;
Das ToDo ist kurz und bündig und liefert als Ergebnis ein Stylesheet zur Gestaltung der Navigation mit den Styles aus Listing 7.5. ToDo: Erstellen Sie ein internes Stylesheet für die Navigation 1. Erstellen Sie mit den Styles aus Listing 7.5 ein internes Stylesheet mit dem Namen navigation. 2. Definieren Sie den Medientyp screen für das Stylesheet. 3. Weisen Sie das Stylesheet dem Seitenlayout zu. 4. Die Reihenfolge der Stylesheets soll wie folgt sein: basic, navigation, bildschirm.
Bei der Erstellung von internen Stylesheets haben Sie mehrere Möglichkeiten: 왘
Sie können das CSS direkt im internen Editor im HTML-Formular eingeben. Das übt, und Sie lernen den Editor dabei kennen.
왘
Sie können das Stylesheet in Ihrem Lieblingseditor als Datei erstellen und dann importieren.
왘
Sie können das Stylesheet navigation.css von der Buch-DVD importieren.
Die Website sieht nach dieser Übung so aus wie in Abbildung 7.12.
175
7.6
7
Webseiten gestalten: Contao und CSS
Abbildung 7.12
Die gestylte Navigation im Frontend
Im Backend-Modul Themes 폷 Stylesheets gibt es jetzt die drei Stylesheets basic, navigation und bildschirm, die im Seitenlayout genau in dieser Reihenfolge eingebunden werden. Der »Augen-Klick«: Auswirkungen einzelner Styles analysieren Bei internen Stylesheets können Sie wie erwähnt ganz bequem die Auswirkungen der einzelnen Styles in einem Stylesheet analysieren: 왘
Öffnen Sie das Stylesheet navigation im Backend.
왘
Klicken Sie auf das grüne Auge, um einen Style zu neutralisieren.
왘
Laden Sie das Frontend im Browser neu, und schon sehen Sie die Seite ohne den Style.
So können Sie Style für Style die Auswirkungen der einzelnen Styles untersuchen und müssen nicht immer erst auskommentieren und dann speichern.
7.7
Externe Stylesheets: CSS außerhalb der Datenbank
Wer es gewohnt ist, sein CSS von Hand zu schreiben, fühlt sich bei der Arbeit mit dem HTML-Formular eventuell an den Titel eines modernen Westerns erinnert: »Der sich den Wolf klickt«. Und auch die Erweiterung [csseditor] mit ihren Einschränkungen und den viel zu großen Einzügen kommt Quelltext-CSSlern eher vor wie »Wohnung renovieren durch den Briefschlitz«.
176
Externe Stylesheets: CSS außerhalb der Datenbank
Beides kann für viele den gewohnten CSS-Editor nicht ersetzen, egal wie er heißt. In diesem Abschnitt möchte ich Ihnen deshalb zeigen, wie man mit externen Stylesheets arbeitet, die in einem beliebigen Editor geschrieben, als Datei mit der Endung .css gespeichert und dann mit einem Seitenlayout in Contao verbunden werden.
7.7.1
Vorgehensweise: Die Arbeit mit externen Stylesheets
Es gibt viele verschiedene Möglichkeiten, um bei Contao mit externen Stylesheets zu arbeiten, aber ich empfehle Ihnen folgende Vorgehensweise: 왘
Speichern Sie alle Stylesheets in einem Ordner unterhalb von tl_files zusammen mit den Layout-Grafiken für das Theme.
왘
Laden Sie in einem zentralen Stylesheet mit dem passenden Namen zentrale.css mit der Anweisung @import die drei Stylesheets basic.css, navigation.css und bildschirm.css.
왘
Binden Sie das zentrale Stylesheet zentrale.css in Contao ein.
Mit diesem Setup werden die Styles zur Formatierung der Webseiten nicht mehr in der Datenbank gespeichert, sondern in ganz normalen CSS-Dateien unterhalb des Ordners tl_files auf dem Webspace. Das Backend-Modul Themes 폷 Stylesheets ist bei diesem Setup zwar komplett arbeitslos, aber die externen Stylesheets arbeiten problemlos mit dem CSS-Framework von Contao zusammen. Die im Backend-Modul Themes 폷 Seitenlayout in den Bereichen Kopf- und Fusszeile, Spaltenkonfiguration und Statisches Layout definierten Einstellungen für das Layout funktionieren auch mit externen Stylesheets. Sie kombinieren also die Freiheit der manuellen CSS-Bearbeitung mit dem Komfort der Abteilung Seitenlayouts. Schritt 1: Stylesheets nach »tl_files/...« kopieren Die externen Stylesheets sollten auf jeden Fall in einem Ordner unterhalb von tl_files/ liegen, damit sie auch über die Dateiverwaltung von Contao zugänglich sind. Dadurch haben Sie drei Möglichkeiten zur Bearbeitung von Styles. Sie können 왘
die Styles lokal im Editor bearbeiten und per FTP hochladen.
왘
die Styles im Editor per FTP direkt auf dem Webspace bearbeiten.
왘
die Styles direkt in der Dateiverwaltung von Contao editieren.
Da Stylesheets immer auch zu einem Theme gehören, speichern Sie die Dateien am besten im entsprechenden Theme-Ordner.
177
7.7
7
Webseiten gestalten: Contao und CSS
Im folgenden ToDo deaktivieren Sie die internen Stylesheets im Seitenlayout und kopieren die von Contao generierten Stylesheets aus dem Hauptordner in tl_files/ themes/blaues_theme. ToDo: Die drei Stylesheets in den Theme-Ordner kopieren 1. Öffnen Sie im Backend das Modul Themes 폷 Seitenlayouts. 2. Öffnen Sie das Seitenlayout Standardlayout [Standard]. 3. Deaktivieren Sie im Bereich Stylesheets die Kontrollkästchen vor den drei Stylesheets. 4. Klicken Sie auf Speichern und Schliessen. 5. Öffnen Sie den Hauptordner der Contao-Installation in einem Dateimanager. 6. Kopieren Sie die drei Stylesheets basic.css, navigation.css und bildschirm.css in den Ordner tl_files/themes/blaues_theme/.
Die automatisch generierten Stylesheets im Hauptordner sind sehr platzsparend und komprimiert formatiert, sodass Sie diese vor einer weiteren Bearbeitung im eigenen CSS-Editor erst einmal übersichtlicher gestalten sollten. Durch das Deaktivieren der drei internen Stylesheets im Seitenlayout sind die Webseiten im Frontend momentan vorübergehend ungeschminkt, da die externen Stylesheets noch nicht mit dem Seitenlayout verbunden sind. Aber das wird sich gleich ändern. Schritt 2: Ein zentrales Stylesheet erstellen Die Erstellung eines zentralen Stylesheets ist nicht zwingend notwendig, erleichtert aber den Umgang mit den Stylesheets, da Sie in Contao nur ein Stylesheet einbinden müssen: 왘
Im Backend von Contao binden Sie das zentrale Stylesheet ein.
왘
Die drei Stylesheets werden in zentrale.css mit @import importiert.
왘
In zentrale.css können Sie im Editor bequem festlegen, welche Stylesheets geladen werden.
Besonders in der Entwicklungsphase ist diese Flexibilität von Vorteil, aber die Sache hat auch einen kleinen Nachteil: Da der Internet Explorer die Angabe eines Medientyps am Ende von @import nicht versteht, muss diese mit der Anweisung @media in den einzelnen Stylesheets erfolgen. Das wird im folgenden ToDo gleich mit erledigt.
178
Externe Stylesheets: CSS außerhalb der Datenbank
Eine Anmerkung noch vorweg: Speichern Sie die Dateien mit dem Zeichensatz UTF-8 oder UTF-8 ohne BOM, also nicht alsANSI oder ISO-8859-x oder sowas. Contao verwendet durchgängig UTF-8. ToDo: Zentrales Stylesheet erstellen und Medientypen definieren 1. Erstellen Sie in einem ganz normalen Editor ein neues Stylesheet. 2. Speichern Sie das Stylesheet als zentrale.css in dem Ordner namens tl_files/themes/ blaues_theme/. 3. Fügen Sie die folgenden Zeilen CSS hinzu: @import url(basic.css); @import url(bildschirm.css); @import url(navigation.css);
4. Öffnen Sie die drei Stylesheets basic.css, navigation.css und bildschirm.css in einem Editor. 5. Fügen Sie ganz am Anfang der drei Stylesheets folgende Zeile hinzu: @media screen {
6. Fügen Sie ganz am Ende der drei Stylesheets folgende Zeile hinzu: } /* Ende @media */
7. Speichern Sie alle drei Stylesheets.
Im Frontend hat sich noch nichts geändert, aber wie Abbildung 7.13 zeigt, liegen die Stylesheets im Ordner blaues_theme bereit.
Abbildung 7.13 Die vier Stylesheets im Theme-Ordner
Beachten Sie die Bearbeitungssymbole rechts neben den Stylesheets: Der gelbe Bleistift dient hier nur zur Umbenennung der Dateien; zur Bearbeitung der Stylesheets direkt in der Dateiverwaltung klicken Sie auf das blau-weiße Symbol (2. Symbol von rechts). Sie können im Notfall also problemlos von überall eingreifen und die externen Stylesheets in der Dateiverwaltung von Contao bearbeiten. Dazu benötigen Sie weder eine lokale Kopie des Stylesheets noch einen FTP-Zugang.
179
7.7
7
Webseiten gestalten: Contao und CSS
Schritt 3: Das zentrale Stylesheet im Seitenlayout einbinden Die Kontrollkästchen zur Aktivierung der Stylesheets im Seitenlayout Standardlayout[Standard] gelten nur für die in der Datenbank gespeicherten internen Stylesheets und nicht für die externen CSS-Dateien. Um ein externes Stylesheet mit Contao zu verbinden, gibt es zwei Möglichkeiten: 왘
Im Seitenlayout gibt es im Bereich Experten-Einstellungen ein Feld namens Zusätzliche Head-Tags, in das Sie beliebige Elemente eingeben können, die bei der Erstellung der Seite kurz vor eingebunden werden.
왘
Im Seitentemplate fe_page.tpl können Sie den Weg zu zentrale.css bildlich gesprochen fest verdrahten.
Ein potenzieller Nachteil der Einbindung von externen Stylesheets im Seitenlayout ist, dass Sie den Link zum Stylesheet in jedem Seitenlayout pflegen müssen. Bei einer komplexen Site mit vielen Seitenlayouts ist das sehr umständlich, und deshalb binden Sie die externen Stylesheets gleich direkt im Seitentemplate fe_ page.tpl ein. Im folgenden ToDo erstellen Sie mit dem Backend-Modul Templates eine Kopie des Seitentemplates fe_page.tpl und fügen in dieser Kopie den Link zum zentralen Stylesheet ein. ToDo: Das zentrale Stylesheet direkt im Seitentemplate einbinden 1. Öffnen Sie das Backend-Modul Templates. 2. Klicken Sie rechts oben auf Neues Template. 3. Wählen Sie aus der Liste das Seitentemplate fe_page.tpl. 4. Speichern Sie die Kopie im Zielverzeichnis templates/blaues_theme. 5. Klicken Sie auf das blau-weiße Symbol zum Bearbeiten von fe_page.tpl. 6. Fügen Sie nach der PHP-Anweisung in Zeile 13 stylesheets;?> ein paar neue Zeilen ein. 7. Geben Sie in einer der neuen Zeilen den folgenden Quelltext ein, um Contao den Weg zum zentralen Stylesheet zu zeigen (in einer Zeile):
8. Beenden Sie die Bearbeitung mit Speichern und Schliessen.
Wenn alles geklappt hat, sieht das Frontend in Abbildung 7.14 wieder genauso aus wie mit den internen Stylesheets in Abbildung 7.12.
180
Externe Stylesheets: CSS außerhalb der Datenbank
Abbildung 7.14 Die Beispielsite mit externen Stylesheets
Mit diesem Setup können Sie ganz normale Stylesheets in einem ganz normalen Editor bearbeiten und mit der Datei zentrale.css bequem verwalten. Mehr zu »$this->framework« und »$this->stylesheets« Im Quelltext von fe_page.tpl sind Ihnen eventuell einige PHP-Schnipsel aufgefallen, insbesondere die folgenden zwei: framework; ?> stylesheets; ?>
Mehr zu diesen PHP-Anweisungen erfahren Sie in Abschnitt 7.10, »Know-how: Das CSS-Framework von Contao«.
7.7.2
Integration von externen Stylesheets in »Seitenlayouts«
Bei der Verwendung von externen Stylesheets können Sie im Backend-Modul Seitenlayouts fast alle relevanten Bereiche des CSS-Frameworks nutzen. Sie können 왘
eine Kopf- und Fußzeile generieren.
왘
die Spaltenkonfiguration definieren.
왘
die Breite und Ausrichtung des Layouts festlegen.
Externe Stylesheets arbeiten also problemlos mit dem CSS-Framework von Contao zusammen, allerdings können Sie die Stylesheets nicht per Mausklick ins Seitenlayout einbinden, sondern müssen dazu das Feld Zusätzliche Head-Tags be-
181
7.7
7
Webseiten gestalten: Contao und CSS
nutzen oder die Stylesheets direkt im verwendeten Seitentemplate einbinden. Abbildung 7.15 zeigt das in der Übersicht.
Abbildung 7.15 Einbindung von externen Stylesheets in Seitenlayouts
7.8
Teamwork: Interne und externe Stylesheets zusammen
Sie haben in diesem Kapitel bis jetzt zwei grundlegend verschiedene Methoden im Umgang mit CSS bei Contao kennengelernt: 왘
Interne Stylesheets werden im internen Editor bearbeitet, in der Datenbank gespeichert und über das Backend-Modul Seitenlayouts eingebunden. Contao generiert automatisch CSS-Dateien im Hauptordner.
왘
Externe Stylesheets werden unterhalb des Ordners tl_files gespeichert, mit einem externen Editor bearbeitet und manuell in das Seitenlayout oder in das Seitentemplate eingebunden.
In diesem Abschnitt geht es um zwei Varianten der Zusammenarbeit von internen und externen Stylesheets. Die erste Möglichkeit ist ein »Nacheinander«: 왘
Die arbeitsintensive Entwicklungsphase erfolgt im externen Editor.
왘
Vor dem Launch werden die externen Stylesheets dann importiert, gecheckt und kategorisiert.
Die externen Stylesheets werden vom Webspace entfernt, und nach dem Launch der Site werden die Stylesheets intern weitergepflegt.
182
Fazit: Jeder kann so arbeiten wie er gerne möchte
Die zweite Variante ist hingegen mehr ein »Miteinander«: 왘
Die Site wird mit externen Stylesheets gestaltet.
왘
Zusätzlich werden interne Stylesheets erstellt und benutzt.
Diese Möglichkeit ist zum Beispiel von Vorteil, wenn ein Kunde oder ein Redakteur selbst Hand an die Gestaltung der Website anlegen möchte oder soll, mit der Syntax von CSS aber nicht vertraut ist. Bei der Einbindung der Stylesheets sollte die Reihenfolge so festgelegt werden, dass die internen Stylesheets nach den externen eingebunden werden, damit sie diese im Rahmen der Kaskade überschreiben. Im Klartext: Es empfiehlt sich eventuell, die externen Stylesheets nicht im Seitenlayout einzubinden, sondern im Seitentemplate, da dort die Reihenfolge individuell bestimmt werden kann.
7.9
Fazit: Jeder kann so arbeiten wie er gerne möchte
Die Möglichkeiten von Contao bei der Bearbeitung von CSS könnte man mit den Worten »alles kann, nichts muss« zusammenfassen, und jeder kann seinen eigenen Workflow finden: Mit internen Stylesheets, externen Stylesheets oder einer Mischung aus beiden. Sie müssen dabei drei Entscheidungen treffen: 왘
Editor: Wie möchte ich das CSS bearbeiten?
왘
Speicherort: Wo sollen die Styles gespeichert werden?
왘
Einbindung: Wie werden die Stylesheets in Contao eingebunden?
Abbildung 7.16 zeigt die unterschiedlichen Kombinationsmöglichkeiten.
Abbildung 7.16
Contao und CSS – die Übersicht
183
7.9
7
Webseiten gestalten: Contao und CSS
Mein persönlicher Favorit ist übrigens die Arbeit mit externen Stylesheets (Nr. 3), zumindest während der Entwicklungsphase, an der intensiv am CSS gearbeitet wird. Nach der Fertigstellung des Layouts kann man die externen Stylesheets importieren und mit internen Stylesheets (Nr. 1) weiterarbeiten. Das CSS-Framework erweitern: Arbeiten mit Layoutrastern (Grids) Falls Sie gerne mit Grids arbeiten, gibt es für Contao ein Grid-Stylesheet, das das Arbeiten mit einem 960px breiten Raster ermöglicht: 왘
Das CSS-Framework erweitern – gridpx.css http://www.contao.org/herunterladen.html
Das Stylesheet erweitert das interne CSS-Framework von Contao und ist nur 1,8 KB groß. Voraussetzung ist das Reset-Stylesheet basic.css, das Sie bereits nutzen. gridpc.css stellt ein prozentbasiertes Raster zur Verfügung. In einem Vortrag auf dem Usertreffen 2009 hat Leo Feyer die grundlegende Funktionsweise der Grid-Erweiterung erläutert: 왘
Vortrag »Das TYPOlight CSS-Framework« von Leo Feyer (PDF) http://www.contao.org/usertreffen-2009.html
Wenn Sie lieber mit einem externen CSS-Framework wie YAML, 960GS oder Blueprint arbeiten, finden Sie in Abschnitt 22.4, »Layouts für Fortgeschrittene«, ein paar Tipps zur Kooperation von Contao mit externen CSS-Frameworks.
7.10
Know-how: Das CSS-Framework von Contao
Der Benutzer sieht vom Contao-CSS-Framework nur die Einstellungen im Seitenlayout. Technisch gesehen besteht das Framework im Kern aus drei Dateien: 왘
dem Seitentemplate fe_page.tpl für die HTML-Struktur
왘
dem Stylesheet system/contao.css als Fundament
왘
dem Stylesheet system/iefixes.css mit Patches für IE 6 und 7
In diesem Abschnitt wird erklärt, wie diese Dateien zusammenarbeiten.
7.10.1 Das HTML-Grundgerüst von Contao in »fe_page.tpl« Das Fundament des CSS-Frameworks von Contao ist das Seitentemplate fe_ page.tpl. Mit diesem Template lassen sich sehr viele verschiedene Layouts realisieren, und einer der größten Fehler von Contao-Einsteigern ist es, gleich zu Beginn ein eigenes Seitentemplate zu erstellen und fe_page zu ignorieren.
184
Know-how: Das CSS-Framework von Contao
Das Seitentemplate fe_page stellt, wie Sie in Abschnitt 6.2, »»No layout found« – Theme und Seitenlayout erstellen«, bereits gesehen haben, fünf Layoutbereiche zur Verfügung: 왘
Kopfzeile: #header
왘
Linke Spalte: #left
왘
Rechte Spalte: #right
왘
Hauptspalte: #main
왘
Fußzeile: #footer
Ein Blick in den Quelltext der dreispaltigen Beispielsite zeigt, dass dort im body folgendes HTML-Grundgerüst existiert:
Listing 7.6
Das HTML-Grundgerüst von Contao
Dieser Aufbau hat die folgenden Charakteristika: 왘
#wrapper umschließt alle fünf Layoutbereiche.
왘
Die drei Bereiche #left, #right und #main sitzen außerdem noch in einem div namens #container.
왘
Alle fünf Layoutbereiche haben ein inneres div mit der Klasse inside.
왘
Innerhalb von #main gibt es noch ein Extra-div mit der ID clear.
185
7.10
7
Webseiten gestalten: Contao und CSS
Abbildung 7.17 zeigt die fünf Layoutbereiche auf der Startseite.
Abbildung 7.17 Die Layoutbereiche aus »fe_page.tpl« auf der Startseite
Das doppelte DIV Die Dopplung der div-Elemente hat besonders bei flexiblen Layouts viele Vorteile und findet sich auch in anderen CSS-Frameworks wie YAML. Bei Bedarf finden Sie mehr dazu im ersten Teil von »Little Boxes«: 왘
Kap. 17.3 – Mehrspaltige, flexible Layouts: Das doppelte DIV http://bit.ly/b4YyZc
Bei vielen statischen Layouts sind die inneren DIVs nicht zwingend notwendig, aber sie stören nicht weiter, und manchmal sind sie sogar nützlich.
7.10.2 »$this->framework«: Die Einstellungen aus dem Seitenlayout In diesem Abschnitt schauen Sie sich im Seitentemplate fe_page.tpl den Bereich zwischen und genauer an und lernen dabei einige für das CSSFramework wichtige PHP-Befehle kennen. ToDo: Das Seitentemplate »fe_page.tpl« im Backend öffnen 1. Öffnen Sie im Backend-Modul Templates den Ordner blaues_theme. 2. Klicken Sie zum Bearbeiten der fe_page.tpl auf das blau-weiße Symbol (2. Symbol von rechts).
186
Know-how: Das CSS-Framework von Contao
Jetzt sehen Sie den Quelltext des Seitentemplates in einem Editorfenster. Am Anfang des Quelltextes stehen ein paar PHP-Anweisungen, die unter anderem den DOCTYPE und den Seitentitel definieren. Nach dem Titel überspringen Sie ein paar Meta-Elemente und landen bei einigen für das CSS-Framework sehr wichtigen Zeilen: Listing 7.7
Die Zeile echo $this->framework heißt frei übersetzt: »Schreibe den Wert der Variablen $this->framework in den Quelltext der Startseite.« In dieser Variablen werden einige Einstellungen aus dem Seitenlayout gespeichert, wie z. B. die Breite und Ausrichtung des Layouts und die Spaltenkonfiguration. Das Ergebnis dieser Anweisung sehen Sie in Listing 7.8, wobei ich Unwichtiges weggelassen und einige Kommentare ergänzt habe: <style type="text/css" media="screen"> Listing 7.8
Die Ausgabe von »$this->framework«
Der Style-Block am Anfang des Listings enthält zwischen den XHTML-kompatiblen Kommentarzeichen (das ist das wirre Zeug nach <style> und vor ) das CSS für die Einstellungen, die Sie im Seitenlayout »Standardlayout« gemacht haben:
187
7.10
7
Webseiten gestalten: Contao und CSS
왘
einen zentrierten Wrapper mit einer Breite von 960px
왘
die zwei Spalten #left und #right mit je 182px Breite
왘
den Hauptbereich #main mit einem margin-left und margin-right von je 182px
Nach diesem Style-Block werden zwei weitere Stylesheets aufgerufen: 왘
die Datei system/contao.css
왘
die Datei system/iefixes.css in einem Conditional Comment für IE7 oder ältere Versionen
Diese beiden Stylesheets gehören zum CSS-Framework und werden ab Seite 188 näher vorgestellt. Ein Style-Block? Ist das nicht unelegant? Viele gestandene CSSler werden sich bei dem Anblick eines Style-Blocks im Head der Seite wundern, gilt CSS in einem Style-Block doch eher als unschön. CSS in der HTMLDatei ist aber ein völlig legitimer Bestandteil der Kaskade, und das im Seitenlayout definierte Grundgerüst als Style-Block einzufügen ist eine gute Idee: So kann das CSS-Framework von Contao auch in externen Stylesheets problemlos genutzt werden.
7.10.3 Stylesheets einbinden: »$this->stylesheets« und »$this->head« Nach $this->framework werden im HTML-Quelltext die im Seitenlayout angekreuzten internen Stylesheets eingebunden. Die Anweisung echo $this->stylesheets lädt für jedes aktivierte interne Stylesheet ein link-Element, und zwar in genau der Reihenfolge, in der die Stylesheets im Seitenlayout aufgelistet sind. Wenn kein internes Stylesheet vorhanden ist, weil Sie zum Beispiel ausschließlich mit externen Stylesheets arbeiten, wird hier schlicht und einfach gar nichts eingefügt. Ganz am Ende des Headbereichs steht noch eine Zeile mit der Anweisung echo $this->head, die im Seitenlayout im Feld Zusätzliche -Tags definierte zusätzliche HTML-Elemente einfügt. Dieses Feld haben Sie bei der Einbindung des externen Stylesheets bereits kennengelernt.
7.10.4 Das CSS-Framework von Contao aus Benutzersicht Aus der Sicht eines normalen Backend-Benutzers sieht das CSS-Framework sehr viel komfortabler aus: Ein normaler Benutzer benutzt das CSS-Framework ganz
188
Know-how: Das CSS-Framework von Contao
einfach über die Einstellungen im Backend-Modul Themes 폷 Seitenlayouts. Abbildung 7.18 verdeutlicht diesen Sachverhalt sehr schön.
Abbildung 7.18 Das CSS-Framework von Contao aus Benutzersicht
Und so finden die Seitenlayout-Einstellungen aus Abbildung 7.18 den Weg in den Quelltext: 1 Kopf- und Fußzeile werden über $this->framework eingefügt. 2 Die Spaltenkonfiguration wird ebenfalls über $this->framework eingefügt. 3 Interne Stylesheets werden über $this->stylesheets eingebunden. 4 Breite und Ausrichtung des Layouts werden per $this->framework bestimmt.
189
7.10
7
Webseiten gestalten: Contao und CSS
7.10.5 Der Kern des CSS-Frameworks: »system/contao.css« Das Stylesheet contao.css aus dem Systemordner ist ein wichtiger Teil des Framework-Kerns und umfasst nur wenige, im folgenden Listing etwas platzsparend dargestellte Zeilen: body{ margin: 0; padding: 0; font-size: 100.01 %; text-align: left; position: relative; } select, input, textarea { font-size: 99 %; } form { margin: 0; padding: 0; } img { border: 0; } #left { float: left; } #right { float: right; } #main { width: auto; position: relative; } .inside { position: relative; text-align: left; } .block{overflow: hidden;} .clear,#clear{ height: 0.1px; font-size: 0.1px; line-height: 0.1px; clear: both; } .invisible{ width: 0px; height: 0px; left: –1000px; top: –1000px; position: absolute; overflow: hidden; display: inline; } Listing 7.9
Das Stylesheet »contao.css« – der harte Kern des Frameworks
Am Anfang werden ein paar Abstände und Rahmenlinien definiert und danach die drei Hauptspalten positioniert: 왘
Das in allen Layoutbereichen enthaltene innere DIV wird mit .inside relativ positioniert und dient somit als Bezugspunkt für darin enthaltene absolute Positionierungen.
왘
Die Klasse .block bekommen alle Artikel und Inhaltselemente, und mit overflow:hidden sorgen Sie dafür, dass darin enthaltene Floats umschlossen werden.
190
Know-how: Das CSS-Framework von Contao
Elemente, die einen Floatzustand beenden sollen, bekommen die Klasse .clear oder die ID #clear und werden so gut wie unsichtbar gemacht. Letzteres ist dann der Hauptzweck der Klasse .invisible. Das Umschließen von gefloateten Elementen Falls Ihnen der Trick mit der Klasse .block und dem overflow:hidden nichts sagt, können Sie sich im ersten Teil von Little Boxes ausführlich informieren: 왘
Kap. 14 – Containing Floats: gefloatete Elemente einschließen http://bit.ly/9mTifx
Das Umschließen von Floats ist beim Layouten mit CSS eine absolute Basistechnik und sollte von jedem Webdesigner verstanden werden.
7.10.6 Patches für IE6 und 7: »system/iefixes.css« Der ewige Refrain ist für die meisten Weblayouts das Gepatche für die Internet Explorer. Bei Contao finden Sie die wichtigsten Flicken im Stylesheet iefixes.css: * html .block {overflow: auto; zoom: 1;} * html #container, * html .mod_article {zoom: 1;} * html #left, * html #right {display: inline;} * html a, * html a:hover {background-color: transparent;} * html i, * html em{ overflow: visible; display: inline-block;} body {margin-left: 1px;} *:first-child + html #main {position: static;} Listing 7.10
Die Patches für Internet Explorer 6 und 7
Und hier ist die Erklärung dieser Zeilen: 왘
In der Klasse .block wird mit zoom:1 für alle Inhaltselemente vorsorglich schon mal hasLayout aktiviert.
왘
Das display:inline für die gefloateten Seitenspalten wirkt dem berüchtigten Double Float Margin-Bug entgegen und verhindert eine Verdopplung der Außenabstände.
왘
Die Zeilen für Hyperlinks und kursive Elemente dienen der Behebung des Guillotine- und des Italics-Bugs.
왘
Der linke Außenabstand von 1px für body hilft in bestimmten Situationen bei der Ausrichtung von Hintergrundbildern.
왘
Last, but not least sorgt die letzte Zeile dafür, dass die Hauptspalte #main im IE7 korrekt ausgerichtet und gegebenenfalls gezoomt wird.
191
7.10
7
Webseiten gestalten: Contao und CSS
Was bitte ist »hasLayout«? Falls Ihnen der Begriff hasLayout nichts sagt, können Sie sich z. B. in Little Boxes 1 darüber informieren: 왘
Der Internet Explorer und hasLayout http://bit.ly/b1iFsf
Ab Internet Explorer 8 ist das Konzept Geschichte, und das ist auch gut so.
192
In diesem Kapitel geht es ausschließlich um Navigation. Sie lernen die Navigationsmodule von Contao kennen, die Ihnen die Erstellung einer übersichtlichen Navigation erleichtern, egal wie viele Seiten die Site hat.
8
Navigationen erstellen in Contao
Eine Website ist in gewisser Weise wie ein öffentliches Gebäude. Beide werden gebaut, um Besucher zu empfangen, und bei beiden sollten die Besucher sich auf Anhieb zurechtfinden und möglichst schnell an ihr Ziel gelangen. Ein Mittel dazu ist eine gute Navigation, und in diesem Kapitel erfahren Sie, welche Navigationsmöglichkeiten es in Contao von Haus aus gibt.
8.1
Übersicht: Seiten, Module und Artikel
Bevor Sie sich in diesem Kapitel intensiv der Arbeit mit Navigationsmodulen widmen, möchte ich kurz das Grundprinzip der Zusammenarbeit von Seiten, Modulen und Artikeln in Contao erläutern: 왘
Eine Seite besteht standardmäßig aus bis zu fünf Layoutbereichen: Kopfzeile, linke Spalte, Hauptspalte, rechte Spalte und Fußzeile.
왘
Der Inhalt für diese Bereiche kommt entweder aus einem Artikel oder aus einem Frontend-Modul.
왘
Im Seitenlayout werden Artikel und Frontend-Module einem der standardmäßig fünf Layoutbereiche zugeordnet.
Auf der Startseite der Beispielsite sieht das so aus wie in Abbildung 8.1. In diesem Kapitel geht es um die Arbeit mit Navigationsmodulen. Artikel und Inhaltselemente sowie andere Module kommen dann Stück für Stück ab dem nächsten Kapitel dran.
193
8
Navigationen erstellen in Contao
Abbildung 8.1
8.2
Inhalte stammen aus Modulen oder aus Artikeln
Die Navigationsmodule im Überblick
Navigationen werden in Contao durch Module erzeugt, und für verschiedene Arten von Navigationen gibt es verschiedene Modultypen. Abbildung 8.2 zeigt die verschiedenen Navigationsmodule, die Contao von Haus aus kennt.
Abbildung 8.2
Neues Modul erstellen – die Navigationsmodule
Hier eine kurze Beschreibung dieser Navigationsmodule:
194
Die Seitenstruktur der Beispielsite erweitern
왘
Navigationsmenü Der wohl wichtigste Modultyp. Erstellt basierend auf dem Seitenbaum eine ungeordnete Liste mit Links und kann sehr flexibel konfiguriert werden. Ob die Navigation im Browser vertikal oder horizontal erscheint, entscheidet das CSS, nicht das Modul.
왘
Individuelle Navigation Erstellt ein Navigationsmenü aus beliebigen Seiten. Gut geeignet zur Erstellung einer Meta-Navigation mit z. B. Kontakt, Impressum & Co.
왘
Sitemap Inhaltsverzeichnis. Übersicht. Erstellt eine Auflistung aller Seiten aus dem Seitenbaum, die veröffentlicht und nicht versteckt sind.
왘
Quicknavigation Erstellt ein Dropdown-Menü, mit dem man zu einer bestimmten Seite springen kann. Quicknavigation ist ein Navigationsmenü als Dropdown-Menü und bildet den kompletten Seitenbaum oder einen Teil davon ab.
왘
Quicklink Erstellt wie Quicknavigation ein Dropdown-Menü, aber aus beliebigen Seiten. Quicklink ist eine Individuelle Navigation als Dropdown-Menü.
왘
Navigationspfad Auch bekannt als »Breadcrumb« oder »Sie-sind-hier«. Sehr nützlich zur Orientierung für Besucher auf Websites mit mehr als zwei oder drei Navigationsebenen.
왘
Buchnavigation und Artikelnavigation Erstellen beide eine Navigation, mit der man innerhalb von Seiten bzw. Artikeln vorwärts oder rückwärts gehen kann.
Sie haben also jede Menge Auswahl.
8.3
Die Seitenstruktur der Beispielsite erweitern
In Abschnitt 6.3 haben Sie ein Navigationsmodul namens Navigation – Hauptnavi erstellt, in der linken Spalte eingebaut und dann in Abschnitt 7.6, »Übung: Gestaltung der Navigation per CSS«, per CSS gestaltet. Diese Navigation ist der Ausgangspunkt für die folgenden Ausführungen. In diesem Abschnitt wird zunächst die Seitenstruktur der Beispielsite um ein paar Seiten und Unterseiten erweitert, damit man mit den Navigationsmodulen ein bisschen besser spielen kann. Abbildung 8.3 zeigt den Seitenbaum nach der Erweiterung der Seitenstruktur im folgenden ToDo.
195
8.3
8
Navigationen erstellen in Contao
Abbildung 8.3
Die erweiterte Seitenstruktur im Backend
Im folgenden ToDo erstellen Sie die neuen Seiten. ToDo: Die Seitenstruktur der Beispielsite erweitern 1. Öffnen Sie das Backend-Modul Seitenstruktur. 2. Klicken Sie oben im Arbeitsbereich auf Neue Seite. 3. Fügen Sie die neue Seite unterhalb der Seite Nachrichten auf derselben Ebene ein, indem Sie neben Nachrichten auf das braune Symbol mit dem Pfeil nach unten klicken. 4. Seitenname: »Artikel erstellen«. Seite veröffentlichen. Klicken Sie auf Speichern und Schliessen. 5. Klicken Sie oben im Arbeitsbereich auf Neue Seite. 6. Erstellen Sie eine Unterseite zu Artikel erstellen, indem Sie neben Artikel erstellen ganz rechts außen auf das blinkende, braune Symbol mit dem Pfeil nach rechts klicken. 7. Seitenname: »Text und Bilder«. Veröffentlichen. Speichern und neu. 8. Erstellen Sie eine weitere Unterseite mit dem Namen »Weitere Elemente«. Veröffentlichen. Speichern und neu. 9. Erstellen Sie eine dritte Unterseite namens »Videos«. Veröffentlichen. Klicken Sie auf Speichern und Schliessen. 10. Erstellen Sie die übrigen Seiten aus Abbildung 8.3: 왘
»Erweiterungen« mit den Unterseiten »Kalender«, »FAQ« und »Newsletter«
왘
»Sitemap« unterhalb von Impressum auf derselben Ebene
11. Vergessen Sie nicht, alle Seiten zu veröffentlichen, und erstellen Sie für jede Seite ein Inhaltselement vom Typ »Text« mit einer h1-Überschrift und ein ganz klein bisschen Blindtext darunter.
196
Vertikale Navigation mit zwei Ebenen
Die Reihenfolge der Seiten können Sie mit dem blauen Verschiebepfeil auch nachträglich jederzeit verändern. Nach diesem ToDo werden die neu erstellten Seiten in der Navigation bereits angezeigt, aber, wie Abbildung 8.4 zeigt, sehen die Unterseiten im Browser genauso aus wie die Seiten der ersten Ebene. Das und noch ein bisschen mehr wird im nächsten Abschnitt geändert.
Abbildung 8.4
8.4
Die Hauptnavigation nach der Erweiterung
Vertikale Navigation mit zwei Ebenen
Die Navigation hat nach der Erweiterung noch zwei Fehler: Sie ist erstens ziemlich lang, und zweitens kann man die Navigationsebenen optisch nicht unterscheiden. In diesem Abschnitt werden Sie im ersten Schritt ein paar Seiten verstecken, um die Navigation etwas zu verkürzen. Im zweiten Schritt gestalten Sie dann die zweite Navigationsebene so, dass sie auch als solche erkennbar ist.
197
8.4
8
Navigationen erstellen in Contao
Schritt 1: Seiten im Menü verstecken Im ersten Schritt blenden Sie die Seiten Kontakt, Impressum und Sitemap aus, sodass sie in der Hauptnavigation nicht mehr erscheinen. Dazu gibt es in Contao eine Funktion mit dem treffenden Namen Im Menü verstecken. Die drei versteckten Seiten werden in Abschnitt 8.7, »Metanavigation: Eine »Individuelle Navigation«, übrigens mit einer individuellen Navigation wieder sichtbar gemacht und als Metanavigation rechts oben im Kopfbereich platziert. Aber zunächst einmal verstecken Sie die Seiten im folgenden ToDo, und zwar mithilfe der superpraktischen Funktion Mehrere bearbeiten. ToDo: Seiten im Menü verstecken 1. Öffnen Sie das Backend-Modul seitenstruktur. 2. Klicken Sie oben rechts im Arbeitsbereich auf Mehrere bearbeiten. 3. Markieren Sie die drei Seiten Kontakt, Impressum und Sitemap. 4. Klicken Sie rechts unten auf die Schaltfläche Bearbeiten. 5. Aktivieren Sie die Optionen Seitenname (relativ weit oben) und Im Menü verstecken (relativ weit unten). 6. Klicken Sie auf die Schaltfläche Weiter. 7. Kontrollieren Sie die Seitennamen, und aktivieren Sie die Kontrollkästchen Im Menü verstecken. 8. Klicken Sie auf Speichern und Schliessen.
Abbildung 8.5
198
»Kontakt«, »Impressum« und »Sitemap« sind versteckt.
Vertikale Navigation mit zwei Ebenen
Das Symbol der Seiten im Seitenbaum verändert sich von rot zu grau, um anzudeuten, dass diese Seiten im Menü nicht angezeigt werden. Im Frontend sind die drei Seiten aus der Navigation verschwunden (Abbildung 8.5). Schritt 2: Der Modultyp »Navigationsmenü« im Detail In der Regel wird ein Menü mit vielen Unterpunkten nicht sofort komplett angezeigt, sondern die zweite Ebene wird erst eingeblendet, wenn der entsprechende Menüpunkt der ersten Ebene ausgewählt wurde. Um das zu erreichen, können Sie in Contao die Einstellungen im Bereich MenüKonfiguration entsprechend ändern. Abbildung 8.6 zeigt die aktuellen Einstellungen für das Modul Navigation – Hauptnavi.
Abbildung 8.6
Menü-Konfiguration – »Startlevel«, »Stoplevel« und »Hard Limit«
Im Bereich Menü-Konfiguration gibt es vier Optionen zur Konfiguration des Navigationsmoduls, von denen momentan drei wichtig sind: 왘
Startlevel Der Startlevel legt fest, ab welcher Ebene die Menüpunkte angezeigt werden. Der Standardwert »0« bewirkt, dass das Modul die Navigation ab der obersten Ebene darstellt. »1« würde die oberste Ebene weglassen und die Menüpunkte erst ab der zweiten Ebene anzeigen. Das ist zum Beispiel bei einem Untermenü sehr praktisch.
199
8.4
8
Navigationen erstellen in Contao
왘
Stoplevel Der Stoplevel legt fest, bis zu welcher Ebene die Menüpunkte angezeigt werden. Der Standardwert »0« und bedeutet: »Zeige alle Ebenen an.« Der Wert »1« zeigt nur die erste Ebene, blendet aber bei Aktivierung des Menüpunkts eventuelle Unterpunkte ein.
왘
Hard Limit Das Hard Limit sorgt dafür, dass der Stoplevel beim Wort genommen wird. Jenseits des Stoplevels werden keine Unterseiten angezeigt. Das ist z. B. sinnvoll für eine horizontale Navigation, die immer nur die erste Ebene darstellen soll. Die Unterpunkte ab der zweiten Ebene können dann in einer getrennten vertikalen Navigation angezeigt werden.
Das ist mit ein bisschen Übung recht einfach und vor allem sehr vielseitig. Tabelle 8.1 zeigt einige Kombinationsmöglichkeiten von Startlevel, Stoplevel und Hard Limit. Startlevel
Stoplevel
Hard Limit
In der Navigation sichtbar:
0
0
Nein
Alle Ebenen
0
1
Nein
Nur die erste Ebene. Unterpunkte erst nach Klick.
0
1
Ja
Nur die erste Ebene. Unterpunkte nie.
Tabelle 8.1
Kombinationen von »Startlevel«, »Stoplevel« und »Hard Limit«
Für die vertikale Navigation aus der Beispielsite ist die zweite Einstellung am sinnvollsten: Nur erste Ebene. Unterpunkte erst nach Klick. Und das machen Sie im folgenden ToDo. ToDo: Vertikale Navigation konfigurieren 1. Öffnen Sie das Modul Navigation – Hauptnavi zur Bearbeitung. 2. Lassen Sie den Startlevel auf »0«. 3. Ändern Sie den Wert für den Stoplevel auf »1«. 4. Lassen Sie das Hard Limit deaktiviert. 5. Klicken Sie auf Speichern und Schliessen.
Mit diesen Einstellungen wird die zweite Ebene nur angezeigt, wenn der entsprechende Menüpunkt ausgewählt wurde. Abbildung 8.7 zeigt die Navigation nach dem Aufruf der Startseite. Die Unterpunkte zu den Seiten Artikel erstellen und Erweiterungen werden erst nach dem Anklicken der Menüpunkte angezeigt.
200
Vertikale Navigation mit zwei Ebenen
Abbildung 8.7 Unterpunkte werden erst bei Aktivierung angezeigt.
Schritt 3: Die zweite Navigationsebene per CSS gestalten Das HTML für die erste Navigationsebene haben Sie auf Seite 128 in Listing 6.2 bereits kennengelernt, und das HTML für die zweite Navigationsebene kommt jetzt. Tabelle 8.2 zeigt einen Überblick über die HTML-Elemente und CSS-Klassen, die der Modultyp Navigationsmenü im Quelltext zur Verfügung stellt. Elemente
Klasse
Bedeutung
div
mod_navigation
Für Modultyp »Navigationsmenü«
a
invisible
Skiplink vor der Navigation
ul
level_x
Navigationsebene: level_1 etc.
li
keine Klasse
Nicht ausgewählter Menüpunkt
li, a, span
first
Erstes Listenelement einer Liste oder Link bzw. span im ersten Listenelement
li, a, span
last
Letztes Listenelement einer Liste oder Link bzw. span im letzten Listenelement
li, span
active
Der aktive Navigationspunkt
li, a, span
submenu
Enthält Untermenü.
li, a
trail
Enthält Untermenü mit aktivem Menüpunkt.
Tabelle 8.2
CSS-Klassen für den Modultyp »Navigationsmenü«
Besonders erwähnenswert sind die Klassen submenu und trail: Wenn ein li-Element ein Untermenü enthält, bekommt es ebenso wie die Links darin die Klasse
201
8.4
8
Navigationen erstellen in Contao
submenu. Passender Name. Die Klasse trail wird Listenelement und Link hinzugefügt, wenn es im Untermenü einen aktiven Unterpunkt gibt. Die Klasse submenu sehen Sie im folgenden ToDo in Aktion, um den übergeordneten Menüpunkt farblich genauso zu gestalten wie die Unterpunkte. ToDo: Die zweite Navigationsebene gestalten 1. Öffnen Sie das Stylesheet navigation.css zur Bearbeitung. 2. Geben Sie den Links der ersten Ebene dieselbe Hintergrundfarbe wie dem Kopf- und Fußbereich: /* Menüpunkte gestalten */ #left .mod_navigation a, #left .mod_navigation span { display: block; text-decoration: none; background-color: #89adcd; color: #000; padding: 8px 8px 8px 18px; border-top: 1px solid #fff; }
3. Fügen Sie nach den vorhandenen Styles folgende CSS-Regeln hinzu: /* Zweite Navigationsebene vertikal */ /* Unterpunkte links einrücken */ #left .mod_navigation li li a, #left .mod_navigation li li span { margin-left: 18px; } /* Hervorhebung für Unterpunkte */ #left .mod_navigation li li a:hover, #left .mod_navigation li li a:focus { background-color: #2D5B85; color: #fff; } /* Links im Listenelement einfärben */ #left .mod_navigation .submenu a { background-color: #ADCBE6; color: #000; }
4. Speichern Sie das Stylesheet.
Im Browser sieht die Navigation jetzt so aus wie in Abbildung 8.8, auf der die Unterseite Weitere Elemente angezeigt wird.
202
Horizontale Navigation mit zwei Ebenen
Abbildung 8.8
Hervorhebungen in der Navigation
Der übergeordnete Menüpunkt Artikel erstellen hat die gleiche helle Farbe wie die nicht ausgewählten Unterpunkte Text und Bilder und Videos, um Besuchern optisch zu signalisieren, in welcher Abteilung er sich befindet. Je mehr Unterpunkte vorhanden sind, desto deutlicher wird dieser Effekt. Diese Hervorhebung ist dank der Klasse submenu sehr einfach umzusetzen.
8.5
Horizontale Navigation mit zwei Ebenen
Die Verwandlung der vertikalen Navigation in eine horizontale besteht im Wesentlichen aus zwei Schritten: Zuerst verschieben Sie das Modul Navigation – Hauptnavi im Seitenlayout von der linken Spalte in die Kopfzeile. Danach gestalten Sie die Navigation per CSS, und zwar gleich auf zwei verschiedene Varianten: einmal als horizontale Navigation mit zwei Ebenen und einmal als Dropdown-Menü. Die Einstellungen für das Navigationsmodul Navigation – Hauptnavi ändern sich gegenüber der vertikalen Navigation nicht (Tabelle 8.3).
203
8.5
8
Navigationen erstellen in Contao
Startlevel
Stoplevel
Hard Limit
In der Navigation sichtbar:
0
1
Nein
Nur die erste Ebene. Unterpunkte erst nach Klick.
Tabelle 8.3
»Startlevel«, »Stoplevel« und »Hard Limit« für die Navigation
Schritt 1: Das Navigationsmodul in die Kopfzeile verschieben Im folgenden ToDo verschieben Sie das Navigationsmodul Navigation – Hauptnavi von der linken Spalte in die Kopfzeile. ToDo: Modul »Navigation – Hauptnavi« in die Kopfzeile verschieben 1. Öffnen Sie das Backend-Modul Themes 폷 Seitenlayouts. 2. Öffnen Sie das Seitenlayout Standardlayout [Standard]. 3. Ändern Sie im Bereich Frontend-Module die Zuweisung für das Modul Navigation – Hauptnavi von Linke Spalte zu Kopfzeile. 4. Klicken Sie auf Speichern und Schliessen.
Abbildung 8.9 zeigt, dass die Navigation nach diesem ToDo zweifelsohne in der Kopfzeile sitzt, allerdings noch nicht wirklich horizontal.
Abbildung 8.9
Das Navigationsmodul befindet sich jetzt im Kopfbereich.
Die Navigationsliste erscheint ziemlich ungestaltet im Kopfbereich der Seite, weil die Selektoren zur Gestaltung für die vertikale Navigation alle mit #left beginnen und deshalb im Augenblick nichts mehr selektieren, weil die Navigation in #header verschoben wurde.
204
Horizontale Navigation mit zwei Ebenen
Schritt 2: Die Abstände im Kopfbereich vorbereiten Bevor Sie die Navigationsliste im Kopfbereich gestalten, sind in bildschirm.css noch ein paar kleinere Vorbereitungen im Header nötig. Das padding wird rechts, unten und links auf null gesetzt, damit die Navigationsleiste bis ganz an den Rand von #header reicht. Den danach im Kopfbereich fehlenden 18px-Abstand vom linken Rand weisen Sie der h1-Überschrift und dem Slogan als margin-left direkt zu. ToDo: Die Abstände für den Header anpassen 1. Öffnen Sie das Stylesheet bildschirm.css in einem Editor. 2. Passen Sie die Werte für padding und margin in den Styles am Anfang des Stylesheets wie im folgenden Listing beschrieben an: #header { background-color: #89ADCD; padding: 18px 0 0 0; margin-top: 1em; } #header h1 { margin-top: 0; margin-left: 18px; } #header p#slogan { margin-left: 18px;
}
3. Speichern Sie das Stylesheet.
Die Überschrift und der Absatz haben ihre Position nach diesem ToDo nicht verändert, die Navigation hingegen sitzt ganz links am Rand. Schritt 3: Die erste Navigationsebene gestalten So viel zu den Vorbereitungen. Nach diesem Abschnitt sieht die erste Ebene der horizontalen Navigation im Browser so aus wie in Abbildung 8.10.
Das CSS zur Gestaltung der horizontalen Navigation
Horizontale Navigation mit zwei Ebenen
Dieses CSS gestaltet eine normale, gefloatete horizontale Navigation mit einer Ebene. Besonders erwähnenswert sind die folgenden Details: 왘
Das umgebende div.mod_navigation umschließt die gefloatete Liste, weil die Klasse block ihm ein overflow:hidden zuweist.
왘
Die vom Navigationsmodul für das erste Listenelement vergebene Klasse first vereinfacht das Setzen des ersten senkrechten Trennstriches.
왘
Die eigentliche Gestaltung der Navigation erfolgt in den Deklarationen für die Hyperlinks und das span-Element.
왘
Die Klasse trail sorgt dafür, dass auch der übergeordnete Menüpunkt hervorgehoben wird, wenn später ein Unterpunkt aktiv ist.
Im folgenden ToDo gestalten Sie die horizontale Navigation mit den Styles aus Listing 8.1. ToDo: Die horizontale Navigation gestalten 1. Öffnen Sie das Stylesheet navigation.css in einem Editor. 2. Fügen Sie am Anfang des Stylesheets die Styles aus Listing 8.1 ein, und zwar nach der Anweisung @media { und vor der Gestaltung der vertikalen Navigation. Der Lerneffekt ist am größten, wenn Sie nach jedem Style kurz speichern und sich die Auswirkungen im Browser anschauen. 3. Speichern Sie das Stylesheet navigation.css.
Die horizontale Navigation ist voll funktionsfähig, aber wenn Sie auf die Menüpunkte Artikel erstellen und Erweiterungen klicken, ist die zweite Ebene noch ungestaltet. Es gibt dabei zwei mögliche Lösungen, die durch ein unterschiedliches CSS realisiert werden: 1. ein horizontales Menü mit zwei Ebenen 2. ein Dropdown-Menü, das die Unterpunkte einblendet, wenn die Maus über den entsprechenden Hauptpunkt fährt Diese beiden Varianten lernen Sie jetzt nacheinander kennen. Schritt 4: Das CSS für eine horizontale Navigation mit zwei Ebenen Abbildung 8.11 zeigt die Navigation am Ende dieses Abschnitts mit einer zweiten horizontalen Ebene, die nur sichtbar wird, wenn ein Menüpunkt mit Unterseiten ausgewählt wird. Das funktioniert sogar im IE6.
207
8.5
8
Navigationen erstellen in Contao
Abbildung 8.11 Die horizontale Navigation mit zwei Ebenen
Die Gestaltung der zweiten Ebene ist mit drei einfachen Styles erledigt: 왘
Zunächst geben Sie dem div-Element #container, das den gesamten Inhaltsbereich umschließt, ein bisschen padding nach oben, um Platz für die zweite Ebene zu schaffen.
왘
Danach positionieren Sie die ungeordnete Liste für die Untermenüs absolut und geben ihr eine helle Hintergrundfarbe.
왘
Im dritten Schritt werden für die Listenelemente noch die von der ersten Ebene geerbten Rahmenlinien entfernt.
Diese drei Schritte machen Sie im folgenden ToDo. Die Einstellungen für das Navigationsmodul sind immer noch unverändert: Startlevel auf 0, Stoplevel auf 1 und kein Hard Limit. ToDo: Die zweite horizontale Ebene gestalten 1. Öffnen Sie das Stylesheet navigation.css, und fügen Sie nach der Gestaltung der ersten Ebene folgende CSS-Regeln hinzu: /* ====================================== Horizontale Navigation – Zweite Ebene ====================================== */ #container { padding-top: 1.5em; } #header ul.level_2 { position: absolute; left: auto; top: auto; background-color: #ddd;
208
Horizontale Navigation mit zwei Ebenen
ToDo: Die zweite horizontale Ebene gestalten (Forts.) } #header .level_2 li, #header .level_2 li.first { border: none; }
2. Speichern Sie das Stylesheet.
Alternative: Das CSS für eine Dropdown-Navigation Für eine Dropdown-Navigation müssen Sie im Prinzip nur wenige Änderungen vornehmen: Setzen Sie im Navigationsmodul den Stoplevel auf 0, und blenden Sie im CSS die zweite Navigationsebene aus und bei MouseOver wieder ein. Zunächst setzen Sie den Stoplevel im Navigationsmodul wieder auf 0, damit im Quelltext alle Menüpunkte vorhanden sind. Das ist nötig, damit sie per CSS bei Mausberührung sichtbar gemacht werden können. Startlevel
Stoplevel
Hard Limit
In der Navigation sind:
0
0
Nein
Alle Ebenen. Immer.
Tabelle 8.4
»Startlevel«, »Stoplevel« und »Hard Limit« für ein Dropdown-Menü
Im folgenden ToDo ändern Sie die Einstellungen für das Navigationsmodul. ToDo: Die Einstellungen für das Navigationsmodul ändern 1. Öffnen Sie das Backend-Modul themes 폷 Frontend-Module. 2. Öffnen Sie das Modul Navigation – Hauptnavi. 3. Setzen Sie den Stoplevel auf 0. 4. Klicken Sie auf Speichern und Schliessen.
Jetzt zeigt die horizontale Navigation immer alle Ebenen an und es fehlt nur noch das CSS für eine Dropdown-Navigation, um die zweite Ebene zu verstecken und bei einem MouseOver schön ordentlich wieder einzublenden. ToDo: Das CSS für eine horizontale Dropdown-Navigation 1. Öffnen Sie das Stylesheet navigation.css. 2. Kommentieren Sie die drei Styles zur Gestaltung der zweiten horizontalen Ebene aus. 3. Fügen Sie darunter die folgenden CSS-Regeln ein: /* ====================================== Horizontale Navigation – Dropdown
209
8.5
8
Navigationen erstellen in Contao
ToDo: Das CSS für eine horizontale Dropdown-Navigation (Forts.) ====================================== */ /* Listenelemente zweite Ebene untereinander */ #header .level_2 li { clear: both; border: none; } /* Zweite Ebene ausblenden */ #header .level_2 { position: absolute; left: –9999px; top: –9999px; overflow: hidden; display: inline; width: 0; height: 0; z-index: 1; /* "nach vorne", über den Inhaltsbereich */ } /* Zweite Ebene bei MouseOver einblenden */ #header li:hover .level_2 { left: auto; top: auto; overflow: auto; display: block; width: auto; min-width: 78px; height: auto; background-color: #ADCBE6; border-bottom: 1px solid #2D5B85; } #header .level_2 li.first { border: none; }
4. Speichern Sie das Stylesheet.
Im Browser sieht man zuerst nur die erste Menüebene. Die zweite Ebene wird erst sichtbar, wenn wie in Abbildung 8.12 der Mauszeiger über einen Menüpunkt der ersten Ebene fährt, der Unterseiten hat. Diese einfache Dropdown-Navigation verdeutlicht das Grundprinzip einer solchen Navigation, sollte aber vor einem realen Einsatz noch verfeinert werden. Sie kann zum Beispiel nicht per (TAB)-Taste bedient werden und funktioniert auch nicht im Internet Explorer 6. Einer guter Ausgangspunkt zur vertiefenden Lektüre ist der Artikel Dropdown low down, ein echter Klassiker der Webliteratur, der über zwanzig verschiedene Techniken zur Erstellung von Dropdown-Menüs im Überblick vorstellt: 왘
210
Dropdown low down von Tyssen Design http://bit.ly/dwK0le
Horizontale und vertikale Navigation zusammen
Abbildung 8.12 Eine CSS-basierte Dropdown-Navigation
Eine Dropdown-Navigation mit JavaScript Für fortgeschrittene Leser ist vielleicht ein von MacKP im Contao-Forum veröffentlichtes Tutorial interessant. Er hat die auf den MooTools basierende Dropdown-Navigation MenuMatic für Contao angepasst: 왘
MooTools Aufklappmenü MenuMatic in Contao benutzen http://bit.ly/caJjKq
Die Umsetzung ist etwas aufwendiger und nicht ganz ohne, aber das Ergebnis ist beeindruckend. Aber wie gesagt: Das ist eher etwas für Fortgeschrittene.
8.6
Horizontale und vertikale Navigation zusammen
In diesem Abschnitt kombinieren Sie eine horizontale Navigation mit einer vertikalen, erstellen also gewissermaßen eine »horikale Navigation«. Horizontale und vertikale Navigation praktizieren dabei eine Art Arbeitsteilung: Die horizontale Navigation zeigt die erste Navigationsebene, die vertikale, sofern vorhanden, die Unterseiten. Dazu ändern Sie im ersten Schritt den Stoplevel für die horizontale Navigation und erstellen danach ein neues Navigationsmodul namens Navigation – Unternavi, das Sie in der linken Spalte platzieren. Schritt 1: Die Vorbereitung der horizontalen Navigation Im ersten Schritt schränken Sie die horizontale Navigation so ein, dass immer nur die erste Navigationsebene dargestellt wird. Dazu aktivieren Sie im Modul Navigation – Hauptnavi das Hard Limit. Tabelle 8.5 zeigt die Konfiguration im Überblick:
211
8.6
8
Navigationen erstellen in Contao
Startlevel
Stoplevel
Hard Limit
In der Navigation sind:
0
1
Ja
Nur die erste Ebene. Unterpunkte nie.
Tabelle 8.5
»Stoplevel« auf »1« und »Hard Limit« aktivieren
Im folgenden ToDo erledigen Sie genau diesen Schritt. ToDo: Den Stoplevel für das Modul »Navigation – Hauptnavi« ändern 1. Öffnen Sie das Backend-Modul Themes 폷 Module. 2. Öffnen Sie das Modul Navigation – Hauptnavi zur Bearbeitung. 3. Setzen Sie den Wert für den Stoplevel auf »1«. 4. Aktivieren Sie das Kontrollkästchen für Hard Limit. 5. Klicken Sie auf Speichern und Schliessen.
Schritt 2: Vertikales Untermenü in der linken Spalte erstellen Um in der linken Spalte ein Untermenü anzuzeigen, benötigen Sie ein neues Navigationsmodul mit den Einstellungen aus Tabelle 8.6. Startlevel
Stoplevel
Hard Limit
In der Navigation sind:
1
1
Nein
Nur die zweite Ebene. Unterpunkte erst nach dem Klick.
Tabelle 8.6
»Startlevel«, »Stoplevel« und »Hard Limit« für die Unternavigation
Ideal wäre es, wenn das Untermenü noch eine Überschrift hätte, in der automatisch immer der Name des Menüpunktes aus der ersten Ebene steht. Dazu benutzen Sie eine Spezialität von Contao, nämlich ein Insert-Tag: 왘
{{env::main_name}}
Ein Insert-Tag ist leicht zu erkennen: Am Anfang und am Ende stehen jeweils zwei geschweifte Klammern und in der Mitte ein doppelter Doppelpunkt. Vor dem doppelten Doppelpunkt steht ein Kürzel und danach ein Wert. Das Kürzel env ist kurz für environment (»Umgebungsvariable«), und der Wert main_name gibt den Namen der übergeordneten Hauptseite aus der ersten Ebene aus. Im folgenden ToDo erstellen und konfigurieren Sie das Navigationsmodul für die Unternavigation in der linken Spalte.
212
Horizontale und vertikale Navigation zusammen
ToDo: Navigationsmodul für Unternavigation erstellen und einbinden 1. Öffnen Sie das Backend-Modul Themes 폷 Module. 2. Klicken Sie oben im Arbeitsbereich auf Neues Modul. 3. Titel: »Navigation – Unternavi« Überschrift: {{env::main_name}} Modultyp: Navigationsmenü Startlevel: 1 Stoplevel: 1 Hard Limit: nein Alle anderen Optionen lassen Sie unverändert. 4. Klicken Sie auf Speichern und Schliessen. 5. Öffnen Sie das Seitenlayout Standardlayout [Standard] zur Bearbeitung. 6. Fügen Sie im Bereich Frontend-Module nach den Modulen für die Kopfzeile die Zeile Modul Navigation – Unternavi in der Spalte Linke Spalte hinzu. 7. Klicken Sie auf Speichern und Schliessen.
Abbildung 8.13 zeigt das Untermenü zu der Seite Erweiterungen in der linken Spalte. Und es ist schon gestaltet, da im Stylesheet navigation.css das CSS für eine vertikale Navigation noch vorhanden ist. Nur die Überschrift ist noch ein bisschen groß.
Abbildung 8.13
Die Unternavigation auf der Seite »Weitere Elemente«
213
8.6
8
Navigationen erstellen in Contao
Schritt 3: Die Überschrift für die Unternavigation gestalten Die Unternavigation selbst ist schon fertig gestaltet, aber die Überschrift ist wie gesagt noch ein bisschen zu groß. Das folgende ToDo enthält einen Vorschlag, wie die Überschrift für die Unternavigation verkleinert und fett hervorgehoben wird. Die fertige Navigation sieht im Browser so aus wie in Abbildung 8.14.
Abbildung 8.14
Die fertige Navigation
ToDo: Das vertikale Untermenü gestalten 1. Öffnen Sie das Stylesheet navigation.css im Editor. 2. Fügen Sie nach dem ersten Style zur Gestaltung der vertikalen Navigation die folgende Regel für die h1-Überschrift oberhalb des Menüs ein: #left .mod_navigation h1 { font-size: 14px; font-weight: bold; margin: 0 0 1em 0; }
3. Ändern Sie die Hintergrundfarbe für die vertikale Navigation wieder in das hellere Blau zurück: /* Menüpunkte gestalten */ #left .mod_navigation a, #left .mod_navigation span { display: block; text-decoration: none; background-color: #ADCBE6; color: #000; padding: 8px 8px 8px 18px;
Auf vielen Webseiten gibt es eine Navigation, die Links wie Kontakt, Impressum oder Sitemap enthält. Während die Links im Hauptmenü direkt zum Inhalt der Website führen, geht es bei diesen Links eher um Funktionen, die dem Besucher das Leben erleichtern und in gewisser Weise über dem Inhalt stehen. Deshalb wird dieser Navigationtyp auch als Servicenavigation oder Metanavigation bezeichnet. In diesem Abschnitt erstellen Sie ein neues Navigationsmodul namens Navigation – Metanavi, das auf dem Modultyp Individuelle Navigation basiert und rechts oben im Kopfbereich positioniert wird. Das Modul gibt die drei am Anfang des Kapitels versteckten Webseiten Kontakt, Impressum und Sitemap aus (Abbildung 8.15).
Abbildung 8.15
Die fertige Metanavigation rechts oben im Kopfbereich
Schritt 1: Das Modul »Navigation – Metanavi« erstellen Mit einer individuellen Navigation können Sie in Contao einen Navigationsbereich erstellen, in dem Sie beliebige Seiten aus dem Seitenbaum darstellen. Abbildung 8.16 zeigt die Eingabemaske für den Modultyp Individuelle Navigation im Backend. Im folgenden ToDo erstellen Sie eine individuelle Navigation.
215
8.7
8
Navigationen erstellen in Contao
Abbildung 8.16 Eingabeformular für eine »Individuelle Navigation«
ToDo: Das Modul für die Metanavigation erstellen 1. Öffnen Sie das Backend-Modul Themes 폷 Module. 2. Klicken Sie oben im Arbeitsbereich auf Neues Modul. 3. Titel: »Navigation – Metanavi« Modultyp: Individuelle Navigation 4. Aktivieren Sie im Bereich Seiten das Kontrollkästchen Auswahl ändern. 5. Wählen Sie die im Menü versteckten Seiten Kontakt, Impressum und Sitemap aus. 6. Klicken Sie auf Speichern und Schliessen.
Das Modul ist erstellt und wird im nächsten Schritt eingebunden. Schritt 2: Das Modul »Navigation – Metanavi« einbinden Da die Metanavigation auf allen Seiten an derselben Stelle erscheinen soll, wird das Modul genau wie die Haupt- und Unternavigation im Seitenlayout eingebunden.
216
Metanavigation: Eine »Individuelle Navigation«
ToDo: Das Modul für die Metanavigation einbinden 1. Öffnen Sie Backend-Modul Themes 폷 Seitenlayouts. 2. Öffnen Sie das Seitenlayout Standardlayout [Standard] zur Bearbeitung. 3. Duplizieren Sie im Bereich Frontend-Module die erste Zeile mit einem Klick auf das grüne Kreuz. 4. Ändern Sie die untere der beiden Zeilen so, dass das Modul Navigation – Metanavi in der Kopfzeile erscheint. 5. Klicken Sie auf Speichern und Schliessen.
Mit wenigen Klicks haben Sie das Modul Navigation – Metanavi erstellt und im Seitenlayout der Kopfzeile zugewiesen. Im Browser sieht der Header jetzt so aus wie in Abbildung 8.17. Das Modul ist drin. Der Rest ist CSS.
Abbildung 8.17 Modul »Navigation – Metanavi«, ungestaltet im Header
Schritt 3: Die Metanavigation im Quelltext Bevor Sie im nächsten Schritt die Metanavigation positionieren und gestalten, werfen Sie einen kurzen Blick auf das vom Modul Navigation – Metanavi erzeugte HTML. Das zuständige Template ist nav_default.tpl. Die URLs wurden aus Gründen der Übersichtlichkeit durch ein # ersetzt, der Menüpunkt Kontakt ist aktiv:
Das vom Modul »Navigation – Metanavi« erzeugte HTML
Der Kommentar verhindert, dass die interne ContaoSuchmaschine die Navigation indiziert. Umschlossen wird die ungeordnete Liste wieder von einem div-Element, das dieses Mal die Klasse mod_customnav hat. Der Rest ist ganz normal: Nach dem Skiplink folgt eine ungeordnete Linkliste mit Klassen, die Sie zur Gestaltung nutzen können. Schritt 4: Den Kopfbereich vorbereiten Im Ordner tl_files/themes/blaues_theme/grafiken wartet eine Grafik mit dem Namen header_gradient.jpg auf ihren Einsatz. Die Grafik gibt dem Header einen leichten Farbverlauf (»gradient«) und oben einen dunkelblauen Balken, in dem die Metanavigation erscheinen wird. Zur Vorbereitung des Kopfbereiches passen Sie im folgenden ToDo das obere Padding an und binden die Grafik ein. ToDo: Die Abstände für den Header anpassen 1. Öffnen Sie das Stylesheet bildschirm.css in einem Editor. 2. Passen Sie das oberen Padding und die Hintergrundformatierung für den Kopfbereich an wie im folgenden Listing beschrieben: #header {
Nach diesem Schritt sieht der Header aus wie in Abbildung 8.18.
Abbildung 8.18
Der Kopfbereich mit Hintergrundgrafik
Schritt 5: Die Metanavigation gestalten Jetzt fehlt nur noch die Gestaltung der Metanavigation. Die Links sollen nebeneinander erscheinen, und zwar oben rechts im Kopfbereich. Dazu benutzen Sie im folgenden ToDo eine absolute Positionierung. ToDo: Die Metanavigation positionieren und gestalten 1. Öffnen Sie das Stylesheet navigation.css im Editor. 2. Fügen Sie am Ende folgenden Style zur Positionierung der Metanavigation ein: /* ====================================== Metanavigation ====================================== */ #header .mod_customnav { position: absolute; top: –44px; right: 18px; font-size: 12px; }
3. Der folgende Style floatet die Listenelemente: #header .mod_customnav li { float: left; width: auto; list-style-type: none; margin: 0 ; }
219
8.7
8
Navigationen erstellen in Contao
ToDo: Die Metanavigation positionieren und gestalten (Forts.) 4. Jetzt werden die Links und das span-Element gestaltet: #header .mod_customnav a, #header .mod_customnav span { display: block; text-decoration: none; color: #fff; padding: 4px ; margin-left: 9px; } #header .mod_customnav a:hover, #header .mod_customnav a:focus { background: #89adcd; color: #000; } #header .mod_customnav span.active { background-color: #89adcd; color: #000; }
5. Speichern Sie das Stylesheet, und betrachten Sie die Seite im Browser.
Im Browser sehen die Webseiten nach diesem ToDo so aus wie in Abbildung 8.19.
Abbildung 8.19
Die fertige Metanavigation
Mit diesem Schritt ist das Navigationsgerüst für die Beispielsite fertig. Sie haben ohne Programmierung eine horizontale Hauptnavigation, eine vertikale Unternavigation und eine individuelle Metanavigation erstellt, die allesamt per CSS positioniert und gestaltet werden.
220
Sitemap: Das Inhaltsverzeichnis der Website
Die relativ absolute Positionierung Die Werte für die Eigenschaften zur Ausrichtung wie top und right orientieren sich am inneren div der Kopfzeile, weil dieses div die Klasse .inside hat, der im FrameworkStylesheet system/contao.css der Wert position:relative zugewiesen wird. Falls Sie den Trick mit der Kombination von absoluter und relativer Positionierung nicht kennen, können Sie sich in »Little Boxes 1« genauer darüber informieren: 왘
Absolute Positionierung kombiniert mit relativer Positionierung http://bit.ly/a5O4Kf
Diese Kombination ist eine nützliche Grundlagentechnik zur Positionierung.
8.8
Sitemap: Das Inhaltsverzeichnis der Website
Eine Sitemap ist eine Navigationshilfe, die einem Besucher alle für ihn verfügbaren Seiten der Site auflistet. Gerade für Erstbesucher ist eine solche Sitemap oft eine große Hilfe. Bei Contao gibt es natürlich ein entsprechendes Modul, das eine Sitemap automatisch generiert. Das Procedere ist dabei wie schon fast gewohnt: Zuerst erstellen Sie ein Modul, dann binden Sie es ein, und zum Schluss wird es gestaltet. Schritt 1: Ein Modul zur Erstellung einer Sitemap Das Modul zur Erstellung einer Sitemap gehört zu den Navigationsmodulen, und das Eingabeformular sieht so aus wie in Abbildung 8.20. Dieses Eingabeformular sollte inzwischen ziemlich selbsterklärend sein. Eine Wurzelseite als Startpunkt benötigen Sie nur, falls Sie keinen Startpunkt einer Website haben, und das Anzeigen geschützter bzw. versteckter Seiten sollte man sich gut überlegen. Wirklich wichtig ist hier die Definition der Referenzseite: Unterseiten werden automatisch übernommen, übergeordnete Seiten werden nicht angezeigt. Für eine komplette Sitemap bietet sich der Startpunkt einer Website als Referenzseite an, und genau das machen Sie im folgenden ToDo.
221
8.8
8
Navigationen erstellen in Contao
Abbildung 8.20
Das Eingabeformular zur Erstellung einer Sitemap
ToDo: Das Modul »Navigation – Sitemap« erstellen 1. Öffnen Sie das Backend-Modul Themes. 2. Öffnen Sie die Frontend-Module zur Bearbeitung. 3. Klicken Sie oben im Arbeitsbereich auf Neues Modul. 4. Geben Sie als Titel »Navigation – Sitemap« ein. 5. Wählen Sie aus der Liste Modultyp den Eintrag Sitemap. 6. Wählen Sie als Referenzseite den Startpunkt der Website. 7. Lassen Sie alle anderen Optionen unverändert. 8. Klicken Sie auf Speichern und Schliessen.
Das Modul existiert und wird im nächsten Schritt eingebunden. Schritt 2: Das Modul »Navigation – Sitemap« einbinden Bis jetzt haben Sie alle Navigationsmodule über das Seitenlayout mit den Webseiten verbunden, sodass die Module auf allen Seiten erscheinen. Um ein Modul nur auf einer Seite anzuzeigen, binden Sie es stattdessen in einen Artikel ein.
222
Sitemap: Das Inhaltsverzeichnis der Website
Dazu erstellen Sie auf der gewünschten Seite im gewünschten Artikel ein Inhaltselement vom Typ Modul und wählen dort das zuvor erstellte Navigationsmodul aus. Genau das machen Sie im folgenden ToDo. ToDo: Das Modul »Navigation – Sitemap« in einem Artikel einbinden 1. Öffnen Sie das Backend-Modul Artikel. 2. Öffnen Sie den Artikel Sitemap [Hauptspalte] zur Bearbeitung. 3. Fügen Sie unterhalb der h1-Überschrift ein bisschen beschreibenden Text ein. 4. Erstellen Sie darunter ein Neues element. 5. Wählen Sie als elementtyp den Eintrag Modul. 6. Wählen Sie den Eintrag Navigation – Sitemap (ID xx) aus der Liste Modul. 7. Klicken Sie auf Speichern und Schliessen.
Im Browser gibt es nach diesem ToDo eine bereits funktionierende, aber noch ungestaltete Sitemap (Abbildung 8.21).
Abbildung 8.21 Eine funktionierende, aber noch ungestaltete Sitemap
223
8.8
8
Navigationen erstellen in Contao
Schritt 3: Das HTML für das Modul »Navigation – Sitemap« Bevor Sie die Sitemap mit einigen wenigen Styles gestalten, werfen Sie wie immer einen Blick auf das vom Modul erzeugte HTML. Listing 8.3 zeigt einen Ausschnitt daraus.
Umgeben von einem div mit der Klasse mod_sitemap, werden die Links in einer verschachtelten ul präsentiert. Die Klassennamen für Listenelemente und Links lauten level_1, level_2 und submenu, genau wie bei den anderen Navigationsmodulen, die ebenfalls auf dem Template nav_default.tpl basieren. Schritt 4: Das CSS zur Gestaltung der Sitemap Im folgenden ToDo machen Sie die Sitemap mit wenigen Styles etwas übersichtlicher. ToDo: Die Sitemap gestalten 1. Öffnen Sie das Stylesheet navigation.css im Editor. 2. Fügen Sie am Ende des Stylesheets nach der Gestaltung der Metanavigation folgenden Kommentar ein:
3. Folgender Style entfernt den unteren Abstand von den inneren Listen: .mod_sitemap ul ul { margin-bottom: 0; }
4. Die nächsten beiden Styles gestalten die Listenelemente: .mod_sitemap li { list-style-type: none; margin-left: 0; /* 1. Ebene ohne Einzug links */ } .mod_sitemap li li { margin-left: 1.5em; } /* linker Einzug */
5. Die Links der ersten Ebene werden fett hervorgehoben: .mod_sitemap a { text-decoration: none; } .mod_sitemap .level_1 a { font-weight: bold; }
6. Die Links der unteren Ebenen sollen nicht fett sein: .mod_sitemap .level_2 a { font-weight: normal; }
7. Speichern Sie das Stylesheet.
Im Browser sieht die Sitemap jetzt so aus wie in Abbildung 8.22.
Abbildung 8.22 Die fertige Sitemap
225
8.8
8
Navigationen erstellen in Contao
8.9
Weitere Navigationsmodule
Zum Abschluss dieses Kapitels über Navigation möchte ich Ihnen die übrigen Navigationsmodule von Contao quasi im Schnelldurchgang vorstellen.
8.9.1
Quicknavigation und Quicklink
Die Modultypen Quicknavigation und Quicklink erstellen beide ein DropdownMenü, mit dem man direkt zu einer bestimmten Seite springen kann. Während eine Quicknavigation die komplette Seitenstruktur oder einen Ausschnitt daraus abbildet, kann ein Quicklink-Menü beliebige Seiten aus dem Seitenbaum enthalten. Quicknavigation und Quicklink sind also quasi die DropdownEntsprechungen zu den weiter oben vorgestellten Modultypen Navigationsmenü bzw. Individuelle Navigation. In Kapitel 16 erstellen Sie bei der Gestaltung der Startseite in der Sidebar ein Quicklink-Menü mit ein paar Lesetipps (ab Seite 410). Eine solche QuicklinkNavigation erzeugt folgendes HTML:
Lesetipps
Listing 8.4
Das HTML für eine Quicknavigation
Das sind ein div mit der Klasse mod_quicklink drumherum, eine Überschrift und ein Formular, das ein div mit der Klasse formbody enthält, in dem ein verstecktes Formularfeld, ein unsichtbares Label und als Hauptdarsteller eine Auswahlliste
226
Weitere Navigationsmodule
und ein Submit-Button aufbewahrt werden. Erzeugt wird dieses HTML vom Template mod_quicklink.tpl. Der Modultyp Quicknavigation funktioniert genauso, bekommt aber im umgebenden div die Klasse .mod_quicknav und basiert auf dem Template mod_quicknav.tpl.
8.9.2
Navigationspfad: Die Breadcrumb-Navigation »Sie sind hier«
Sich zu verirren und die Orientierung zu verlieren gehört zu den Urängsten des Menschen. So hatte sich Hänsel auf dem Weg in den tiefen Wald eine scheinbar geniale Navigationsmethode ausgedacht, um sich nicht zu verirren: »Wart nur, Gretel, bis der Mond aufgeht, dann werden wir die Brotbröcklein sehen, die ich ausgestreut habe, die zeigen uns den Weg nach Haus.« Hänsels Brotkrümel-Methode hatte ihre Nachteile, dient aber heute noch als Namensgeber für eine Navigationshilfe, die ausgehend von der aktuellen Seite alle übergeordneten Seiten bis hin zur Startseite nebeneinander darstellt und dem Besucher ein »Sie sind hier« signalisiert. Neudeutsch nennt man Hänsels Methode jetzt »Breadcrumb-Navigation«. Ein solcher Navigationspfad lohnt sich erst ab einer gewissen Verschachtelungstiefe und ist bei der Beispielsite in ihrem jetzigen Zustand nicht nötig. Abbildung 8.23 zeigt ein Beispiel für eine Breadcrumb-Navigation von der Website zu den Little Boxes-Büchern, die mit Contao erstellt wurde.
Abbildung 8.23
»Sie sind hier« – ein Navigationspfad auf »little-boxes.de«
227
8.9
8
Navigationen erstellen in Contao
Das Eingabeformular, das zur Erstellung eines Moduls vom Typ Navigationspfad im Backend angezeigt wird, ist sehr übersichtlich und bietet, abgesehen von einer optionalen Überschrift, keine Konfigurationsmöglichkeiten. Im Quelltext erzeugt das Modul ein div mit der Klasse mod_breadcrumb und darin ein paar durch »Größer als«-Zeichen getrennte Hyperlinks. Die aktuelle Seite am Ende wird von einem span mit der Klasse active umgeben. Die HTML-Ausgabe kann über das Template mod_breadcrumb.tpl kontrolliert werden.
8.9.3
Buchnavigation: Von einer Seite zur nächsten und zurück
Das Modul Buchnavigation ist nicht nur für Bücher zu gebrauchen, sondern immer dann nützlich, wenn Sie auf den Webseiten eine Navigation einbauen möchten, die es dem Besucher ermöglicht, innerhalb der Seitenstruktur vorwärts, rückwärts oder auch eine Seite nach oben zu navigieren. Abbildung 8.24 zeigt auch für die Buchnavigation ein Beispiel von little-boxes.de.
Abbildung 8.24
Eine Buchnavigation auf »little-boxes.de«
Der vom Template mod_booknav.tpl erzeugte Quelltext sieht so aus:
Ein div mit der Klasse booknav enthält eine ungeordnete Liste mit drei Listenelementen, die einen Link zur vorherigen (prev) und zur nächsten (next) Seite enthalten. Dazwischen gibt es eigentlich noch einen Link, um in der Hierarchie der Seitenstruktur eine Stufe nach oben zu gelangen. Dieser Link hat standardmäßig die Beschriftung »Nach oben«, die meiner Ansicht nach bei Besuchern eher Verwirrung stiftet. Für einen Top-Link, der per Klick an den Anfang der Seite führt, ist »Nach oben« eine adäquate Beschriftung, denn er bringt den Besucher buchstäblich auf derselben Seite Nach oben (siehe Seite 258). In der Buchnavigation bedeutet Nach oben aber »Gehe in der Seitenstruktur eine Ebene höher«. Das wäre vielleicht auch kein schlechter Linktext, ist aber erstens zu lang und zweitens auch nicht wirklich hilfreich. Und so ist dieser Link in Abbildung 8.24 denn auch gar nicht vorhanden, weil er im Template mod_booknav.tpl chirurgisch entfernt wurde. Die Artikelnavigation ist ein bisschen anders als die Buchnavigation In der Gruppe Navigation gibt es noch einen Modultyp, der in diesem Kapitel nicht erwähnt wurde: Artikelnavigation. Die Artikelnavigation funktioniert im Prinzip ähnlich wie die Buchnavigation, nur halt nicht mit Seiten, sondern mit Artikeln. Eine Artikelnavigation hat die Klasse mod_articlenav und ist z. B. dann sinnvoll, wenn auf einer Seite mehrere Artikel vorhanden sind, von denen jeweils nur der Teasertext gezeigt wird. Klickt ein Besucher auf den »Weiterlesen«-Link, um den ganzen Artikel zu lesen, könnte man auf dieser Seite unter dem Artikel eine Artikelnavigation anzeigen, die direkt zum nächsten bzw. vorherigen Artikel führt, sodass der Leser nicht erst wieder zurück zur Übersichtseite mit den Teasern muss.
229
8.9
TEIL IV Inhalte erstellen und verwalten
In diesem Kapitel lernen Sie Inhaltselemente zur Arbeit mit Text und Bildern kennen.
9
Inhaltselemente für Text und Bilder
Artikel bestehen aus Inhaltselementen. In Kapitel 2, »Schnelldurchlauf: So funktioniert Contao«, haben Sie bereits gesehen, dass ein Artikel nur ein Container ist, ein Inhaltsbereich, der ein oder mehrere Inhaltselemente enthält. In diesem Kapitel lernen Sie wichtige Inhaltselemente zum Einfügen von Text und Bildern kennen: 왘
Überschrift und Text
왘
Bild und Bildergalerie
Zum Abschluss wird noch das Inhaltselement Top-Link vorgestellt. Viel zu tun, aber zunächst gibt es noch ein klein wenig Theorie vorweg. Sie werden sehen, dass die praktische Arbeit mit den Inhaltselementen danach umso leichter fällt.
9.1
Artikel und Inhaltselemente im HTML-Quelltext
Inhaltselemente unterteilen einen Artikel bildlich gesprochen in Scheibchen, und diese Scheibchen können Sie dann einzeln bearbeiten. Dieses Prinzip findet sich auch in der HTML-Struktur von Artikeln und Inhaltselementen wieder. Auf der Startseite gibt es bereits einen Artikel und ein Inhaltselement mit Überschrift und ein bisschen Fließtext, der in diesem Abschnitt als Beispiel dient. Im Quelltext ist der Artikel ein div mit einer ID (der Artikelalias aus den Einstellungen des Artikels) und den Klassen .mod_article und .block:
...
Listing 9.1
Ein Artikel ist von einem »div« umgeben.
Innerhalb des div-Elements für den Artikel werden die Inhaltselemente aufbewahrt, viele davon ebenfalls mit einem umgebenden div. Auf der Startseite
233
9
Inhaltselemente für Text und Bilder
wurde das Inhaltselement Text benutzt, um eine Überschrift und zwei Absätze zu erstellen. Der HTML-Quelltext für den gesamten Artikel inklusive Inhaltselement sieht so aus:
Willkommen auf der Beispielsite
...
...
Listing 9.2
Viele Inhaltselemente sind von einem »div« umgeben.
Das HTML für das Inhaltselement zeigt folgende Besonderheiten: 왘
Das div bekommt eine für das Inhaltselement definierte Klasse.
왘
Die Klassen bestehen aus dem Kürzel ce_ (abgeleitet vom englischen »content element«) und dem englischen Namen des Inhaltselements, also z. B. ce_text für das Inhaltselement Text.
왘
Das Inhaltselement bekommt die Klasse .block.
Viele Inhaltselemente sitzen also in einem eigenen div innerhalb des div des Artikels. Wer es gewohnt ist, bei jedem HTML-Element zu überlegen, ob es wirklich nötig ist, findet die vielen div-Elemente wahrscheinlich übertrieben, aber ein CMSystem muss den Quelltext für viele Situationen optimieren und nicht nur für eine einzige. Die Idee der Inhaltselemente ist im Alltag eines Content-Managers einfach nur gut und ganz bestimmt ein paar zusätzliche div-Elemente wert. Das HTML der Inhaltselemente wird von einem Template erzeugt Welches HTML die Inhaltselemente erzeugen, wird über ein Template geregelt. Die Namen der Templates entsprechen denen der CSS-Klassen plus der Endung .tpl, zum Beispiel ce_text.tpl für das Inhaltselement Text. Bei Bedarf können Sie im Backend-Bereich Templates die HTML-Ausgabe der Inhaltselemente komplett an Ihre Bedürfnisse anpassen.
9.2
Das Inhaltselement »Überschrift«: »ce_headline«
Das Inhaltselement Überschrift dient zur Eingabe von Überschriften. Sie haben bereits gesehen, dass auch andere Inhaltselemente wie z. B. Text die Möglichkeit bieten, eine Überschrift zu vergeben. Daraus ergibt sich die Frage, wann man das Inhaltselement Überschrift benutzen sollte.
234
Das Inhaltselement »Überschrift«: »ce_headline«
Nicht jede Überschrift benötigt ein eigenes Inhaltselement. In vielen Situationen reicht eine Überschrift als Teil eines anderen Inhaltselements völlig aus. Ein eigenes Inhaltselement für eine Überschrift ist zum Beispiel in folgenden Situationen sinnvoll: 왘
Sie möchten in der Lage sein, die Überschrift zu kopieren oder zu verschieben, innerhalb der aktuellen Seite oder auch auf eine andere.
왘
Die Überschrift soll eine eigene ID oder Klasse bekommen, um sie besser gestalten zu können.
왘
Sie möchten schnell einen fest definierten Abstand über oder unter der Überschrift vergeben.
왘
Die Überschrift soll mit einem »Augen-Klick« einzeln ausgeblendet werden können.
Kurz: Immer dann, wenn die Überschrift als eigenständige Einheit existieren soll, ist es sinnvoll, das Inhaltselement Überschrift einzusetzen. Im folgenden ToDo erstellen Sie am Anfang der Seite Text und Bilder eine Überschrift der Ebene h1, die die Klasse seitenanfang bekommt. Diese Klasse benutzen Sie dann später, um für die Überschrift den oberen Außenabstand zu reduzieren, damit Hauptspalte und Navigationsspalte oben bündig sind. ToDo: Ein Inhaltselement »Überschrift« erstellen 1. Öffnen Sie das Backend-Modul Artikel. 2. Öffnen Sie auf der Seite Text und Bilder den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung (gelber Bleistift). 3. Löschen Sie eventuell vorhandene Inhaltselemente. 4. Klicken Sie oben im Arbeitsbereich auf Neues Element. 5. Fügen Sie das neue Element ganz am Anfang des Artikels ein, direkt unterhalb der Artikel-Einstellungen. 6. Wählen Sie aus der Liste Elementtyp den Eintrag Überschrift. Daraufhin verändert sich das Formular. 7. Geben Sie im Feld Überschrift den Text »Die Abenteuer des Lorem Ipsum« ein. 8. Wählen Sie rechts daneben die Gliederungsebene h1. 9. Blenden Sie falls nötig den Bereich Experten-Einstellungen ein. 10. Geben in das Feld für die CSS-Klasse (das rechte von den beiden Input-Feldern) den Text »seitenanfang« ein. Ohne Punkt davor. 11. Klicken Sie auf Speichern und Schliessen.
Abbildung 9.1 zeigt die Eingabemaske für das Inhaltselement Überschrift.
235
9.2
9
Inhaltselemente für Text und Bilder
Abbildung 9.1
Das Dialogfeld für das Inhaltselement »Überschrift«
Auf der Webseite erscheint jetzt oben in der Hauptspalte die neue Überschrift. Im Quelltext hat die neue Überschrift folgendes HTML:
Die Abenteuer des Lorem Ipsum
Wie Sie sehen, bekommt das Inhaltselement Überschrift die Klasse ce_headline, ohne zusätzliches div-Element drum herum. Im folgenden ToDo ändern Sie die Gestaltung der Layoutbereiche ein wenig. Der Abstand zwischen Kopfbereich und den drei Inhaltsbereichen wird über ein margin-top für #container eingestellt. Damit die Überschriften im Inhaltsbereich alle auf gleicher Höhe beginnen, entfernen Sie das margin-top vom Navigationsbereich in der linken Spalte. Anschließend gestalten Sie die Überschrift mit der Klasse seitenanfang so, dass sie auf derselben Höhe beginnt wie die Navigation. Dabei geben Sie auch gleich einen zweiten Selektor ein, für den Fall, dass die Klasse nicht an die Überschrift selbst, sondern an ein umgebendes div vergeben wurde. ToDo: Die »h1«-Überschrift oben auf der Seite formatieren 1. Öffnen Sie das Stylesheet navigation.css in einem Editor. 2. Ändern Sie den ersten Style im Abschnitt Vertikale Navigation wie folgt: #left div.mod_navigation { float: left;
236
Das Inhaltselement »Text«: »ce_text«
ToDo: Die »h1«-Überschrift oben auf der Seite formatieren (Forts.) width: 142px; font-size: 12px;
margin: 0; }
3. Speichern Sie das Stylesheet navigation.css. 4. Öffnen Sie das Stylesheet bildschirm.css in einem Editor. 5. Ergänzen Sie den Style für #container wie folgt: #container {
6. Fügen Sie am Ende des Stylesheets die folgende CSS-Regel ein: h1.seitenanfang, div.seitenanfang h1 { line-height: 1; margin-top: 0; }
7. Speichern Sie das Stylesheet.
Im Browserfenster hat sich wenig geändert, aber der Abstand unterhalb des Kopfbereichs wird durch den oberen Außenabstand von #container kontrolliert, und die Überschriften in Navigationsbereich und Hauptspalte beginnen auf derselben Höhe. Wenn alle h1-Überschriften im Inhaltsbereich ohne oberen Außenabstand bleiben sollen, könnte man statt der Klasse seitenanfang auch einfach den Selektor #container h1 benutzen. »h1« oder »h2« am Anfang eines Bereiches? Über die Vergabe der Überschriftsebenen wird in Webdesignerkreisen seit jeher angeregt diskutiert. Die einen sagen, dass es pro Webseite nur eine h1-Überschrift geben sollte, andere beginnen jeden Layoutbereich damit. Gerald Brozek hat die unterschiedlichen Standpunkte gut zusammengefasst: 왘
Webseite mit Überschriften strukturieren – eine Chronologie http://bit.ly/h1h2h3
Folgen Sie einfach Ihrer eigenen Vorliebe.
9.3
Das Inhaltselement »Text«: »ce_text«
Sie setzen die Reise durch die wichtigsten Inhaltselemente von Contao mit dem Inhaltselement Text fort. Es dient zur Eingabe von ganz normalem Text, optional mit Überschrift und Bild. 237
9.3
9
Inhaltselemente für Text und Bilder
9.3.1
Inhaltselement Text: Die Eingabemaske
Das Inhaltselement Text werden Sie wahrscheinlich am häufigsten einsetzen, und Sie kennen es bereits von Seite 143, als Sie auf der Startseite den ersten Text eingefügt haben. Abbildung 9.2 zeigt den Artikel auf der Startseite der Beispielsite in der Bearbeitungsansicht.
Abbildung 9.2
Der Artikel von der Startseite in der Bearbeitungssicht
Ganz oben sehen Sie, dass der Elementtyp Text ausgewählt ist. Direkt darunter steht das Feld Überschrift, in dem der Text der Überschrift und die Gliederungsebene stehen. Falls keine Überschrift gewünscht wird, lassen Sie das Feld einfach leer.
9.3.2
Der Editor TinyMCE im Überblick
Das Herzstück des Inhaltselements »Text« ist der Editor zur Formatierung des Textes (Abbildung 9.3).
238
Das Inhaltselement »Text«: »ce_text«
Abbildung 9.3
TinyMCE – der Editor zur Bearbeitung von Texten
Der Editor heißt mit richtigem Namen TinyMCE und wird oft auch als WYSIWYGEditor (von what you see is what you get) oder Rich-Text-Editor (abgekürzt RTE) bezeichnet. Rich-Text bedeutet übrigens so viel wie »mit Formatierungen angereicherter Text« und nicht »Text mit viel Geld«. Der Tiny-Editor ermöglicht die Eingabe und Formatierung von Text. Überschriften, Absätze, Listen und Zeichenformatierungen wie fett und kursiv sind damit problemlos möglich, und die Bedienung funktioniert ähnlich wie bei einer normalen Textverarbeitung. Während Sie den Text schreiben und formatieren, erzeugt der Editor im Hintergrund automatisch das entsprechende HTML. Das können Sie sich mit einem Klick auf das Symbol HTML rechts oben auch anschauen und von Hand nachbessern. Hilfreich sind die zwei Symbole links neben dem HTML-Symbol: 왘
Das Radiergummi entfernt alle Formatierungen vom markierten Text.
왘
Der Pinsel räumt den Quelltext auf und versucht, gültiges HTML daraus zu formen.
Ganz unten links sehen Sie in der Statuszeile des Editors übrigens den Namen des HTML-Elements, in dem sich der Cursor gerade befindet. Wenn Sie dort auf einen Elementnamen klicken, wird es im Editorfenster markiert, und zwar mit allen enthaltenen Elementen. Auch zum Einfügen von Bildern gibt es entsprechende Symbole, bei denen Sie sogar genaue Formatierungsanweisungen und CSS-Klassen hinterlegen können,
239
9.3
9
Inhaltselemente für Text und Bilder
aber in vielen Fällen werden Sie zum Einfügen von Bildern die speziellen Inhaltselemente benutzen und Bilder und Tabellen nicht im Editor hinzuzufügen: 왘
Ein Bild pro Inhaltselement Text können Sie mit dem Bereich Bild-Einstellungen hinzufügen, das Sie unterhalb des Editors finden. Dieses Bild können Sie bequem per Mausklick ausrichten.
왘
Für Bilder und Tabellen gibt es auch eigene Inhaltselemente.
Beide Möglichkeiten lernen Sie noch kennen.
9.3.3
Hyperlinks erstellen im Editor TinyMCE
Um im Editor einen Hyperlink zu erstellen, markieren Sie den gewünschten Text und klicken auf die Kette Link einfügen/bearbeiten in der obersten Symbolleiste des Editors. Abbildung 9.4 zeigt das daraufhin erscheindende Dialogfeld.
Abbildung 9.4
So fügen Sie einen Hyperlink im Editor ein.
Beim Einfügen oder Bearbeiten eines Hyperlinks haben Sie sieben Optionen zur Auswahl. Die obersten drei stellen verschiedene Linkziele zur Auswahl: 왘
Contao-Seiten zeigt eine Auswahlliste mit den in der Seitenstruktur erstellten Webseiten. Contao fügt im Feld Adresse daraufhin ein sogenanntes »InsertTag« wie z. B. {{link_url::34}} ein. Insert-Tags sind eine sehr praktische Sache und werden später noch genauer erklärt.
240
Das Inhaltselement »Text«: »ce_text«
왘
Contao-Dateien bietet Ihnen die in der Dateiverwaltung vorhandenen Dateien zur Auswahl an und schreibt die URL ins Feld Adresse.
왘
Um auf eine externe Webseite zu verlinken, geben Sie im Feld Adresse selbst die komplette URL ein, inklusive http:// am Anfang.
Die vier unteren Optionen beeinflussen das Aussehen und Verhalten des Links: 왘
Titel fügt dem Hyperlink das Attribut title hinzu, das in vielen Browsern als kleine gelbe Quickinfo erscheint, wenn der Mauszeiger über dem Link verweilt.
왘
Lightbox öffnet das Linkziel in einem per JavaScript erzeugten Fenster, das über der Seite zu schweben scheint. Lightboxen lernen Sie beim Einfügen von Bildern weiter unten noch genauer kennen.
왘
Fenster öffnet den Link in einem neuen Tab oder Fenster, je nachdem, was der Anwender in seinem Browser eingestellt hat.
왘
CSS-Klasse bietet eine Auswahl von CSS-Klassen, die dem Link hinzugefügt werden können. Mit der Option (value) können Sie hier im Editor an Ort und Stelle eigene Klassen definieren. Die in der Auswahlliste erscheinenden Klassen werden übrigens in tl_files/tinymce.css vordefiniert (Details in Abschnitt 22.2 über den TinyMCE).
Zur Übung erstellen Sie im folgenden ToDo ein Inhaltselement mit einer h2-Überschrift und verlinken dann die Worte »Lorem Ipsum« zum entsprechenden Artikel bei der deutschen Wikipedia. ToDo: Inhaltselement »Text« erstellen und Hyperlink einbauen 1. Öffnen Sie das Backend-Modul Artikel. 2. Öffnen Sie auf der Seite Text und Bilder den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung (gelber Bleistift). 3. Fügen Sie unterhalb der Überschrift ein neues Inhaltselement Text ein, indem Sie neben der Überschrift auf das weiße Kreuz im grünen Kreis klicken. 4. Fügen Sie folgenden Text ein. Wenn Sie nicht gerne tippen, finden Sie den Text auf der Buch-DVD im Ordner beispieldateien: »Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthografisches Leben.« 5. Klicken Sie auf Speichern und Schliessen.
241
9.3
9
Inhaltselemente für Text und Bilder
ToDo: Inhaltselement »Text« erstellen und Hyperlink einbauen (Forts.) 6. Erstellen Sie darunter ein neues Inhaltselement Text mit einer h2-Überschrift »Die Reise beginnt«. 7. Geben Sie darunter im Editorfenster folgenden Text ein: »Eines Tages aber beschloss eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinauszugehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikola, doch das Blindtextchen ließ sich nicht beirren.« 8. Markieren Sie die Worte »Lorem Ipsum«. 9. Klicken Sie auf das Symbol Link einfügen/bearbeiten, und geben Sie im Feld Adresse die folgende URL ein: 10. http://de.wikipedia.org/wiki/Lorem_ipsum 11. Ergänzen Sie den Titel »Link zum Artikel bei der Wikipedia«. 12. Klicken Sie auf die Schaltfläche Einfügen. 13. Speichern und schliessen Sie das Inhaltselement.
In der Frontend-Vorschau erscheinen die beiden Inhaltselemente wie in Abbildung 9.5 untereinander, und der Link ruft den Wikipedia-Artikel auf.
Abbildung 9.5
242
Die Beispielsite mit Text und Hyperlink
Das Inhaltselement »Text«: »ce_text«
Externe Links mit einer Grafik kennzeichnen Wenn Sie externe Links, die von Ihrer Website wegführen, mit einer Grafik kennzeichnen möchten, ist dies einfach möglich: 왘
Weisen Sie externen Links im Editor z. B. die Klasse external zu.
왘
Weisen Sie im CSS allen Links mit dieser Klasse eine Hintergrundgrafik zu, die Sie in einem entsprechend dimensionierten padding platzieren.
Soll die Grafik vor dem Linktext erscheinen, nehmen Sie padding-left, hinter dem Linktext ein padding-right.
9.3.4
Das Inhaltselement »Text« mit einem Bild erweitern
Bevor Sie in diesem Abschnitt dem ersten Fließtextabsatz ein Bild hinzufügen, laden Sie bitte mit der Dateiverwaltung ein paar Fotos auf den Webspace. ToDo: Fotos auf den Webspace hochladen 1. Öffnen Sie das Backend-Modul Dateiverwaltung. 2. Klicken Sie oben im Arbeitsbereich auf Datei-Upload. 3. Wählen Sie den Ordner tl_files/beispielsite/content/fotos/. 4. Klicken Sie auf Durchsuchen, und wechseln Sie zur Buch-DVD in den Ordner beispieldateien/grafiken/content_fotos. 5. Wählen Sie nacheinander alle sechs Fotos aus. 6. Klicken Sie auf Dateien hochladen und zurück. 7. Prüfen Sie, ob die Fotos im Ordner liegen.
Außerdem sollte im Seitenlayout Standardlayout [Standard] bei den Skript-Einstellungen das MooTools-Template moo_mediabox aktiviert sein, damit im folgenden Beispiel alles funktioniert. Wenn das der Fall ist, kann es losgehen. In diesem Abschnitt fügen Sie dem ersten Inhaltselement Text ein Foto hinzu, das mit einer Breite von 100px links oben in dem Absatz stehen soll (Abbildung 9.6). Die Datei foto01.jpg hat eigentlich eine Größe von 450 × 600 Pixel, was für die Einbindung im Text zu groß ist, aber beim Einfügen des Bildes erstellt Contao auf Wunsch automatisch ein kleines Vorschaubild, das auf Klick die Großansicht in einer sogenannten Lightbox zeigt. Los geht’s.
243
9.3
9
Inhaltselemente für Text und Bilder
Abbildung 9.6
Das Vorschaubild wird vom Text umflossen.
ToDo: Ein Bild zum Inhaltselement »Text« hinzufügen 1. Öffnen Sie im Artikel Text und Bilder [Hauptspalte] das erste Inhaltselement Text unterhalb der h1-Überschrift zur Bearbeitung (gelber Bleistift). 2. Aktivieren Sie im Bereich Bild-Einstellungen unterhalb des Editors die Option Ein Bild hinzufügen. 3. Kreuzen Sie rechts neben Dateisystem die Option Auswahl ändern an. 4. Wählen Sie im Ordner beispielsite/content/fotos/ die Datei foto01.jpg. 5. Geben Sie als Alternativer Text »Das Bächlein Duden« ein, aber ohne die Anführungsstriche. 6. Geben Sie im Feld Bildbreite den Wert »100« ein. Gemessen wird hier immer in Pixel. Die Bildhöhe lassen Sie leer, und in der Auswahlliste sollte Exaktes Format stehen. 7. Geben Sie einen Bildabstand von 10px nach rechts ein. 8. Lassen Sie das Feld Bildlink-Adresse frei. 9. Aktiveren Sie die Option Grossansicht/Neues Fenster. Die Großansicht des Fotos wird dann in einer »Lightbox« dargestellt. 10. Lassen Sie das Feld Bildunterschrift leer. 11. Wählen Sie bei Bildausrichtung die zweite Option von links: Das Bild steht links oben und wird vom Text umflossen. 12. Klicken Sie auf Speichern und Schliessen.
244
Das Inhaltselement »Text«: »ce_text«
Die Webseite sollte in der Frontend-Vorschau so aussehen wie in Abbildung 9.6, und wenn Sie auf das Foto klicken, wird die Seite abgedunkelt und die Großansicht in einer Lightbox gezeigt. Links unten steht der alternative Text und rechts unten ein sprachneutraler Button zum Schließen der Lightbox (Abbildung 9.7).
Abbildung 9.7 Die Großansicht wird in einer Lightbox geladen.
Das Bächlein Duden ist übrigens in Wirklichkeit der Merced River im Yosemite National Park in Kalifornien, aus Sicht der Vernal Falls. Was genau ist eigentlich eine »Lightbox«? Lightbox ist ein Sammelbegriff für Effekte, bei denen ein JavaScript-Programm ein Objekt in einem eigenen Fenster über der Webseite präsentiert. Die Webseite selbst wird dabei meist abgedunkelt. Traditionell dient dieser Effekt zur Darstellung von einzelnen Bildern oder Bildergalerien, aber im Prinzip kann in dem JavaScript-Fenster auch ein Video, ein Anmeldeformular oder eine ganze Webseite präsentiert werden. Contao benutzt für Lightbox-Effekte wahlweise die Mediabox oder die etwas ältere Slimbox, die beide auf dem JavaScript-Framework MooTools basieren. Falls JavaScript im Browser ausgestellt oder gar nicht vorhanden ist, wird das Linkziel übrigens in einem neuen Fenster geöffnet, sodass die Zugänglichkeit gewahrt bleibt.
245
9.3
9
Inhaltselemente für Text und Bilder
9.3.5
Das HTML für das eingefügte Bild und ein CSS-Bilderrahmen
Bilder, die im Inhaltselement Text eingefügt werden, werden im Quelltext von einem div mit der Klasse .image_container umgeben. Das eben eingefügte Foto sieht im Quelltext zum Beispiel so aus:
Weit hinten...
Ein kleines ...
Listing 9.3
Quelltext für ein im Inhaltselement »Text« eingefügtes Bild
In diesem Quelltext sind einige erwähnenswerte Dinge zu sehen: 왘
Der im Backend eingegebene Abstand nach rechts von 10px wird ebenso wie die Ausrichtung nach links in einem Style-Attribut umgesetzt.
왘
Das umgebende div erhält zusätzlich die Klasse float_left, die aber momentan nirgendwo gestaltet wird.
왘
Der Hyperlink bekommt das Attribut rel="lightbox", damit das JavaScript erkennt, dass dieses Bild als Lightbox dargestellt werden soll.
왘
Automatisch erzeugte Vorschaubilder werden im Ordner system/html gespeichert und bekommen einen vom Dateinamen abgeleiteten Zufallsnamen. Im Backend-Modul System 폷 Systemwartung im Abschnitt Daten bereinigen können Sie den Ordner bei Bedarf leeren.
Diese HTML-Struktur können Sie im CSS zur Gestaltung verwenden. Im folgenden ToDo erstellen Sie zur Übung einen CSS-Bilderrahmen. Nach dieser kleinen Änderung sieht das Bild vom Bächlein Duden so aus wie in Abbildung 9.8. So viel zum Inhaltselement Text.
246
Das Inhaltselement »Bild«: »ce_image«
ToDo: Eingefügten Bildern einen Rahmen geben 1. Öffnen Sie das Stylesheet bildschirm.css im Editor. 2. Fügen Sie am Ende des Stylesheets den folgenden Style ein: .image_container img { border: 2px solid #d9d9d9; border-right-color: #bbb; border-bottom-color: #bbb; }
3. Speichern Sie das Stylesheet.
Abbildung 9.8
9.4
Vorschaubild mit Bilderrahmen
Das Inhaltselement »Bild«: »ce_image«
Im vorigen Abschnitt haben Sie ein Bild zum Inhaltselement Text hinzugefügt und positioniert. In diesem Abschnitt stelle ich Ihnen nun das Inhaltselement Bild vor, das immer nur ein einziges Bild enthält.
9.4.1
Das Inhaltselement »Bild« im Einsatz
Das Inhaltselement Bild benutzen Sie, wenn das Bild innerhalb eines Artikels eine eigene inhaltliche Einheit ist und nicht vom Text umflossen werden soll. Die Vorteile bei einem Bild im eigenen Inhaltselement sind unter anderem:
247
9.4
9
Inhaltselemente für Text und Bilder
왘
einfaches Verschieben, sowohl per Drag & Drop innerhalb des Artikels als auch mit dem blauen Verschiebe-Pfeil in einen völlig anderen Artikel
왘
einfaches Kopieren des Inhaltselements
왘
einfaches Ein- und Ausblenden per »Augen-Klick«
Das Inhaltselement Bild hat ein eigenes div mit der Klasse .ce_image. Außerdem kann es im Backend eine eigene ID bekommen und so individuell per CSS gestaltet werden. Im folgenden ToDo fügen Sie am Ende des Artikels ein neues Inhaltselement vom Typ Bild ein. Als Beispiel dient die Datei foto02.jpg aus dem Ordner tl_files/beispielsite/content/fotos, das ca. 800 × 600 Pixel groß ist. Das Bild bekommt im folgenden ToDo eine Breite von 500 Pixel, damit es fast die gesamte Breite der Hauptspalte ausfüllt. Unterhalb des Bildes fügen Sie noch ein neues Inhaltselement vom Typ Text hinzu. ToDo: Inhaltselemente »Bild« und »Text« in den Artikel einfügen 1. Öffnen Sie den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung. 2. Fügen Sie am Ende ein Inhaltselement mit dem Elementtyp Bild hinzu. 3. Aktivieren Sie das Kontrollkästchen Auswahl ändern, um als Quelldatei das Foto tl_files/beispielsite/content/fotos/foto02.jpg zu wählen. 4. Blenden Sie gegebenenfalls den Bereich Bild-Einstellungen ein: Alternativer Text: »Los Padres National Forest bei Santa Ynez« Bildbreite und Bildhöhe: 500 × 200, Exaktes Format
5. Aktivieren Sie die Option Grossansicht/Neues Fenster. 6. Bildunterschrift: »In die weite Welt hinaus« 7. Klicken Sie auf Speichern und Schliessen. 8. Fügen Sie unter dem Bild ein neues Inhaltselement Text ein. 9. Geben Sie im Editor den folgenden Text ein: »Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg.« 10. Klicken Sie auf Speichern und Schliessen.
Im Browser erscheint das Bild jetzt mit einer links ausgerichteten Bildunterschrift, die vom Fließtext kaum zu unterscheiden ist. Die Bildunterschrift liegt in einem eigenen div mit der Klasse caption, das sich innerhalb des Inhaltselements befindet:
248
Das Inhaltselement »Bild«: »ce_image«
In die weite Welt hinaus
Listing 9.4
Die HTML-Struktur für das Inhaltselement »Bild«
Mit einer CSS-Regel wie der folgenden können Sie die Bildunterschrift gestalten. ToDo: Bildunterschrift gestalten 1. Öffnen Sie das Stylesheet bildschirm.css. 2. Fügen Sie am Ende folgenden Style ein: .ce_image .image_container .caption { font-size: 11px; text-align: center; line-height: 1.2; margin-bottom: 1em; }
3. Speichern Sie das Stylesheet bildschirm.css.
Im Browser sieht die Webseite mit diesem Style so aus wie in Abbildung 9.9.
Abbildung 9.9
Das Inhaltselement »Bild« mit einer Bildunterschrift
Der Style gestaltet aufgrund der Klasse ce_image nur Bildunterschriften im Inhaltselement Bild. Um Bildunterschriften in allen Inhaltselementen zu gestalten, lassen Sie die Klasse .ce_image am Anfang des Selektors weg.
249
9.4
9
Inhaltselemente für Text und Bilder
Das Inhaltselement »Bild« kann auch ein Link sein Wenn das Bild ein Hyperlink sein soll, deaktivieren Sie die Großansicht und geben im Feld Link-Adresse die gewünschte URL ein. Bei internen Seiten klicken Sie dazu bequem auf den blauen Ball rechts neben dem Feld, externe URLs geben Sie manuell ein, inklusive http://.
9.4.2
»Bild-Einstellungen«: Die Möglichkeiten der Bildanpassung
Bei den Bild-Einstellungen können Sie im Feld Bildbreite und Bildhöhe zwischen drei Möglichkeiten wählen: 왘
Exaktes Format
왘
Proportional
왘
An Rahmen anpassen
Diese drei Varianten haben nur Auswirkungen, wenn sowohl die Breite als auch die Höhe definiert werden. Wird nur ein Wert für Höhe oder Breite eingegeben, berechnet Contao die Größe des Bildes immer proportional zu diesem Wert. Beim Einfügen eines Bildes definieren Sie durch die Eingabe von Bildbreite und Bildhöhe einen unsichtbaren Kasten, eine Box, die auch als Rahmen bezeichnet wird. Contao fügt das Bild in diese gedachte Rahmenbox ein. Die Variante Exaktes Format haben Sie im vorigen Abschnitt bereits ausprobiert: Contao schneidet vom Mittelpunkt des Bildes ausgehend ein Rechteck in exakt der angegebenen Größe (exaktes Format) aus und fügt diesen Bildausschnitt in den unsichtbaren Rahmen ein. Das Ergebnis sehen Sie in Abbildung 9.9. Die zweite Variante, Proportional, orientiert sich bei der Erstellung des Rahmens am größeren der beiden eingegebenen Werte und passt den anderen Wert proportional an. Der zweite eingegebene Wert wird also ignoriert. Im Beispiel ist das Ergebnis so, als ob Sie nur eine Bildbreite von 500px angegeben hätten. Abbildung 9.10 zeigt die Einstellung Proportional für das Beispielfoto. Die Variante An Rahmen anpassen verhält sich genau entgegengesetzt. Sie nimmt den kleineren der beiden eingegebenen Werte und ignoriert den größeren. Abbildung 9.11 zeigt das Ergebnis dieser Einstellung. An der zentrierten Bildunterschrift können Sie erkennen, dass das HTML-Element div.image_container, das das Bild umgibt, weiterhin über die gesamte Breite der Hauptspalte geht. Um die Bildunterschrift linksbündig zu gestalten, können Sie die Anweisung text-align: left in den Style schreiben. Ich wähle im Beispiel aber lieber wieder die Einstellung Exaktes Format mit den Werten 500 × 200.
250
Das Inhaltselement »Bild«: »ce_image«
Abbildung 9.10
Das Foto mit der Einstellung »Proportional«
Abbildung 9.11 Das Foto mit der Einstellung »An Rahmen anpassen«
251
9.4
9
Inhaltselemente für Text und Bilder
Systemeinstellungen: Maximale Frontend-Breite für Bilder Wenn beim Einfügen eines Bildes im Feld Bildbreite und Bildhöhe gar nichts eingegeben wird, fügt Contao das Bild in der Originalgröße ein. Solange das umgebende div die Klasse block hat, bleibt das Layout auch bei übergroßen Bildern intakt, weil .block im CSS-Framework die Anweisung overflow:hidden enthält und das Bild bei Übergröße somit einfach abgeschnitten wird. Aber da Vorsicht bekanntlich die Mutter der Porzellankiste ist, können Sie zusätzlich eine Maximale Frontend-Breite definieren, damit ein großes Foto auch unter ungünstigsten Umständen nicht versehentlich trotzdem das Layout zerschießt: 왘
Backend-Modul System 폷 Einstellungen
왘
Bereich Dateien und Bilder
왘
Option Maximale Frontend-Breite
Ein Wert von zum Beispiel »500« sorgt dafür, dass ein eingefügtes Bild im Frontend niemals breiter wird als 500 Pixel. Sicher ist sicher.
9.5
Das Inhaltselement »Galerie«: »ce_gallery«
Neben den Inhaltselementen Text und Bild gibt es zum Einfügen von Bildern in Contao noch das Inhaltselement Galerie, das ich Ihnen im Folgenden kurz vorstellen möchte. Aber zunächst fügen Sie dem Abenteuer des Lorem Ipsum noch zwei Absätze hinzu. So viel Zeit muss sein ;-) ToDo: Das Lorem Ipsum zieht in die Welt hinaus 1. Öffnen Sie den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung. 2. Erstellen Sie am Ende des Artikels ein Inhaltselement vom Typ Text. 3. Fügen Sie eine h2-Überschrift »Unterwegs« und den folgenden Text ein (tippen Sie ihn ab, oder kopieren Sie ihn von der Buch-DVD): »Als das Blindtextchen die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy.« 4. Klicken Sie auf Speichern und Schliessen.
9.5.1
Eine Bildergalerie erstellen
Das Inhaltselement Bildergalerie ermöglicht Ihnen die bequeme Auswahl der darzustellenden Bilder, erstellt die Vorschaubilder automatisch und stellt die Galerie
252
Das Inhaltselement »Galerie«: »ce_gallery«
auf Wunsch in einer Mediabox dar. Alles per Klick. In diesem Abschnitt erstellen Sie eine kleine Bildergalerie mit vier Bildern, die so aussieht wie in Abbildung 9.12.
Abbildung 9.12 Inhaltselement »Galerie« mit vier Bildern
Die vier Vorschaubilder haben ungefähr eine Breite von 115px und einen Abstand nach rechts von 10px, damit sie auf die Breite der Seite passen. Der weiter oben definierte CSS-Bilderrahmen gilt übrigens auch für Bilder in der Galerie. ToDo: Eine Bildergalerie mit dem Inhaltselement »Galerie« erstellen 1. Öffnen Sie den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung. 2. Erstellen Sie am Ende des Artikels ein Inhaltselement Galerie. 3. Aktivieren Sie bei Quelldateien das Kontrollkästchen Auswahl ändern. 4. Kreuzen Sie im Ordner tl_files/beispielsite/content/fotos/ die Dateien foto03.jpg, foto04.jpg, foto05.jpg und foto06.jpg an. 5. Definieren Sie eine Bildbreite von 115 Pixel und einen Bildabstand nach rechts von 10 Pixel. 6. Es sollen 4 Vorschaubilder pro Reihe angezeigt werden. 7. Sortieren nach: In zufälliger Reihenfolge. 8. Aktivieren Sie die Grossansicht/Neues Fenster, um die großen Bilder in einer Mediabox darzustellen. 9. Klicken Sie auf Speichern und Schliessen.
Mit wenigen Klicks haben Sie die Galerie aus Abbildung 9.12 erstellt. Wenn ein Besucher auf eines der Bilder klickt, erkennt Contao automatisch, dass das Bild Teil einer Galerie ist, und zeigt in der Mediabox rechts unten zwei Pfeile an, um innerhalb der Galerie vorwärts und rückwärts gehen zu können.
253
9.5
9
Inhaltselemente für Text und Bilder
Abbildung 9.13
Die Galerie in einer Mediabox mit »vor« und »zurück«
Suboptimal ist noch die Beschrifung »foto06« links unten. Momentan nimmt Contao einfach den Vornamen der Datei. Der schnellste Weg zu einer besseren Bildunterschrift wäre also ein anderer Dateiname. Vielseitiger ist aber die Beschriftung der Bilder mit einer Datei namens meta.txt, die Sie gleich kennenlernen. Vorher beenden Sie aber noch schnell das Abenteuer des Lorem Ipsum mit zwei letzten Fließtextabsätzen. ToDo: Das Lorem Ipsum zieht in die Welt hinaus 1. Öffnen Sie den Artikel Text und Bilder [Hauptspalte] zur Bearbeitung. 2. Erstellen Sie unterhalb der Galerie ein Inhaltselement Text, in das Sie den folgenden Text tippen (oder von der Buch-DVD kopieren): »Die Copy warnte das Blindtextchen, da, wo sie herkäme, wäre sie zigmal umgeschrieben worden, und alles, was von ihrem Ursprung noch übrig wäre, sei das Wort »und«, und das Blindtextchen solle umkehren und wieder in sein eigenes, sicheres Land zurückkehren. Doch alles gute Zureden konnte es nicht überzeugen, und so dauerte es nicht lange, bis ihm ein paar heimtückische Werbetexter auflauerten, es mit Longe und Parole betrunken machten und es dann in ihre Agentur schleppten, wo sie es für ihre Projekte wieder und wieder missbrauchten. Und wenn es nicht umgeschrieben wurde, benutzen Sie’s noch heute.« 3. Klicken Sie auf Speichern und Schliessen.
254
Das Inhaltselement »Galerie«: »ce_gallery«
9.5.2
Die Bildergalerie im HTML
In diesem Abschnitt werfen Sie einen kurzen Blick auf den HTML-Quelltext für das Inhaltselement Galerie, der übrigens vom Template gallery_default.tpl erzeugt wird:
Listing 9.5
Ausschnitt aus dem HTML einer Galerie
Eine Klammer um alles bildet das inzwischen bekannte div für das Inhaltselement, das dieses Mal die Klassen ce_gallery und block bekommt. Die Vorschaubilder werden in einer HTML-Tabelle aufbewahrt, die folgende besondere Charakteristika aufweist: 왘
Die Zeilen tr sind durchnummeriert. Die erste Zeile bekommt die Klasse row_ 0. Die Nummerierung beginnt also bei null.
왘
Gerade Zeilen bekommen die Klasse even, ungerade die Klasse odd.
왘
Die Spalten td werden analog dazu nummeriert, beginnend mit col_0.
왘
Die Breite der Spalten wird mit dem Attribut style definiert.
왘
Der Abstand nach rechts wird mit einem padding-right für das div mit der Klasse image_container festgelegt.
왘
Die Links zur Großansicht haben das Attribut rel="lightbox[lb15]", wobei der Wert [lb15] von Contao gewählt wird. Alle Bilder einer Galerie bekommen denselben Wert.
255
9.5
9
Inhaltselemente für Text und Bilder
Bei der Erstellung des Inhaltselements können Sie dem Element im Bereich Experten-Einstellungen wie immer auch noch eine besondere ID oder Klasse mit auf den Web geben. Galerie und »gallery« Achten Sie im CSS darauf, dass die Galerie im Englischen mit Doppel-»l« geschrieben wird: ce_gallery. Im Deutschen hat eine Galerie nur eines.
9.5.3
Beschriftung von Galerien: »meta.txt«
In Contao können für alle Dateien unterhalb des Ordners tl_files sogenannte Meta-Informationen hinterlegt werden. Die zusätzlichen Informationen werden in einer Datei namens meta.txt gespeichert, die im selben Ordner liegen muss wie die Dateien, für die diese Informationen gedacht sind. Die meta.txt dient zur Beschriftung von Bildergalerien und Downloads. Der Aufbau der meta.txt ist recht einfach. Sie kann drei Dinge enthalten: 왘
einen alternativen Text (Bildbeschreibung)
왘
einen Link (URL)
왘
eine Bildunterschrift (Caption)
Die drei Optionen werden jeweils durch einen senkrechten Schrägstrich getrennt, auch Pipe-Symbol genannt. Unter Windows erzeugen Sie das Symbol mit (Alt_Gr) und der Taste ganz links unten neben dem Y; auf dem Mac mit (Alt) + (7)). Der alternative Text wird in einer Mediabox übrigens auch als Bildbeschreibung verwendet. Listing 9.6 zeigt ein Beispiel für die Möglichkeiten in der meta.txt: bild1.jpg bild2.jpg bild3.jpg bild4.jpg
Text Text | URL Text | URL | Bildunterschrift Text | | Bildunterschrift
Listing 9.6
Aufbau einer »meta.txt«
Wenn Sie wie in der vierten Zeile einen alternativen Text und eine Bildunterschrift, aber keinen Link eingeben möchten, geben Sie einfach zwei senkrechte Striche ohne etwas dazwischen ein. Das folgende ToDo erstellt die meta.txt für die Bildergalerie auf der Seite Text und Bilder.
256
Das Inhaltselement »Galerie«: »ce_gallery«
ToDo: »meta.txt« für die Bildergalerie erstellen 1. Erstellen Sie eine neue, leere Datei in einem Editor. 2. Geben Sie die folgenden Beschreibungen ein: foto03.jpg foto04.jpg foto05.jpg foto06.jpg
= = = =
NYC (Harlem) | | Buchstabhausen Hotel California in Fresno | | Skyline No Line on the Horizon. Highway One. | | Im Nebel Montery Beach. Erholung pur. | | Am Strand
3. Speichern Sie die Datei als UFT-8 unter dem Namen meta.txt im Ordner tl_files/beispielsite/content/fotos/.
Im Frontend erscheint jetzt die Bildunterschrift unterhalb der Bilder (Abbildung 9.14).
Abbildung 9.14
Galerie mit Bildunterschriften aus »meta.txt«
Um die Bildunterschriften in der Galerie zu gestalten, suchen Sie im Stylesheet bildschirm.css den Style zur Gestaltung von caption und entfernen Sie am Anfang des Selektors das .ce_image. Der verbleibende Selektor heißt dann .image_container .caption und gestaltet auch die Bildunterschriften für die Galerie. Sie können die Bilder in der meta.txt in einer beliebigen Reihenfolge auflisten. Wenn die Galerie die Reihenfolge aus der meta.txt übernehmen soll, können Sie das im Inhaltselement Galerie festlegen: 왘
Öffnen Sie das Inhaltselement Galerie zur Bearbeitung.
왘
Blenden Sie gegebenenfalls den Bereich Bildeinstellungen ein.
왘
Wählen Sie bei Sortieren nach die Option Meta Datei (meta.txt).
왘
Klicken Sie auf Speichern.
257
9.5
9
Inhaltselemente für Text und Bilder
Wenn Sie danach in der meta.txt die Reihenfolge verändern, wirkt sich dies direkt auf die Bildergalerie aus. Es gibt zur Erstellung von Meta-Infos auch eine Erweiterung namens [MetaCreator]. Mehrsprachige Bildbeschriftungen Auf mehrsprachigen Websites können Sie für jede Sprache eine eigene Datei hinterlegen, wobei das Sprachkürzel einfach im Dateinamen angegeben wird. Für Englisch wäre das zum Beispiel meta_en.txt. Ist für eine Sprache keine Datei vorhanden, nimmt Contao die meta.txt.
9.6
Das Inhaltselement »Top-Link«: «ce_toplink»
Das Inhaltselement Top-Link fügt einem Artikel einen Nach oben-Link hinzu, mit dem der Besucher auf einer langen Seite per Mausklick wieder nach oben an den Anfang der Seite springen kann. Das Eingabeformular ist sehr übersichtlich und möchte nur einen Text zur Beschriftung des Links haben (Abbildung 9.15).
Abbildung 9.15
Das Eingabeformular für das Inhaltselement »Top-Link«
Mit diesem Formular fügen Sie im folgenden ToDo unten auf der Seite Text und Bilder nach dem Abenteuer des Lorem Ipsum einen Top-Link ein. ToDo: Top-Link einfügen 1. Öffnen Sie den Artikel Text und Bilder zur Bearbeitung. 2. Erstellen Sie am Ende des Artikels ein neues Inhaltselement vom Typ Top-Link.
258
Das Inhaltselement »Top-Link«: «ce_toplink»
ToDo: Top-Link einfügen (Forts.) 3. Fügen Sie als Link-Text den Text »[Nach oben]« ein. Die eckigen Klammern davor und dahinter dienen nur zur Dekoration. 4. Klicken Sie auf Speichern und Schliessen.
Nach diesem ToDo steht im Quelltext der Webseite folgendes HTML:
Der Kommentar sorgt wie immer dafür, dass der Link nicht von Contaos interner Suchmaschine indiziert wird. Ansonsten ist es das gewohnte Bild: Ein div-Element als Klammer um alles und darin ein Hyperlink, der zur Sprungmarke weiterleitet. Zur Gestaltung eines Top-Links würde es sich anbieten, die Unterstreichung zu entfernen und den Link durch Abstände und eine dezente Hintergrundfarbe etwas vom Inhalt abzusetzen. Im folgenden ToDo finden Sie einen Vorschlag dazu. ToDo: Das Inhaltselement »Top-Link« gestalten 1. Öffnen Sie das Stylesheet bildschirm.css in einem Editor. 2. Fügen Sie am Ende folgende Styles ein: .ce_toplink { background-color: #eee; font-size: 11px; vertical-align: middle; padding: 3px; margin: 1.5em 0; } .ce_toplink a { color: #000; text-decoration: none; }
3. Speichern Sie das Stylesheet.
Abbildung 9.16 zeigt diesen Link unten auf der Seite Text und Bilder.
259
9.6
9
Inhaltselemente für Text und Bilder
Abbildung 9.16 Das Inhaltselement »Top-Link« auf einer Webseite
Auf einer langen Webseite können Sie natürlich auch mehrere Top-Links setzen. Am einfachsten geht das, indem Sie das Inhaltselement mit einem Klick auf das grüne Kreuz kopieren und mit dem braunen blinkenden Pfeilsymbol an der gewünschten Stelle wieder einfügen. Ein Tipp noch zum Abschluss: Falls Sie auf jeder Seite unten einen Top-Link haben möchten, müssen Sie diesen nicht auf jeder Seite manuell als Inhaltselement einfügen. Stattdessen erstellen Sie ein Modul vom Typ Eigener HTML-Code und binden es unterhalb der Artikel im Seitenlayout ein. Das Modul könnte Navigation – Toplink heißen und hätte folgenden Inhalt:
Das Insert-Tag {{env::request}} wird auf jeder Seite durch den aktuellen Request String ersetzt. Das ist der Teil der URL nach dem ersten einfachen Schrägstrich, also z. B. startseite.html.
260
Syndikation: Artikel drucken und verbreiten
Das Inhaltselement »Hyperlink«: »ce_hyperlink« Das Inhaltselement Hyperlink benutzen Sie, wenn Sie einen Hyperlink als eigenes Inhaltselement erstellen möchten. Im HTML sieht das Inhaltselement Hyperlink so aus:
Sie können damit einen Textlink oder einen Bildlink erstellen und das Linkziel auf Wunsch in einer eigenen Lightbox öffnen. Alles das geht aber auch im Editorfenster in einem ganz normalen Inhaltselement Text.
9.7
Syndikation: Artikel drucken und verbreiten
In den Artikel-Einstellungen verbirgt sich im Bereich Experten-Einstellungen eine Option namens Syndikation, mit der Sie einen Artikel ausdrucken, als PDF speichern oder bei Twitter und Facebook empfehlen können. Laut Wikipedia bezeichnet der Begriff Syndikation übrigens »die Weitervergabe von lizenzierten Inhalten an Kunden, die sie entsprechend der Lizenz weiterverwerten dürfen«.
9.7.1
Die Links zur Syndikation aktivieren
Das Erstellen der Links zur Syndikation ist sehr einfach und erfordert lediglich ein paar Klicks in den Artikel-Einstellungen.
Abbildung 9.17 Die Syndikation in den Artikel-Einstellungen
261
9.7
9
Inhaltselemente für Text und Bilder
Um Artikel bei Twitter oder Facebook verbreiten zu können, benötigen Sie ein Benutzerkonto bei diesen Diensten. ToDo: Die Links zur Syndikation erzeugen 1. Öffnen Sie das Backend-Modul Artikel. 2. Öffnen Sie die Artikel-Einstellungen für den Artikel Text und Bilder [Hauptspalte], z. B. über einen Rechtsklick auf den gelben Bleistift. 3. Aktivieren Sie im Bereich Experten-Einstellungen die gewünschten Optionen zur Syndikation. 4. Klicken Sie auf Speichern und Schliessen.
Jetzt erscheinen links über der Artikelüberschrift vier Links zum Ausdrucken, Speichern als PDF und zum Empfehlen bei Facebook oder Twitter.
9.7.2
Die Links zur Syndikation per CSS gestalten
Im Quelltext stehen die vier Links in einem div mit der Klasse pdf_link, das Sie mit dem CSS aus dem folgenden ToDo rechts neben die Überschrift zaubern können. ToDo: Die Links zur Syndikation gestalten 1. Öffnen Sie das Stylesheet bildschirm.css. 2. Fügen Sie am Ende den folgenden Style hinzu: .pdf_link { float:right; width: auto; margin-left: 10px; }
3. Speichern Sie das Stylesheet.
Im Frontend stehen die vier Links am rechten oberen Rand des Artikels. Durch den linken Margin ist sichergestellt, dass auch eine lange Überschrift immer ein bisschen Abstand hält. Die Erweiterung »[fastedit]« zur schnellen Bearbeitung von Inhalten Die Erweiterung [fastedit] von Andreas Schrempp ermöglicht die schnelle Bearbeitung von Inhalten aus dem Frontend heraus: 왘
Nach einer Anmeldung im Backend erscheint im Frontend ein gelber Bleistift, wenn Sie mit dem Mauszeiger über ein Inhaltselement oder Modul fahren. Ein Klick auf den Bleistift ruft das Objekt in einer Mediabox zur Bearbeitung auf.
262
Syndikation: Artikel drucken und verbreiten
Abbildung 9.18
Die Links zur Syndikation rechts oben im Artikel
263
9.7
In diesem Kapitel lernen Sie weitere nützliche Inhaltselemente wie Tabelle und Akkordeon kennen. Außerdem erstellen Sie Inhaltselemente zur Einbettung externer Videos.
10
Weitere nützliche Inhaltselemente
In diesem Kapitel geht es um die Inhaltselemente Tabelle und Akkordeon und danach um die Einbindung von externen Videos.
10.1
Das Inhaltselement »Tabelle«: ce_table
Das Inhaltselement Tabelle ist für einfache, regelmäßige Tabellen gedacht, die überwiegend unformatierten Text enthalten. Die Vorteile dieses Inhaltselements sind unter anderem: 왘
Das Erstellen der Tabelle ist dank Eingabe-Assistent sehr einfach.
왘
Die Tabelle ist auf Wunsch im Frontend per Klick sortierbar.
왘
Die Daten können aus Textdateien (CSV) importiert werden.
왘
Die Gestaltung der Tabellen kann durch Vergabe von Klassen per Fernsteuerung geregelt werden. So können zum Beispiel Designvorgaben auch von Redakteuren ohne CSS-Kenntnisse eingehalten werden.
Komplexere Tabellen mit unregelmäßigen Zeilen- und Spaltenstrukturen können im Inhaltselement Text mit dem Editor TinyMCE angelegt werden.
10.1.1
Der Eingabeassistent für das Inhaltselement »Tabelle«
Wenn Sie in einem Artikel ein Inhaltselement vom Typ Tabelle einfügen, erscheint das Eingabeformular aus Abbildung 10.1, in dem ein komfortabler Eingabeassistent die Eingabe der Tabellendaten erleichtert.
265
10
Weitere nützliche Inhaltselemente
Abbildung 10.1 Eingabeformular für das Inhaltselement »Tabelle«
Im Bereich Tabelleneinträge unterhalb der optionalen Überschrift gibt es neben dem Wort Tabelleneinträge ein Symbol zum Importieren von CSV-Daten und zwei Symbole zum Zoomen der Tabelle im Backend während der Bearbeitung. Darunter sehen Sie eine einzelne Tabellenzelle mit den Bedienelementen für Spalten (darüber) und Zeilen (daneben). Das ist der Eingabeassistent für die Tabelle: 왘
Mit den grünen Plus-Zeichen können Sie die gewünschte Anzahl von Spalten und Zeilen erzeugen.
266
Das Inhaltselement »Tabelle«: ce_table
왘
Mit den grünen Pfeilen können Sie die Reihenfolge verändern.
왘
Das rote X löscht Zeilen und Spalten. Ein Klick löscht immer ganze Zeilen bzw. Spalten, und zwar ohne Sicherheitsfrage. Seien Sie vorsichtig!
Um Text zu schreiben, klicken Sie einfach in eine Zelle und schreiben los. Navigieren innerhalb der Tabelle geht vorwärts mit der (ÿ)-Taste und rückwärts mit (ª) + (ÿ). Im Bereich Tabellenkonfiguration müssen Sie in das Pflichtfeld Zusammenfassung eine kurze Zusammenfassung des Inhalts eingeben. Diese erscheint im Quelltext beim table-Element im Attribut summary und ist für barrierefreie Tabellen vorgeschrieben. Die Option Kopfzeile hinzufügen macht aus der ersten Zeile der Tabelle eine Kopfzeile (thead), die Option Fusszeile hinzufügen macht aus der letzten eine Fußzeile (tfoot). Tabellen können auf Wunsch im Frontend per Klick sortiert werden Eine Besonderheit gibt es im Bereich Sortieroptionen. Das Aktivieren des Kontrollkästchens Sortierbare Tabelle sorgt dafür, dass Besucher der Webseiten die Tabelle in ihrem Browser mit einem Klick auf die Spaltenüberschriften sortieren können.
10.1.2
Importieren der Daten mit einer CSV-Datei
Normalerweise geben Sie den Inhalt für die Tabellenzellen mithilfe des Eingabeassistenten ein, aber Sie können die Daten für die Tabelle auch aus einer sogenannten CSV-Datei importieren. CSV ist die Abkürzung für comma separated value und steht für eine Textdatei, in der jeder Datensatz in einer Zeile steht und Werte (»values«) in den einzelnen Feldern durch ein Komma getrennt werden (daher »comma separated«). Das Wort »Komma« sollten Sie hierbei nicht zu wörtlich nehmen, denn als Trennzeichen kann auch ein Semikolon (»Strichpunkt«) oder ein Tabstopp dienen. In fast allen gängigen Tabellenkalkulationen kann man Tabellen als CSV-Datei abspeichern, was den Import in das Inhaltselement »Tabelle« vereinfacht, da man viel weniger tippen muss. Das hat nicht nur mit Bequemlichkeit zu tun, sondern auch mit Fehlervermeidung, denn alles, was man selbst tippt, ist ein potenzieller Tippfehler. Die Beispieldatei ce_tabelle.csv von der Buch-DVD sieht so aus: Nr.;Künstler;Titel;Album 01;Giorgio Conte;Cannelloni;Italian Café
267
10.1
10
Weitere nützliche Inhaltselemente
02;Maria de Barros;Mi Nada Um Ca Tem;Women of Africa 03;Beethova Obas;Rasanblé;Music from the Chocolate Lands 04;Anna de Hollanda;Samba Triste;Acoustic Brazil 05;Samite;Wasuze Otya?;Music from the Coffee Lands 06;Zulya;Saginou;Music from the Tea Lands 07;Gare Du Nord;How Was It For You?;Euro Lounge 08;Marta Gómez;La Ronda;Women of Latin America 09;Baguette Quartette;En Douce;French Café 10;Topsy Chapman and the Pros;Baby Won't You Please Come Home;New Orleans Listing 10.1
Die Beispieldatei »ce_tabelle.csv«
Im folgenden ToDo importieren Sie diese Datei. ToDo: Importieren der Tabellendaten aus einer CSV-Datei 1. Kopieren Sie die Datei ce_tabelle.csv mit der Dateiverwaltung von der Buch-DVD in den Ordner tl_files/importieren/. Oder tippen Sie Listing 10.1 ab. 2. Öffnen Sie im Backend-Modul Artikel den Artikel Weitere Elemente [Hauptspalte] zur Bearbeitung. 3. Löschen Sie eventuell vorhandene Inhaltselemente, und fügen Sie ein Inhaltselement Text mit den folgenden Einstellungen ein: h1-Überschrift »Weitere Elemente«, Text »Auf dieser Seite werden die Inhaltselemente Tabelle und Akkordeon vorgestellt.« und CSS-Klasse »seitenanfang«. 4. Klicken Sie auf Speichern und neu. 5. Erstellen Sie ein Inhaltselement Text mit der h2-Überschrift »Das Inhaltselement Tabelle« und dem Text »Die folgende Tabelle zeigt Titel und Interpreten des Putumayo Café Samplers«. 6. Klicken Sie auf Speichern und neu. 7. Wählen Sie den Elementtyp Tabelle. 8. Klicken Sie auf das Symbol zum Importieren von CSV-Dateien. 9. Wählen Sie als Trennzeichen den »Strichpunkt«. 10. Kreuzen Sie in tl_files/importieren/ die ce_tabelle.csv an. 11. Klicken Sie auf die Schaltfläche CSV-Import. Wenn die fertige Tabelle in einer Spalte erscheint, haben Sie das falsche Trennzeichen gewählt. Versuchen Sie es gleich noch einmal. 12. Geben Sie im Feld Zusammenfassung »Putumayo Café Sampler« ein. é ist übrigens das HTML-Kürzel für ein »é«. 13. Aktivieren Sie die Optionen Kopfzeile hinzufügen. 14. Klicken Sie auf Speichern und Schliessen.
268
Das Inhaltselement »Tabelle«: ce_table
Im Frontend sieht die unformatierte Tabelle so aus wie in Abbildung 10.2.
Abbildung 10.2 Die importierte Tabelle, noch unformatiert
HTML und Insert-Tags sind erlaubt Zur Gestaltung des Textes im Eingabeassistenten können Sie auch HTML-Elemente wie strong benutzen, müssen diese allerdings manuell eingeben. Sogar Insert-Tags zum Einfügen von Hyperlinks oder Bildern sind erlaubt. Hier ein Beispiel: {{image::tl_files/beispielsite/content/fotos/foto01.jpg}}
Eine Übersicht über Insert-Tags finden Sie in Kapitel 22.6.
10.1.3 Das HTML für das Inhaltselement »Tabelle« Bevor Sie die Tabelle mit ein paar CSS-Regeln gestalten, werfen Sie einen kurzen Blick auf den HTML-Quelltext:
Nr.
Künstler
269
10.1
10
Weitere nützliche Inhaltselemente
Titel
Album
01
Giorgio Conte
Cannelloni
Italian Café
02
Maria de Barros
Mi Nada Um Ca Tem
Women of Africa
...
Listing 10.2
Ausschnitt aus dem HTML für das Inhaltselement »Tabelle«
Verschiedene Tabellen durch verschiedene Klassen Im Eingabeformular für das Inhaltselement Tabelle können Sie bei Bedarf in den Experten-Einstellungen noch spezielle IDs und Klassen für das umgebende div-Element vergeben, mit denen die Tabellen gestaltet werden können. Damit wäre es möglich, im CSS Formatierungen für verschiedene Arten von Tabellen zu hinterlegen, die ein Redakteur ganz einfach durch Eingabe einer Klasse wie umsatztabelle anwenden kann.
10.1.4 Das Inhaltselement »Tabelle« per CSS gestalten Sinnvoll gesetzte IDs und Klassen erleichtern die Gestaltung der Tabelle per CSS. Hier ein Beispiel zur Gestaltung der Tabelle: .ce_table table { background-color: #d9d9d9; border-collapse: collapse; border-bottom: 2px solid #bbb; margin-bottom: 1em; } .ce_table thead { background-color: #fff; color: #000;
CSS-Regeln zur Gestaltung des Inhaltselements »Tabelle«
In Listing 10.3 sind folgende Details erwähnenswert: 왘
Mit der Klasse .ce_table am Anfang der Selektoren beschränken Sie die Gestaltung auf Tabellen, die mit dem Inhaltselement Tabelle erstellt wurden.
왘
Die CSS-Regel .ce_table tr.odd gestaltet ungerade Tabellenzeilen und ermöglicht so übersichtliche Zebrastreifen mit einem Style. Die Klasse für gerade Zeilen heißt entsprechend tr.even.
Die Ausrichtung von Text innerhalb der Tabellenzellen ist übrigens bereits im Reset-Stylesheet basic.css erfolgt: links und oben. ToDo: Die Tabelle gestalten 1. Öffnen Sie das Stylesheet bildschirm.css in einem Editor. 2. Fügen Sie am Ende des Stylesheets die Styles aus Listing 10.3 ein. 3. Speichern Sie das Stylesheet.
Abbildung 10.3 zeigt die gestaltete Tabelle im Browser. Tabelle im Frontend sortierbar machen Um die Tabelle im Frontend sortierbar zu machen, öffnen Sie das Inhaltselement und aktivieren die Option Sortierbare Tabelle. Der Sortierindex 0 sortiert die Tabelle nach der ersten Spalte. Im Frontend können Sie die Tabelle mit einem Klick auf eine Spaltenüberschrift sortieren, und in der Überschriftzeile erscheinen kleine Grafikpfeile, die die aktuelle Sortierung anzeigen.
271
10.1
10
Weitere nützliche Inhaltselemente
Abbildung 10.3 Die importierte Tabelle, formatiert
10.2
Das Inhaltselement »Akkordeon«: »ce_accordion«
Das Wort »Akkordeon« löste bei mir in jungen Jahren eine eher unangenehme Assoziationskette aus: Akkordeon. Zeltlager. Mundorgel. Ein kleines rotes Büchlein mit volkstümlichem Liedgut, das zu einer leichten Akkordeonallergie führte. Die ist im Laufe der Jahre aber verflogen, und ich habe gelernt, dass ein Akkordeon, richtig eingesetzt, sehr angenehm sein kann. Das gilt auch für das Inhaltselement in diesem Abschnitt. »Akkordeon« ist ein typischer Web2.0-Effekt, bei dem auf einer Webseite ein Detailbereich per Mausklick auf eine Überschrift ein- und ausgeblendet wird. Wenn mehrere solcher Elemente untereinander stehen, wirkt das Auf- und Zuklappen mit ein bisschen Fantasie wie ein, ja genau, Sie haben es erraten. Auf der Beispielsite werden im Folgenden mithilfe des Inhaltselements Akkordeon drei CDs kurz vorgestellt. Diese erscheinen neben der Tabelle in der rechten Spalte (Abbildung 10.4).
272
Das Inhaltselement »Akkordeon«: »ce_accordion«
Abbildung 10.4 Ein Akkordeon in der rechten Spalte
Der große Vorteil eines Akkordeons ist, dass man Informationen damit sehr platzsparend darstellen kann. Ein potenzieller Nachteil ist, dass Besucher, die nicht auf die Überschriften klicken, die ausgeblendeten Elemente nicht sehen und unverrichteter Dinge wieder von dannen ziehen.
10.2.1
Seitenlayout vorbereiten und Artikel erstellen
Zunächst einmal treffen Sie ein paar Vorbereitungen im Seitenlayout: Zuerst sorgen Sie im Bereich Frontend-Module dafür, dass im Frontend Artikel in der rechten Spalte dargestellt werden. Dann muss das MooTools-Template moo_accordion aktiviert werden, damit das für ein Akkordeon benötigte JavaScript zur Verfügung gestellt wird. Nach diesen Vorbereitungen legen Sie im folgenden ToDo noch einen neuen Artikel an, der erstmals in der rechten Spalte erscheinen wird. ToDo: Seitenlayout vorbereiten und Artikel erstellen 1. Öffnen Sie im Backend-Modul Themes das Seitenlayout Standardlayout [Standard] zur Bearbeitung. 2. Erstellen Sie im Bereich Frontend-Module eine neue Zeile und wählen Sie das Modul Artikel in der Spalte Rechte Spalte. Es ist egal wo. Contao sortiert die Zeilen nach dem Speichern.
273
10.2
10
Weitere nützliche Inhaltselemente
ToDo: Seitenlayout vorbereiten und Artikel erstellen (Forts.) 3. Aktivieren Sie weiter unten im Bereich Skript-Einstellungen das MooTools-Template moo_accordion. 4. Klicken Sie auf Speichern und Schliessen. 5. Wechseln Sie in das Backend-Modul Artikel. 6. Klicken Sie oben im Arbeitsbereich auf Neuer Artikel, und fügen Sie ihn mit einem Klick auf den braunen Pfeil nach unten unterhalb des Artikels Weitere Elemente [Hauptspalte] ein. 7. Bearbeiten Sie die Artikel-Einstellungen wie folgt: 8. Titel: »CDs im Akkordeon« (ohne Anführungsstriche) 9. Anzeigen in: Rechte Spalte 10. Aktivieren Sie die Option Artikel veröffentlichen. 11. Klicken Sie auf Speichern und Schliessen.
Im Browser ist nach diesem ToDo nichts zu sehen, da der Artikel noch keine Inhaltselemente hat, aber es ist alles vorbereitet.
10.2.2 Das Eingabeformular für das Inhaltselement »Akkordeon« Wenn Sie beim Einfügen eines neuen Inhaltselements den Elementtyp Akkordeon auswählen, erscheint das in Abbildung 10.5 dargestellte Eingabeformular. Ganz oben sehen Sie den gewählten Elementtyp Akkordeon. Die Optionen darunter sind wie folgt: 왘
Betriebsart: Mit der Option Einzelnes element ähnelt das Akkordeon einem normalen Textelement. Es kann eine Bereichsüberschrift genannte Überschrift, ein bisschen Text und optional ein Bild enthalten. Durch einen Klick auf die Überschrift werden Text und Bild im Browser ein- und ausgeblendet. Ein Akkordeon kann auch bereits bestehende Inhaltselemente enthalten. Dazu fügen Sie einfach vor den entsprechenden Inhaltselementen ein Akkordeon-Element mit der Betriebsart Umschlag Anfang und danach eines mit der Betriebsart Umschlag Ende hinzu.
왘
Bereichsüberschrift: Durch einen Klick auf die Bereichsüberschrift wird der Inhalt des Akkordeons ein- und ausgeblendet. HTML-Elemente sind erlaubt, und die Überschrift könnte im Feld CSS-Format auch gleich gestaltet werden.
왘
Klassennamen müssen nur vergeben werden, wenn Sie mehr als ein Akkordeon pro Webseite benutzen möchten. Allerdings muss dann auch das MooTools-JavaScript entsprechend angepasst werden, was nicht ganz so trivial ist.
274
Das Inhaltselement »Akkordeon«: »ce_accordion«
왘
Text und Ein Bild hinzufügen funktionieren genau wie bei einem normalen Inhaltselement »Text«.
Abbildung 10.5 Das Eingabeformular für das Inhaltselement »Akkordeon«
Genug der Theorie. Es wird Zeit, ein Akkordeon zu bauen.
275
10.2
10
Weitere nützliche Inhaltselemente
10.2.3 Zugeschaut und mitgebaut: Drei Akkordeons erstellen In diesem Abschnitt legen Sie nach der gründlichen Vorbereitung nun Ihre Prüfung zum zertifizierten Instrumentenbauer ab und erstellen drei Akkordeons, in denen die CDs Latin Lounge, African Groove und Sahara Lounge vorgestellt werden, jeweils mit einem Bild und einer Zeile Text. ToDo: Drei Inhaltselemente »Akkordeon« erstellen 1. Kopieren Sie mit der Dateiverwaltung die drei CD-Cover von der Buch-DVD in den Ordner beispielsite/content/bilder. 2. Öffnen Sie im Backend-Modul Artikel den Artikel CDs im Akkordeon zur Bearbeitung. 3. Fügen Sie ein neues Inhaltselement Akkordeon hinzu. 4. Wählen Sie als Betriebsart Einzelnes Element. 5. Geben Sie als Bereichsüberschrift »Latin Lounge« ein. 6. In das Feld Text schreiben Sie einfach nur »Der Bestseller«. 7. Aktivieren Sie die Option Ein Bild hinzufügen. 8. Wählen Sie das Bild cover_latin_lounge.jpg im Ordner beispielsite/content/bilder/. 9. Geben Sie als Alternativer Text »Cover der CD Latin Lounge« ein. 10. Das Feld Bildlink-Adresse bleibt leer, aber hier könnten Sie z. B. einen direkten Link zu einer Bestellmöglichkeit hinterlegen. 11. Wählen Sie als Bildausrichtung die erste Option »oberhalb«. 12. Klicken Sie auf Speichern und neu. 13. Wiederholen Sie diese Schritte für die CDs »African Groove« und »Sahara Lounge«. Als Text geben Sie eine kurze Beschreibung wie »Musik zum Tanzen« bzw. »Musik aus der Wüste« ein. 14. Klicken Sie auf Speichern und Schliessen.
Im Browser erscheint der Artikel (wie in Abbildung 10.6 zu sehen ist) in der rechten Spalte, und er enthält die drei Akkordeons. Das ist nicht hübsch, aber sie sind bereits bespielbar. Das erste Element ist standardmäßig sichtbar, und ein Klick auf die Bereichsüberschriften blendet das entsprechende Cover und die kurze Beschreibung ein. Das Akkordeon ist somit wie gesagt bespielbar, aber da es weder benutzerfreundlich ist noch gut aussieht, wäre es wahrscheinlich ein echter Ladenhüter. Deshalb wird es in den nächsten Abschnitten noch ein bisschen verbessert.
276
Das Inhaltselement »Akkordeon«: »ce_accordion«
Abbildung 10.6 Drei Akkordeons – bespielbar, aber nicht hübsch
10.2.4 Das HTML für ein Akkordeon Das HTML für ein Akkordeon ist unspektakulär. Das Inhaltselement selbst bekommt ein div mit den Klassen ce_accordion und block. Akkordeon schreibt sich im Englischen accordion, mit Doppel-»c« und einem »i«. Denken Sie dran. In diesem div liegen die Überschrift und der Inhalt, jeweils wieder in einem eigenen div. Die Überschrift hat die Klasse toggler (to toggle bedeutet ein- und ausschalten) und der Inhalt die Klasse accordion. Listing 10.4 zeigt das komplette HTML für das Inhaltselement Akkordeon:
Latin Lounge
Der Bestseller.
Listing 10.4
Das HTML für ein Akkordeon
10.2.5 Das CSS zur Gestaltung eines Akkordeons So viel zum HTML. Das CSS zur Gestaltung der Elemente aus Listing 10.4 ist erstaunlich kurz und besteht aus nur drei CSS-Regeln:
277
10.2
10
Weitere nützliche Inhaltselemente
ToDo: Akkordeon per CSS gestalten 1. Öffnen Sie das Stylesheet bildschirm.css im Editor. 2. Fügen Sie ganz am Ende die folgenden Styles ein: #right .ce_accordion { width: 142px; float: right; border: 1px solid #d9d9d9; } .ce_accordion .toggler { cursor: pointer; background: #d9d9d9; padding: 0.25em 0.5em; } .ce_accordion .accordion div { font-size: 11px; padding: 0.75em 0.5em; }
3. Speichern Sie das Stylesheet.
Nach diesem ToDo sehen die Akkordeons schon etwas besser aus:
Abbildung 10.7 Formatierte Akkordeons
Und hier die Styles im Überblick: 왘
Im ersten Style bekommen die Akkordeons eine feste Breite von 142px und werden nach rechts gefloatet. Die ID #right beschränkt den Style auf die rechte Spalte, damit z. B. in der Hauptspalte platzierte Akkordeons nicht auch versehentlich auf 142px geschrumpft und nach rechts gefloatet werden.
왘
Die Bereichsüberschrift wird hellgrau hinterlegt, und damit Besucher verstehen, dass sie anklickbar ist, wird der Mauszeiger mit cursor:pointer zu einer Klickhand umgeformt, wie bei einem Hyperlink.
왘
Last, but not least wird der Text innerhalb des Akkordeons etwas verkleinert.
Anklickbar. Platzsparend. Fertig.
278
Das Inhaltselement »Akkordeon«: »ce_accordion«
10.2.6 Optional: Grafiken zur Statusanzeige Eine Gefahr beim Einsatz von Akkordeons ist, dass ein Besucher nicht merkt, dass sich hinter den Überschriften noch versteckte Inhalte verbergen. Um dem entgegenzuwirken, können Sie in der Bereichsüberschrift für ein- und ausgeklappte Akkordeons jeweils unterschiedliche Grafiken anzeigen. Dazu muss zunächst das zuständige Template so erweitert werden, dass ein ausgeklapptes Akkordeon eine zusätzliche Klasse wie zum Beispiel .active bekommt. Auf der Buch-DVD finden Sie das Template moo_accordion_active.tpl, das auf dem Forumsbeitrag »Akkordeon toggler« von Community-Moderator xchs basiert. Und los geht’s: 왘
Kopieren Sie die Datei moo_accordion_active.tpl in den Ordner templates/ blaues_theme/.
왘
Deaktivieren Sie im Seitenlayout das Moo-Template moo_accordion.
왘
Aktivieren Sie das neue Moo-Template moo_accordion_active.
Nach dieser Aktion hat ein ausgeklapptes Akkordeon im umgebenden div-Element zusätzlich die Klasse .active, mit der Sie im CSS den Bereichsüberschriften unterschiedliche Hintergrundgrafiken zuweisen können. Jetzt fehlen nur noch passende Grafiken. Gut geeignet wären ein Plus-Zeichen für ein zugeklapptes Akkordeon und ein Minus-Zeichen für ein ausgeklapptes. Kopieren Sie dazu einfach die Grafiken minus.gif und plus.gif von der Buch-DVD in den Ordner themes/blaues_theme/grafiken. Das CSS zur Einbindung der Grafiken könnte so aussehen wie in Listing 10.5. Ein zugeklapptes Akkordeon (.toggler) bekommt ein Plus-Zeichen, ein ausgeklapptes (.toggler.active, ohne Leerstelle!) ein Minus-Symbol: .ce_accordion .toggler { background: #d9d9d9 url(grafiken/plus.gif) no-repeat left center; padding: 0.25em 0.5em 0.25em 1.5em; } .ce_accordion .toggler.active { background: #d9d9d9 url(grafiken/minus.gif) no-repeat left center; } Listing 10.5
Das CSS zur Einbindung der Grafiken
Abbildung 10.8 zeigt die fertigen Akkordeons mit den Grafiken.
279
10.2
10
Weitere nützliche Inhaltselemente
Abbildung 10.8
10.3
Akkordeons mit Grafiken zur Statusanzeige
Externe Videos auf Webseiten einbinden
In diesem Abschnitt möchte ich Ihnen zeigen, wie man in Contao mit Bordmitteln externe Videos einbinden kann.
10.3.1 Inhaltselement »Text«: Ein Link in einer Mediabox Sie beginnen mit einer einfachen und doch nicht so ganz offensichtlichen Möglichkeit, Videos auf einer Webseite anzuzeigen: mit einem ganz normalen Hyperlink im Inhaltselement Text, der das Video in einer Mediabox anzeigt, die Sie bereits von der Großansicht eingefügter Bilder her kennen. Im folgenden ToDo erstellen Sie den Link, der zu Abbildung 10.9 führt. ToDo: Ein Video in einer Mediabox anzeigen 1. Öffnen Sie im Backend-Modul Artikel den Artikel Videos. 2. Löschen Sie eventuell vorhandene Inhaltselemente, und fügen Sie ein Inhaltselement Text mit den folgenden Einstellungen ein: h1-Überschrift »Videos«, Text »Auf dieser Seite sehen Sie, wie Sie Videos auf Ihren Webseiten anzeigen.« und CSS-Klasse »seitenanfang«. 3. Klicken Sie auf Speichern und neu. 4. Erstellen Sie die h2-Überschrift »Ein Video in einer Mediabox«. 5. Gegen Sie im TinyMCE-Editor folgenden Text ein: Der folgende Link zeigt ein Video in einer Mediabox: • The Police – Roxanne (YouTube, 03:42) Live at Pink Pop in 1979.
6. Markieren Sie Bandnamen und Titel (»The Police – Roxanne«), und klicken Sie in der Symbolleiste auf das Kettensymbol zum Einfügen eines Hyperlinks, um das Dialogfeld zu öffnen.
280
Externe Videos auf Webseiten einbinden
ToDo: Ein Video in einer Mediabox anzeigen (Forts.) 7. Geben Sie im Dialogfeld im Feld Adresse die URL zum Video ein: http://www.youtube.com/watch?v=-wpX6drarrs 8. Wählen Sie im Feld Lightbox den Wert (value), und fügen Sie dann den Wert lightbox[video 480 385] ein. Vor der eckigen Klammer steht keine Leerstelle, nach video und 480 hingegen wohl. 9. Klicken Sie auf die Schaltfläche Einfügen. 10. Klicken Sie auf Speichern und Schliessen.
Abbildung 10.9 zeigt das Ergebnis im Browser.
Abbildung 10.9
Ein Link zeigt ein Video in einer Mediabox.
Der Trick ist der Eintrag im Feld Lightbox: lightbox[video 480 385] bewirkt, dass der Browser das Linkziel in einer Mediabox der Größe 480 × 385 Pixel anzeigt, und das ist für dieses YouTube-Video gut. Sie können dort je nach Video natürlich auch eine andere Größe eingeben. Falls die ungeordnete Liste ohne Einrückung und Aufzählungspunkt erscheint, liegt das am Reset in der basic.css. Mit folgenden Styles am Anfang der bildschirm.css können Sie die Abstände wiederherstellen: /* Restaurierung der Listen */ ol,ul { margin-bottom:1.5em; } li { margin-left:2em; } ul li { list-style: square; } ol li { list-style: decimal; } Listing 10.6
Restaurierung der Listen in bildschirm.css
281
10.3
10
Weitere nützliche Inhaltselemente
Über das »video« in »lightbox[video 480 385]« Das Wort in den eckigen Klammern dient zur Gruppierung von Lightboxen auf einer Seite. Wenn Sie also mehrere Videos auf einer Seite einbinden und alle mit dem Wort video kennzeichnen, wird die Mediabox quasi zur Videogalerie. Neben dem X zum Schließen erscheinen rechts unten in der Mediabox Pfeile nach rechts oder links, mit denen der Besucher zum nächsten oder zum vorherigen Video gehen kann. Das Wort video selbst ist nicht wichtig, und Sie könnten ohne Weiteres auch pop oder external oder sowas nehmen.
10.3.2 Das Inhaltselement »HTML«: »ce_html« Mit dem Inhaltselement HTML können Sie einem Artikel (fast) beliebigen HTMLCode zufügen. Das Eingabeformular ist sehr übersichtlich und besteht, wie Abbildung 10.10 zeigt, nur aus einer Textarea mit einem integrierten Editor.
Abbildung 10.10 Das Eingabeformular für das Inhaltselement HTML
Mit den Bedienelementen der Symbolleiste können Sie das Verhalten des Editors steuern und zum Beispiel den Zeilenumbruch ein- und ausschalten. Unterhalb der Textarea können Sie den Editor auch deaktivieren. Im Inhaltselement HTML sind übrigens nicht alle HTML-Elemente erlaubt. Die im Kommentar unterhalb der Textarea angesprochene Liste der erlaubten HTML-Elemente finden Sie im Backend-Modul System 폷 Einstellungen im Bereich Sicherheitseinstellungen.
282
Externe Videos auf Webseiten einbinden
Die Aufzählung Erlaubter HTML-Tags ist relativ lang, enthält aber zum Beispiel weder embed noch iframe. Wenn Sie im Feld HTML-Code also z. B. den Einbettungscode für ein YouTube-Video einfügen möchten, müssen Sie hier vorher <embed> erlauben. Im folgenden ToDo fügen Sie auf der Seite Videos einen Link zu dem Video »La Ronda« von Marta Goméz ein. Sie können aber natürlich auch gerne ein anderes Video nehmen. ToDo: Videos mit dem Inhaltselement »HTML« einbetten 1. Öffnen Sie das Backend-Modul System 폷 Einstellungen, und fügen Sie bei Sicherheitseinstellungen das HTML-Tag <embed> hinzu. 2. Klicken Sie auf Speichern und Schliessen. 3. Öffnen Sie im Backend-Modul Artikel den Artikel Videos auf der gleichnamigen Seite. 4. Erstellen Sie ein Text-Element mit der h2-Überschrift »Videos einbetten mit dem Inhaltselement HTML« und dem Text »Das folgende Video wurde mit dem Inhaltselement HTML eingebettet.« 5. Erstellen Sie darunter ein Inhaltselement vom Typ HTML. 6. Rufen Sie jetzt das gewünschte YouTube-Video im Browser auf: http://www.youtube.com/watch?v=y45W4bHWerU 7. Konfigurieren Sie das Video bei YouTube mit einem Klick auf den Link <einbetten>. Eine gute Größe ist 480 × 385 Pixel. 8. Kopieren Sie den Einbettungscode in die Zwischenablage. 9. Fügen Sie den YouTube-Code aus der Zwischenablage in das Feld HTML-Code ein. 10. Klicken Sie auf Speichern und Schliessen.
Im Browser wird jetzt der bekannte Player von YouTube mit dem Startbild von »La Ronda« angezeigt (Abbildung 10.11). Im Quelltext der Webseite steht übrigens nur der in der Textarea eingegebene Code. Pur. Falls Sie ein umgebendes div-Element in der Art von
wünschen, müssen Sie diesen in der Textarea selbst hinzufügen. Natürlich funktioniert das Einbetten von Videos nicht nur mit YouTube, sondern auch mit anderen Videoportalen wie Vimeo, Sevenload & Co. Sie benötigen nur einen Einbettungscode, den Sie im Inhaltselement HTML einfügen können.
283
10.3
10
Weitere nützliche Inhaltselemente
Abbildung 10.11 Das eingebettete Video von YouTube auf Ihrer Webseite
MP3s mit der Erweiterung »[pluginmp3]« abspielen Von Haus aus hat Contao kein Inhaltselement, das zum Abspielen einer MP3-Datei einen Player bereitstellt, aber es gibt eine Erweiterung namens [pluginmp3], die diese Aufgabe hervorragend löst: 왘
Eine Erweiterung, um einfach MP3’s als Inhalt hinzuzufügen http://www.contao.org/erweiterungsliste/view/pluginmp3.html
Installieren Sie den Player, laden Sie die MP3-Dateien hoch, und erstellen Sie dann in einem Artikel ein neues Inhaltselement.
10.4
Weitere Inhaltselemente im Überblick
Es gibt noch zahlreiche andere Inhaltselemente in Contao, und in Form von Erweiterungen kommen ständig neue hinzu. Im Folgenden möchte ich zum Abschluss noch einige Inhaltselemente kurz vorstellen.
10.4.1 Das Inhaltselement »Code«: »ce_code« Das Inhaltselement Code dient dazu, in einem Artikel Quelltext oder Programmcode darzustellen, der jedoch nicht ausgeführt wird. Der Code wird durch eine Syntaxhervorhebung eingefärbt und dadurch leichter lesbar. Ein Besucher kann
284
Weitere Inhaltselemente im Überblick
den dargestellten Code leicht kopieren oder ausdrucken. Abbildung 10.12 zeigt das Eingabeformular für das Inhaltselement Code im Überblick.
Abbildung 10.12 Das Eingabeformular für das Inhaltselement »Code«
Wichtig sind das Feld zur Auswahl der Syntaxhervorhebung und das Feld Code zur Eingabe des darzustellenden Programmcodes. Mit dem Feld Konfiguration kann das zur Syntaxhervorhebung benutzte Plugin SyntaxHighlighter von Alex Gorbatchev konfiguriert werden. Nähere Infos dazu gibt es bei Bedarf direkt beim Programmierer (english only) : 왘
http://alexgorbatchev.com/wiki/SyntaxHighlighter
Abbildung 10.13 zeigt das Template moo_accordion_active.tpl, das ab Seite 279 zur Erweiterung der Akkordeons eingesetzt wurde.
285
10.4
10
Weitere nützliche Inhaltselemente
Abbildung 10.13 Inhaltselement »Code« mit »moo_accordion_active.tpl«
10.4.2 Das Inhaltselement »Aufzählung«: »ce_list« Das Inhaltselement Aufzählung fügt dem Artikel eine nicht verschachtelte nummerierte (ol) oder nicht nummerierte (ul) Liste hinzu. Beim Anlegen der Liste wird der Redakteur ähnlich wie beim Inhaltselement Tabelle von einem JavaScript-basierten Eingabeassistenten unterstützt, und auch hier gibt es die Möglichkeit zum Importieren einer CSV-Datei.
Abbildung 10.14 Die Eingabemaske für das Inhaltselement »Aufzählung«
286
Weitere Inhaltselemente im Überblick
Die Erstellung einer nicht verschachtelten Liste mit dem Inhaltselement Text im TinyMCE-Editor ist wahrscheinlich oft einfacher als die Arbeit mit dem Inhaltselement Aufzählung. Die Aufzählung aus Abbildung 10.14 sieht im Quelltext übrigens so aus:
Fünf Schritte zum fertigen Projekt
Rahmenbedingungen festlegen
Sammeln
Sortieren
Skizzieren
Umsetzen
Listing 10.7
Das Inhaltselement »Aufzählung« im Quelltext
10.4.3 Das Inhaltselement »Modul« Das Inhaltselement Modul soll hier noch kurz vorgestellt werden, auch wenn Sie es bei der Erstellung der Sitemap in Abschnitt 8.8, »Sitemap: Das Inhaltsverzeichnis der Website«, bereits kennengelernt haben. Wie der Name andeutet, können Sie mit dem Inhaltselement Modul ein Frontend-Modul in einen Artikel einbinden. Auf der Beispielsite werden die meisten Module bis jetzt im Seitenlayout eingebunden, weil sie auf allen Seiten an der gleichen Stelle erscheinen sollen. Wenn ein Modul im Frontend nur auf einer Seite dargestellt werden soll, wird es nicht im Seitenlayout eingebunden, sondern mit dem Inhaltselement Modul in einem Artikel.
10.4.4 Die »Include«-Elemente im Kurzüberblick Ganz am Ende der Auswahlliste Elementyp gibt es noch eine Gruppe von Inhaltselementen mit dem schönen Namen Include-Elemente. Diese Gruppe enthält die Elemente Kommentar, Artikel, Inhaltselement und Artikel-Teaser. Diese möchte ich Ihnen der Reihe nach kurz vorstellen: 왘
Mit dem Inhaltselement Kommentar können Sie jedem Artikel ein Kommentarformular zuweisen. Das funktioniert im Prinzip genauso wie es bei den Newsbeiträgen ab Seite 353 beschrieben wird.
왘
Mit dem Inhaltselement Artikel können Sie einen Verweis auf einen Artikel erstellen und ihn so auf anderen Seiten einbinden, ohne ihn zu kopieren.
287
10.4
10
Weitere nützliche Inhaltselemente
Wenn sich das Original ändert, ändert sich automatisch auch die mit diesem Inhaltselement eingefügte Verknüpfung. Es werden nur die Inhaltselemente des Artikels übernommen, nicht die Artikel-Einstellungen, und die Verknüpfung verwendet dieselben CSS-Klassen wie das Original. 왘
Das Inhaltselement Inhaltselement (kein Druckfehler) macht dasselbe, nur nicht für einen ganzen Artikel, sondern für ein einzelnes Inhaltselement daraus. Auch hierbei werden dieselben CSS-Klassen wie beim Original benutzt.
왘
Das Inhaltselement Artikel-Teaser fügt dem Artikel den Teasertext eines anderen Artikels hinzu. Der Teaser enthält wie immer einen Link zum »Weiterlesen …«. Dieser Link führt dann direkt zum Original-Artikel.
Das Inhaltselement Formular lernen Sie gleich in Kapitel 11, »Kontakt: Formulare erstellen mit Contao«, näher kennen. Die Inhaltselemente »Download« und »Downloads« Es gibt noch zwei Inhaltselemente namens Download und Downloads, mit denen man einem Artikel Download-Links hinzufügen kann. Im Gegensatz zu einem normalen Hyperlink ermöglichen diese Inhaltselemente auch den Download von ansonsten geschützten Dateien, auf die man vom Browser aus nicht direkt zugreifen kann. Mehr dazu erfahren Sie bei der Erstellung eines geschützten Downloadbereichs in Abschnitt 19.5.
288
In diesem Kapitel lernen Sie den praktischen Formulargenerator von Contao kennen, mit dem Sie ein Kontaktformular erstellen. Zum Abschluss gibt es noch eine Übersicht der Formularfeldtypen, die Contao anbietet.
11
Kontakt: Formulare erstellen mit Contao
Ein Kontaktformular, das es einem Besucher ermöglicht, Ihnen eine Nachricht zu schicken, ist ein Standardfeature einer modernen Website. In diesem Kapitel erstellen Sie ein solches Kontaktformular und lernen dabei die wichtigsten Dinge zum Erstellen von Formularen mit Contao.
11.1
Ein Kontaktformular für die Beispielsite erstellen
Gleich vorweg das Wichtigste: Contao hat einen Formulargenerator, mit dem es sehr einfach ist, interaktive Formulare zu erstellen. Die vom Besucher eingegebenen Daten werden nach dem Abschicken per E-Mail verschickt oder auf Wunsch auch in der Datenbank gespeichert. Die Arbeit mit Formularen wird durch den Formulargenerator enorm beschleunigt und fast zum Vergnügen, denn Contao erzeugt aus Ihren Einstellungen fertige Formularfelder mit label und allem Drum und Dran und übernimmt darüber hinaus den lästigen und arbeitsintensiven Teil der Formularüberprüfung und der Verarbeitung der Formulardaten. In diesem Abschnitt erstellen Sie zum Kennenlernen des Formulargenerators ein einfaches, funktionsfähiges Kontaktformular für die Beispielsite, das am Ende dieses Abschnitts ungefähr so aussehen wird wie in Abbildung 11.1. Zur Erstellung dieses Formulars benötigen Sie die folgenden Zutaten: 왘
ein Kontaktformular, das Sie mit dem Formulargenerator erstellen
왘
eine Seite, auf der das Formular erscheint. Diese Seite gibt es bereits, und sie heißt kontakt.html
289
11
Kontakt: Formulare erstellen mit Contao
왘
einen Artikel, mit dem Sie das Formular auf kontakt.html einbinden
왘
eine zweite Seite, die nach dem Abschicken des Formulars aufgerufen wird und auf der eine Mitteilung für den Besucher erscheint
Abbildung 11.1 Das fertige Kontaktformular
Außerdem werfen Sie nach der Erstellung des Formulars wie immer einen Blick in den Quelltext und gestalten das Formular mit einer Prise CSS. Schritt 1: »Vielen Dank« – Eine Weiterleitungsseite erstellen Bevor Sie sich an die Erstellung des Kontaktformulars machen, erstellen Sie in diesem Abschnitt zunächst eine Weiterleitungsseite, die nach dem Abschicken des Formulars aufgerufen wird. Auf dieser Seite sagt man einfach nur »Vielen Dank« und teilt dem Besucher kurz und bündig mit, dass beim Abschicken der Daten alles glattgegangen ist und man sich so schnell wie möglich darum kümmern wird. Eine Adresse und eventuell sogar eine Telefonnummer sowie Links auf andere interessante Seiten der eigenen Site sind auch erlaubt. Im folgenden ToDo erstellen Sie eine solche »Vielen Dank«-Seite als reguläre Seite, die im Menü versteckt und veröffentlicht ist (Abbildung 11.2).
290
Ein Kontaktformular für die Beispielsite erstellen
ToDo: Die Weiterleitungsseite »Vielen Dank« erstellen 1. Öffnen Sie das Backend-Modul Seitenstruktur. 2. Erstellen Sie eine neue Seite als Unterseite zu Kontakt mit folgenden Eigenschaften: Seitenname: »Vielen Dank« Seitentyp: Reguläre Seite Im Menü verstecken (bei den Experten-Einstellungen) Seite veröffentlichen
3. Klicken Sie auf Speichern und Schliessen. 4. Klicken Sie im Seitenbaum bei der Seite Vielen Dank auf das Symbol ganz rechts außen, um direkt in den Artikelbaum zu springen. 5. Öffnen Sie im Artikelbaum den Artikel Vielen Dank [Hauptspalte] zur Bearbeitung (gelber Bleistift). 6. Erstellen Sie ein neues Inhaltselement Text: h1-Überschrift: »Vielen Dank« Text: »Wir haben Ihre Nachricht erhalten und werden uns umgehend bei Ihnen melden.« CSS-Klasse: »seitenanfang« 7. Klicken Sie auf Speichern und Schliessen.
Der Seitenbaum sieht nach diesem ToDo so aus wie in Abbildung 11.2.
Abbildung 11.2 Der Seitenbaum mit der neuen »Vielen Dank«-Seite
291
11.1
11
Kontakt: Formulare erstellen mit Contao
Schritt 2: Das Kontaktformular erstellen Ein Formular ist genau wie ein Artikel nur ein Bereich auf einer Webseite. Ein Artikel besteht aus Inhaltselementen, ein Formular aus Formularfeldern. In diesem Abschnitt erstellen Sie deshalb zuerst das Formular selbst, und danach bevölkern Sie es im nächsten Abschnitt mit einigen Formularfeldern. Im Backend-Modul Formulargenerator gibt es nach einem Klick auf Neues Formular ein Eingabeformular zur Erstellung eines neuen Formulars. Abbildung 11.3 zeigt den oberen Teil dieses Formulars.
Abbildung 11.3 Formular zur Erstellung eines Formulars, Teil 1
Der Titel wird nur zur Verwaltung des Formulars im Backend benutzt. Die Weiterleitungsseite ist eine Seite aus dem Seitenbaum, zu der der Besucher nach dem Abschicken des Formulars weitergeleitet wird. Im Bereich Formularkonfiguration können Sie auswählen, ob das Formular mit oder ohne HTML-Tabelle ausgegeben werden soll. Tabellen sind als Layouthilfe für Webseiten zu Recht verpönt, aber eine einfache, nicht verschachtelte Tabelle zur Darstellung eines Formulars wäre auch unter dem Aspekt der Barrierefreiheit durchaus zu vertreten. Contao generiert auf Wunsch aber auch ein Tabellenloses Layout. Einfach ankreuzen. In der unteren Hälfte des Eingabeformulars geht es in erster Linie um die Optionen zur Verarbeitung der Formulardaten.
292
Ein Kontaktformular für die Beispielsite erstellen
Abbildung 11.4 Formular zur Erstellung eines Formulars, Teil 2
Nach der Aktivierung der Option Per E-Mail versenden können Sie die E-MailAdresse(n) des Empfängers, einen Betreff und das gewünschte Datenformat eingeben. Die Standardeinstellung ist »Rohdaten«, mit der die im Formular eingegebenen Daten allesamt im Textbereich der Mail versendet werden. Bei Bedarf können die Formulardaten auch als CSV- oder XML-Datei formatiert werden. Oder Sie probieren einmal das Format »E-Mail« (siehe Kasten nach dem ToDo). Formulardaten speichern ermöglicht die Speicherung der eingegebenen Daten in einer Tabelle der Contao-Datenbank. Dazu muss in der Zieltabelle für jedes Formularfeld ein gleichnamiges Datenbankfeld vorhanden sein. Ja, die Datenbankfelder müssen Sie selbst erstellen. Die standardmäßige Übertragungsmethode für ein Kontaktformular ist »POST«. Im folgenden ToDo erstellen Sie aus diesen Angaben das Kontaktformular. ToDo: Mit dem Formulargenerator ein Kontaktformular erstellen 1. Öffnen Sie das Backend-Modul Formulargenerator. 2. Klicken Sie oben im Arbeitsbereich oben auf Neues Formular. 3. Vergeben Sie den Titel »Kontaktformular« (ohne Anführungsstriche). 4. Wählen Sie als Weiterleitungsseite die im vorherigen Abschnitt erstellte Seite Vielen Dank.
293
11.1
11
Kontakt: Formulare erstellen mit Contao
ToDo: Mit dem Formulargenerator ein Kontaktformular erstellen (Forts.) 5. Aktivieren Sie Tabellenloses Layout. 6. Aktivieren Sie die Option Per E-Mail versenden. 7. Tragen Sie als Empfänger-Adresse Ihre Mailadresse ein. 8. Geben Sie einen Betreff ein, z. B. »Kontaktformular Beispielsite«. 9. Wählen Sie aus der Liste Datenformat die Option Rohdaten. 10. Vergeben Sie die CSS-Id »kontaktformular«, kleingeschrieben und ohne Anführungsstriche. 11. Klicken Sie auf Speichern und Schliessen.
Nach diesem ToDo ist das Formular definiert, und es geht gleich weiter mit der Erstellung der Formularfelder. Ein Formular mit dem Datenformat »E-Mail« Eine kleine Besonderheit bei der Konfiguration eines Formulars bietet das Datenformat E-Mail, denn dabei wird die zu verschickende Nachricht so erstellt, als ob sie mit einem E-Mail-Programm geschrieben worden wäre. Contao verarbeitet bei diesem Datenformat nur die Formularfelder mit den festgelegten Namen name, email, subject, message und cc sowie Dateianhänge. Alle anderen Felder werden ignoriert. In der erhaltenen Mail erscheint nur die Nachricht des Besuchers im Textbereich der Mail (message). Die anderen drei Felder werden zur Erstellung des Mailheaders verwendet. Für die meisten Formulare ist Rohdaten wahrscheinlich die bessere Wahl, aber um Nachrichten von einem einfachen Kontaktformular zu empfangen, ist E-Mail unter Umständen keine schlechte Option.
Schritt 3: Die Formularfelder für das Kontaktformular einfügen Das Formular ist erstellt, und die Eigenschaften sind definiert. Ähnlich wie bei den Inhaltselementen enthält Contao für die verschiedenen Formularfelder (Textfelder, Auswahlmenüs, Datei-Uploads, versteckte Felder etc.) jeweils ein eigenes Formularelement, das Sie im Formulargenerator wie gewohnt einzeln erstellen, löschen, verschieben oder ausblenden können. Die generelle Vorgehensweise zum Einfügen eines Formularfeldes ist bis auf feldspezifische Einstellungen immer gleich und wird im Folgenden für ein ganz normales, einzeiliges Eingabefeld gezeigt (Abbildung 11.5).
294
Ein Kontaktformular für die Beispielsite erstellen
Abbildung 11.5 Das Eingabeformular zur Erstellung eines Textfeldes
Hier die Erläuterung der wichtigsten Optionen: 왘
Wählen Sie den Feldtyp »Textfeld«.
왘
Der Feldname wird intern zur Verarbeitung der Formulardaten benötigt.
왘
Die Feldbezeichnung erscheint für den Besucher sichtbar auf der Webseite.
왘
Ein Häkchen bei Pflichtfeld bewirkt, dass das Feld vor dem Abschicken des Formulars ausgefüllt werden muss.
왘
Mit der Auswahlliste Eingabeprüfung können Sie wählen, nach welchen Kriterien das Formularfeld überprüft werden soll. Das kleine Schild mit dem roten Rand und dem Fragezeichen bietet auf Mausklick eine kurze Erklärung der möglichen Optionen.
Im folgenden ToDo erstellen Sie ein Textfeld für den Besuchernamen, ein Textfeld für die E-Mail-Adresse, eine Textarea für die Nachricht und natürlich eine Submit-Schaltfläche zum Abschicken des Formulars. Als kleine Besonderheit wird mit dem Formularelementtyp Checkbox-Menü ein Kontrollkästchen eingefügt, das dem Besucher auf Wunsch eine Kopie der Formulardaten an die von ihm eingegebene Mailadresse schickt. Die Beschriftung für die Checkbox wird ausnahmsweise nicht im Feld Feldbezeichnung eingetragen,
295
11.1
11
Kontakt: Formulare erstellen mit Contao
sondern im Assistenten darunter im Feld Bezeichnung. Tabelle 11.1 enthält eine Übersicht der Formularfelder für das Kontaktformular. Name
Mail
Nachricht
Kopie
Submit
Feldtyp
Textfeld
Textfeld
Textarea
CheckboxMenü
Absendefeld
Feldname
name
email
message
cc
–
Feldbezeichnung
Ihr Name
Ihre E-Mail
Ihre Nachricht
–
Abschicken
Pflichtfeld
Ja
Ja
Ja
–
–
Eingabeprüfung
Erw. alphanumerisch
E-MailAdresse
Erw. alphanumerisch
–
–
Sonstiges
–
–
10 Reihen 40 Spalten
Wert: cc Bezeichnung:
»Eine Kopie der Nachricht an mich senden« Tabelle 11.1 Die Formularfelder für das Kontaktformular – Übersicht
Im folgenden ToDo erstellen Sie die Formularfelder aus Tabelle 11.1. ToDo: Formularfelder zum Kontaktformular hinzufügen 1. Öffnen Sie das Backend-Modul formulargenerator. 2. Öffnen Sie das Formular Kontaktformular zur Bearbeitung (gelber Bleistift). 3. Klicken Sie oben im Arbeitsbereich auf Neues Feld, und fügen Sie es am Anfang des Formulars ein. 4. Wählen Sie als Feldtyp den Eintrag Textfeld. 5. Der zur Formularverarbeitung verwendete Feldname soll »name« sein. 6. Die auf der Website sichtbare Feldbezeichnung ist »Ihr Name«. 7. Aktivieren Sie das Kontrollkästchen Pflichtfeld. 8. Wählen Sie aus der Liste Eingabeprüfung den Eintrag Erweiterte Alphanumerische Zeichen. Diese Prüfung erlaubt alle Zeichen bis auf z. B. # / ( ) < = >. 9. Klicken Sie auf Speichern und neu. 10. Erstellen Sie die anderen in Tabelle 11.1 beschriebenen Formularfelder. 11. Klicken Sie auf Speichern und Schliessen.
Nach diesem ToDo sieht das Kontaktformular im Backend so aus wie in Abbildung 11.6.
296
Ein Kontaktformular für die Beispielsite erstellen
Abbildung 11.6 Das Formular mit Formularfeldern im Backend
Im Browser ist das Formular noch nicht zu sehen, da es noch nicht eingebunden wurde. Die speziellen Feldnamen »email« und »cc« Die Feldnamen email und cc sind nicht zufällig gewählt worden: 왘
Der Feldname email bewirkt, dass die Mailadresse des Besuchers in der empfangenen Mail als »Reply-To« eingetragen wird. Im Klartext: Zur Beantwortung der Anfrage klicken Sie einfach auf »Antworten«, und schon steht die Mailadresse des Besuchers im »An«-Feld.
왘
Der Feldname cc bei der Checkbox veranlasst Contao automatisch, eine zusätzliche Mail mit der Mailadresse des Besuchers zu verschicken. Sie müssen nichts weiter unternehmen.
297
11.1
11
Kontakt: Formulare erstellen mit Contao
Schritt 4: Das Kontaktformular auf der Seite »kontakt.html« einbinden Das Formular ist fertig, aber im Frontend noch nicht zu sehen. Es fehlt noch die Einbindung des Formulars in die Site. Da das Formular nur auf der Seite kontakt.html erscheinen soll, binden Sie das Formular in einem Artikel auf eben dieser Seite ein. ToDo: Das Kontaktformular einbinden 1. Öffnen Sie das Backend-Modul Artikel. 2. Öffnen Sie den Artikel Kontakt [Hauptspalte]. 3. Falls noch keine h1-Überschrift vorhanden sein sollte, fügen Sie ein Inhaltselement Überschrift mit dem Text »Kontakt« und der Klasse »seitenanfang« ein. 4. Erstellen Sie unterhalb der Überschrift ein neues Inhaltselement. 5. Wählen Sie als Elementtyp den Eintrag Formular. Daraufhin erscheint unterhalb eine Liste mit zur Verfügung stehenden Formularen. 6. Wählen Sie den Eintrag Kontaktformular (ID xx). 7. Klicken Sie auf Speichern und Schliessen.
Im Browser erscheint daraufhin das allerdings noch ungestaltete Kontaktformular, das bei Ihnen etwas anders aussehen kann als in Abbildung 11.7.
Abbildung 11.7 Das noch ungestaltete Kontaktformular im Browser
298
Ein Kontaktformular für die Beispielsite erstellen
Schritt 5: Das Kontaktformular testen Das Kontaktformular ist von der Gestaltung her noch nicht fertig, aber es funktioniert bereits, inklusive Formularüberprüfung und Ausgabe der Fehlermeldungen. Auf einem Online-Webspace werden die Daten auch bereits an die eingetragene E-Mail-Adresse verschickt, denn der Abschicken-Button sagt dem PHP-Interpreter Bescheid, und der wiederum kennt einen Mailserver zum Verschicken der Nachricht. Auf einem Offline-Webspace wie XAMPP gibt es auf dem localhost in der Regel keinen funktionierenden Mailserver, und deshalb kann der PHP-Interpreter die Mail nicht verschicken. Es gibt zwei mögliche Lösungen. Entweder Sie testen das Formular später auf dem Webspace und machen mit der Gestaltung des Formulars weiter. Oder Sie sagen Contao, welcher Mailserver für das Verschicken von Mails zuständig sein soll. Dazu benötigen Sie die Konfigurationsdaten für einen SMTP-Server. Falls Sie keinen eigenen Webspace haben, können Sie auch einen WebmailDienst wie z. B. GMail nutzen. Die genauen Daten finden Sie irgendwo auf den Webseiten des Dienstanbieters. Der Standard-Port für SMTP ohne Verschlüsselung ist übrigens 25, aber die genauen Daten können von Provider zu Provider variieren. Beispiel GoogleMail SMTP-Hostname
Da Sie die Konfiguration eines SMTP-Servers nur zum Testen des Formulars auf einem Offline-Webspace benötigen, folgt hier die Anleitung nicht als ToDo, sondern als normale Aufzählung: 왘
Öffnen Sie dazu das Backend-Modul System 폷 Einstellungen.
왘
Blenden Sie den Bereich SMTP-Einstellungen ein.
왘
Aktivieren Sie das Kontrollkästchen E-Mails via SMTP versenden.
왘
Geben Sie die Daten für den SMTP-Server ein.
왘
Klicken Sie auf Speichern und Schliessen.
299
11.1
11
Kontakt: Formulare erstellen mit Contao
Mit ein bisschen Glück und Probieren sollte das Kontaktformular jetzt bereits funktionieren. Nach dem Testen sollten Sie die Option wieder deaktivieren. Falls etwas nicht funktioniert: Fehlermeldungen ausgeben lassen Falls es mit dem Mailverschicken nicht klappt, können Sie Contao bitten, sämtliche Fehlermeldungen auf dem Bildschirm auszugeben: 왘
Rufen Sie das Backend-Modul System 폷 Einstellungen auf.
왘
Rufen Sie dann den Bereich Sicherheitseinstellungen auf.
왘
Aktivieren Sie dort Fehlermeldungen anzeigen.
Auch wenn die Meldungen für Nicht-PHPler wie Hieroglyphen aussehen, können die darin enthaltenen Informationen bei der Fehlersuche durchaus hilfreich sein.
11.2
Das Kontakformular gestalten
Das Kontaktformular funktioniert bereits, wird in diesem Abschnitt aber noch ein bisschen gestylt.
11.2.1
Das HTML für das Kontaktformular
Vor der Gestaltung des Formulars werfen Sie in diesem Abschnitt wie immer noch einen Blick auf das HTML.
Listing 11.1 Das HTML für das tabellenlose Kontaktformular
Umgeben von einem div.ce_form, enthält das form-Element ein div mit der Klasse formbody. Für jedes Formularfeld gibt es darin eine Kombination von label und input bzw. textarea, die jeweils durch einen Zeilenumbruch getrennt werden. Die Checkbox und der Submit-Button sind noch von einem div mit einer entsprechenden Klasse umgeben. Contao erzeugt für die Beschriftung automatisch ein label. Die IDs für die Formularfelder wie ctrl_3 werden von Contao automatisch vergeben und dienen zur Verbindung mit dem label, damit die Beschriftung anklickbar wird. Sie können beim Erstellen des Formulars aber natürlich für jedes Formularelement eine eigene ID vergeben, die dann statt der automatischen verwendet wird. Im Namen der Barrierefreiheit steht bei Pflichtfeldern zusätzlich zum üblichen Sternchen in einem unsichtbaren span noch der Begriff »Pflichtfeld«, der von einem Screenreader vorgelesen wird. Außerdem bekommen Pflichtfelder die Klasse mandatory. Last, but not least hat das Kontrollkästchen mit dem Namen cc noch ein verstecktes Formularfeld, dessen Anwesenheit auf wunderbare Art und Weise dafür sorgt, dass Contao dem Besucher eine Kopie seiner Nachricht als E-Mail zuschickt. Beim Abschicken des Kontaktformulars gibt es bereits eine Formularüberprüfung, und wenn ein Besucher nicht alle Pflichtfelder ausfüllt, bekommt er ent-
301
11.2
11
Kontakt: Formulare erstellen mit Contao
sprechende Meldungen. Diese Fehlermeldungen stehen oberhalb des Formularelements in einem eigenen Absatz p mit der Klasse error.
11.2.2
Das CSS für das Kontaktformular
Dieses HTML kann auf die verschiedensten Weisen gestaltet werden. Im folgenden Beispiel werden die Beschriftungen in label mit einem simplen display:block oberhalb der Formularelemente platziert. Da das bei dem Kontrollkästchen nicht erwünscht ist, wird das entsprechende Label explizit wieder auf display:inline gesetzt. Damit der Text hinter dem Kontrollkästchen ordentlich ausgerichtet ist, wird er mit relativer Positionierung um etwa 2px angehoben. Das folgende ToDo setzt diese Möglichkeit um, aber Sie können gern mit anderen Formatierungen experimentieren. ToDo: Das Kontaktformular gestalten 1. Öffnen Sie das Stylesheet bildschirm.css im Editor. 2. Fügen Sie unterhalb der Styles für die Inhaltselemente, die mit .ce* beginnen, einen Kommentar ein: /* ====================================== Kontaktformular gestalten ====================================== */
3. Gestalten Sie das Formularelement mit folgenden Styles: form#kontaktformular { line-height: 1; background-color: #ADCBE6; padding: 0 18px 18px 18px; border-top: 1px solid #89ADCD; border-bottom: 1px solid #89ADCD; margin: 0 0 2em 0; }
4. Gestalten Sie die Beschriftungen (label) wie folgt: #kontaktformular label { display: block; cursor: pointer; margin: 18px 0 3px 0; } #kontaktformular .checkbox_container label { display: inline; position: relative; bottom: 2px; }
302
Das Kontakformular gestalten
ToDo: Das Kontaktformular gestalten (Forts.) 5. Erhöhen Sie den Abstand zwischen Textarea und Checkbox: #kontaktformular .checkbox_container { margin-top: 1em; }
6. Polstern Sie die Eingabefelder mit ein bisschen padding, und ändern Sie die Hintergrundfarbe, wenn sich der Cursor darin befindet: #kontaktformular input, #kontaktformular textarea { padding: 3px; } #kontaktformular input:focus, #kontaktformular textarea:focus { background-color: #ECECEC; color: #000; }
7. Gestalten Sie zum Schluss noch die Fehlermeldungen: #kontaktformular p.error { background: #FFC0CB; /* pink */ color: #000; max-width: 400px; padding: 3px; border: 1px solid #f00; /* rot */ margin-bottom: 3px; }
8. Speichern Sie das Stylesheet.
Im Browser sieht das Kontaktformular mit diesem CSS etwa so aus wie in Abbildung 11.8, in der die Fehlermeldungen durch das Abschicken eines nicht ausgefüllten Formulars sichtbar gemacht wurden.
Abbildung 11.8 Das gestaltete Kontaktformular mit Fehlermeldungen
303
11.2
11
Kontakt: Formulare erstellen mit Contao
11.3
Formularfelder: Die Feldtypen im Formulargenerator
Das Kontaktformular ist fertig, aber Contao bietet bei Formularen noch jede Menge andere Möglichkeiten. In diesem Abschnitt möchte ich Ihnen die im Formulargenerator von Contao zur Verfügung stehenden Formularfeldtypen kurz vorstellen.
11.3.1
Formularfelder einfügen: Die Feldtypen im Überblick
Neben den im Kontaktformular enthaltenen Formularfeldern gibt es noch jede Menge andere, die Tabelle 11.3 im Überblick zeigt. Feldtyp
CSS-Klasse
Kurzbeschreibung
Überschrift
headline
Zum Einfügen einer Bereichsüberschrift. Im HTML ein div.headline mit den Elementen, die im TinyMCE eingegeben wurden.
Erklärung
explanation
Erklärender Text vor oder nach einem Formularfeld: div.explanation plus die Elemente aus dem Editor