• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Joomla 1 5 Handbuch
 

Joomla 1 5 Handbuch

on

  • 25,936 views

 

Statistics

Views

Total Views
25,936
Views on SlideShare
25,936
Embed Views
0

Actions

Likes
0
Downloads
61
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • In dem Joomla Handbuch sind nicht alle Verzeichnisse aufgellistet. Auch wen sie im Inhaltsverzeichnis stehen. Selbst dann nicht, wenn man das Dokument herunterläd.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Joomla 1 5 Handbuch Joomla 1 5 Handbuch Document Transcript

    • Inhaltsverzeichnis Vorwort Zur zweiten Auflage Für wen ist dieses Buch? Was erwartet Sie? Wie kann das Buch gelesen werden? Typographie Danksagung 1 Einleitung 1.1 Content-Management 1.2 Die Geschichte von Joomla! 1.3 Weiterentwicklung zu Version 1.5 1.4 Open Source 1.5 Einige Grundbegriffe 1.6 Die Technik 1.7 Wie entsteht eine Seite? 1.8 Einsatzmöglichkeiten 1.9 Ein Blick über den Tellerrand 1.10 Joomla!-Seiten 1.11 Wichtige Ressourcen im Netz 2 Installation
    • 2.1 Systemvoraussetzungen 2.2 Installation unter Windows 2.2.1 XAMPP 2.2.2 Joomla!-Dateien kopieren 2.3 Installation unter Linux 2.3.1 XAMPP 2.3.2 Joomla!-Dateien kopieren 2.4 Installation unter Mac OS X 2.4.1 XAMPP 2.4.2 Joomla!-Dateien kopieren 2.5 Installationsdialog und Sprachauswahl 2.5.1 Überprüfung der Servereinstellungen 2.5.2 Akzeptieren der Lizenz 2.5.3 Datenbankeinstellungen 2.5.4 Einstellungen für die Datenübertragung 2.5.5 Einstellungen der Seite 2.5.6 Bestätigungsseite 2.6 Ein erster Blick 3 Frontend 3.1 Die Bereiche der Homepage im Überblick 3.1.1 Menüs 3.1.2 Module 3.1.3 Inhalte 3.1.4 Dekoration 3.2 Das Bearbeiten von Inhalten im Frontend 2
    • 3.3 Der Editor TinyMCE im Detail 3.3.1 Die Formatiersymbolleisten 3.3.2 Seitenumbruch und Weiterlesen 3.3.3 Links einfügen 3.3.4 Tabellen einfügen 3.3.5 Bilder hochladen und einbinden 3.4 Veröffentlichungsdetails festlegen 3.5 Metadaten 4 Backend 4.1 Der Weg ins Backend 4.2 Eine Übersicht über die Startseite 4.2.1 Kontrollzentrum 4.2.2 Schnellübersicht 4.2.3 Menü 4.2.4 Statusleiste 4.3 Die Bearbeitungsansichten 4.3.1 Die Werkzeugleiste 4.3.2 Listenansicht 4.3.3 Editieransicht 4.3.4 Vorschau 4.4 Organisation der Inhalte 4.5 Hilfe 5 Inhalte erstellen und verändern 3
    • 5.1 Neue Inhalte einfügen 5.1.1 Die Beitragsverwaltung 5.1.2 Voreinstellungen treffen 5.1.3 Beitragsspezifische Einstellungen 5.1.4 Ein erster Beitrag auf der Startseite 5.2 Beiträge über das Frontend erstellen 5.3 Bereiche kopieren 5.4 Unterschiedliche Darstellung der Inhalte 5.5 Eigene Bilder einbinden 5.5.1 Hochladen und Einbinden über den WYSIWYG-Editor 5.5.2 Hochladen über die Medienverwaltung 5.6 Statische Inhalte 5.7 Mülltrennung 5.8 Die Joomla!-Installation bereinigen 6 Eine erste Webseite 6.1 Auswahl und Aktivieren des Templates 6.2 Erstellen der Seitenstruktur 6.2.1 Struktur durch Bereiche 6.2.2 Arbeiten mit Kategorien 6.3 Das Menü aufbauen 6.3.1 Die Menü-Verwaltung 6.3.2 Menüeinträge löschen 6.3.3 Einen Menüpunkt erstellen 6.3.4 Arten von Menüpunkten 4
    • 7 Das Website-Design 7.1 Warum verwenden wir ein fertiges Template? 7.2 Das Template zurechtbiegen 7.3 Einblick in die Template-Architektur 7.3.1 Die HTML-Struktur 7.3.2 CSS-Formatierung 8 Benutzer und Bereiche 8.1 Benutzer anlegen und verwalten 8.1.1 Neue Benutzer anlegen und bearbeiten 8.2 Neue User im Frontend 8.3 Seitenzugriff 8.3.1 Die Usergruppen 8.3.2 Inhalte schützen 8.4 Das User-Menü 8.5 Einen internen Bereich anlegen 8.6 Nachrichten 9 Module, Plug-ins, Komponenten 9.1 Module 9.1.1 Die Modulverwaltung 9.1.2 Positionen 9.1.3 Die Modul-Detailseite 5
    • 9.1.4 Die Menüs 9.1.5 Anmeldung 9.1.6 Feed-Anzeige 9.2 Plug-ins 9.2.1 Plug-in-Verwaltung 9.2.2 Plug-in-Detailseite 9.2.3 Editor – TinyMCE 2.0 9.2.4 Inhalt – Bewertung 9.3 Komponenten 9.3.1 Banner 9.3.2 Kontakte 9.3.3 Newsfeeds 9.3.4 Umfragen 9.3.5 Suchen 9.3.6 Weblinks 9.4 Neue Erweiterungen installieren 9.4.1 Die Phoca Gallery 10 Pflege der Webseite 10.1 Seitenweite Einstellungen 10.1.1 Seite 10.1.2 Suchmaschinenoptimierung und Metainformation 10.1.3 Benutzer 10.2 Länder und Sprachen 10.3 Mail-Versand 10.3.1 Sendmail 6
    • 10.3.2 PHP Mail 10.3.3 SMTP 10.4 Technische Vorgaben 10.5 Medien 11 Eine Site aufbauen 11.1 Struktur der Site 11.2 Der Template-Bereich 11.3 Der tiefere Einblick ins Template 11.3.1 Layout und Gestaltung 11.3.2 Strukturierung der Layouts 11.3.3 Dem Entwurf das Leben einhauchen 12 Was macht ein Template aus? 12.1 HTML-Bereich 12.2 Der CSS-Bereich 12.3 Das Drumherum 13 Tools zur Template-Erstellung 13.1 Browsertools 13.1.1 Firebug und Web Developer Toolbar 13.1.2 Developer Toolbar 13.1.3 Chrome 13.2 YAML (Yet Another Multicolumn Layout) 7
    • 13.2.1 JYAML – YAML für Joomla! 13.2.2 Framework 13.2.3 YAML-Builder, das Online-Tool 13.3 Dreamweaver Extension 13.4 KompoZer 13.4.1 Die Seite aufbauen 14 Barrierefreiheit 14.1 Bedeutung 14.2 Kodifizierung und gesetzliche Grundlagen 14.3 Das Beez-Template 14.4 Beez HTML 14.5 Beez CSS 14.6 Überschreibungen 14.7 Weitere Hinweise 15 Aus der Trickkiste 15.1 Zugriff für registrierte Benutzer 15.1.1 Einzelne Menüpunkte freigeben 15.1.2 Freigabe von kompletten Menüs oder Modulen 15.1.3 Ausbau der Freigabe-Funktion 15.1.4 Anpassen einer Komponente 15.1.5 Ein eigener Bereich 15.2 Parallelwelten 15.2.1 Untermenüs aufrufen 8
    • 16 Joomla! als professionelle Geschäftsplattform 16.1 E-Commerce 16.1.1 Aufgaben 16.1.2 Anforderungen an eine Geschäftsplattform 16.1.3 Rechtliches 16.2 Die Anwendungen 16.2.1 Shop 16.2.2 Galerie 16.2.3 Dokumentenmanagement 16.2.4 Kalender 16.2.5 Formulare 17 Online-Shop: VirtueMart 17.1 Installation 17.1.1 Komponente 17.1.2 Beispieldaten 17.1.3 Module 17.1.4 Sprachdateien 17.2 Ein kurzer Rundgang 17.2.1 Im Backend 17.2.2 Im Frontend 17.3 Den Shop einrichten 17.3.1 Shop-Informationen 17.3.2 Konfiguration 9
    • 17.4 Produkte 17.4.1 Kategorien anlegen und verwalten 17.4.2 Produkte anlegen und verwalten 17.4.3 Produktattribute 17.4.4 Preisnachlässe 17.4.5 Produktbewertungen 17.5 Kunden 17.5.1 Kundenverwaltung 17.5.2 Gestaltung der Kundenregistrierung 17.6 Bestellungen 17.6.1 Der Bestellvorgang 17.6.2 Bestellstatustypen 17.7 Lieferanten/Verkäufer 17.7.1 Lieferantenkategorien anlegen 17.7.2 Lieferanten hinzufügen 17.8 Reporte 17.9 Steuern 17.10 Zusätzliche Erweiterungen 18 Formulare: BreezingForms und ChronoForms 18.1 BreezingForms 18.1.1 Installation und Konfiguration 18.1.2 Die BreezingForms in der Übersicht 18.1.3 Entwurf eines Beispielformulars 18.1.4 Die Formularoberfläche 10
    • 18.1.5 Funktionen für das Formular und die Elemente 18.1.6 Die Verwaltung der Daten 18.1.7 Formular im Frontend verankern 18.1.8 Formular im Backend-Menü verankern 18.1.9 Formular exportieren/importieren 18.2 ChronoForms 18.2.1 Installation und Überblick 18.2.2 Formular erstellen und übertragen 18.2.3 Einbinden in eine Seite 18.2.4 Formulare sichern und wiederherstellen 18.2.5 E–Mail-Benachrichtigung oder Daten in der Datenbank ablegen 18.2.6 Direkter Zugriff auf Formulare über einen eigenen Backend-Menüeintrag 19 Dokumentenverwaltung: Docman und Attachments 19.1 Dokumentenverwaltung: Docman 19.1.1 Installation 19.1.2 Konfiguration 19.1.3 Eine Kategorie erstellen 19.1.4 Von der Datei zum Dokument 19.1.5 Rechte vergeben 19.1.6 Anbindung an das Frontend 19.1.7 Eigene Templates 19.1.8 Statistik 19.1.9 Zubehör 19.2 Attachments 19.2.1 Installation 11
    • 19.2.2 Attachment im Backend anhängen 19.2.3 Attachments im Frontend 19.2.4 Konfiguration 20 Kalender: JEvent und iWebCal 20.1 JEvent 20.1.1 Installation 20.1.2 Einrichten des Kalenders 20.1.3 Der Kalender im Frontend 20.1.4 Die Verwaltung des Kalenders 20.1.5 Die Erweiterungen 20.2 Kalender: iWebCal 20.2.1 Installation und Konfiguration 20.2.2 Hochladen eines Kalenders 20.2.3 Der iWebCal-Kalender im Frontend 20.2.4 Konfiguration des Kalenders 21 Bildergalerien: Zoom Media Gallery und JoomGallery 21.1 Zoom Media Gallery 21.1.1 Installation 21.1.2 Einstellungen 21.1.3 Das Erstellen eines Albums 21.1.4 Das Hochladen von Bildern 21.1.5 Medien verwalten 21.1.6 Die Galerie im Frontend 12
    • 21.2 JoomGallery 21.2.1 Installation 21.2.2 Das Control Panel der JoomGallery 21.2.3 Kategorien anlegen 21.2.4 Bilder hochladen 21.2.5 Die Galerie im Frontend 21.2.6 Meine Galerie 21.2.7 Bilder bewerten und kommentieren 21.2.8 Die Galerie konfigurieren 21.2.9 Zubehör 22 Joomla! als Community-Treff 22.1 Online-Kommunikation 22.2 Kommunikations- und Kooperationsbedürfnisse 22.3 Community-Tools 22.3.1 Chat 22.3.2 Gästebuch 22.3.3 Forum 22.3.4 Online Social Network 22.3.5 Blog 22.3.6 Wiki 22.3.7 Podcast 22.4 Social Web 23 Weblogs: IDoBlog und MMS Blog 13
    • 23.1 IDoBlog 23.1.1 Installation und Einrichtung 23.1.2 Arbeiten im Blog 23.1.3 Den Blog administrieren 23.2 MMS-Blog 23.2.1 Installation 23.2.2 Das Control Panel 23.2.3 Ein neues Konto anlegen 23.2.4 Einen Beitrag publizieren 23.2.5 Der MMS-Blog im Frontend 23.2.6 Beiträge mit anderen teilen 23.2.7 Einen Beitrag bearbeiten bzw. löschen 23.2.8 Konfiguration 24 Wiki: JoomlaWiki 24.1 Installation 24.2 Die Verwaltung des Wikis 24.2.1 Administration 24.2.2 Konfiguration 24.3 Arbeiten im Wiki 24.3.1 Der Editiervorgang 24.3.2 Die Wiederherstellung einer früheren Version 24.3.3 Eine neue Seite hinzufügen 24.3.4 Andere Seiten finden 24.3.5 Diskutieren 24.3.6 Schützen 14
    • 24.3.7 Löschen 24.3.8 Gelöschte Seiten wiederherstellen 24.3.9 Verschieben bzw. umbenennen 24.3.10 Beobachten 24.4 Die Formatierung eines Wiki-Artikels 24.4.1 Zeichenformatierung 24.4.2 Überschriften und Abschnitte 24.4.3 Listen und Linien 24.4.4 Einfache Tabellen 24.4.5 Verlinkung 24.4.6 Bilder einbinden 24.4.7 Benutzerverzeichnis 24.5 Die Benutzerrechtsverwaltung 24.6 Verbindung mit Joomla! 25 Forum: FireBoard 25.1 Installation 25.2 Das Control Panel 25.3 Die Nutzung des Forums 25.3.1 Erste Einstellungen 25.3.2 Ein neues Forum anlegen 25.3.3 Das Forum im Frontend 25.3.4 Benutzer verwalten 25.3.5 Die Moderation des Forums 25.4 Die Verwaltung des Forums 25.5 Zusätzliche Funktionen 15
    • 26 Gästebücher 26.1 Phoca Guestbook 26.1.1 Ein kurzer Rundgang 26.1.2 Ein Gästebuch erstellen und verwalten 26.2 EasyBook 26.2.1 Installation und Rundgang 26.2.2 Das Gästebuch aktivieren 27 Noch mehr Kommunikation 27.1 Chat 27.1.1 Inbetriebnahme 27.1.2 Der Chat 27.1.3 ShoutBox 27.2 Podcast 27.2.1 Installation 27.2.2 Konfiguration 27.2.3 Arbeiten mit Podcasts 27.2.4 Feed 28 Installation beim Webhost 28.1 Kriterien zur Webhost-Wahl 28.2 Übertragung zum Webhost 28.2.1 Datenbank einrichten 28.2.2 System einrichten 16
    • 28.2.3 Übertragen der Datenbank 28.2.4 Anpassen der Konfiguration 28.3 Zweitinstallation 28.4 Seitenumzug 28.5 Übertragung mit JoomlaPack 29 Backup und Upgrade 29.1 Backup der Daten 29.1.1 Manuelles Backup 29.1.2 Die Backup-Komponente 29.2 Aktualisieren 29.2.1 Update 29.2.2 Upgrade von Joomla! 1.0 29.3 Deinstallation 30 Tools 30.1 Editor: JCE 30.1.1 Installation 30.1.2 Unterschiede zum TinyMCE 30.2 Dateiverwaltung: eXtplorer 30.2.1 Installation 30.2.2 Die Funktionen von eXtplorer 30.3 Übersicht: Xmap 30.3.1 Installation 30.3.2 Die Einstellungen der Sitemap 17
    • 30.4 FTP-Client: FileZilla 30.4.1 Installation 30.4.2 Das Programm 30.4.3 Verbindungen verwalten 30.4.4 Dateien transferieren 30.4.5 Rechte vergeben 30.5 Datenbankverwaltung: phpMyAdmin 30.5.1 Die Datenbankverwaltung 30.5.2 Tabellenansicht 30.5.3 Datenbank exportieren und importieren 31 Standard-Erweiterungen 31.1 Module 31.1.1 Banner 31.1.2 Syndication 31.1.3 Statistik 31.1.4 Archiv 31.1.5 Bereiche 31.1.6 Verwandte Beiträge 31.1.7 Wrapper 31.1.8 Umfragen 31.1.9 Wer ist online 31.1.10 Zufallsbild 31.1.11 Schlagzeilen 31.1.12 Neueste Nachrichten und Meist gelesen 31.1.13 Suche 18
    • 31.1.14 Fußzeile 31.1.15 Navigationspfad 31.2 Plug-ins 31.2.1 System – Legacy 31.2.2 System – SEF 31.2.3 Inhalt – Code-Hervorhebung (GeSHi) 31.2.4 Inhalt – Modul laden 31.2.5 Inhalt – Seitenumbruch 31.2.6 Editor – Kein Editor 31.2.7 Editor – XStandard Lite 2.0 31.2.8 Editorbutton – Bild, Editorbutton – Seitenumbruch und Editorbutton – Weiterlesen 31.2.9 Suche 31.2.10 Authentifikation 31.2.11 Inhalt – Seitennavigation 31.2.12 System – Debug 31.2.13 System – Cache 31.2.14 System – Protokoll 31.2.15 System – Remember Me 31.2.16 System – Backlink 31.2.17 Benutzer – Joomla! 31.2.18 XML-RPC – Joomla und XML-RPC – Blogger-API 31.3 Backend-Module 31.3.1 Willkommen bei Joomla! 31.3.2 Update nötig? 31.3.3 Angemeldete Benutzer 31.3.4 Beliebt 31.3.5 Neue Beiträge 19
    • 31.3.6 Statistiken 31.3.7 Fußzeile 31.3.8 Ungelesene Nachrichten 31.3.9 Benutzer online 31.3.10 Quick-Icons 31.3.11 Anmeldung 31.3.12 Admin-Menü 31.3.13 Benutzerstatus 31.3.14 Admin-Untermenü 31.3.15 Titel 31.3.16 Toolbar 31.3.17 Eigene Module 32 Mehrsprachigkeit 32.1 Joom!Fish einrichten 32.2 Die Sprachauswahl 32.3 Übersetzungen 32.4 Hilfsmittel 33 Suchmaschinenoptimierung 33.1 Suchmaschinenlogik 33.1.1 Keywords 33.1.2 On-Page-Optimierung: Inhalt 33.1.3 On-Page-Optimierung: Technisches 33.1.4 Off-Page-Optimierung 20
    • 33.2 SEO in Joomla! 33.3 Die sh404SEF-Komponente 33.3.1 Konfiguration 33.3.2 URLs verwalten 33.3.3 Metadaten 33.4 Verwertungsmodelle – AdSense 33.4.1 Funktionsweise 33.4.2 Anmeldung 33.4.3 Integration von AdSense 34 Statistik 34.1 Joomla!-Funktionen 34.2 Externe Statistik-Tools 34.3 Installation von FireStats 34.4 Die Bedienung von FireStats 35 Performance 35.1 Seitenaufbau 35.2 Joomla! optimieren 35.3 Einstellungen des Servers 35.4 Cache 36 Datentransfer und FTP-Modus 36.1 Migration von Daten nach Joomla! 21
    • 36.1.1 Statische Homepage 36.1.2 Einbinden von Seiten mit der StaticXT-Komponente 36.1.3 Konvertierung aus anderen CMS 36.1.4 Office-Dokumente 36.2 Statischer Export 36.3 Datenübertragung per FTP und Safe Mode 37 Sicherheit 37.1 Angriffstypen 37.1.1 SQL Injection 37.1.2 Parametermanipulation 37.1.3 Cross Site Scripting (XSS) 37.1.4 Man in the Middle 37.2 Vorbeugende Maßnahmen 37.3 Spam-Vorbeugung 38 Troubleshooting 38.1 Installation 38.1.1 Apache läuft nicht 38.1.2 MySQL läuft nicht 38.1.3 Mac OS X Apache läuft, findet aber kein Joomla! 38.1.4 Mac OS X vor Version 10.4 38.2 Betrieb 38.2.1 Fehlerhafte Verbindungsparameter zur Datenbank 38.2.2 Falsche Dateizugriffsberechtigungen 22
    • 38.2.3 Passwort vergessen 38.2.4 Seiten sind gesperrt 38.2.5 Statt Backend: Ausgabe »Invalid Token« 38.2.6 Upload geht nicht 38.2.7 Menüs werden in einem neuen Template nicht angezeigt 38.2.8 Der PDF-Button funktioniert nicht 38.2.9 Die Seite ist temporär nicht erreichbar 38.3 Sprachen 38.3.1 Deutschsprachiger Hilfeserver 38.3.2 Englische Ausgaben auf der Frontpage 38.3.3 Erweiterungen übernehmen die Spracheinstellung nicht 38.3.4 Die Ausgabe enthält seltsame rautenförmige Zeichen 38.4 Erweiterungen 38.4.1 Eine Erweiterung lässt sich nicht installieren 38.4.2 Ein Modul wurde aktiviert, wird aber nicht angezeigt 38.4.3 Bei SEF führen alle Links zu 404-Fehlern 38.4.4 Die Installation von Komponenten schlägt fehl 38.4.5 Erweiterungen deinstallieren 39 Mein erstes Modul 39.1 Tools 39.2 Hallo Joomla! 39.3 Architektur 39.3.1 Model-View-Controller 39.3.2 Die Beschreibungsdatei 39.3.3 Der Controller 23
    • 39.3.4 Der Rahmen 39.3.5 Die View 40 Die Joomla!-API 40.1 Zugriff auf die Interna von Joomla! 40.2 Informationen über den Benutzer 40.3 HTML-Elemente 40.4 URL-Parameter abfragen 40.5 Parametrisieren 40.6 Auf die Datenbank zugreifen 40.7 Internationalisierung 41 Plug-ins erstellen 41.1 Funktionsweise 41.2 Plug-ins für den Inhalt 41.3 Ein passender Button 41.4 Plug-ins für die Suche 42 Eine eigene Komponente 42.1 Die Installationsdateien 42.1.1 Die Komponenten-Beschreibung 42.1.2 Die Datenbank 42.1.3 Zusätzliche Installationsanweisungen 42.2 Die Darstellung im Frontend 24
    • 42.2.1 Einstiegsskript und Controller 42.2.2 Das Model 42.2.3 Die Ausgabe 42.3 Die Komponentenverwaltung 42.3.1 Das Grundgerüst 42.3.2 Die Listenansicht 42.3.3 Ändern der Daten 42.3.4 Bearbeitungsmodus A Parameter der unterschiedlichen Menütypen A.1 Die Funktionen des TinyMCE A.2 Die Icons der Symbolleiste A.3 Die Parameter der Menüeinträge A.3.1 Standard Bereichsliste Layout A.3.2 Blog Layout A.3.3 Kontaktkategorie-Layout A.3.4 Newsfeed A.3.5 Suche A.3.6 Benutzer A.3.7 Weblinks A.3.8 Wrapper A.3.9 Externer Link A.3.10 Trenner A.4 Parameter der Beiträge B Die Joomla!-API 25
    • B.1 Funktionen B.2 Konstanten B.3 Objekte B.4 Details zu einzelnen Objekten B.4.1 JApplication B.4.2 JDatabase B.4.3 JFactory B.4.4 JHTML B.4.5 JParameter B.4.6 JRequest B.4.7 JToolbarHelper B.4.8 JUser C Glossar 26
    • Vorwort Gute zehn Jahre nach der Entstehung des WWW und eine Erfolgsstory später stellen wir fest, dass sich dieses junge Medium zum ersten Mal wandelt. Wir sind Zeugen einer Entwicklung weg von der Homepage, die reine Informationsvermittlung betreibt, hin zur Community-Plattform, die gemeinschaftliches Arbeiten, Schreiben und Schaffen fördert. Wir, die Autoren, allesamt Informationswissenschaftler, verfolgen diesen Prozess seit geraumer Zeit mit großem Interesse. Dabei sind wir über das Content-Management-System Joomla! – damals noch Mambo – gestolpert. Die erfrischend peppige Oberfläche und das ansprechende Design der Standardoberfläche ließen vermuten, dass es sich um Software handelt, die nicht nur für Administratoren gedacht ist, sondern auch die Bedürfnisse des normalen Benutzers nicht außer Acht lässt. Dieser Eindruck hat sich an vielen Stellen bestätigt. Warum also ein Buch schreiben? Bei näherem Hinsehen zeigte sich auch, dass einige Konzepte von Joomla!, wie beispielsweise die Organisation der Inhalte, etwas ungewöhnlich sind – vielleicht auch erklärungsbedürftig. Unser Bestreben ist also, Sie an dem Verständnisprozess teilhaben zu lassen, den wir bei unserer Arbeit mit Joomla! durchlebt haben, um Ihnen einigen Aufwand und die eine oder andere Falle zu ersparen. Daneben produziert die überaus aktive Gemeinde, die sich um Joomla! schart, eine schier unergründliche Fülle von Zusatzprogrammen. Vielleicht gelingt es uns ja, Sie ein wenig durch diesen Basar der Erweiterungen zu leiten und Ihnen die Highlights vorzustellen. Joomla! ist sehr flexibel, und dementsprechend kann es auch in vielen Bereichen eingesetzt werden. Ob Sie eine private Homepage basteln, eine Vereinsseite betreuen, ob Sie eine Firma darstellen wollen oder eine Community zu einem Thema stricken – kein Problem mit Joomla! Darstellen, informieren, verkaufen, diskutieren, Daten sammeln, kooperieren: All das sind mögliche Anwendungen der Software. Wir haben den Schwerpunkt in diesem Buch auf den gemeinschaftlichen Aspekt gelegt: die Joomla!-Seite als Community-Plattform. Das bedeutet nicht, dass die anderen Bereiche unberücksichtigt bleiben. Die Software ist natürlich kein Allheilmittel. Auch ist nicht alles, was gewünscht wird, bereits programmiert, und nicht alles, was programmiert wurde, arbeitet ganz fehlerfrei. Dafür ist das Programm frei verfügbar und auch veränderbar: Joomla! ist eine Open-Source-Anwendung. Mit ein wenig Anstrengung können Sie also Ihre Bedürfnisse und Wünsche realisieren, selbst wenn die Entwickler bisher nicht an Ihr konkretes Problem gedacht haben. 27
    • Aus der Geschichte von Joomla! heraus, das sich aus dem Content- Management-System Mambo entwickelt hat, und wegen der Assoziation dieses Namens mit einem Tanz haben wir als roten Faden für die begleitenden Beispiele die Homepage eines Tanzstudios gewählt. Die Anleser beschreiben den geheimnisvollen Joomla!-Tanz. Zur zweiten Auflage Wieder sind ein paar Jahre ins Land gegangen, und in der Joomla!-Welt hat sich viel getan. Der lang ersehnte Versionssprung auf 1.5 ist vollzogen, und mittlerweile sind die Software und ihre Erweiterungen auch schon ein wenig gereift. Joomla! hat sich durch den radikalen Umbau unter der Haube zu einem profes-sionellen und flexiblen Websystem gemausert, das alles bietet, was eine moderne Homepage braucht. Dem haben wir in der Neuauflage Rechnung getragen und das Buch umfassend erweitert. Ein wesentlicher Schwerpunkt liegt dabei auf der individuellen Anpassung des Aussehens und der Funktionalität. Joomla! lebt von seinen Erweiterungen, die fast alles bieten, was das Herz begehrt. Wir stellen Ihnen ein breites Spektrum vor, mit dem Sie Ihre Webseite an spezifische Bedürfnisse anpassen können. Aber auch Profi-Themen wurden weiter ausgearbeitet, so dass Sie hier Hilfestellungen bei allerlei technischen Anforderungen wie Mehrsprachigkeit oder Suchmaschinenoptimierung finden können. Joomla! hilft Ihnen mit einfachen Oberflächen und Assistenten dabei, sehr komplexe Vorgänge umzusetzen. Bei aller Einfachheit darf jedoch nicht vergessen werden, dass hier Aufgaben bewältigt werden, die noch vor Kurzem einen Vollzeit-Webmaster beschäftigt haben. Bei näherem Hinsehen zeigt sich auch, dass einige Konzepte von Joomla!, wie beispielsweise die Organisation der Inhalte, etwas ungewöhnlich, vielleicht auch erklärungsbedürftig sind. Aus Rückmeldungen zur ersten Auflage wissen wir, dass man ein wenig Geduld mitbringen muss, um das System in seiner Fülle ausschöpfen zu können. Aber es lohnt sich! Wir wagen zu behaupten, dass Sie einfacher als mit Joomla! keine professionelle Homepage gestalten können. Also lassen Sie sich von kleinen Rückschlägen nicht entmutigen, und bleiben Sie am Ball! Wir hoffen, dass wir Ihnen mit diesem Buch eine handfeste Anleitung mitgeben können, mit der es Spaß macht, das System kennenzulernen, und die Sie auf Ihrer Entdeckungsreise mit dem einen oder anderen guten Rat begleitet. 28
    • 1 Einleitung Vielleicht waren Sie schon einmal in der Situation, eine Homepage für eine Gruppe von Leuten, einen Verein, einen Betrieb oder eine öffentliche Einrichtung gestalten zu dürfen. Sie erstellen also ein Design, überlegen sich eine Struktur, tragen die Inhalte zusammen und versuchen mithilfe von Webskripten, die nötige Funktionalität zu erreichen. Sie haben noch keine fünf Seiten erstellt, und schon tauchen die ersten Schwierigkeiten auf. Da muss ein Wort in der Fußzeile, die Sie mit Copy & Paste in alle Seiten übernommen haben, ausgetauscht werden. In der Navigation stellt sich heraus, dass der Punkt »Aktivitäten« wichtiger ist als der Punkt »Berichte«. Die Verlinkungsstruktur muss also geändert werden. Eine seitenweite Suchfunktion ist fast nicht zu realisieren, und die Verwaltung des Zugangs zu einem Mitgliederbereich entpuppt sich als aufwendige Angelegenheit. Zu allem Überfluss klingelt jede halbe Stunde das Telefon, weil einer Ihrer Inhaltslieferanten einen Rechtschreibfehler entdeckt hat. Gefragt sind aktuelle Inhalte, geschützte Bereiche, Beteiligung der Benutzer und vor allem die Möglichkeit, gemeinsam an Texten und Artikeln zu arbeiten. Aus der Homepage wird die Webanwendung, die die Möglichkeiten der Technik ausnutzt, um attraktive Orte im Internet zu schaffen. Nun sind (zum Glück) nicht alle Menschen, die der Öffentlichkeit etwas mitzuteilen haben, Informatiker oder Computerspezialisten, die Spaß daran finden, sich die nötigen Werkzeuge für so eine Seite selbst zusammenzubasteln. Die Frage ist also, wie kommen Sie und ich an die nötige Technik, wie können wir hier »auch mitmachen«? Zum Glück gibt es Joomla!. Diese Webanwendung ist genau auf Homepages zugeschnitten, die eine hohe Dynamik aufweisen und von mehreren Menschen in unterschiedlichen Rollen betreut werden. Joomla! ist Teil der Entwicklung, die von statischen Webseiten, die vornehmlich Informationen bereitstellen sollen, hin zu dynamischen Homepages führt, die als Kommunikationsbasis für eine Online-Gemeinde dienen. Typisch für solche Homepages sind folgende Merkmale: 29
    • • Die Aufgaben bei der Erstellung und Wartung der Seite verteilen sich auf mehrere Personen. Einige Leute liefern nur die Inhalte. Das Layout wird von einem Webdesigner erstellt. Die Funktionalität als ein eigener Bereich wird von einem Administrator betreut. • Die Art der Inhalte ändert sich. Viele Beiträge haben einen aktuellen Bezug und sind nach einer gewissen Zeit nicht mehr so interessant. Andere müssen kategorisiert werden, um schnell auffindbar zu sein. • Ein System der Qualitätssicherung wird benötigt. Die Rolle des Redakteurs, der Beiträge freischalten muss, wird erforderlich. Ratings werden eingeführt, mit deren Hilfe die Leser die Güte eines Artikels bewerten können. • Die Community muss gepflegt werden. Ein interner Bereich ermöglicht es, sich zwanglos über das Netz auszutauschen. Über Foren, Blogs und Wikis werden auch die Besucher der Seite mit eingebunden. All dies und viel mehr kann in einer Joomla!-gestützten Seite relativ einfach realisiert werden. Das hat natürlich seinen Preis. Joomla! weist eine gewisse Komplexität auf, so dass Sie mit etwas Einarbeitungsaufwand rechnen müssen. Die Organisation der Inhalte unterscheidet sich von der Art, wie Sie eine normale Homepage aufbauen würden. Viele Rädchen greifen ineinander. Wenn Sie daher eine Änderung vornehmen wollen, müssen Sie wissen, an welcher Stelle diese am besten durchzuführen ist. Die Hard- und Softwareanforderungen sind höher als bei einer statischen HTML-Seite, und die Dynamisierung bringt gewisse Sicherheitsrisiken mit sich, die Sie bei reinem HTML nicht haben. Die Vorteile des Systems wiegen diese Schwierigkeiten jedoch mehr als auf. Unser Buch soll Ihnen helfen, sich schnell und fundiert in Joomla! zurechtzufinden. 1.1 Content-Management Ein Content-Management-System (CMS) ist eine Software, die eine gemeinschaftliche Arbeit an verschiedenen Inhalten ermöglicht und organisiert. Unter dem Begriff »Inhalt« ist dabei eine in sich geschlossene Einheit zu verstehen. Das kann ein Text oder ein Bild sein, aber auch andere Medientypen (Audio, Video etc.) sind denkbar. Die Aufgaben eines CMS lassen sich in mehrere Bereiche einteilen. Die Darstellung der Inhalte wird vom System übernommen. Das bedeutet zum einen, dass das Layout getrennt von den Daten verwaltet wird, damit alle angezeigten Daten einheitliche Formatierungen aufweisen. Zum anderen 30
    • können durch ein gutes CMS Inhalte in verschiedenen Medien wiedergegeben werden, beispielsweise auf dem Bildschirm oder Drucker. Um die Daten zugänglich zu machen, muss die Darstellung eines Beitrags um Hilfsmittel ergänzt werden, die zeigen, wie die Einträge im CMS zu finden sind. Dazu dienen Navigationselemente und Suchfunktionen. Es werden Möglichkeiten zur Bearbeitung von Inhalten zur Verfügung gestellt. Diese bieten nur die Formatierungs- und Auszeichnungsoptionen an, die erlaubt sind und vom System verarbeitet werden können. Des Weiteren gibt es Mechanismen, die Unstimmigkeiten vermeiden, wenn mehrere Leute gleichzeitig an einem Inhalt arbeiten. Unter Umständen werden verschiedene Versionen des Inhalts aufbewahrt und somit die Änderungen protokolliert, um den Entstehungsprozess transparent zu machen. Die zentrale Dienstleistung eines CMS ist die Organisation von Inhalten. Diese werden in Kategorien und Bereiche unterteilt und mit Stichwörtern für die Suche versehen. Dokumente unterliegen auch einem Lebenszyklus. Sie haben beispielsweise ein Verfallsdatum, müssen archiviert oder auch gelöscht werden. Dies alles wird teils automatisch erledigt, teils werden den Benutzern die entsprechenden Werkzeuge angeboten. Arbeiten mehrere Menschen an einem Inhalt, so ist häufig ein Workflow vonnöten. Ein Autor schreibt beispielsweise einen Beitrag, der von einem Redakteur Korrektur gelesen wird. Der Artikel geht zur Überarbeitung zurück an den Autor und dann an den Verantwortlichen der Seite, der den Beitrag freischaltet. Der Weg des Beitrags zu den verschiedenen Personen wird vom CMS organisiert, und das Dokument wird mit einem entsprechenden Status gekennzeichnet. Je nachdem, welchen Status ein Benutzer im System hat, werden ihm bestimmte Inhalte oder Möglichkeiten der Bearbeitung gewährt oder vor ihm verborgen. Diese Zugriffssteuerung ist ein wichtiger Bestandteil eines jeden CMS und sorgt für die nötige Sicherheit, wenn viele Menschen gemeinsam an einem Projekt arbeiten. Joomla! gehört zur Gruppe der webbasierten Content-Management-Systeme (WCMS). Diese zeichnen sich dadurch aus, dass das Medium der Darstellung wie auch das Medium für die Verwaltung das WWW ist. Meistens werden WCMS dazu eingesetzt, größere Homepages zu verwalten, die entweder als Wissensbasis oder als Nachrichtendienst einer hohen Dynamik unterliegen. Die Multimedialität der Darstellung ist hier beispielsweise gegeben, wenn zu einem Inhalt eine spezielle Druckversion oder die Ausgabe als PDF- Dokument verfügbar ist. Auch eine Zusammenfassung der Seite in einem RSS-Feed ist hier zu nennen. Design und Navigationsstruktur werden automatisch erzeugt. Die Bearbeitung erfolgt über ein HTML-Formular. Mittlerweile findet sich in jedem State-of-the-art-System auch ein Editor, der das Layout in etwa so darstellen kann, wie es später angezeigt wird (WYSIWYG; What You See Is What You Get). Die Möglichkeit der Querverlinkung zwischen Dokumenten wird ebenfalls vom WCMS bereitgestellt. Eine Besonderheit der inhaltlichen Organisation von Joomla! 31
    • besteht darin, dass neue Beiträge unproblematisch auf der Titelseite ausgegeben werden können. Ähnlichkeiten zu Blogs sind hier unverkennbar. Eine Einteilung der Benutzer in Autoren, Redakteure oder Administratoren ermöglicht eine breite Beteiligung der Allgemeinheit an der Erstellung einer Seite, ohne auf eine gewisse Sicherheit verzichten zu müssen. Eine Spezialität von WCMS ist die Integration vieler Zusatzdienste, die nicht direkt mit den eigentlichen Inhalten zusammenhängen. So bietet Joomla! beispielsweise die Möglichkeit, Umfragen durchzuführen, Nachrichtenticker zu integrieren, über Foren und Wikis als Kommunikationsplattform zu dienen oder Formulardaten abzufragen. 2 Installation Joomla! ist eigentlich eine Internetanwendung. Um es kennenzulernen, ist es trotzdem sinnvoll, zunächst eine Testversion auf dem eigenen Rechner zu installieren. Dort haben wir die volle Kontrolle über die Einstellungen, es ist kein Problem, wenn mal etwas schiefgeht, und es sieht uns auch nicht die ganze Welt bei unseren Versuchen mit »Hallo Welt« und anderen Testtexten zu. Hier können wir auch die Homepage vorbereiten, ohne dauerhaft online sein zu müssen. Das fertige System kann (in den meisten Fällen) relativ einfach auf den Webhost aufgespielt werden. Joomla! ist aber kein eigenständiges Programm. Damit das System läuft, benötigt man einen Webserver, PHP und die Datenbank MySQL. Im Internet werden Programme von Ihrem Provider zur Verfügung gestellt, vorausgesetzt, Sie haben ein entsprechendes Paket erworben. Auf dem lokalen Rechner müssen wir uns eine sogenannte Testumgebung mit diesen Softwarepaketen einrichten. Glücklicherweise gibt es schon mehrere Zusammenstellungen, die uns die Arbeit der individuellen Konfiguration abnehmen. 32
    • 2.1 Systemvoraussetzungen Joomla! ist eine Webanwendung und als solche von anderen Programmen abhängig. Hierbei ist zwischen dem Client und dem Server zu unterscheiden. Für die Arbeit auf einer Internetseite, die mit Joomla! betrieben wird, benötigen Sie einen Browser der neueren Generation. Das sind beispielsweise: • Firefox 1.5 oder höher • Internet Explorer 6 oder höher • Opera 6 oder höher Natürlich können Sie auch andere Browser verwenden, wenn ein gelegentlicher kleiner Darstellungsfehler Sie nicht stört. JavaScript sollten Sie auf alle Fälle aktivieren. Im Frontend haben Sie ansonsten keinen Zugriff auf den WYSIWYG-Editor, und das Backend ist anderweitig nicht erreichbar. Ebenso sollten Sie Cookies aktiviert haben, sonst können Sie sich unter Umständen nicht einloggen. Auf dem Server benötigen Sie neben ca. 50 MB Speicherplatz für die Seite und die Server-Software wie schon angedeutet die folgende Software: • Webserver: Apache 1.13.19 oder höher • Datenbank: MySQL 3.23.x oder höher • Skriptsprache: PHP 4.3.10 oder höher Voraussetzungen in PHP 33
    • Die MySQL-, XML- und Zlib-Unterstützung muss in PHP aktiviert sein, damit Joomla! richtig läuft. Dies ist normalerweise der Fall. Die entsprechenden Informationen erhalten Sie von Ihrem Provider. In vielen Fällen können Sie die Einstellungen von PHP mit einer einfachen Seite abrufen. Erstellen Sie dazu eine Datei info.php im Editor mit dem folgenden Inhalt: <?php echo phpinfo(); ?> Laden Sie diese Datei in Ihren Webspace (bei XAMPP in das Verzeichnis htdocs), und geben Sie im Browser die Adresse Ihrer Homepage, gefolgt von info.php, ein: http://www.adresseihrerhomepage.de/info.php Jetzt erscheint eine lange Beschreibung der aktuellen PHP-Konfiguration. Die oben genannten Module finden sich jeweils in den Überschriften, wenn sie installiert sind. Seit der Version 1.5 von Joomla! ist der Betrieb auf einem Server, der im »Safe Mode« von PHP läuft, kein Problem mehr. Näheres dazu erfahren Sie in Kapitel 36, »Datentransfer und FTP-Modus«. Um das System kennenzulernen, ist es einfacher, sich erst einmal ein System auf dem eigenen Rechner zu installieren. In Kapitel 28, »Installation beim Webhost«, zeigen wir Ihnen dann, wie man die Daten zu einem Webhost übertragen kann. Auf dem eigenen Computer gehen viele Dinge etwas einfacher. Außerdem wird so verhindert, dass jeder kleine Versuch öffentlich ist und schlimmstenfalls auch von Suchmaschinen indiziert wird. Anders als bei normalen Anwendungen ist es bei Webseiten nötig, auf dem eigenen Rechner einen Webserver zu simulieren. Dieser besteht häufig aus mehreren Komponenten, einem Server, einer oder mehreren Skriptsprachen und einer Datenbank. Diese werden normalerweise von erfahrenen Administratoren installiert und gepflegt. Glücklicherweise gibt es aber XAMPP, ein Installationspaket, das die benötigten Programme (und mehr) mitbringt und die Konfigurationen aufeinander abstimmt, so dass wir einen Testserver quasi auf Knopfdruck erstellen können. Wie der Name sagt, handelt es sich hierbei um ein System für interne Tests. Ein echter Webserver sollte wegen der laschen Sicherheitseinstellungen nicht mit XAMPP betrieben werden. Die Installation von Joomla! setzt mehrere Schritte voraus, die sich grob in zwei Phasen unterteilen lassen. In der ersten Phase werden auf dem Server die nötigen Voraussetzungen geschaffen. Je nach Systemumgebung sind ein oder mehrere der folgenden Schritte notwendig: • Einrichten des Servers und der Datenbank • Testen der nötigen Systemvoraussetzungen 34
    • • Entpacken und Kopieren der Joomla!-Dateien Die zweite Phase besteht aus einem • Installationsdialog, der im Browser aufgerufen wird. Hier wird Joomla! mit den Gegebenheiten der Systemumgebung vertraut gemacht. Die folgende Beschreibung der Installation orientiert sich an diesen zwei Phasen. Die Abschnitte 2.2, »Installation unter Windows«, bis 2.4, »Installation unter Mac OS X«, beschreiben die Einrichtung der Serverumgebung für Windows, Linux und Mac OS X. Die Installation oder Übertragung per FTP auf einen Webhost und Zweitinstallationen von Joomla! werden in Kapitel 28, »Übertragung zum Webhost«, ausführlich erklärt. Sie brauchen natürlich nur das Kapitel lesen, das für Sie relevant ist. In Abschnitt 2.5, »Installationsdialog und Sprachauswahl«, wird dann der Installationsdialog von Joomla! besprochen, der für alle Betriebssysteme gleichermaßen wichtig ist. 3 Frontend Wenn Sie sich als normaler Websurfer im Netz tummeln und auf eine Homepage stoßen, die mit Joomla! gestaltet wurde, dann haben Sie das sogenannte Frontend von Joomla! vor sich. Oft erkennen Sie schon anhand einer speziellen Ästhetik der Seite, dass es sich um Joomla! handelt. Denn das Beispiellayout, das Sie nach der Installation des CMS erhalten, hat eine ganz bestimmte Struktur, die von vielen Webmastern beibehalten wird. Natürlich ist es auch möglich, das Design und die Funktionalitäten nach Belieben zu gestalten. 3.1 Die Bereiche der Homepage im Überblick Wir werden Ihnen im Folgenden die verschiedenen Bestandteile einer Joomla!-Seite vorstellen, damit Sie im Backend gezielt darauf zugreifen können. 35
    • Hier klicken, um das Bild zu vergrößern Abbildung 3.1 Der Aufbau einer Joomla!-Site Die Standardelemente einer Joomla!-Installation lassen sich grob in vier Gruppen einteilen: Menüs, Module, Inhalte und Dekoration. 3.1.1 Menüs Mithilfe von Menüs wird auf verschiedene Seiten der Site verlinkt. • Oberes Menü: Das waagerechte Menü am oberen Rand der Seite enthält normalerweise grundlegende Links, die sich selten ändern, wie z. B. Home, Kontakt und Impressum. • Hauptmenü: Das Hauptmenü verweist auf alle anderen wichtigen Seiten der Homepage. Es ist damit die zentrale Navigationsleiste und sollte sich auch auf allen anderen Seiten an derselben Stelle befinden. • Anderes Menü: Dieses Menü befindet sich im Beispiel-Layout direkt unter dem Hauptmenü, kann aber überall auf der Seite platziert werden. Es bietet dem Webmaster Raum, um weitere Menüoptionen unterzubringen. • Benutzermenü: Dieses Menü wird standardmäßig nur angezeigt, wenn ein Benutzer angemeldet ist. Es enthält zum größten Teil Links, die speziell für die Aktivitäten des Users nützlich sind. Diese Standardmenüs können noch durch weitere Menüs (im Beispiellayout z. B. »Schlüsselkonzepte«) ergänzt werden. Doch dazu später mehr. 36
    • 3.1.2 Module Auf vielen Joomla!-Seiten befinden sich kleine dynamische Bereiche, sogenannte Module. Dahinter stecken kleine PHP-Programme, die bestimmte Aufgaben innerhalb der Homepage übernehmen, z. B. die Suchmaske ausgeben. Einige davon möchten wir Ihnen genauer vorstellen: • Anmeldung: Wie der Name schon sagt, können Sie sich in diesem Feld anmelden, falls Sie einen Account haben, also bei der Homepage schon bekannt sind. Ansonsten haben Sie hier die Möglichkeit, über den angefügten Link Registrieren einen solchen Account zu erwerben. Mit Ihrer Anmeldung werden Ihnen über die Verwaltung verschiedene Zugriffsrechte erteilt. Diese können je nach beabsichtigter Politik des Website-Besitzers sehr weit gefasst sein und z. B. Schreib- und Veröffentlichungsrechte einschließen. Auf der anderen Seite kann die Homepage auch sehr statisch gestaltet werden, d. h. keine Usereingaben zulassen und damit ein Login fast überflüssig machen. • Umfragen: In letzter Zeit sind Online-Umfragen als zusätzliches partizipatives Element im WWW immer beliebter geworden. Auch in Joomla! können Sie die Besucher Ihrer Website zu beliebigen Themen befragen und abstimmen lassen. Das Programm kann jedoch lediglich anhand von Cookies registrieren, ob sich der User bereits einmal an derselben Umfrage beteiligt hat. Das lässt natürlich Manipulationen durch Leser zu, da man sich nach Ablaufen eines Cookies einfach nochmals an der Umfrage beteiligen kann. • Wer ist online: Dies ist eine weitere Funktion, die die Gruppendynamik stärken soll. Es wird angezeigt, ob und wie viele andere angemeldete User oder Gäste auf der Homepage surfen. Am besten wirkt diese Funktion natürlich, wenn sich viele Nutzer gleichzeitig mit der Site beschäftigen. Darüber hinaus gibt es noch viele weitere Module, die in unserem frisch installierten System noch nicht zu sehen sind, aber im Nachhinein auf der Website eingebunden oder installiert werden könnten. Dazu erfahren Sie mehr in Kapitel 9, »Module, Plug-ins, Komponenten«. 3.1.3 Inhalte Die Inhalte sind das wichtigste Element der Homepage. Es handelt sich dabei um Informationen, die vom Webmaster, aber auch von den Usern auf der Seite publiziert werden, damit die Besucher sie lesen können. Joomla! 1.5 nennt diese Inhalte oder Artikel Beiträge und unterscheidet zwei Typen: • Beiträge: Dies ist die Menge aller Inhalte im jeweiligen Joomla!- System. 37
    • • Startseitenbeiträge: Joomla misst der Startseite der Homepage eine besondere Bedeutung bei. Daher werden die Beiträge, die hier zu sehen sind, »geadelt« und im Backend über eine eigene Verwaltung administriert. Ansonsten besitzen sie jedoch alle Eigenschaften eines »gewöhnlichen« Beitrags. Eine Mischung aus Modul und Inhalt stellen folgende Rubriken dar, denn dort werden die Inhalte der Autoren über Modulfunktionen gesteuert: • Neueste Nachrichten: Hier stehen die allerneuesten Meldungen. Es versteht sich von selbst, dass auf eine regelmäßige Aktualisierung der Inhalte großer Wert gelegt werden sollte. • Meist gelesen: Joomla! führt intern eine Statistik über die Aufrufe der einzelnen Site-Elemente und kann dadurch eine »Hitliste« der beliebtesten Artikel generieren. 3.1.4 Dekoration Die dekorativen Elemente der Homepage lassen den Surfer sofort erkennen, auf welcher Site er sich gerade befindet, und geben ihr ein individuelles Äußeres, das sogenannte Look & Feel. • Logo: Das Logo stellt einen Teil des Templates dar. Gerade bei Firmen und Organisationen, die auch außerhalb des Internets agieren, führt das eigene Logo den erwünschten Wiedererkennungseffekt herbei. • Banner: Damit sind hauptsächlich Werbebanner für Kunden gemeint. Sie werden im Backend über die Banner-Verwaltung konfiguriert. Außer den hier aufgezählten sichtbaren Elementen einer Joomla!-Site gibt es noch einige wichtige Bestandteile, die allerdings eher im Verborgenen arbeiten, nämlich Komponenten und Plug-ins. Zu diesen erfahren Sie mehr in Kapitel 9, »Module, Plug-ins, Komponenten«. 4 Backend Das Backend ist der Ort, an dem der Administrator die Kontrolle über das Geschehen übernimmt. Von hier aus steuern Sie den strukturellen Aufbau der Seite, aber auch die Sonderfunktionen. Sie können Benutzer verwalten, Bilder hochladen und Erweiterungen installieren. Das Backend kann auch als Plattform für eine Gruppe von Redakteuren genutzt werden. 38
    • Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 4.1 Der Weg ins Backend Zur Administrationsoberfläche gelangen Sie am besten über die URL, indem Sie an die bisherige Adresse /administrator anhängen. Für unsere lokale Installation sieht das folgendermaßen aus: http://localhost/joomla/administrator Es wird daraufhin eine Eingabemaske geöffnet, in die Sie sich zunächst folgendermaßen einloggen: • Benutzername: admin • Passwort: dasjenige, das Sie bei der Installation eingegeben haben • Sprache: Der Standard ist die Sprache, die Sie bei der Installation gewählt haben und die generell nur vom Administrator festgelegt wird. Zusätzlich stehen Ihnen hier noch die Sprachen zur Verfügung, deren Sprachdateien ebenfalls installiert wurden (vgl. Kapitel 10, »Pflege der Webseite«). Später, nachdem Sie zusätzliche Nutzerkonten angelegt haben, können Sie natürlich auch weiteren Personen die Berechtigung erteilen, sich im Backend anzumelden. Hier klicken, um das Bild zu vergrößern 39
    • Abbildung 4.1 Der Eingang zum Backend Für die Arbeit im Backend ist es im Übrigen unerlässlich, dass Sie sowohl JavaScript als auch Cookies in Ihrem Browser aktiviert haben. Denn in JavaScript wurden z. B. die durchaus hilfreichen Tooltipps und die dynamischen Menüs verfasst. Anhand der Cookies wiederum können Sessions verwaltet werden, die den Nutzer in Erinnerung behalten und damit eine Administration der Website im Backend erst ermöglichen. Es könnte außerdem zu Schwierigkeiten kommen, wenn Sie mit sehr alten Browsern wie z. B. dem Netscape Navigator 4.x arbeiten. Dieser scheitert schon an der korrekten Anzeige der Administrationsoberfläche, ganz zu schweigen von den verschiedenen, dann nicht korrekt auszuführenden Funktionen. Umbenennen verboten! Die Dateien für das Backend befinden sich im Unterordner administrator. Diesen Namen sollten Sie möglichst beibehalten, da viele Pfadangaben auf den Ordner verweisen und Sie diese bei einer Umbenennung zunächst alle finden und dann per Hand nachbessern müssten, um ein weiteres reibungsloses Funktionieren des Systems zu garantieren. 5 Inhalte erstellen und verändern Sie haben mittlerweile die wichtigsten Bereiche unserer Joomla!-Installation kennengelernt. Der nächste Schritt wird darin bestehen, an den entsprechenden Stellen auch die benötigten Inhalte zu erstellen. Wir werden unseren ersten Beitrag gleich auf der Startseite platzieren, so dass Sie ihn auch mühelos finden können. Wie Sie in Kapitel 3, »Frontend«, gesehen haben, lassen sich Inhalte auch direkt über das Frontend editieren. Das ist natürlich sehr praktisch und ein großer Vorzug von Content-Management- Systemen. Was sind aber die Unterschiede zur Bearbeitung im Backend? Insgesamt kann man sagen, dass die Optionen in vielen Dingen sehr ähnlich sind, aber eingeschränkter und kontrollierter gehandhabt werden. Die wichtigsten Unterschiede sind: • Im Frontend ist es Ihnen zwar erlaubt, neue Artikel anzulegen (vgl. Abschnitt 3.2, »Das Bearbeiten von Inhalten im Frontend«), diese müssen jedoch von einem Administrator freigegeben werden (es sei denn, Sie selbst sind bereits Backend-Administrator). Neue Bereiche oder Kategorien können Sie nicht über das Frontend erzeugen. • Beim Einbinden von Bildern im Frontend haben Sie zwar die Möglichkeit, Bilder aus dem Medienverzeichnis auszuwählen und neue 40
    • Bilder in dieses Verzeichnis hochzuladen. Sie können sie jedoch nicht komfortabel über die Medienverwaltung organisieren. • Über das Parametermenü in der Beitragsverwaltung des Backends stehen Ihnen zahlreiche Einstellungsmöglichkeiten zur Verfügung, die Sie im Frontend nicht zu Gesicht bekommen. In unserem Beispiel werden wir nun Inhalte im Backend bearbeiten. Dabei wird speziell auf die dortigen zusätzlichen Möglichkeiten und Besonderheiten eingegangen. Für die folgenden Kapitel werden wir an einem konkreten Beispielprojekt arbeiten, um die Vorgehensweisen deutlicher herauszustellen. Dabei soll eine kleine Website für einen Tanzlehrer entstehen. 5.1 Neue Inhalte einfügen Beginnen wir im Kontrollzentrum des Backends. Es gibt zwei Möglichkeiten, um an die entsprechende Stelle zu gelangen, an der Sie Ihre Inhalte eingeben können. Wir werden beide Wege nacheinander beschreiben. Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 5.1.1 Die Beitragsverwaltung Klicken Sie im Kontrollzentrum auf den Button Beiträge, und Sie gelangen in die Übersicht zu sämtlichen Inhaltselementen Ihrer Website. 41
    • Hier klicken, um das Bild zu vergrößern Abbildung 5.1 Die Übersicht der Beiträge in der Beitragsverwaltung Es sind dank der installierten Beispieldaten bereits etwa 40 Einträge vorhanden. Die Ansicht wird Ihnen mittlerweile auch bekannt vorkommen und Sie an die Bereichs- oder Kategorieverwaltung erinnern. Einige Dinge sind jedoch neu. Werfen wir einen Blick auf die Werkzeugleiste. Hier sehen Sie an erster Stelle den Button Aus Archiv entfernen. Sobald sich in Ihrer Liste archivierte Elemente befinden, können Sie diese wieder aktivieren, indem Sie sie aus dem Archiv holen. Zum Archivieren verwenden Sie den Button direkt daneben (Archivieren). Mit dieser Funktion ist es Autoren möglich, veraltete Inhalte im Backend in einen archivierten Zustand zu verschieben, ohne dass die Artikel endgültig gelöscht werden müssen. Der entsprechende Artikel bleibt weiterhin in der Liste, wird jedoch ausgegraut. So behalten Sie in einer Liste immer die Übersicht über sämtliche Beiträge und müssen nicht wie in Vorgängerversionen auf eine andere Verwaltung wechseln. Genau wie bei der Kategorieverwaltung können Sie Beiträge über den Button Verschieben anderen Bereichen/Kategorien zuordnen. Eine Ausnahme bildet der Button Einstellungen. Sämtliche Voreinstellungen der Beiträge können Sie hier global festlegen. Dazu kommen wir aber gleich, schauen wir uns erst die Beitragsverwaltung zu Ende an. Hier klicken, um das Bild zu vergrößern Abbildung 5.2 Werkzeuge und Filterleiste der Beiträge Mit den Pulldown-Menüs und dem Filter-Feld unter der Werkzeugleiste können Sie die Beiträge noch genauer sortieren, als Sie es bereits aus den anderen Verwaltungen kennen. Das ist sehr nützlich, sobald die Liste mal angewachsen ist und man schnell einen Überblick gewinnen möchte. Suchen 42
    • Sie nach speziellen Titeln, so können Sie im Feld Filter direkt einen Titelnamen eingeben und mit der Taste Los die Sortierung starten. Hier klicken, um das Bild zu vergrößern Abbildung 5.3 Kopfzeile der Beitragsverwaltung Betrachten wir noch kurz die Liste der Beitragsverwaltung. Hier wurden die Spalten Startseite, Kategorie, Autor, Datum und Zugriffe ergänzt. Wie zu erwarten war, zeigt Ihnen die Spalte Startseite an, ob der jeweilige Beitrag auf der Startseite Ihrer Website zu sehen sein soll oder nicht. Klicken Sie dazu einfach das entsprechende Icon in der Spalte Startseite an, und schon wird der Beitrag auf der Startseite mit aufgeführt. Sämtliche Artikel, die für die Startseite verfügbar sein sollen, können über die eigene Verwaltung der Startseitenbeiträge organisiert werden. Diese können Sie z. B. über das Kontrollzentrum aufrufen. Die Spalten Bereich und Kategorie zeigen an, welches die übergeordneten Bereiche sind. Über die Spalte Autor erfahren Sie schnell und auf den ersten Blick, wer der Verfasser der unterschiedlichen Beiträge war. Datum und Zugriffe geben Ihnen darüber Auskunft, wann der Beitrag erstellt wurde und wie oft er bereits aufgerufen wurde. Hier klicken, um das Bild zu vergrößern Abbildung 5.4 Sortierungsmöglichkeiten der Beiträge 5.1.2 Voreinstellungen treffen Bevor wir den ersten Beitrag für unsere Website erstellen und auf der Startseite veröffentlichen, können wir in der Beitragsverwaltung noch einige Parameter bestimmen. Klicken Sie dazu auf den Button Einstellungen in der Werkzeugleiste. Es öffnet sich ein neuer Bereich mit den Konfigurationsmöglichkeiten. Eine Liste der Parameter finden Sie in Anhang A.1 43
    • Hier klicken, um das Bild zu vergrößern Abbildung 5.5 Globale Einstellungen für Ihre Beiträge Die Einstellungen die Sie in dieser Übersicht vornehmen, betreffen das Verhalten sämtlicher Beiträge. Sobald Sie also einen neuen Artikel erstellen, bekommt er diese Parameter zugewiesen. Aber auch bereits bestehende Beiträge werden sich nach diesen Einstellungen richten, es sei denn, Sie haben beitragsspezifische Einstellungen vorgenommen. 5.1.3 Beitragsspezifische Einstellungen Sie konnten jetzt global die wichtigsten Vorbereitungen für Ihre Beiträge treffen und schaffen so auch eine relativ konsistente Darstellung der Inhalte. Diese globalen Voreinstellungen sind äußerst praktisch, wenn man später einmal beschließt, einige Funktionen umzustellen. Es reicht dann, die Änderung einmal vorzunehmen, und man muss nicht die Parameter der einzelnen Beiträge separat bearbeiten. Allerdings ist es vielleicht nicht immer erwünscht, die globalen Einstellungen greifen zu lassen. Joomla! bietet Ihnen hier die Möglichkeit, die oben beschriebenen Einstellungen nochmals Beitrag für Beitrag zu definieren und damit die globalen Konfigurationen an dieser Stelle zu überschreiben. Diese beitragsspezifische Konfiguration ist dann ausschlaggebend für die Darstellung der Inhalte. Öffnen Sie dazu einen beliebigen Beitrag. Rechts neben dem Beitrag finden Sie die gewünschten Parameter. 44
    • Hier klicken, um das Bild zu vergrößern Abbildung 5.6 Treffen Sie unabhängige Einstellungen für einen Beitrag. 5.1.4 Ein erster Beitrag auf der Startseite Die Verwaltung der Startseitenbeiträge übernimmt die Startseitenbeiträge- Verwaltung. Hier können Sie Ihre Elemente nach Bereichen, Kategorien oder Autoren gliedern lassen, bzw. können diese auch beliebig gefiltert werden (dazu gleich mehr im nächsten Abschnitt). Die Werkzeugleiste ermöglicht es Ihnen, Beiträge zu archivieren, den Veröffentlichungsstatus zu ändern oder ausgewählte Elemente von der Startseite zu entfernen. Die Archivierung findet auch hier nur durch das Ausgrauen des Beitrags statt. Es gibt keine separate Archivverwaltung, wie man es aus den Joomla!-Vorgängerversionen kennt. Allerdings verschwindet der Beitrag gleichzeitig aus der Liste der Startseitenbeiträge und erscheint im archivierten Zustand in der Beitragsverwaltung. Wenn Sie ihn dort wieder aus dem archivierten Zustand holen und freigeben, wird er in der Liste der Startseitenbeiträge erscheinen. Hier klicken, um das Bild zu vergrößern Abbildung 5.7 Werkzeugleiste der Startseitenbeiträge Entfernen von der Startseite und Löschen Das Entfernen von der Startseite hat nicht das Löschen des Elements zur Folge. Das Element erscheint lediglich nicht mehr auf der Startseite, sondern bleibt weiterhin in der Artikelverwaltung aufgelistet. Ebenso verhält es sich mit dem Archivieren von Beiträgen auf der Startseite. Sobald Sie einen Beitrag archivieren, verschwindet er aus der Liste der Startseitenbeiträge und ist nur noch in der Beitragsverwaltung auffindbar. 45
    • Hier klicken, um das Bild zu vergrößern Abbildung 5.8 Die Verwaltung der Startseitenbeiträge Nach dem kurzen Überblick werden wir nun zusammen einen Inhalt zu einem der bereits angelegten Bereiche erstellen: • Wir erreichen die Beiträge entweder über die Menüzeile Inhalt • Beiträge oder über das Kontrollzentrum und den Button Beiträge. • Es bietet sich an, zunächst über die erwähnten Pulldown-Menüs der Beitragsverwaltung den entsprechenden Bereich und dessen Kategorie auszusuchen. Wählen Sie z. B. den Bereich »Über Joomla!« und die Kategorie »Das Projekt«. • Beginnen Sie mit einem neuen Beitrag, indem Sie auf den Button Neu klicken. Der einzige Autor ist momentan »Administrator«. Klicken Sie in der Werkzeugleiste auf den Button Neu, und Sie gelangen in den Editierbereich des Beitrags (vgl. Abbildung 5.9). • Diese Ansicht kennen Sie bereits aus dem Frontend. Durch die Vorauswahl in den Pulldown-Menüs in der Verwaltung sind die Felder Bereich und Kategorie der Beitragsdetails bereits belegt. • Wenn Sie in der Beitragsverwaltung keine Wahl für diese Felder getroffen haben, können Sie jetzt immer noch entscheiden, für welchen Bereich und für welche Kategorie der Inhalt bestimmt sein soll. 46
    • Hier klicken, um das Bild zu vergrößern Abbildung 5.9 Einen neuen Beitrag erstellen und editieren Beiträge zuordnen Anders als bei den Vorgängerversionen ist es mittlerweile nicht mehr nötig, einen Beitrag beim Erstellen einer Kategorie und einem Bereich zuzuordnen. Allerdings müssen Sie für den Bereich und die Kategorie des Beitrags explizit »nicht kategorisiert« auswählen. Das ist automatisch vorselektiert, wenn Sie einen neuen Beitrag über den Button Neuer Beitrag im Kontrollzentrum erzeugen. Wir werden jetzt für unseren Tanzlehrer Felix Muster einen kleinen Lebenslauf erstellen, der Ihnen die Eingabe von Inhalten etwas verdeutlichen soll. Tragen Sie zunächst einen Titel in das Feld Titel ein. Der Alias kann vom eigentlichen Titel abweichen, sollte aber aussagekräftig genug sein, um Suchmaschinen das Leben leichter zu machen. Hier klicken, um das Bild zu vergrößern Abbildung 5.10 Soll der Beitrag gleich verfügbar sein und auf der Startseite auftauchen? Bestimmen Sie hier auch gleich, ob der Text sofort freigegeben sein soll und ob er auf der Startseite erscheinen darf. Sie sehen, man kann schon an dieser Stelle bestimmen, wie der Inhalt der Startseite gestaltet werden soll und welche Beiträge dort auftauchen dürfen (Abbildung 5.10). Im großen Eingabefeld für Ihren eigentlichen Text können Sie nun entscheiden, ob es zunächst einen kurzen Intro-Text geben soll oder ob 47
    • gleich der ganze Artikel erscheinen soll. Es gibt an dieser Stelle nicht mehr zwei Eingabefelder, wie es in älteren Joomla!-Versionen der Fall war, sondern Sie geben einfach Ihren Text ein und positionieren den Cursor dort, wo der Intro-Text zu Ende ist und der eigentliche Artikel beginnt. Klicken Sie dann auf den Button Weiterlesen unter diesem Eingabefeld. Sie können den Text über die Werkzeugleiste formatieren oder Elemente wie Bilder und Tabellen hinzufügen. Die Aufteilung des Textes in zwei Bereiche bewirkt im Frontend, dass bei der Einbindung Ihres Beitrags zunächst nur das Intro zu lesen sein wird. Erst wenn man auf den Button Weiterlesen klickt, gelangt man zum kompletten Beitrag. Gehen wir gleich weiter zu der Eingabe des eigentlichen Textes. Klicken Sie dazu in das Eingabefeld, und beginnen Sie mit Ihrer Eingabe. Da es sich hier nur um ein Beispiel handeln soll, werden wir einfach fiktive Daten eintragen. Beginnen wir mit einer Überschrift. Fügen Sie einen Text ein, und formatieren Sie ihn mit »Überschrift 1«. Jetzt erstellen wir eine Tabelle, die einige Daten des Tanzlehrers enthalten wird. Klicken Sie dazu auf das Tabellensymbol in der Werkzeugleiste, und tragen Sie bei den Tabellenoptionen die gewünschten Werte ein. In Abbildung 5.9 sehen Sie die Backend-Ansicht der soeben erstellten Inhaltsseite. Hier klicken, um das Bild zu vergrößern Abbildung 5.11 Ein eigener Beitrag auf der Startseite Betrachten wir unseren neuen Inhalt auch einmal im Frontend. Haben Sie bei Ihrem Beitrag die Option Startseite angewählt? Falls nicht, können Sie das nachträglich ändern, denn erst dann erscheint der Beitrag auf der Startseite und in der Startseitenbeiträge-Verwaltung. Öffnen Sie dazu noch einmal den Beitrag, und aktivieren Sie die Option Startseite oder klicken Sie in der Beitragsübersicht in der Spalte Startseite auf das Icon, um den Artikel für die Startseite freizuschalten. 48
    • 6 Eine erste Webseite Wir werden nun eine einfache Website mit einigen Unterseiten erstellen und uns eingehend mit den Inhalten und der Struktur der Informationen beschäftigen. Auch das Erscheinungsbild werden wir in diesem Kapitel über ein Template etwas verändern. Mit Templates werden wir uns allerdings intensiver in Kapitel 7, »Das Website-Design«, beschäftigen. Dort erfahren Sie auch, wie man ein eigenes Template anlegt und was dabei von Joomla! erwartet wird. Kommen wir aber zurück zu unserer Tanzschule. Sie können diese Site Schritt für Schritt mit erstellen und gewinnen so Ihre ersten Erfahrungen im Umgang mit Joomla!. Zunächst brauchen wir ein passendes Template. Vielleicht stellen Sie sich jetzt die berechtigte Frage, ob es nicht sinnvoll wäre, mit dem Design der Seite zu warten, bis Struktur und Inhalte stehen. Das Problem ist nur, dass ohne Template nichts angezeigt wird. Ganz so schlimm ist das aber auch nicht, da bei der Joomla!-Installation bereits Templates mitgeliefert werden. Also haben Sie zwei Möglichkeiten: Sie nutzen zunächst das Standardtemplate, erstellen die Site und suchen sich dann das passende Template aus, oder Sie kümmern sich gleich am Anfang um das geeignete Template, wie wir das in unserem Beispiel machen werden. Im nächsten Schritt müssen wir uns Gedanken über die inhaltliche Organisation unserer Site machen. Der Umfang und die Struktur werden sich auf etwa sieben Menüpunkte (Home, Person, Referenzen, Tanzstile, Tanzschulen, Training, Kontakt) beschränken, wobei mindestens einer der Punkte noch mal in einige hierarchisch angeordnete Elemente unterteilt wird. Bei den Inhalten dieser Bereiche wird es sich überwiegend um dynamische Informationen handeln, die in regelmäßigen Abständen aktualisiert werden. Lediglich Informationen wie »Kontakt« bzw. das Impressum oder AGB lassen sich statischen Seiten zuordnen, deren Inhalte selten verändert werden müssen und inhaltlich nicht mit anderen Seiten zusammenhängen. Statische Seiten müssen immer über einen direkten Aufruf angesprochen werden. Sie können im Gegensatz zu dynamischen Inhalten nicht mehrfach über Bereichs- oder Kategorieseiten auftauchen. Joomla! gibt dem Benutzer eine feste Struktur zur Organisation der Inhalte vor. Ähnliche Content-Management-Systeme (CMS) verwenden die bekannte Baumstruktur mit Ordnern und Dokumenten. In unserem Fall findet aber eine Aufteilung in Bereiche, Kategorien und Beiträge (in Vorgängerversionen hießen diese Sektionen, Kategorie und Inhaltselemente) statt. Mit diesen Zuordnungen haben Sie immer einen direkten Überblick über Ihre Inhalte. Sobald diese Struktur einmal steht, können Sie entscheiden, welche Elemente tatsächlich im Frontend veröffentlicht (Freigegeben) werden sollen oder nicht (Standardeinstellung ist Ja). Im letzten Schritt können Sie die Inhalte für die Webseite erstellen. Wie das funktioniert, haben Sie bereits in Kapitel 5, »Inhalte erstellen und verändern«, 49
    • erfahren. Dort haben wir die Erstellung und Verwaltung von Beiträgen bereits genauer unter die Lupe genommen. Als konkretes Projekt soll weiterhin die Website für einen Tanzlehrer dienen. Die Site soll einige Daten und Informationen zum Lehrer und seinen Tanzkursen beinhalten. Der Tanzlehrer dient uns nur als Einstiegsbeispiel und wird auch im weiteren Verlauf dieses Buches als Versuchskaninchen fungieren. Anhand des Beispiels werden Ihnen vermutlich schon die ersten Ideen für diverse Anwendungen durch den Kopf gehen. Statt einer Site für einen Tanzlehrer kann man sich natürlich ebenso gut Seiten für Vereine, Unternehmen, Betriebe oder sonstige Einrichtungen vorstellen. Das Beispiel soll auch verdeutlichen, dass Sie zunächst mit einem kleinen Projekt beginnen können, von Joomla! aber nicht eingeschränkt werden und stetig wachsen können. Je nach Bedarf kann aus der Seite eines Tanzlehrers eine Website für eine ganze Tanzschule werden, die Sie problemlos mit zusätzlichen Inhalten und Erweiterungen anreichern können. 6.1 Auswahl und Aktivieren des Templates Bevor wir ein geeignetes Template heraussuchen, können Sie sich schon ein wenig Inspiration auf der deutschen Joomla!-Seite unter www.joomlaos.de holen. Hier finden Sie unter dem Menüpunkt Userpages z. B. die Rubrik Sport & Vereine. Besuchen Sie einfach einige der Seiten, und verschaffen Sie sich einen Überblick zu den gestalterischen und inhaltlichen Unterschieden. Auf Joomlaos werden wir uns später auch unser Beispiel-Template holen. Kehren wir aber zunächst zu unserer Joomla!-Installation zurück. Das Joomla!-Backend bietet uns zwei schnelle Möglichkeiten, um ein Template auszuwählen und zu aktivieren: Hier klicken, um das Bild zu vergrößern Abbildung 6.1 Die Template-Verwaltung im Backend Möchten Sie eines der vorinstallierten Templates nutzen, so aktivieren Sie dafür einfach über den Menüpunkt Erweiterungen • Templates das gewünschte Template für Ihre neue Site, indem Sie den entsprechenden Radiobutton anklicken und mit Standard als Standard-Template definieren 50
    • (Abbildung 6.1). An dieser Stelle haben Sie übrigens auch die Möglichkeit, ein Template für den Backend-Bereich auszuwählen. Wechseln Sie dazu einfach von der Site-Ansicht auf die Ansicht Administrator. Es sollte das Standard- Template in der Template-Auflistung erscheinen. Hier klicken, um das Bild zu vergrößern Abbildung 6.2 Die Template-Verwaltung für den Backend-Bereich Zusätzlich finden Sie online z. B. unter www.joomlaos.de eine ständig wachsende Template-Galerie mit freien Vorlagen zum Download. • Wechseln Sie also in Ihrem Browser auf die Seite www.joomlaos.de. • Wählen Sie den Menüpunkt Template Galerie an, und schon können Sie entscheiden, für welche Joomla!-Version Sie das Template benötigen. • Klicken Sie auf Templates für Joomla 1.5. Der Bereich ist noch einmal unterteilt in: o Statische Templates – Diese Templates sind für eine bestimmte Bildschirmbreite ausgelegt. o Dynamische Templates – Dynamische Templates passen sich an die Breite des Bildschirms des Users an. o Breite wählbar – Hier bestimmen Sie die Breite des Templates über Parameter. Hier klicken, um das Bild zu vergrößern Abbildung 6.3 Der Download-Bereich für Templates bei joomlaos 51
    • • Sobald Sie sich für einen der drei Bereiche entschieden haben, können Sie sich über »Live Preview« ein Demo des jeweiligen Layouts ansehen oder die passende Vorlage sofort herunterladen. Dazu klicken Sie auf Download. In unserem Beispiel nehmen wir das Template »Biz Blue 2« aus der Kategorie Templates für Joomla! 1.5 im Bereich Dynamische Templates. (Sie finden die Datei auch auf der Buch-DVD im Verzeichnis /template.) Sobald der Download abgeschlossen ist, können Sie über Ihr Joomla!-Backend den Verzeichnispfad der Quelldatei angeben. Die Quelldatei ist ein gepacktes Verzeichnis, das mehrere Dateien für die Installation enthält. Aber keine Sorge – Sie müssen sich nicht um den Inhalt oder das Entpacken dieser Datei kümmern! Der Installationsmanager von Joomla! übernimmt alle nötigen Vorgänge: • Anders als bei der Aktivierung eines bereits installierten Templates wählen Sie jetzt unter dem Menüpunkt Erweiterungen die Option Installieren/Deinstallieren. • Der Erweiterungen-Manager verwaltet bei Joomla! 1.5 sämtliche Extensions und Templates. • Nun geben Sie bei Paketdatei über Durchsuchen den Pfad Ihres Downloads an und • installieren das Paket mit Datei hochladen & installieren (Abbildung 6.4). Hier klicken, um das Bild zu vergrößern Abbildung 6.4 Erweiterungen suchen und hochladen • Nach der Bestätigung der erfolgreichen Installation können Sie über das Menü Erweiterungen • Templates zu der Liste der Templates wechseln. • In der Auflistung ist nun auch das neu installierte Template Biz Blue 2 aufgeführt. 52
    • • Zum Aktivieren klicken Sie auf den Radiobutton vor dem Template und bestätigen Ihre Auswahl mit dem Button Standard aus der Werkzeugleiste. Hier klicken, um das Bild zu vergrößern Abbildung 6.5 Diese Templates stehen Ihnen nun für das Frontend zur Verfügung. • Wenn Sie nun in das Frontend wechseln, erscheint Ihr Joomla! bereits im neuen Gewand. Hier klicken, um das Bild zu vergrößern Abbildung 6.6 Neues Template im Frontend Alte Vorlagen Wenn Sie eine nicht kompatible Vorlage heruntergeladen haben und versuchen, diese zu installieren, erhalten Sie eine Fehlermeldung. Ihr System wird deshalb aber keinen Schaden erleiden. Um auch ältere Templates zu installieren, können Sie unter Erweiterungen • Plugins die Option System – Legacy (Vorgängerversionsmodus) aktivieren. Joomla! installiert dabei zusätzlichen Code und ermöglicht so die Abwärtskompatibilität. In der Joomla!-Statuszeile erscheint ein Icon, das Sie auf den Legacy-Modus aufmerksam macht. 53
    • 7 Das Website-Design Mittlerweile haben wir unsere Website strukturiert und mit Inhalten angereichert. Auch das Standarderscheinungsbild haben wir mit einem neuen Template abgewandelt. In diesem Kapitel werden wir uns mit einigen einfachen Anpassungen der Vorlage beschäftigen. Aber keine Sorge: Die Eingaben, die wir bisher für den Tanzlehrer gemacht haben, gehen deshalb nicht verloren! Hier sehen Sie einen bedeutenden Vorteil eines Content-Management-Systems. Inhalte und Gestaltung werden getrennt voneinander erstellt und behandelt, d. h., Sie könnten Ihre Inhalte jederzeit in einer neuen Umgebung erscheinen lassen, ohne dafür Beiträge, Kategorien oder Bereiche kopieren zu müssen. Dank des Templates müssen wir uns selbst keine Gedanken über das Layout, die Navigation oder eine geeignete Farbpalette machen. Diese Dinge werden vorgegeben, könnten aber auch jederzeit über die CSS- bzw. HTML-Datei geändert werden. Dies wäre wichtig, falls man die Corporate Identity (also das bisherige Erscheinungsbild) des Tanzlehrers berücksichtigen muss. Hat der Tanzlehrer eventuell schon ein Logo oder sonstiges Printmaterial wie Faltblätter und Plakate, an dem man sich orientieren sollte? An unserem neuen Template werden wir kleine Änderungen vornehmen, damit es etwas besser zum Thema »Tanzen« passt. Das Logo muss selbstverständlich ausgetauscht werden, und es soll noch die eine oder andere Schriftfarbe verändert werden. 7.1 Warum verwenden wir ein fertiges Template? Vielleicht haben Sie sich gewundert, warum wir nicht einfach selbst ein Template erstellen und dabei gleich alle Einstellungen nach unseren Vorstellungen implementieren? Das ist natürlich wünschenswert, da man so ein Layout und Design erhalten würde, das in dieser Form im Internet vermutlich nicht noch einmal auftauchen wird. Allerdings setzt das tiefere Kenntnisse im Webdesign voraus. Wir werden uns in einem späteren Kapitel noch intensiver mit der Templateerstellung beschäftigen und ein eigenes, einfaches Layout erstellen. Für den ersten Einstieg wollen wir uns mit den Bereichen eines Templates anhand einer vorgefertigten Vorlage vertraut machen. So werden Sie also zunächst die Templateverwaltung kennenlernen und einen ersten Einblick in die Templatearchitektur gewinnen. 54
    • Gutes Webdesign fordert neben den technischen Grundlagen HTML und CSS auch die Überschneidung von mindestens drei technischen Schwerpunktgebieten (Abbildung 7.1). Hier klicken, um das Bild zu vergrößern Abbildung 7.1 Was macht eine gute Website aus? Solange Sie in diesen Gebieten nicht ausreichend Erfahrung besitzen, hätte Ihr eigenes Template Schwächen, die vielleicht so weit führen, dass Ihre Website auf einigen Browsern gar nicht betrachtet werden kann. Daher verlassen wir uns auf die fertigen Templates, die von erfahrenen Entwicklern erstellt wurden und bereits von anderen Usern im Einsatz getestet werden konnten. Wir beschränken uns auf die Anpassung dieser Vorlage. Dabei kann nicht viel schief gehen, und man erhält eine stabile Website, die auch professionellen Ansprüchen gerecht wird. Werfen wir jetzt mal einen genaueren Blick auf unser Frontend mit dem neu installierten Template. Wir entscheiden nun, welche Bereiche an unsere Bedürfnisse angepasst werden müssen. Dabei werden wir einerseits Joomla!- Module einfach abschalten und andererseits einige Veränderungen an der Formatierung im Template vornehmen. Ziele des Layouts Es gibt viele Bereiche, die nach den Usability-Kriterien untersucht werden könnten. Da uns das fertige Template-Layout nicht mehr alle Möglichkeiten offenlässt, konzentrieren wir uns auf einige wenige Kriterien (eine große Auswahl an Artikeln zum Thema Usability finden Sie unter http://www.drweb.de/usability/index.shtml): • Der User kann sein Ziel auf der Website innerhalb von fünf Sekunden erreichen. • Es muss eine Suchfunktion geben. 55
    • • Eine Sitemap wäre wünschenswert. • Menüs sollten maximal ca. sieben Einträge beinhalten, um übersichtlich zu bleiben. • Die Ladezeit der Website sollte unter fünf Sekunden liegen und nicht durch aufgeblähte Layout-Grafiken (oder unnötigen JavaScript-Einsatz) verlangsamt werden. • Überschriften, Beschriftungen und Bilder müssen aussagekräftig sein. (Auch Thumbnails sollen erkennbare Inhalte aufweisen.) • E Am wichtigsten: Der Inhalt und das gesamte Erscheinungsbild sollen dem User zeigen, dass er sich auf der richtigen Seite befindet. Dann steigt seine Toleranz, und er nimmt auch mal einen Klick mehr oder kleine Unreinheiten in Kauf. 8 Benutzer und Bereiche Ein Content-Management-System spielt seine Stärke erst aus, wenn mehrere Menschen an der Gestaltung der Seiten beteiligt sind. Es ist dann nicht mehr nötig, dass ein zentraler Webmaster alle Inhalte in die Seite einpflegt. Vielmehr können die Inhaltslieferanten ihre Beiträge selbst im System erstellen und nach ihren Wünschen anpassen. Das erspart dem Webmaster viel Arbeit und dem gesamten Prozess einige Zwischenschritte. Zudem haben Webseiten häufig Bereiche für registrierte User, in denen zusätzliche Informationen stehen oder auch von den Benutzern selbst zur Verfügung gestellt werden können. Diese privaten Bereiche werden ebenfalls von Joomla! verwaltet und geschützt. Es muss also zwischen Frontend- und Backend-Benutzern unterschieden werden. Bei der Arbeit mit registrierten Benutzern gibt es zwei grundlegende Konzepte: • Authentifizierung bedeutet, dass das System weiß, wer die Person ist, die gerade mit den Seiten arbeitet. Dazu wird meistens ein Login benötigt, mit dem sich die User einmal pro Sitzung anmelden. Aktionen des Benutzers werden so nachvollziehbar und unterliegen dadurch einer gewissen Kontrolle. Je nach System steht es jedoch unter Umständen jedem Besucher frei, sich namentlich oder per Pseudonym anzumelden. Unter dem Aspekt der Sicherheit ist eine reine Authentifizierung daher ein eher schwacher Schutz. • Autorisierung ist der zweite Schritt, in dem überprüft wird, ob ein bekannter User auch wirklich die Berechtigung hat, eine Seite zu 56
    • sehen oder zu bearbeiten. So kann man beispielsweise zwischen »nur« bekannten Usern, Redakteuren und Administratoren der Seite unterscheiden, die jeweils die für sie nötigen Bereiche sehen und die für ihre Aufgaben wichtigen Aktionen ausführen können. Diese Rechtestruktur kann je nach System relativ differenziert sein, ist allerdings bisher nicht zu den Stärken von Joomla! zu rechnen. 8.1 Benutzer anlegen und verwalten Joomla! organisiert seine User in der Benutzerverwaltung. Diese finden Sie entweder im Symbolbereich auf der Hauptseite des Backends oder aber im Menü unter Site • Benutzer (Abbildung 8.1). Hier sollte bisher nur ein User zu finden sein, nämlich der Administrator. Hier klicken, um das Bild zu vergrößern Abbildung 8.1 Die Benutzerverwaltung In der Liste der registrierten Benutzer werden Ihnen einige Informationen zur Verfügung gestellt. Tabelle 8.1 Informationen für registrierte Benutzer Detail Information # Nummerierung Das ist der echte Name des Benutzers. Er wird beim Name Einloggen gegebenenfalls als Begrüßung mit ausgegeben. Benutzername Unter diesem Namen kann sich der Nutzer anmelden. Sehen Sie hier einen grünen Haken, so ist der betreffende Angemeldet Nutzer gerade im System angemeldet. Wenn Sie (nur als Administrator) hier durch einen Klick den Aktiv Haken entfernen, kann sich der Nutzer nicht mehr einloggen. Sein Account ist gesperrt. Die Zugehörigkeit zu einer Benutzergruppe entscheidet über Benutzergruppe die Rechte, die der User im System hat. Eine Kontaktadresse, über die Sie den User (hoffentlich) E–Mail erreichen können. 57
    • Letzter Besuch Hier sehen Sie das Datum des letzten Logins des Users. ID Weist dem User eine eindeutige Nummer zu. Sie sehen in der Werkzeugleiste neben den üblichen Aktionen auch den Button Abmelden. Damit können Sie andere Benutzer aus dem System abmelden, wenn Sie beispielsweise vorhaben, Wartungsarbeiten am System durchzuführen. Setzen Sie einfach einen Haken in die Checkbox vor die User, die Sie abmelden wollen, und klicken Sie auf das Abmelden-Symbol. Verschrecken Sie Ihre Benutzer nicht! Natürlich ist das eine sehr unschöne Methode. Vergewissern Sie sich, dass keiner der User gerade an einem Text arbeitet und durch Ihre Aktion seine wertvollen Werke verliert. Um einen Nutzer aus dem System zu entfernen, markieren Sie wieder die entsprechende Checkbox und klicken auf das Löschen-Symbol. Aber aufgepasst: Der User wird dann direkt gelöscht und nicht im Papierkorb zwischengespeichert. Sie sollten sich also sicher sein, dass Sie das wirklich tun wollen. 8.1.1 Neue Benutzer anlegen und bearbeiten Um einen neuen Benutzer aus dem Backend heraus anzulegen, klicken Sie auf das Symbol Neu. Es erscheint ein Formular, in dem Sie die nötigen Angaben machen können. Diese entsprechen weitestgehend den Angaben, die Sie in der Benutzerverwaltung angezeigt bekommen. Im Feld Neues Passwort können Sie ein Passwort vergeben, das Sie zur Sicherheit in Passwort bestätigen noch einmal eintippen müssen. Achtung: Tippfehlergefahr! Es ist sehr verlockend, hier mit Copy & Paste zu arbeiten. Davon sei ausdrücklich abgeraten. Wenn Sie sich beim ersten Mal vertippt haben, wird der Fehler übernommen, und das Passwort ist wertlos. Das Auswahlfeld Benutzergruppe bestimmt die Rechte, die der Nutzer haben wird. Näheres dazu finden Sie in Abschnitt 8.3, »Seitenzugriff«. Wenn Sie hier »Administrator« oder »Super Administrator« angeben, so erhalten Sie nach dem ersten Speichern und nochmaligem Aufruf des Editors zusätzlich die Auswahl Benutzer sperren und Systemnachrichten empfangen. Letzteres 58
    • bedeutet zum Beispiel, dass dieser Nutzer informiert wird, wenn sich ein Besucher im Frontend registriert. Im Bereich Parameter legen Sie fest, welchen Editor der neue Nutzer standardmäßig verwenden soll. Wenn Sie hier nichts angeben, wird der Standardwert der Seite verwendet. Zusätzlich können Sie noch die Sprache für das Front- und Backend sowie für die Hilfe und die Zeitzone festlegen. Gibt es für den User eine Verbindung zu einem Kontaktdatensatz in der Komponente Kontakte (vgl. Abschnitt 9.3.2, »Kontakte«), so werden diese Daten im Bereich Kontakt Information angezeigt. Wenn Sie einen Userdatensatz bearbeiten wollen, markieren Sie den entsprechenden Eintrag in der Userverwaltung und klicken auf das Bearbeiten-Symbol oder ganz einfach auf den Usernamen. Sie gelangen dann auf die gleiche Maske, mit der Sie auch neue Nutzer erzeugen können. Die Felder Neues Passwort und Passwort bestätigen sind nicht ausgefüllt. Füllen Sie diese nur aus, wenn Sie das Passwort ändern wollen. Soll es nicht angetastet werden, so können die beiden Felder leer bleiben. 9 Module, Plug-ins, Komponenten Eine der Stärken von Joomla! ist seine Erweiterbarkeit. Mit wenigen Handgriffen können Sie Ihrer Webseite Funktionalität verpassen, die Sie ansonsten aufwendig selbst einbinden und gestalten müssten. Dazu dienen kleine Programmpakete, die der eigentlichen Joomla!-Software hinzugefügt werden können. Einige dieser Erweiterungen bekommen Sie in der Basisinstallation gleich mitgeliefert. Andere können Sie bei den einschlägigen Quellen im Netz beziehen. Joomla! kann auf drei verschiedene Arten erweitert werden: durch Module, Plug-ins oder Komponenten. Alle drei sind kleine Zusatzprogramme, die entweder vorhandenen Inhalt verändern, neu aufbereiten oder zusätzliche Informationen auf der Seite ausgeben. Diese Dreiteilung ist ungewöhnlich und kann gerade für Leute verwirrend sein, die schon Erfahrung im Umgang mit anderen CMS wie TYPO3 haben, denn hier werden alle Erweiterungen mit einem einheitlichen Namen bezeichnet und auch einheitlich verwaltet. Um etwas Klarheit zu schaffen: • Module dienen der Anzeige spezieller Inhalte im Front- und im Backend. Sie können im Template positioniert werden und sind nicht Bestandteil des normalen Inhaltsbereichs. In der Regel werden die Elemente, die Sie im Frontend auf der linken und rechten Seite sehen, über Module gesteuert. Sie werden in der Modulverwaltung angepasst. Beispiele dafür sind das Login- und das Suchformular. 59
    • • Plug-ins sind kleine Programme, die den Inhalt einer Seite verändern, bevor dieser ausgegeben wird. Viele Plug-ins werden im Text eines Content-Elements mit geschweiften Klammern eingebunden. Beispielsweise können so Bilder in den Text eingebunden werden. Auch der TinyMCE-Editor ist ein Plug-in. Daneben verrichten Plug-ins systemnahe Aufgaben wie die Anmeldung der Benutzer oder die Erweiterung der Suche. • Komponenten sind in Bezug auf Aufbau und Bedienung die komplexesten Erweiterungen. Sie können eigene dynamische Inhalte verwalten und im Backend und in der Datenbank separate Bereiche haben. Beispiele sind Umfragen oder Banner. Komponenten werden üblicherweise direkt im Inhaltsbereich angezeigt. Einige besitzen zugeordnete Module oder Plug-ins, um ihre Inhalte anzuzeigen. So können Sie u. a. ein komplettes Shop-System oder ein Wiki als Komponente in Ihre Seite einbinden. Plug-ins und Mambots Plug-ins hießen in den Vorgängerversionen Mambots. Die Namensänderung soll offiziell die tiefe Integration dieser Erweiterungen in das Kernsystem verdeutlichen. Natürlich hat sie auch den Effekt, letzte Spuren des Vorgängersystems Mambo zu eliminieren. Jede der Erweiterungsarten hat eigene Mittel, um über das Backend konfiguriert zu werden. Diese sowie die einzelnen Module, Plug-ins und Komponenten werden wir uns im Folgenden näher ansehen. Im ersten Teil des Kapitels werden wir uns den wichtigsten bereits mitgelieferten Erweiterungen widmen. Dabei werden wir auch versuchen, in unserer Beispielseite die Zahl der Elemente auf ein geringes Maß zu reduzieren, um die Übersichtlichkeit zu erhalten. Im zweiten Teil zeigen wir Ihnen, wie Sie neue Erweiterungen in Ihr System einbinden können. Eine vollständige Liste der Module und Plugins finden Sie in Kapitel 32, »Standarderweiterungen«. 9.1 Module Die mitgelieferten Module erfüllen ganz unterschiedliche Aufgaben. Sie stellen zusätzliche Informationen zur Verfügung, geben funktionale Elemente wie Menüs und Suchfunktionen aus oder erfüllen dekorative Zwecke. 9.1.1 Die Modulverwaltung 60
    • Um sich einen Überblick über die installierten Module zu verschaffen und um zu deren Einstellungsseiten zu gelangen, verwenden Sie die Modulverwaltung. Diese finden Sie im Menü unter Erweiterungen • Module. Nach dem Aufruf wird Ihnen eine Aufzählung der installierten Module präsentiert. Site und Administrator Achten Sie darauf, dass der Reiter Site und nicht Administrator ausgewählt ist. Neben den Seitenmodulen gibt es auch noch Administratormodule für das Backend. Diese regeln verschiedene Darstellungen und sind hier nicht weiter von Bedeutung. Nähere Informationen finden Sie in Kapitel 31,»Standard- Erweiterungen« Die Liste der Modulverwaltung wird Ihnen bekannt vorkommen, sieht sie doch so ähnlich aus wie die der Beiträge. Die Einträge sind im Einzelnen: Tabelle 9.1 Die Einträge in der Modulverwaltung Detail Funktion Eine laufende Nummer ohne weitere Bedeutung. Die eigentliche Anzeigereihenfolge der Module bestimmt sich aus # der Position (alphabetisch) und dann nach der Ordnungsnummer in der Spalte Reihenfolge. Der Name des Moduls. Per Klick kommen Sie auf die Name Detailseite mit weiteren Einstellungsmöglichkeiten. Steht hier ein grüner Haken, wird das Modul im Frontend Aktiviert angezeigt, ansonsten ist es versteckt. Ein Klick auf das Symbol schaltet zwischen den beiden Zuständen um. Hier können Sie die Anzeigereihenfolge innerhalb einer Position entweder direkt eingeben, indem Sie die Zahlen in den Kästchen ändern, oder Sie klicken auf einen der grünen Pfeile, um das Modul nach oben oder unten zu verschieben. Reihenfolge Vergessen Sie nicht, danach auf das Diskettensymbol in der Spaltenüberschrift zu klicken, sonst gehen die Änderungen verloren. Die Änderung ist nur möglich, wenn Sie die Modulliste nach Position sortieren. Zeigt an, wer das Modul sehen darf. Mehr dazu finden Sie in Zugriffsebene Kapitel 8, »Benutzer und Bereiche«. Zeigt an, an welcher Position im Template das Modul Position ausgegeben werden soll. Zeigt an, ob das Modul auf allen (»Alle«), nur einigen Seiten (»Verschiedene«) oder auf keiner Seite (»Keine«) angezeigt wird. Typ Die Art des Moduls. Aus dieser Angabe kann auch seine 61
    • Funktion abgelesen werden. ID Eine interne Identifikationsnummer. Hier klicken, um das Bild zu vergrößern Abbildung 9.1 Die Modulverwaltung Wenn Sie sehr viele Module in Ihrem System installiert haben, dann kann es hilfreich sein, gezielt nur eine Gruppe anzeigen zu lassen. Dazu dienen die Filter rechts über der Liste. Hier finden Sie vier Auswahllisten, in denen Sie die Templates, die Position, den Typ und den Status angeben können, die bzw. der aufgelistet werden soll. Im Feld Filter können Sie Einschränkungen für den Namen angeben. Wenn Sie hier beispielsweise »Menü« eingeben und auf drücken, werden alle Module aufgelistet, die das Wort »Menü« enthalten. Die Filter können auch kombiniert werden. Wählen Sie im Dropdown-Feld Status wählen »Aktiviert«, so sehen Sie nur noch die Einträge, die auch im Frontend angezeigt werden. Mit dem Button Reset wird der Textfilter deaktiviert, und Sie sehen wieder die gesamte Liste. Beachten Sie, dass der Filter für den Status noch immer gesetzt ist. Relativ leicht können Sie in der Modulverwaltung überflüssige Elemente entfernen. Klicken Sie beispielsweise für den Eintrag »Beispielseiten« auf den grünen Haken in der Spalte Aktiviert. Jetzt sollte da ein roter Kreis zu sehen sein. Wenn die Spalte verschwunden ist, überprüfen Sie, ob der Filter für den Status noch gesetzt ist. Gehen Sie jetzt mal ins Frontend, und laden Sie die Seite neu. Richtig, das Menü mit den Links zu den Joomla!-Seiten ist verschwunden. Deaktivieren Sie auf diese Art auch das Top-Menü. 9.1.2 Positionen 62
    • Eine wesentliche Eigenschaft der Module ist ihre Positionierbarkeit. Dazu muss man wissen, dass im Template bestimmte Positionen mit einem Namen versehen werden können. Nun kann man ein oder mehrere Module mit dieser Position verbinden. Ein Vergleich mit der eigentlichen Ausgabe zeigt, dass an einer Position mehrere Module ausgegeben werden können. Dies ist beispielsweise bei »left« der Fall; hier werden das Hauptmenü und das Login-Formular ausgegeben. Andere Positionen wie »user3« werden gar nicht belegt. Die Ordnung der Module innerhalb einer Position wird in der Spalte Reihenfolge festgelegt und kann direkt aus der Modulverwaltung geändert werden. Die Position selbst kann nur auf den Detailseiten ausgetauscht werden. Das Anmeldeformular ist momentan nicht sehr prominent. Wir wollen, dass es direkt unter dem Hauptmenü liegt. Tragen Sie dazu im Eintrag »Anmeldung« in der Spalte Reihenfolge eine 1 ein, und klicken Sie danach auf das Diskettensymbol oben in der Spalte. Jetzt müsste sich die Reihenfolge der Einträge geändert haben. Wenn Sie das Ganze im Frontend kontrollieren (vergessen Sie nicht, die Seite neu zu laden), dann sollte sich auch hier die Reihenfolge geändert haben. Die Namen der Positionen sind nicht immer aussagekräftig Beachten Sie, dass der Name einer Position vom Entwickler des Templates willkürlich gewählt werden kann. So ist es nicht selbstverständlich, dass die Position »left« auch wirklich links zu sehen ist. In der Regel können Sie sich aber darauf verlassen. Hier klicken, um das Bild zu vergrößern Abbildung 9.2 Die Positionen im Standard-Template 63
    • 9.1.3 Die Modul-Detailseite Wenn Sie auf den Namen eines Moduls klicken, so erhalten Sie dessen Eigenschaftsseite. Etwas umständlicher… Alternativ können Sie auch einen Haken vor das Modul setzen und rechts oben auf das Bearbeiten-Symbol klicken. Sehen wir uns beispielsweise die Seite des Moduls »Anmeldung« an. Die Bereiche Details und Menüzuweisung sind für alle Module gleich. Hier können Sie einige Standardeinstellungen vornehmen, die weitestgehend mit denen auf der Übersichtsseite übereinstimmen. Unter Details legen Sie den Titel des Moduls fest. Wenn Sie den darunterliegenden Radiobutton Titel anzeigen auf Ja gesetzt haben, wird über dem Modul der Titel angezeigt. Die Radiobuttons hinter Aktiviert bestimmen, ob die Erweiterung überhaupt im Frontend angezeigt wird. Hier klicken, um das Bild zu vergrößern Abbildung 9.3 Der Modul-Titel In der Dropdown-Liste Position kann ausgewählt werden, wo das Modul erscheinen soll, gleich darunter ist auch die Reihenfolge einstellbar. Hinter der Zahl in dieser Dropdown-Liste steht jeweils der Name des aktuellen Moduls, das an dieser Stelle angezeigt werden soll. Wenn Sie die Position ändern, wird das aktuelle Modul jeweils hinter das Modul gesetzt, das Sie in der Auswahl angeben. Das Feld Zugriffsebene zeigt an, wer auf das Modul zugreifen kann. Im Feld Beschreibung finden Sie eine Erklärung, welche Aufgabe das Modul hat. Im Bereich Menüzuweisung können Sie detailliert festlegen, wo ein Modul angezeigt wird. Dies geschieht über die Menüeinträge. Ist ein Eintrag selektiert, so wird das Modul angezeigt, wenn dieser Menüpunkt angeklickt wird. Sie sehen hier also einmal mehr, dass das Aussehen einer Frontend- Seite nicht vom Inhalt, sondern vielmehr vom gewählten Menüeintrag abhängt. Darüber finden Sie eine Reihe von Radio-Buttons. Alle lässt das Modul auf allen Seiten erscheinen, Keine auf keiner. Nur wenn Sie Wählen Sie einen Menüeintrag von der Liste markiert haben, wird die Selektion der darunterliegenden Liste berücksichtigt. Hier können Sie mehrere Einträge auswählen. Halten Sie dazu die -Taste gedrückt, während Sie die einzelnen Elemente markieren. Wenn Sie einen ganzen Bereich selektieren wollen, klicken Sie mit der Maus auf das erste Element des Bereichs, halten 64
    • die -Taste gedrückt und klicken nun auf das letzte Element des Bereichs. Vergessen Sie nicht, danach über das Speichern- oder Anwenden-Symbol zu speichern! Im Bereich Parameter tauchen einige Einträge sehr häufig auf: Tabelle 9.2 Einträge bei »Parameter« Detail Bedeutung Damit können Sie angeben, welche CSS-Klasse mit dem Modul Modul- verbunden werden soll. Das ist relevant, wenn Sie Änderungen Klassen- am Template vornehmen (siehe Kapitel 7, »Das Website- Suffix Design«). Bestimmt, ob der Inhalt des Moduls gecacht werden soll. Dies Caching kann unter Umständen dazu führen, dass Änderungen nicht sofort übernommen werden, beschleunigt aber die Darstellung. Gibt für Listen an, wie viele Inhalte berücksichtigt oder auf Anzahl einmal ausgegeben werden sollen. Das Anmeldeformular hat noch einen etwas doppeldeutigen Titel: »Anmeldung« könnte auch zur Nutzerregistrierung führen. Das sollten wir ändern. Geben Sie also im Feld Titel stattdessen »Einloggen« ein. Außerdem ist das Formular besser auf der rechten Seite aufgehoben, um die Optik links nicht zu beeinträchtigen. Ändern Sie die Position also auf »right«. Klicken Sie nun auf Speichern, um die Änderungen zu übernehmen und zur Modulverwaltung zurückzukehren. Im Frontend sollten die neuen Einstellungen jetzt wirksam sein. Sehen wir uns nun einige der mitgelieferten Module genauer an. 9.1.4 Die Menüs Bei der zentralen Rolle, die Menüs spielen, ist es doch erstaunlich, dass sie als Module ausgegeben werden. Aber genau das ist es, was die Menümodule machen. Sie stellen die Anzeige zur Verfügung, »verpacken« also die Funktionalität in ein Element, das im Frontend dargestellt und positioniert werden kann. Hierzu bietet das Menümodul einige Möglichkeiten. Unter den Details ist der Titel hervorzuheben, der bei Menüs sicherlich eine prominente Position einnimmt. Wenn Sie also in Ihrer Homepage statt eines »Hauptmenüs« gern ein »Startmenü« hätten, dann ist dieser Parameter der geeignete Ort, um die Umstellung vorzunehmen. 65
    • In den Parametern eines Menüs können Sie unter anderem festlegen, ob Untermenüs aufgeklappt werden sollen. Dies geschieht in der Einstellung Untermenüs immer anzeigen. Klicken Sie hier auf Ja, so werden alle Menüs aufgeklappt dargestellt. Im Frontend können Sie sehen, welche Auswirkungen die Änderung hat. Tabelle 9.3 Parameter eines Menüs Parameter Bedeutung An dieser Stelle erfolgt die Zuordnung eines Menüs aus der Menüverwaltung zu einem Menümodul. Sie können Menüname also beispielsweise mehrere Varianten des Hauptmenüs verwalten und hier immer die aktuelle Version aktivieren. Diese Auswahl legt fest, wie ein Menü ausgegeben wird. In Joomla! 1.5 ist dies immer »Liste«, die Menüs werden mit CSS formatiert. Aus Kompatibilitätsgründen Menüstil gibt es auch noch die Optionen der Vorgängerversion: Hochformat (»Vertikal«), Querformat (»Horizontal«) sowie »Flache Liste«, das nur eine HTML-Liste ausgibt, die Sie mit CSS formatieren können. Den Menüeinträgen können Bilder zugeordnet werden. Menüicons anzeigen Sie werden allerdings nur angezeigt, wenn diese Option aktiviert ist. Wenn Bilder angezeigt werden, so können sie rechts Menüicon- oder links vom eigentlichen Menüpunkt dargestellt Ausrichtung werden. Haben Sie ein hierarchisches Menü, so wird normalerweise nur die erste Unterebene mit angezeigt. Menü erweitern Die Option Menü erweitern bewirkt, dass alle Ebenen ausgegeben werden. Dies gilt nur für das vertikale Menü. Normalerweise wird in einem Menü nur der aktuell ausgewählte Punkt markiert. Mit Vorgänger aktivieren Vorgänger aktivieren werden alle Menüeinträge selektiert, die hierarchisch in einer Linie übergeordnet sind. Werden mehrere Ebenen ausgegeben, so können diese mit eigenen Bildern eingerückt werden. Diese Bild für den Bilder werden entweder vom Template vorgegeben, Zeileneinzug kommen direkt von Joomla!, sind komplett abgeschaltet (»Keine«) oder werden in den folgenden sechs Feldern für jede Ebene ausgewählt. Für horizontale Menüs können Sie hier bestimmen, was Trennzeichen zwischen den Einträgen als Trennzeichen stehen soll. Schlusstrennzeichen Ebenfalls bei horizontalen Menüs können Sie hier festlegen, welches Zeichen nach dem letzten Eintrag 66
    • stehen soll. 9.1.5 Anmeldung Dieses Modul stellt das Anmeldeformular zur Verfügung. Ist ein User angemeldet, so erscheint stattdessen ein Abmelden-Button. Achtung: Neuer Name Beachten Sie, dass wir dieses Modul zuvor umbenannt hatten. Es ist jetzt unter »Einloggen« zu finden. Es ist naheliegend, dass dieses Modul für alle und nicht nur für registrierte User zugänglich sein soll. Zudem ist die Standardeinstellung, das Formular nur auf der Startseite anzuzeigen, um die Inhaltsseiten nicht zu sehr zu überladen. Der Nachteil ist, dass die User zum Ein- und Ausloggen zur Startseite navigieren müssen. Wenn Sie das nicht wollen, wählen Sie »Alle« im Bereich Menü-Zuweisung. Die Texte, die im Anmeldungsmodul ausgegeben werden, sind fest kodiert und können nicht geändert werden. Die Anzeige der Registrierseite erfolgt nur, wenn Sie in der Konfiguration unter System die Option Benutzerregistrierung erlauben aktiviert haben. Zwei Einstellungen sind noch hervorzuheben. Unter Begrüssung kann ausgewählt werden, ob ein Benutzer nach erfolgreichem Login mit den fröhlichen Worten »Hallo, Benutzername« begrüßt wird. Weil dies gestalterisch nicht sehr schön umgesetzt wurde, schalten wir diese Option ab. Hinter dem Punkt Anmeldeweiterleitungsseite können Sie bestimmen, auf welcher Seite ein Benutzer nach erfolgreichem Login landet. Wählen Sie hier die Seite »Lebenslauf« aus. Jetzt können Sie sich zur Kontrolle im Frontend mit Ihrem Administrator-Zugang anmelden. Nach erfolgtem Login sollten Sie auf der zuvor eingestellten Seite landen. 9.1.6 Feed-Anzeige Im Web 2.0 ist die Zusammenführung von Informationen verschiedener Quellen groß in Mode. Man nennt so etwas »Mashup«. Eine einfache Variante finden Sie auch in den Modulen – die Feed-Anzeige. Mit ihrer Hilfe können Sie einen Newsfeed auf Ihrer Seite anzeigen lassen, beispielsweise die aktuellsten Nachrichten. Das geht so: 67
    • Klicken Sie in der Modulverwaltung auf das Symbol Neu. Jetzt erscheint eine Auswahl von verschiedenen Modularten, die Sie neu anlegen können. Fast alle sind aber im System schon vorhanden. Wählen Sie die Feed-Anzeige aus, und klicken Sie auf Weiter. Jetzt sehen Sie die Detailseite des neuen Moduls. Geben Sie als Titel »Nachrichten« ein. Die Feed-URL in den Parametern könnte beispielsweise http://www.netzeitung.de/export/news/rss/clean/titelseite.xml sein. Erhöhen Sie die Anzahl der Nachrichten im Feld Beiträge auf 5. Damit die Anzeige noch übersichtlich bleibt, setzen Sie die Felder Feed-Titel, Feed- Beschreibung und Beitragsbeschreibung auf »Nein«. Schließen Sie die Erstellung des Moduls mit Speichern ab. Jetzt haben Sie einen aktuellen Newsticker auf Ihrer Startseite. Die restlichen mitgelieferten Module sind in Kapitel 31, »Standarderweiterungen«, ausführlich beschrieben. 10 Pflege der Webseite Wenn Sie ein Joomla!-System betreiben, sind Sie sozusagen der Kapitän der Homepage. Sie legen grob fest, wo es lang geht, brauchen aber eine Crew, die mitmacht. Trotzdem gibt es einige Entscheidungen und Verantwortlichkeiten, die nur bei Ihnen liegen. Das betrifft z. B. das allgemeine Erscheinungsbild, die Funktionalität und die Sicherheit. Die Möglichkeiten, Pflichten und Risiken, die Sie dabei haben, wollen wir im folgenden Kapitel besprechen. 10.1 Seitenweite Einstellungen Dynamische Inhalte werden nicht nur innerhalb von Artikeln erzeugt, sondern betreffen oft die gesamte Seite. Der Titel, der im Browserfenster angezeigt wird, ist so ein Fall, ebenso wie die Metadaten, die mit jeder aufgerufenen Seite ausgegeben werden und den Suchmaschinen beim Indizieren helfen. Viele dieser allgemeinen Einstellungen können Sie in der Konfiguration vornehmen, die Sie unter Site • Konfiguration finden. Lassen Sie sich nicht durch die Fülle der Parameter irritieren. Wir werden im Folgenden die wichtigsten besprechen. 68
    • 10.1.1 Seite Der erste Teil der Einstellungen, die Sie im Reiter Site vornehmen können, betrifft die Erreichbarkeit der Seite. Sie können die Homepage beispielsweise für Wartungszwecke mit einem einzigen Mausklick in der Option Seite offline deaktivieren. Wenn Sie nun speichern und ins Frontend wechseln, sehen Sie einen Kasten mit der Offline-Nachricht und einem Anmeldeformular. Hier klicken, um das Bild zu vergrößern Abbildung 10.1 Joomla! im Offline-Modus Für unangemeldete Benutzer ist die Seite also nicht mehr sichtbar, registrierte Autoren können sich jedoch nach wie vor einloggen. So können Sie in Ruhe Ihre Homepage vorbereiten. Für unser weiteres Vorgehen sollten Sie die Seite jetzt im Backend wieder online schalten. Den allgemeinen Titel der Site, der auch in der Titelleiste des Browsers und in Bookmarks angegeben wird, stellen Sie im Feld Seitenname ein. Für Redakteure können Sie in diesem Register zentral festlegen, welcher Editor als Standardoption zur Verfügung gestellt werden soll (Standard-WYSIWYG- Editor). Im Core-Paket von Joomla! haben Sie hier die Möglichkeit, TinyMCE oder XStandard Lite auszuwählen (vgl. Abschnitt 3.3, »Der Editor TinyMCE im Detail«). XStandard Lite ist deaktiviert Damit der XStandard-Editor in der Liste auftaucht, muss er zunächst in der Plug-in-Verwaltung aktiviert werden. Zudem können Sie ein für alle Mal festlegen, wie lang die Listen im Backend sein sollen (Listenlänge). Der Standard ist hier 20, das kann in der täglichen Arbeit aber unter Umständen zu wenig sein. 69
    • 10.1.2 Suchmaschinenoptimierung und Metainformation Im Kasten SEO können Sie die Verwendung suchmaschinenfreundlicher URLs aktivieren (SEO steht für Search Engine Optimization). Internetadressen, wie sie von vielen dynamischen Webseiten erzeugt werden, enthalten die anzuzeigende Seite meistens als Parameter, d. h. in dem Teil der URL, der dem ? folgt. Suchmaschinen wiederum nehmen diesen Teil der Adresse nicht in ihren Index auf, was dazu führt, dass diese Seiten nicht mit Suchmaschinen gefunden werden können. Eine Lösung für dieses Problem ist, die Parameter als Teil des URL-Pfads zu tarnen, d. h. mit / anzugeben. Die Option Suchmaschinenfreundliche URLs bewirkt genau das. Sehen Sie sich zunächst im Frontend den Link an, der im Browser in der Adressleiste angezeigt wird, wenn Sie auf Home klicken: http://localhost/joomla/index.php?option=com_content&view=frontpage&Itemid=1 Ändern Sie nun in der Konfiguration die Option auf »Ja«, und sehen Sie sich die URL erneut an. Die sieht jetzt so aus: http://localhost/index.php/home Übersichtlicher, finden Sie nicht? Das sehen auch die Programme der Suchmaschinen so. Vorsicht nach der Umstellung Testen Sie die Seite ausgiebig, nachdem Sie auf suchmaschinenfreundliche URLs umgeschaltet haben. Die Umstellung bedeutet einen relativ tiefen Eingriff ins System. Gelegentlich kann es vorkommen, dass die eine oder andere Seite im SEO-Modus nicht mehr angezeigt wird. Ebenfalls zur Suche dienen die sogenannten Metadaten. Das sind in der Seite mitgelieferte Beschreibungen des Inhalts, die Schlüsselbegriffe und typisierte Informationen enthalten. Im Kasten Metadaten können Sie unter Globale Metadaten-Beschreibung einen Text zu Ihrer Seite angeben, der dann in den meisten Suchmaschinen in der Trefferanzeige mit ausgegeben wird. Im Feld Globale Metadaten-Schlüsselwörter können Sie durch Kommas getrennt mehrere Schlüsselbegriffe angeben, von denen Sie denken, dass sie die Seite gut charakterisieren. Diese werden von vielen Suchmaschinen bei der Indizierung bevorzugt beachtet. Sie sehen also, dass diesen beiden Einträgen eine große Bedeutung zukommt, wenn Sie wollen, dass Ihre Seite bei Google, Yahoo! & Co. eine gute Position in der Trefferliste erhält. Die Beschreibung sollte nicht zu lang sein, vielleicht ein oder zwei Sätze, die einige für den Inhalt Ihrer Seite charakteristische Wörter enthalten. Bei den Schlüsselwörtern ist es mittlerweile nicht mehr nötig, ja sogar kontraproduktiv, 70
    • alle möglichen Varianten von Groß- und Kleinschreibung oder Einzahl und Mehrzahl eines einzigen Wortes anzugeben. Besser ist auch hier, eine Reihe von möglichst treffenden Wörtern zu finden. Die letzten beiden Optionen steuern die Ausgabe von Titel (Zeige Titel-Metadaten) und Autor (Zeige Autor-Metadaten) als Metainformation der Seite und sollten auf »Ja« stehen, um den Suchmaschinen möglichst viele Informationen über eine Seite zu liefern. 10.1.3 Benutzer Bei einer normalen Installation von Joomla! steht es allen Besuchern Ihrer Seite frei, sich über das Frontend als Benutzer einzutragen. Das ist nicht immer erwünscht, zum Beispiel gerade dann, wenn es Bereiche gibt, die nur ausgewählte Benutzer sehen sollen. Daher können Sie die eigenhändige Registrierung abschalten. Gehen Sie dazu in die Konfiguration und dort auf den Reiter System. Dort finden Sie den Kasten Benutzer. Wenn Sie Benutzerregistrierung erlauben auf »Nein« stellen, kann sich kein Besucher mehr selbst registrieren. Es gibt aber auch Mechanismen, um bei aktivierter Anmeldung Missbrauch nach Möglichkeit zu vermeiden. Die Standardeinstellungen sind hier eigentlich sehr gut gewählt. Neue Benutzer werden über Benutzergruppe neu registrierter Benutzer der Gruppe »Registriert« zugeordnet, d. h., sie haben keine Bearbeitungsrechte. Zudem wird nach der Registrierung eines Users zunächst eine Bestätigungs-E–Mail mit einem Aktivierungslink an ihn geschickt, wenn Neue Benutzerkonto- Aktivierung auf »Ja« gestellt ist. So können Sie sichergehen, dass die E–Mail- Adresse auch wirklich existiert. Vielleicht ist Ihnen das auch schon passiert: Sie bearbeiten einen Text, denken dabei etwas länger nach, wollen speichern und bekommen die Fehlermeldung, dass Sie nicht eingeloggt sind. Schuld daran ist eine Sicherheitseinstellung, die nach einer gewissen Zeit von Inaktivität – und die Bearbeitung eines Textes im Editor ist für den Server ebenfalls Inaktivität – die Anmeldung deaktiviert. Wenn Ihnen die Zeit zu kurz ist, können Sie die Dauer unter dem Reiter System im Bereich Session im Parameter Gültigkeit ändern. Hier legen Sie fest, wie lange ein User eingeloggt bleibt, wenn er inaktiv ist. Der Standardwert liegt bei 15 Minuten. 11 Eine Site aufbauen Unser Vorgehen beim Erstellen einer neuen Site für ein Tanzstudio wird dem Vorgehen bei der bereits besprochenen Website für einen Tanzlehrer ähnlich sein. Einen neuen Schwerpunkt wird jedoch das Template bilden. Anders als bei unserem Tanzlehrer-Beispiel soll die neue Site individueller erscheinen 71
    • und nicht in einen vorgefertigten Rahmen gepresst werden. Diesmal bestimmen Sie das Layout und die Gestaltung und legen fest, welche Module oder Komponenten verwendet werden sollen. Zwangsläufig wird dadurch auch die Planung und Strukturierung eine größere Bedeutung gewinnen, da Sie sich nicht mehr auf einen fertigen Aufbau stützen können. So müssen Sie im Vorfeld die einzelnen Content- und Menübereiche klären und sich bewusst machen, wie umfangreich das gesamte Projekt werden kann. Dies geht bis hin zu der Entscheidung, welche Farben Sie verwenden möchten oder welche Schriftarten bzw. -größen eingesetzt werden sollen. Beginnen wir aber zunächst mit der inhaltlichen Organisation, und betrachten wir dann, wie das Template aufgrund der Website-Struktur aussehen könnte. 11.1 Struktur der Site Bevor wir uns dem Layout und der detaillierten Gestaltung unserer neuen Website widmen, organisieren wir die Struktur des Tanzstudios. Wir müssen zunächst bestimmen, welche Inhalte wir erzeugen möchten und welche der angesprochenen Funktionen (Newsfeed, Login etc.) wir tatsächlich als sinnvoll erachten. Diese Überlegungen sollten uns aber nicht von nachträglichen Ergänzungen abhalten. Selten lässt sich die Struktur einer Website im Vorfeld komplett planen. Das Layout soll aber zumindest einige Eckdaten zur Orientierung bekommen, und die nötigen Bereiche für Menüs oder Content müssen halbwegs klar sein. Denn je nachdem, wie viele Menüpunkte wir verwenden möchten, kann z. B. die Entscheidung für ein horizontales Menü zugunsten eines vertikalen Menüs umgestoßen werden. Schon die Entscheidung, wie viel Platz unser Layout im Browserfenster einnehmen wird, hängt von der Vorüberlegung ab, wie viele Inhalte online gestellt werden sollen. Verwendet man die gesamte Bildschirmbreite, hat aber für die Menüpunkte jeweils nur zwei Absätze Text, so wird das Erscheinungsbild stark auseinanderfallen. In diesem Fall würde es sich empfehlen, die Breite der Darstellung zu reduzieren und so die Inhalte zu einer geeigneten Darstellungsdichte zu komprimieren. Grundlegend für unser Layout wird also die Seitenstruktur sein. Für die Planung der Struktur sind momentan drei Dinge wichtig: • Welche Unterseiten brauchen wir (und welche Menüpunkte ergeben sich daraus)? • Wie werden die Inhalte aussehen, und welchen Umfang haben sie in etwa? • Welche Funktionalität muss auf der Seite für den User gegeben sein? 72
    • Diese drei Punkte werden wir zunächst für unser Beispiel klären, und anschließend erstellen wir ein geeignetes und ansprechendes Layout. Anhand des Layouts werden wir entscheiden, ob wir für die Umsetzung ein vorgefertigtes Layout verwenden möchten oder lieber ein eigenes Template mit der zugehörigen CSS-Datei entwerfen wollen. Mit den vorangegangenen Gedanken haben wir überwiegend die Bedeutung der Struktur für unsere Seitengestaltung behandelt. Die Organisation der Inhalte in Joomla! unterliegt in der Version 1.5 immer noch den Bereichen, Kategorien und Beiträgen. Diese Hierarchie wird nur von den statischen Inhalten unterbrochen, ansonsten haben Sie keine Möglichkeit, diese Vorgaben zu umgehen. Eine dynamische Ordnerhierarchie wird aber in kommenden Joomla!-Versionen realisiert werden. Der Vorteil unserer Bereiche und Kategorien ist jedoch, dass wir jedem Bereich oder jeder Kategorie ein eigenes Template zuweisen könnten. So kann das Layout den Ansprüchen der jeweiligen Inhalte entsprechend angepasst werden. Außerdem bleibt das Erscheinungsbild gewahrt, auch wenn unterschiedliche Autoren den Kategorien neue Inhalte hinzufügen. Egal wer die Inhalte ergänzt, sobald man z. B. der Seite »Tanzstile« einen neuen Tanz hinzufügt, wird der Inhalt wie alle anderen Tanzstile-Inhalte formatiert sein und nicht wie z. B. die Inhalte des Bereichs »Referenzen«. Die Aufteilung in Bereiche und Kategorien bringt natürlich eine hierarchische Organisation mit sich. Die jeweiligen Inhaltsseiten sind aber meist chronologisch angeordnet. 12 Was macht ein Template aus? Um Ihnen einen genaueren Blick hinter die Kulissen eines Templates zu verschaffen, werden wir nun eine eigene Vorlage Schritt für Schritt erstellen. Das Beispiel soll Ihnen nur einige Möglichkeiten näherbringen, und es wird nicht den ganzen Umfang eines vollständig ausgeklügelten Templates erreichen. Dies ist auch kaum sinnvoll, da es bei der Umsetzung keinen vorgeschriebenen Weg gibt. Es gibt jedoch einige Regeln, die Sie beachten müssen. Die wichtigsten Bestandteile eines Templates sind fünf Komponenten, und diese dürfen nicht fehlen: 1. ein Verzeichnis /images 2. ein Verzeichnis /css 3. die Datei index.php 73
    • 4. die Datei templateDetails.xml 5. das Bild template_thumbnail.png Das /images-Verzeichnis wird die Slices, also Grafiken unseres Layouts enthalten. Im Verzeichnis /css bringen wir die Datei template.css unter. Sie enthält die Formatierungen für das Template. Oft finden Sie hier auch die Datei editor.css. Joomla! bietet seit der Version 1.5 die Möglichkeit, auch die Gestaltung des WYSIWYG-Editors über CSS zu steuern. Die Datei index.php enthält die Codierung des Layouts. Die XML-Datei dient als Zusammenfassung relevanter Elemente für das Template. Ihre Benennung muss genau templateDetails.xml lauten. Neben einer kurzen Beschreibung, sollten hier auch die einzelnen Dateien in den jeweiligen Verzeichnissen aufgeführt sein. Das betrachten wir aber im weiteren Verlauf noch genauer. Zu guter Letzt gibt es für das Template noch eine kleine Voransicht, die Sie in der Datei template_thumbnail.png speichern. Diese Datei muss sich auf derselben Ebene mit der PHP und der XML-Datei befinden. Diese Dateien sollten sich später im Templates-Verzeichnis Ihrer Website befinden. In unserem Beispiel wäre das also joomla/templates. Hier erstellen Sie am besten noch ein eigenes Unterverzeichnis für das neue Template, in dem sich später die fünf Bestandteile befinden müssen. Bevor wir gleich genauer auf das Template eingehen, sollten Sie Ihre Verzeichnisstruktur erzeugen. Erstellen Sie, wie oben beschrieben, ein Unterverzeichnis für das neue Template. Darin brauchen Sie dann noch zwei weitere Verzeichnisse, nämlich /css und /images. Das Erstellen des Templates lässt sich in zwei Schritte aufteilen. Wir müssen die PHP-Datei, index.php, erzeugen, die unser Layout im Browser darstellen wird, und wir brauchen die CSS-Datei, template.css, die die Formatierung der einzelnen Elemente enthalten soll. 12.1 HTML-Bereich Das Template, also die index.php, sollte im Anfangszustand etwa folgendermaßen aussehen: 01 <?php echo "<?xml version="1.0"?>"; ?> 02 <?php 03 defined( '_JEXEC' ) or die( 'Restricted access' ); 04 ?> 05 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 06 Transitional//EN" 07 "http://www.w3.org/TR/xhtml1/DTD/xhtml1- 74
    • 08 transitional.dtd"> 09 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php 10 echo $this->language; ?>" lang="<?php echo $this->language; 11 ?>"> 12 <head> 13 <jdoc:include type="head" /> 14 <meta http-equiv="Content-Type" content="text/html; 15 <?php echo _ISO; ?>" /> 16 <link rel="stylesheet" href="templates/<?php echo $this 17 ->template ?>/css/template.css" type="text/css" /> 18 </head> 19 <body> 20 </body> 21 </html> Ein leeres Template beinhaltet einige Dinge, die speziell für Joomla! eine wichtige Rolle spielen. Diese Informationen müssen auf jeden Fall vorhanden sein. • Der erste wichtige Punkt betrifft die Sicherheit Ihres Templates. Die Zeilen 2–4 schützen Ihre Template-Dateien vor fremden Zugriffen und Änderungen. • Die Zeilen 16 und 17 definieren die Verbindung zu unserer CSS-Datei, die wir später noch erstellen werden. Ohne diesen Link würde Ihre Seite unformatiert im Webbrowser dargestellt werden. Damit wäre das Grundgerüst für unser HTML-Template geschaffen. Sie können diese Datei mit einem einfachen Texteditor oder einem HTML-Editor erstellen. Der Großteil dieser Template-Datei besteht aus HTML. Die wenigen PHP-Variablen werden Sie auch ohne große PHP-Kenntnisse schnell anwenden können. Die nächsten Einträge werden wir im <body>-Bereich vornehmen. Es müssen nun unterschiedliche Bereiche erstellt werden, in denen sich später z. B. das Menü, der Header, der Content oder die rechte Spalte befinden sollen. Diese Bereiche erzeugen Sie, indem Sie entweder eine Tabelle mit der entsprechenden Anzahl Zellen aufziehen, oder Sie verwenden Div-Layer. Tabellen bzw. Layouttabellen wurden lange Zeit zur Gestaltung des Layouts verwendet. Auch jetzt bieten sie noch den Vorteil, dass sie bei älteren Browsern das Layout in der gewünschten Form umsetzen. Ihre Verschachtelung und die absoluten Größenangaben widersprechen jedoch dem Prinzip der Barrierefreiheit [Dabei handelt es sich um ein Designprinzip, bei dem versucht wird, die Nutzung einer Webseite unabhängig von körperlichen und technischen Hürden zu ermöglichen. ] . Daher sollten Tabellen möglichst nur noch verwendet werden, um tabellarische Daten darzustellen. Dagegen lassen sich Ebenen frei positionieren und sind im Vergleich zu Tabellen barrierefrei. In unserem Beispiel werden wir daher das Layout überwiegend mithilfe von Div-Layern erstellen. Die fertigen Template- Dateien finden Sie auch auf der DVD im Verzeichnis template/la-joomla. 75
    • Kommen wir nun zum eigentlichen Hauptteil. In unserer index.php werden wir nun die Zeilen 21 und 22 um einige Codesegmente erweitern. Es fehlen uns noch die Joomla!-Variablen und die Layer, mit denen wir unser Layout umsetzen möchten. <body> <div id="container"> <div id="tanzheader"> <h1 id="tanz_header_logo"> <?php echo $mainframe->getCfg('sitename');?> </h1> <h1 id="tanz_header2”><?php echo $mainframe ->getCfg('sitename');?> </h1> </div> Wir beginnen mit einem Layer, der als Container für die weiteren Layer dienen wird. Details zu den einzelnen Ebenen legen wir später in der entsprechenden CSS-Datei fest. Anschließend folgt der Layer für unsere Kopfzeile. Die Anweisung <?php echo $mainframe->getCfg('sitename');?> gibt den Namen der Site wider. In der Ebene contentarea werden die weiteren Bereiche der Website definiert: <div id="contentarea"> <div id="tanz_menu"><jdoc:include type="modules" name="left" /> </div> <div id="ornament">Ornament</div> <div id="content">:: <jdoc:include type="module" name="breadcrumbs" /><br/><br/> unser inhalt :: <jdoc:include type="component" /> <br/><br/> </div> <div id="foto">foto</div> <div id="extra"><jdoc:include type="modules" name="right" /> </div> </div> Zunächst kommt im Layer tanz_menu das Menü der Website. Dazu wird das Joomla!-Modul "left" aufgerufen. Dieses Modul besteht aus Hauptmenü, Login und Syndicate. Wird einer dieser Bereiche nicht benötigt, muss er über das Joomla!-Backend abgeschaltet werden (siehe Kapitel 9, »Module, Plug-ins, Komponenten«). Direkt an den Layer tanz_menu schließt sich der kleine Layer ornament an. Hier wird sich später eine Grafik befinden. Den nächsten großen Bereich stellt der eigentliche Inhalt dar. Als Erstes wird der Klickpfad über die Anweisung <jdoc:include type="module" name="breadcrumbs" /> ausgegeben. Danach wird mit <jdoc:include type="component" /> der Inhalt dargestellt. Außerdem werden noch die zwei Layer der rechten Spalte definiert. Der zweite Layer enthält die Anweisung zum Aufruf der Module »Umfrage« und »Wer ist online«. Auch hier können Sie über das Backend entscheiden, welches der Module tatsächlich im Frontend sichtbar sein soll. 76
    • Jetzt bleiben uns nur noch die Fußzeile und der Abschluss des HTML- Dokuments: <div id="footer"> <div align="center"> </div> </div> </div> </body> </html> Der Footer ist in diesem Fall leer. Hier können Sie direkte Links auf Beiträge erstellen, die nicht über ein Menü verfügbar sein müssen. Einen direkten Link auf einen Joomla!-Beitrag erstellen Sie, indem Sie einfach die URL mit der entsprechenden Artikel-ID angeben, z. B. <a href="index.php? option=com_content&view=article&id=45">AGB</a>. Dieser Link verweist auf einen Beitrag mit der ID 45. Die ID ermitteln Sie, indem Sie in der Beitragsübersicht in der letzten Spalte des jeweiligen Beitrags die Nummer suchen. Über die direkte URL-Angabe können Sie auch komplette Bereiche ansprechen: index.php?option=com_content&view=section&id=8&Itemid=56 In diesem Beispiel wird der Bereich mit der ID 8 aufgerufen. Die Verknüpfung mit der Itemid=56 zeigt uns, dass gleichzeitig das Menü mit der ID 56 aktiv ist. In unserem Beispiel wäre das der Bereich »Training« mit dem Menüpunkt Training: Hier klicken, um das Bild zu vergrößern Abbildung 12.1 Der Bereich mit der ID 8 Hier klicken, um das Bild zu vergrößern Abbildung 12.2 Das Menü mit der ID 56 In unserem Beispiel haben wir fünf Module (»Hauptmenü«, »Anmelden«, »Syndication«, »Umfragen« und »Wer ist online«) auf zwei Modulpositionen (»left« und »right«) verwendet. Joomla! hatte in den Vorgängerversionen 27 vordefinierte Modulpositionen, auf die wir zurückgreifen können. Diese finden Sie weiterhin in verschiedenen Templates und in der Standardpositionierung der Kernmodule. Allerdings gab es sehr viele ausdrucksschwache Modulpositionen, wie »user1-9« oder »icon«. Mittlerweile können die Positionen für jedes Template individuell bestimmt werden. Die Positionen müssen einfach in der XML-Datei definiert werden (vgl. Abschnitt 12.3, »Das Drumherum«) und werden dann von Joomla! importiert. Das ist allerdings nicht der einzige Unterschied zu der Vorgängerversion von Joomla!. Es gibt speziell im Bereich der index.php-Datei geänderte Aufrufe 77
    • und neue Möglichkeiten im Vergleich zu älteren Joomla!-Versionen. In der folgenden Tabelle finden Sie eine Auflistung der wichtigsten Unterschiede zum Aufruf bestimmter Funktionen: Tabelle 12.1 Neue Befehle für den Aufruf von Modulen und Funktionen Joomla! 1.0 Joomla! 1.5 mosCountModules(); $this->countModules() mosShowHead(); <jdoc:include type="head" /> $mosConfig_live_site; $this->template mosLoadModules ( 'left', – <jdoc:include type="modules" name="left" 1); style="raw" /> mosMainBody(); <jdoc:include type="component" /> Tabelle 12.2 fasst noch einmal alle wichtigen Aufrufe mit den verschiedenen Optionen und Attributen zusammen. Tabelle 12.2 Befehle und Attribute für den Aufruf von Modulen Aufruf Funktion Das »type«-Attribut gibt den Typ an, der ausgegeben werden soll. Das Element »component« erscheint einmalig in unserem Template (im Bereich <jdoc:include type="component" <body></body>) und ist verantwortlich für /> die Ausgabe des eigentlichen Inhalts im Content-Bereich. Das gilt auch für den Typ »head«. Über diesen Typ werden im <head>-Bereich der <jdoc:include type="head" /> index.php die nötigen Skripten, Stile und Meta-Daten aufgerufen bzw. abgelegt. <jdoc:include type="installation" Dieser Aufruf wird nur für das Joomla!- /> Installer-Template benötigt. »message« wird nur einmal im Template <jdoc:include type="message" / benötigt und gibt Fehler- bzw. > Systemmeldungen aus. Das Element module gibt ein einzelnes Modul an der entsprechenden Stelle im Template aus. Der Modultyp wird durch name= bestimmt, und die Darstellung kann abhängig vom Modul im Backend konfiguriert werden. Achten Sie darauf, dass es im Backend auch tatsächlich freigegeben wurde. <jdoc:include type="module" Gibt den Klickpfad aus. name="breadcrumbs" /> Mit dem zusätzlichen style-Attribut haben Sie bei einigen Modulen die Möglichkeit die Darstellungsform über das Template zu bestimmen. Folgende 78
    • Möglichkeiten stehen zur Verfügung: table, horz, xhtml, rounded und outline. <jdoc:include type="module" Hier wird der Modulposition »submenu« name="submenu" zusätzlich die ID »submenu-left« übertragen. style="rounded" id="submenu- So können die Elemente speziell über CSS left" /> oder PHP/Javascript angesprochen werden. Möchten Sie einer Position mehrere Module zuweisen können, benötigen Sie das Attribut modules. <jdoc:include type="modules" Auf der Position »top« können Sie nun name="top" /> verschieden Module positioni 13 Tools zur Template-Erstellung Sie konnten bereits einen ausführlichen Eindruck davon gewinnen, wie umfangreich und aufwendig die Erstellung eines Templates werden kann. Je nachdem, ob Sie bestehende Templates anpassen möchten oder komplett eine eigene Vorlage erstellen möchten, wird es hilfreich sein, auf Werkzeuge zurückzugreifen, die Sie dabei unterstützen. 13.1 Browsertools Zunächst haben wir einige Tools, die uns bei der Analyse bestehender Seiten behilflich sind. Im Entstehungsprozess Ihres Templates können Sie damit immer die tatsächlichen Auswirkungen und das Zusammenspiel Ihrer index.php mit den dazugehörigen CSS-Dateien prüfen. Wir haben die Tools schon öfter angesprochen. Es handelt sich hierbei um Werkzeuge, die Sie in Ihrem Browser installieren müssen und auch dort verwenden werden. 13.1.1 Firebug und Web Developer Toolbar Das stärkste Werkzeug für Webentwickler bietet der Firebug für Firefox. Ähnlich umfangreich und hilfreich ist die Web Developer Toolbar. Wir werden stärker auf den Firebug eingehen, da er etwas übersichtlicher ist und nicht nur eine Toolbar darstellt. Bevorzugen Sie allerdings Tools mit reichlich Funktionalität, die kompakt verpackt ist, ist die Web Developer Toolbar perfekt. Sie bietet tatsächlich etwas mehr Features als der Firebug und lässt sich wunderbar mit Firefox verschmelzen. 79
    • Hier klicken, um das Bild zu vergrößern Abbildung 13.1 Die Firefox Web Developer Toolbar – kompakt und sehr wirkungsvoll Firebug zeigt Ihnen nicht nur sämtliche HTML-, CSS- und Skriptelemente an, Sie haben zudem die Möglichkeit, temporärere Änderungen am Code vorzunehmen, um die Auswirkungen »live« im Browser zu beobachten. Hier klicken, um das Bild zu vergrößern Abbildung 13.2 Die Firebug-Ansicht zu La Joomla Sie können den Firebug direkt im aktuellen Browserfenster andocken lassen oder in einem eigenen Fenster öffnen. Über die zwei Menüzeilen haben Sie Zugriff auf alle Auswertungen und Seitenelemente. Hier klicken, um das Bild zu vergrößern Abbildung 13.3 Die Menüzeilen von Firebug Ganz rechts finden Sie außerdem eine Suche für die jeweilige Ansicht. Darunter befinden sich in der HTML-Ansicht die aktiven CSS-Formatierungen des jeweiligen HTML-Elements. Sobald Sie die Ansicht ändern, z. B. Netzwerk (Abbildung 13.4), erscheinen in der oberen Menüzeile weitere Optionen. Sie können auch mit der Maus im Ansichtsfenster einzelne Elemente auswählen, um weitere Informationen zu erhalten. Das ist besonders praktisch, wenn Sie die Verschachtelung verschiedener CSS-Klassen erfahren möchten. Klicken Sie dazu einfach in der HTML-Ansicht auf eines der HTML-Tags, und Sie erhalten in der rechten Ansicht die einzelnen CSS-Formatierungen mit ihren Vererbungen. 80
    • Hier klicken, um das Bild zu vergrößern Abbildung 13.4 Die Netzwerk-Ansicht verschiedenen Auswertungen In der oberen Menüzeile befinden sich zudem zwei Buttons: Untersuchen und Bearbeiten (Abbildung 13.3). Dabei ist besonders der Button Untersuchen praktisch. Sobald Sie diesen aktivieren, können Sie mit der Maus über Ihre Website fahren. Dabei werden die aktiven Elemente farbig umrandet, und gleichzeitig wird in der HTML- und der CSS-Ansicht der entsprechende Code hervorgehoben. So finden Sie schnell und einfach Positionen einzelner Elemente im Code. Über den Button Bearbeiten wechseln Sie in den Bearbeitungsmodus und können direkt Änderungen am HTML vornehmen. 13.1.2 Developer Toolbar Für den Microsoft Internet Explorer wurde mittlerweile ein ähnliches Tool wie Firebug entwickelt. Die Developer Toolbar ermöglicht Ihnen im Internet Explorer vergleichbare Analyse- und Bearbeitungsoptionen, wenn auch nicht in so großem Umfang, wie sie bei Firebug vorhanden sind. Hier klicken, um das Bild zu vergrößern Abbildung 13.5 Die IE Developer Toolbar In der Standardansicht erhalten Sie drei Spalten. Die erste Spalte zeigt Ihnen die HTML-Struktur der Webseite. In der zweiten Spalte finden Sie die Attribute zum ausgewählten Element und können diese auch im »Live«-Modus 81
    • bearbeiten. Die dritte Spalte listet die CSS-Formatierungen des jeweiligen Elements auf. Diese lassen sich allerdings nicht ändern. Über die Menüzeile haben Sie Zugriff auf weitere Funktionen. Hier klicken, um das Bild zu vergrößern Abbildung 13.6 Die Menüzeile des Developers So können Sie z. B. Elemente wie Bilder, DIVs oder Tabellen direkt in der dargestellten Seite hervorheben lassen. Außerdem bietet Ihnen das Menü Tools ein nützliches Bildschirmlineal und eine Pipettenfunktion zum schnellen Bestimmen von Farbwerten. 13.1.3 Chrome Seit September 2008 tummelt sich ein weiterer Browser auf dem Web-Markt. Google hat den Browser Chrome in der Beta-Fassung herausgegeben. Hier sollte man noch etwas abwarten, bevor man diesen Browser allzu intensiv verwendet: nicht allein wegen der Gefahren einer Beta-Version, sondern auch aufgrund der unklaren Lage der Datensicherheit. Es gibt jedoch einige Merkmale, die Chrome interessant machen. So handelt es sich nicht nur um einen schlanken und wirklich schnellen Browser, sondern er beinhaltet schon in der Standardinstallation ein Analyse-Tool. Sie starten das Tool einfach mit einem rechten Mausklick auf die Webseite und den Menüpunkt Element untersuchen. Die Funktionen sind deutlich weniger umfangreich, aber zumindest müssen Sie keine extra Erweiterung installieren, sondern bekommen die Analysefunktion mit dem Browser geliefert. Das Untersuchungsfenster ist in zwei Spalten geteilt. Links erhalten Sie die HTML-Struktur. Sobald Sie mit der Maus über die einzelnen Elemente fahren, wird der entsprechende Bereich in der Website gelb hinterlegt. In der rechten Spalte erhalten Sie detaillierte Informationen und die Formatierungen der HTML-Elemente. Sie können allerdings keine Änderungen vornehmen, um eine »Live«-Ansicht der neuen Formatierung zu erhalten. Es handelt sich also im Prinzip in dieser Beta-Version des Chrome um eine bessere Quelltextansicht der aktuellen Webseite. 82
    • Hier klicken, um das Bild zu vergrößern Abbildung 13.7 Das Analyse-Tool von Google Chrome 14 Barrierefreiheit Unter barrierefreien Webseiten versteht man Homepages, die von allen Besuchern ungeachtet technischer und/oder körperlicher Hürden ohne Einschränkungen benutzt werden können. Da dieses hehre Ziel im Prinzip nie vollständig umgesetzt werden kann, spricht man zumeist von barrierearmen Seiten. Barrierearme Seiten dienen nicht nur Menschen mit Behinderung, sondern stellen einen Mehrwert für alle dar, beispielsweise für die Nutzung auf Handys, in exotischen Browsern, bei Präsentationen etc. Hürden sind beispielsweise: • Kontrastarme Seiten: für Menschen mit Farbfehlsichtigkeit • Kleine Texte: für Menschen mit Sehschwäche, beispielsweise ältere Mitbürger • Bilder: für Blinde, die sich Ihre Homepage von einem Screenreader vorlesen lassen • Ignorieren technischer Standards: Das beschränkt die Besucher auf bestimmte Browser. • Aktive Inhalte für Funktionalität: Sie schließen Menschen aus, die die entsprechenden Plug-ins nicht haben oder nicht haben wollen. 83
    • • Komplexe Sprache: Dadurch wird die Lesbarkeit erschwert, nicht nur für Menschen mit einem unterdurchschnittlichen IQ. Sie sehen also, dass es sich hier nicht nur um technische Lösungen handelt. Barrierearmut hat vor allem mit inhaltlichen Aspekten zu tun. Dennoch gibt es einige technische Mittel, mit denen man Zugangshürden reduzieren kann. • Trennung von Inhalt und Design: Die wichtigste Voraussetzung ist, dass Sie für Ihre Seiten valides XHTML verwenden und das Layout konsequent mit CSS gestalten. Tabellen oder unsichtbare Bilder zur Positionierung von Elementen sind tabu! • Veränderung der Darstellungsgröße: Verwenden Sie statt fixer Schriftgrößen relative Angaben. • Alternativtexte für multimediale Inhalte: HTML bietet die Möglichkeit, die Inhalte von Multimediaelementen mit Worten zu beschreiben. Nutzen Sie dies! • Der Inhalt muss linear ausgegeben werden können: Nur so können Screenreader u. Ä. die Seite in andere Medienformate umwandeln. • Die Funktionalität darf nicht von Plug-ins abhängen: Während Designelemente kein Problem darstellen, muss gewährleistet sein, dass ein Besucher Ihre Seite auch ohne zusätzliche Technik verwenden kann. Etwas allgemeiner kann man vier Grundsätze des barrierefreien Webdesigns formulieren: • Wahrnehmbarkeit: Alle Inhalte einer Seite sollen in einer für alle Nutzer wahrnehmbaren Form dargestellt werden. Es gibt hier eine Ausnahme: Inhalte, die nicht mit Worten ausgedrückt werden können. • Bedienbarkeit: Alle Elemente, die Bedienfunktionen bereitstellen, sollen von allen Benutzern verwendet werden können. • Verständlichkeit: Der Inhalt sowie funktionale Elemente sollen so einfach und verständlich wie möglich angeboten werden. • Technologische Robustheit/Nachhaltigkeit: Die verwendeten Webtechniken sollen so gestaltet sein, dass sie heute und auch in Zukunft mit möglichst vielen »Empfangsgeräten« dargestellt werden können. Der letzte Punkt verweist auf die Bedeutung offener Standards und nachhaltiger Formate. 84
    • 14.1 Bedeutung »Blinde kommen eh nicht auf meine Seite« ist ein häufiges Argument fauler Webseitengestalter, um das Thema Barrierefreiheit zu umgehen. Aber täuschen Sie sich nicht. Der Anteil der Deutschen, die beim Zugang zu Informationen durch physische Einschränkungen zusätzliche Hürden zu überwinden haben, liegt bei ca. 8 %. Einige leichte Schwierigkeiten tauchen bei deutlich mehr Menschen auf. So leiden ca. 10 % der Männer unter einer Form von Rot-Grün-Blindheit. In absoluten Zahlen ausgedrückt, sprechen wir in Deutschland also von mindestens 8.000.000 Menschen, die bei falschen Konfigurationen in der Nutzung des Internets eingeschränkt werden. Daneben spielen aber auch neue Herausforderungen eine Rolle. Kontrastarme Webseiten sind in der Bahn unter wechselnden Lichteinflüssen schwer zu lesen. Seiten, die nicht skalieren, stellen ein Problem bei der Darstellung auf mobilen Endgeräten dar. Auch im Unternehmensumfeld stößt man auf Schwierigkeiten, da bestimmte Features oder Browser nicht am Arbeitsplatz zugelassen sind. Ein dritter Aspekt ist der sogenannte Digital Divide. Dieser Begriff beschreibt die Tatsache, dass nicht alle Menschen gleichermaßen in der Lage oder gewillt sind, an den neuen elektronischen Medien teilzunehmen. Das hat mehrere Gründe, die meistens in den Sozialstrukturen verankert sind. Der Digital Divide hat einen starken wirtschaftlichen Aspekt. So gibt es genügend Menschen, die eine veraltete Hardware oder einen sehr langsamen (oder gar keinen) Internetanschluss haben. Dass hier Webseiten, die die neuesten Gimmicks haben und dafür Erweiterungen benötigen, die mehrere Megabyte groß sind, nicht unbedingt den Surf-Spaß erhöhen, dürfte klar sein. Daneben spielt der Bildungsgrad eine große Rolle. Schwer zu navigierende Seiten und schwierige Texte schließen Menschen mit geringer Bildung tendenziell aus. Sie sehen einmal mehr, dass bei diesem Thema nicht nur die Technik bestimmt, was barrierearme Seiten sind. 15 Aus der Trickkiste Die meisten Wege, die wir bisher beschrieben haben, waren geradlinig und an den üblichen Herausforderungen orientiert. Sie werden aber bei Projekten, die etwas umfangreicher sind als unser Beispiel für den Tanzlehrer, einige kreative Umwege beschreiten müssen. Jedes System stößt irgendwann, abhängig vom Umfang und den Anforderungen des jeweiligen Projekts an seine Grenzen. Meist lassen sich aber auch individuelle Bedürfnisse mit einigen kleinen Tricks realisieren. Sobald Sie sich einmal intensiver mit Joomla! auseinandergesetzt haben, werden Sie selbst ein Gefühl für die Möglichkeiten entwickeln. Jetzt möchten wir Ihnen schon mal einen Vorgeschmack geben und einige spezielle Themen ansprechen. 85
    • 15.1 Zugriff für registrierte Benutzer Die Benutzerhierarchien sind bei Joomla! zwar nicht sehr weit gestaffelt, aber auch mit den wenigen Benutzergruppen kann man Inhalte differenzieren (Details finden Sie in Kapitel 8, »Benutzer und Bereiche«). Ein relativ einfaches Thema stellen Menüs dar, die je nach Benutzerrechten nach der User-Anmeldung verfügbar sind. Sie haben also die Möglichkeit, bestimmten Benutzergruppen auch eigene Menüs oder Module zur Verfügung zu stellen, die normalen Besuchern nicht zugänglich sind. 15.1.1 Einzelne Menüpunkte freigeben Bei der Individualisierung unserer Website können wir schon bei einzelnen Menüpunkten beginnen. Sie haben die Möglichkeit, Menüpunkte allgemein, nur angemeldeten Benutzern oder nur Benutzern mit Admin-Rechten verfügbar zu machen. 1. Wechseln Sie dazu über Menüs • Hauptmenü auf die Liste der Hauptmenü- Einträge. 2. Ändern Sie beim Tanzlehrer in der Spalte Zugriffsebene die Ebene auf »Registriert«, indem Sie einfach auf den aktuellen Eintrag klicken, bis »Registriert« erscheint. Hier klicken, um das Bild zu vergrößern Abbildung 15.1 Der Unterpunkt »Tanzlehrer« ist nur noch registrierten Benutzern zugänglich. 3. Wechseln Sie jetzt in das Frontend. Achten Sie darauf, dass Sie im Frontend nicht angemeldet sind. Wenn Sie jetzt auf den Menüpunkt Tanzstile klicken, sollte der Unterpunkt Tanzlehrer nicht erscheinen. 4. Sobald Sie sich im Frontend einloggen, steht Ihnen dieser Unterpunkt wieder zur Verfügung. 86
    • Hier klicken, um das Bild zu vergrößern Abbildung 15.2 Im Frontend erhält man den Unterpunkt erst nach der Anmeldung auf der Seite. 15.1.2 Freigabe von kompletten Menüs oder Modulen Eine Steigerung dieses Vorgehens ist die Anwendung auf komplette Menüs oder Module. Sie können also über die Benutzerrechte auch bestimmen, ob Menüs oder bestimmte Funktionen erst nach der Anmeldung verfügbar sein sollen. Das lässt sich auch noch etwas erweitern. Sie können zudem festlegen, in welchem Zusammenhang einzelne Module erscheinen sollen. Aber schauen wir zuerst, wie wir die Zugriffsebenen von Modulen bestimmen können. Anders als erwartet können Sie diese Einstellung nicht im Bereich der Menüs vorfinden, sondern müssen auf die Modul-Übersicht wechseln. 1. Rufen Sie dazu im Hauptmenü den Punkt Erweiterungen • Module auf. 2. Sie erhalten die Listenansicht der vorhandenen Module und können über die Spalte Zugriffsebenen, genau wie bei den einzelnen Menüpunkten, Benutzergruppen für die einzelnen Module bestimmen. 3. So könnten Sie jetzt also z. B. das gesamte Hauptmenü nur noch für registrierte Benutzer verfügbar machen und nicht nur vereinzelte Punkte daraus. 87
    • Hier klicken, um das Bild zu vergrößern Abbildung 15.3 Zugriffslevel für Module Natürlich haben Sie nun auch die Möglichkeit, andere Module, die Sie auf Ihrer Website verwenden, mit unterschiedlichen Levels verfügbar zu machen. Wie bereits angedeutet wurde, können wir hier auch bestimmen, in welchem Zusammenhang bestimmte Module erscheinen sollen. Damit ist gemeint, dass Funktionen erst verfügbar sind, wenn der Besucher einen Bereich über einen Menüpunkt aufgerufen hat. Wir werden dazu das Modul »Wer ist online« anpassen. 1. Wenn Sie sich nicht schon in der Modulliste befinden, rufen Sie die Übersicht über das Menü Erweiterungen • Module auf. 2. Klicken Sie auf das Modul »Wer ist online«. 3. Sie erhalten eine Übersicht mit drei Hauptbereichen: Details, Parameter und Menüzuweisungen (vgl. Abbildung 15.4). 4. Im Bereich Menüzuweisungen (vgl. Abbildung 15.4) können Sie nun bestimmen, unter welchen Menüpunkten das Modul dargestellt werden soll. Momentan ist hier nur die Startseite aktiv. Das bedeutet also, dass nur auf der Startseite das Modul »Wer ist online« zu sehen ist. 5. Sie können nun mehrere Menüpunkte hinzunehmen, wenn Sie mit Ihrer Maus und gleichzeitig gedrückter -Taste weitere Punkte auswählen. Markieren Sie z. B. zusätzlich die Referenzen. 6. Wechseln Sie nun in das Frontend. Auf der Startseite erhalten Sie rechts unter dem Tanzbild den Hinweis zu Online-Usern. Wenn Sie einen anderen Menüpunkt auswählen, verschwindet diese Anzeige, außer Sie rufen die Referenzen auf. Dort bekommen Sie auch wieder den Hinweis zu den Online-Usern. 88
    • Hier klicken, um das Bild zu vergrößern Abbildung 15.4 Das Modul »Wer ist online« taucht nun auf der Startseite und auf der Seite »Referenzen« auf. 15.1.3 Ausbau der Freigabe-Funktion Wir werden noch etwas tiefer in das Template und die Freigabe von Modulen eingreifen. Im folgenden Schritt besprechen wir, wie Sie ein Modul über einen Menülink aufrufen. Sobald Sie die Seite verlassen, wird dieses Modul auch wieder ausgeblendet. Dazu werden wir einen Eingriff in das Template vornehmen müssen, da sich diese Funktion nicht über die Optionen im Backend realisieren lässt. Wir bleiben bei unserem »Wer ist online«-Modul und nehmen dies als Anschauungsbeispiel für das weitere Vorgehen. 1. Zunächst müssen wir die Menüzuweisungen des Moduls »Wer ist online« definieren. In unserem Beispiel wählen wir alle, so dass das Modul über alle Menüpunkte erreichbar ist. 2. Als Nächstes müssen wir Änderungen an unserem Template vornehmen und die Datei index.php bearbeiten. Das können Sie direkt über das Backend machen. Wählen Sie den Punkt Erweiterungen • Templates, und klicken Sie auf das aktuelle Template. 3. In der Werkzeugleiste haben Sie nun die Option, den HTML-Code zu bearbeiten. 4. Jetzt müssen wir folgende Änderungen vornehmen: • Die Zeile 30 <div id="extra"><jdoc:include type="modules" name= "right" /></div> ersetzen Sie durch: <div id="extra"> <?php if ($_REQUEST['showwhosonline'] == 1) { ?> <?php mosLoadModules ( 'right', –2 ); ?> <?php } ?> </div> 89
    • • Die Zeile 32/33 <div id="footer"><a href="index.php? option=com_content&view=article&id=45">AGB</a></div> wird folgendermaßen ergänzt: <div id="footer"> <a href="index.php?option=com_content&view=article&id=45">AGB | </a> <a href="<?php echo $_SERVER['REQUEST_URI']; $glue='&'; if (strpos($_SERVER['REQUEST_URI'], '?') === false) $glue='?'; if ($_REQUEST['showwhosonline'] != 1) echo $glue.'showwhosonline=1'; ?>">Wer ist online?</a> </div> Es wird ein Link erzeugt, der das Modul »whosonline« aufruft. Dabei wird mit der Anweisung $_SERVER['REQUEST_URI']; der aktuelle Serverpfad bestimmt. Zusätzlich findet eine Abfrage statt, ob ein »?« in der URL existiert. Sollte das nicht der Fall sein, befindet man sich gerade auf der Startseite, und der Aufruf des Moduls würde nicht klappen. Es wird in diesem Fall automatisch ein Fragezeichen in der URL erzeugt. Prüfen Sie das angepasste Template nun im Frontend. Sie sollten in der Fußzeile den Link »Wer ist online« finden. Unter dem Tanzbild auf der rechten Seite sollte nicht mehr zu sehen sein, wer gerade online ist. Erst wenn Sie den Link in der Fußzeile anklicken, erscheint das Modul und gibt Auskunft über Online-Besucher. Sobald Sie die Seite aber wieder wechseln, indem Sie einen anderen Punkt aus dem Menü aufrufen, verschwindet das Modul wieder. Sie haben so die Möglichkeit, bestimmte Module zwar immer verfügbar zu machen, aber erst bei wirklichem Bedarf zu starten. Die aktuelle Ansicht bleibt so übersichtlicher und wird nicht gleich mit allen möglichen Informationen oder Funktionen überfrachtet. Hier klicken, um das Bild zu vergrößern Abbildung 15.5 Der Link zum Modul »Wer ist online« 90
    • Hier klicken, um das Bild zu vergrößern Abbildung 15.6 Das Modul wird auf der jeweiligen Seite mit einem Mausklick aktiviert und verschwindet, sobald man einen anderen Menüpunkt aufruft. 15.1.4 Anpassen einer Komponente Wir müssen die Anpassungen nicht auf das Template beschränken. Ähnliche Funktionen bilden auch bei Komponenten eine sinnvolle Ergänzung. Mit wenigen Handgriffen können wir z. B. die ChronoForms (zu ihrer Installation und Anwendung vgl. Kapitel 18, »BreezingForms und ChronoForms«) individuell anpassen. So lässt sich die Formularerweiterung relativ einfach mit einer Abfrage ergänzen, die prüft, ob der User bereits angemeldet ist. Falls das der Fall ist, können einzelne Formularfelder mit vorhandenen Benutzerinformationen automatisch ausgefüllt werden. Mit diesen kleinen Anpassungen bieten wir den Benutzern einen verbesserten Komfort und schaffen etwas mehr Übersichtlichkeit auf unseren Seiten. Passen wir also jetzt die Chronoforms etwas an: 1. Rufen Sie den Forms Manager über Komponenten • Chrono Forms • Forms Management auf. 2. Erstellen Sie ein neues Formular über den Button Neu in der Werkzeugleiste, und geben Sie einen Namen ein. 3. Wechseln Sie auf den Reiter Form Code, und bearbeiten Sie das HTML- Feld. Der Quellcode könnte etwa folgendermaßen aussehen. Entscheidend sind allerdings die fett markierten Stellen: 01 <?php 02 global $my,$mosConfig_live_site; 03 $readonl=""; 04 if ($my->id) { 05 $readonl=" readonly='readonly'"; 06 } ?> 07 <fieldset> 08 <legend>Ihre Daten</legend> 09 <label for="fromname">Name: </label> 11 <input type="text" name="fromname" id="fromname" 12 tabindex="510" value="<?php echo $my->name?>"<?php echo 13 $readonl?> /> 91
    • 14 <br /> 15 <label for="fromemail">Email: </label><input type="text" 16 name="fromemail" id="fromemail" tabindex="511" 17 value="<?php echo $my->email?>"<?php echo $readonl?> /> 18 <br /> 19 <label for="details">Nachricht: </label> 20 <textarea cols=40 rows=4 name="details" id="details" 21 tabindex="512"> 22 </textarea><br /> 23 </fieldset> 24 <fieldset> 25 <legend>Abschicken</legend> 26 <?php if(!$my->id){ ?> 27 {imageverification} 28 <?php } ?> 29 <input type="submit" value="Senden" tabindex="513" /> 30 <input type="reset" value="Löschen" tabindex="514" /> 31 </fieldset> • o Die PHP-Anweisungen, um die dieses einfache Formular ergänzt wurde, prüfen, ob der User angemeldet ist. Sollte das der Fall sein, werden in den Feldern Name und Email die Anmeldedaten von der Joomla!-Benutzerverwaltung verwendet. Gleichzeitig werden mit der Anweisung <?php echo $readonl?> eben diese Felder auf den Lesemodus gestellt. Das bedeutet, dass die Inhalte dieser Felder zwar angezeigt werden, aber nicht veränderbar sind. 4. Aktivieren Sie im Reiter Anti Spam die Sicherheitsabfrage, damit die Captcha-Funktion in Zeile 27 funktioniert. 5. Um das Formular testen zu können, brauchen wir noch einen Link in unserem Hauptmenü. 6. Wechseln Sie dazu auf Menüs • Hauptmenü, und erstellen Sie einen neuen Menüpunkt mit dem Typ »Chronoforms«. 7. Tragen Sie den Namen für den Menüpunkt ein, und geben Sie das neue Formular an. 8. Prüfen Sie das Formular jetzt im Frontend. Wenn Sie das Formular aufrufen, bevor Sie sich im Frontend angemeldet haben, können Sie wie gewohnt alle Felder ausfüllen. Sobald Sie sich anmelden, erscheinen in den ersten beiden Feldern Ihr Name und Ihre E–Mail-Adresse, die Sie in der Joomla!-Benutzerverwaltung abgelegt haben. 92
    • Hier klicken, um das Bild zu vergrößern Abbildung 15.7 Das Anmeldeformular für nicht registrierte User Hier klicken, um das Bild zu vergrößern Abbildung 15.8 Vorausgefüllte Felder bei registrierten Usern 15.1.5 Ein eigener Bereich Bei diesem Schritt handelt es sich um eine einfache Einstellung. Sie macht aber die Individualisierung unserer Website für registrierte User komplett. Joomla! macht es Ihnen nämlich auch möglich, Unterbereichen der Website auch verschiedene Templates zuzuordnen. Das ist besonders dann sinnvoll, wenn dem User auch deutlich gemacht werden soll, dass er sich in einem bestimmten Bereich der Website befindet. Der Unterschied zum eigentlich Template sollte daher nicht allzu groß sein, da man sonst meinen könnte, man befindet sich plötzlich auf einer völlig anderen Seite. Meist reicht eine andere Farbpalette oder dergleichen aus, um den besonderen Bereich hervorzuheben. In unserem Beispiel werden wir allerdings zu Demonstrationszwecken auf ein völlig anderes Template zurückgreifen, um die Funktion schnell deutlich zu machen. 1. Wechseln Sie im Backend auf Erweiterungen • Templates. 2. Markieren Sie das Template JA_Purity, und klicken Sie in der 93
    • Werkzeugleiste auf Bearbeiten. 3. Sie erhalten eine neue Ansicht mit drei Bereichen. Uns interessiert der Bereich Menüzuweisung. 4. Aktivieren Sie den Radiobutton Aus Liste auswählen. Jetzt haben Sie die Möglichkeit, die Menüpunkte zu bestimmen, bei denen das Template JA_Purity verwendet werden soll (Mehrfachauswahl funktioniert mit gedrückter -Taste). Unser Untermenüpunkt Tanzlehrer ist mittlerweile nur noch für registrierte Besucher erreichbar. Weisen wir diesem Punkt also das neue Template zu. So ist jetzt also für registrierte Besucher nicht nur ein extra Menüpunkt verfügbar, sondern es verändern sich auch die Darstellung und das Layout in diesem Bereich. Hier klicken, um das Bild zu vergrößern Abbildung 15.9 Ein Template wurde bestimmten Bereichen zugewiesen. Mit der Kombination der bisher genannten Möglichkeiten lässt sich also ein komplett abgeschlossener Raum für spezielle Benutzergruppen erstellen. Von einer eigenen Gestaltung dieses Raums bis hin zu speziellen Modulen oder Menüs, die nur für die angemeldeten Benutzer verfügbar sein sollen, ist hier alles möglich. Hier klicken, um das Bild zu vergrößern Abbildung 15.10 Registrierte User erhalten besonderen Zugriff auf einen speziellen Bereich mit einem eigenen Template. 16 Joomla! als professionelle Geschäftsplattform 94
    • Ein Grund, warum Joomla! so populär ist, besteht sicherlich darin, dass man damit die Basis für einen kleinen Laden im Netz schaffen kann. Gerade kleine und mittelständische Unternehmen nutzen das System für ihren Webauftritt. So können sie ihre Kunden informieren, Waren verkaufen, aber auch Partner in einem gesonderten Bereich mit Material versorgen. Der folgende Abschnitt befasst sich mit dem Einsatz von Joomla! für diesen Zweck und will Sie mit dem notwendigen Rüstzeug ausstatten, das notwendig ist, um eine Geschäftsplattform aufzuziehen. 16.1 E-Commerce Der elektronische Handel hat in den letzten Jahren sehr an Bedeutung gewonnen. Kaum ein Unternehmen kann es sich leisten, keine Internetpräsenz zu besitzen, über die potenzielle Kunden mit ihm in Kontakt treten können. Das ist auch der Bereich, in dem sich E-Commerce abspielt Man unterscheidet je nach Zielgruppe zwischen zwei verschiedenen Modellen: • Business-to-Consumer (B2C). Bei diesem Modell wird der Endverbraucher angesprochen, der etwas kaufen oder informiert werden soll. Dabei handelt es sich in der Regel um Privatpersonen. B2C ist der klassische Fall eines Webshops, der Produkte an jedermann verkauft. • Business-to-Business (B2B). Wie der Name sagt, steht hier als Hauptansprechpartner eine weitere Firma im Mittelpunkt, die das Produkt nutzt, um selbst produzieren zu können. Darunter fallen auch Bereiche für Partner, die beispielsweise spezielle Dokumente (wie Preislisten) enthalten können. Beide Modelle haben viele Gemeinsamkeiten. So kann sich ein Webshop an Privat- wie an Firmenkunden richten. Aber es bestehen auch Unterschiede, beispielsweise in der Art und Weise, wie Werbung betrieben wird. 16.1.1 Aufgaben Mit Geschäftsplattformen im Internet verbindet man in erster Linie die Online- Shops. Dies ist aber nur einer der Bereiche, in denen eine Homepage nützlich sein kann. Natürlich wird im Internet Handel betrieben. Sie können in Webshops in einem Produktkatalog blättern, Waren vormerken und diese dann bestellen 95
    • und bezahlen. Man unterscheidet dabei zwischen zwei Arten. Einerseits werden über das Internet ganz normale Waren, beispielsweise Bücher, gekauft. Diese werden dann per Post an den Kunden verschickt. Andererseits können direkt Dienstleistungen oder Produkte über die Homepage angeboten werden, die man dann über das Netz herunterladen kann. Eine Hürde des Handels war lange Zeit das fehlende Vertrauen. Die Geschäftspartner kennen sich ja gar nicht. Noch immer schrecken viele Menschen davor zurück, ihre Kreditkartendaten im Netz zu verschicken. Umgekehrt gibt es wenige Internethändler, die ohne Vorkasse Waren verschicken. Dieser Punkt ist bei der Gestaltung der Seite zu beachten. Schaffen Sie Vertrauen, indem Sie neben einem seriösen Design auch Auskunft über Ihre Firma geben. Werbung und Information sind die genuinen Aufgaben einer Homepage. Selbst, wenn Sie keinen Webshop auf Ihrer Seite haben, informieren sich potenzielle Kunden über Ihr Unternehmen, bevor sie Kontakt aufnehmen. Unterschätzen Sie dieses Phänomen nicht! Daher ist es auch wichtig, eine Joomla!-Seite attraktiv zu gestalten. Seien Sie nicht geizig mit Informationen. Kunden lieben es mittlerweile, sich ausführlich mit einem Produkt zu beschäftigen, bevor sie es im Internet kaufen. Spätestens seit dem Hype um das Web der zweiten Generation hat sich auch die Erkenntnis durchgesetzt, dass man mit einer Webseite Kunden und Interessenten an die Firma binden kann. Dies kann geschehen, indem sich die Seite regelmäßig ändert und somit interessant bleibt. Ein anderer Weg ist die Bereitstellung von Added-Value-Bereichen. Hier werden angemeldeten Kunden zusätzliche Leistungen geboten, die sie immer wieder auf die Seite locken. Im B2B-Bereich ist es auf einer Webplattform auch möglich, spezielle Leistungen für Geschäftspartner zur Verfügung zu stellen. Über Formulare können beispielsweise von freien Außendienstmitarbeitern Daten standardisiert eingegeben werden. Oder sie haben Zugriff auf die sonst interne Preisliste. Auch geschlossene Diskussions- und Dokumentationsbereiche sind hier denkbar. Dieser gesamte Anwendungsbereich gewinnt mittlerweile unter dem Begriff Extranet an Bedeutung. 16.1.2 Anforderungen an eine Geschäftsplattform Aus den genannten Anwendungsfeldern ergeben sich konkrete Anforderungen an ein System, das als Basis für eine Geschäftsplattform dienen soll: • Zunächst muss es möglich sein, die gängigen Shop-Funktionalitäten abzudecken. Dazu zählen Produktkataloge, die Möglichkeit, Waren vorzumerken (Warenkorb) sowie die Abwicklung des Bestell- und am besten auch des Bezahlvorgangs. 96
    • • Um die Attraktivität der Seite zu erhöhen, ist es sinnvoll, multimediale Inhalte darstellen zu können. Die Spannweite reicht von Bildern über Audio- und Videodateien bis hin zu interaktiven Anwendungen. • Kundenbindung und Informationen über Interessenten erhalten Sie beispielsweise über Formulare. Diese ermöglichen es, Anfragen zu stellen oder bestimmte Werbeaktionen durchzuführen. Ein Beispiel wäre, Freikarten zur einer Messe gegen Anmeldung zu verteilen. • Geschützte Bereiche dienen ebenfalls der Kundenbindung. Hier haben nur Personen Zugang, die sich bereits bei Ihrer Firma bekannt gemacht haben. Auch Partnerbereiche sind in der Regel nicht für jeden zufälligen Besucher erreichbar. • Die Bereitstellung von Dokumenten spielt eine große Rolle, wenn es darum geht, eine informative Webseite zu erstellen. Hier sind Produktinformationen ebenso gefragt wie Anleitungen oder interne Informationen für Partner. Wenn Sie elektronische Waren verkaufen, können Sie hier direkt Ihre Produkte zum Download anbieten. • Gerade im Partnerbereich ist es sinnvoll, wenn die Partner auch zeitlich organisieren können. Das kann beispielsweise über Kalender geschehen. Diese sind aber auch ein Medium, um über Veranstaltungen Ihrer Firma zu informieren. Einige dieser Funktionen bringt Joomla! bereits standardmäßig mit. Andere können über Erweiterungen realisiert werden. Wir stellen Ihnen in den folgenden Kapiteln einige besonders hilfreiche Exemplare detailliert vor. 16.1.3 Rechtliches Wenn Sie als kommerzieller Anbieter im Netz unterwegs sind, gelten im Vergleich zu privaten Homepages verschärfte Regeln. Es ist nicht die Aufgabe dieses Buches, Sie über die rechtlichen Bedingungen von Internetgeschäften aufzuklären. Was die Gestaltung der Homepage betrifft, sind aber einige Dinge zu beachten, die wir kurz anmerken wollen. Alle kommerziellen Anbieter (und auch Betreiber von Seiten mit journalistischen Inhalten) unterliegen mit ihrer Homepage der Impressumspflicht. Das ist in Deutschland durch §5 des Telemediengesetzes sowie in §55 des Rundfunkstaatsvertrages geregelt. Die Informationen müssen »leicht erkennbar, unmittelbar erreichbar und ständig verfügbar« sein. In Österreich wird die Impressumspflicht durch §5 des E-Commerce Gesetzes festgelegt, in der Schweiz durch Art. 322 des Schweizerischen Strafgesetzbuches. Es hat sich eingebürgert, einen Menüpunkt Impressum mit in das Hauptmenü aufzunehmen. Nach deutschem Recht sind die folgenden Angaben im Impressum aufzuführen: 97
    • • Name und Anschrift des Anbieters: Dazu zählen neben dem kompletten Namen oder der kompletten Firmenbezeichnung (Abkürzungen sind nicht erlaubt) die Straße, Hausnummer, Postleitzahl und der Ort. Juristische Personen müssen ihren Sitz angeben. • Informationen zur schnellen Kontaktaufnahme: Das sind Telefon- und gegebenenfalls Faxnummer sowie E–Mail-Adresse. • Angabe des Vertretungsberechtigten: Bei nichtnatürlichen Rechtspersonen ist es nötig, einen Vertretungsberechtigten zu nennen. • Angabe der Aufsichtsbehörde: Wenn die Zulassung einer Behörde für die Tätigkeit nötig ist, so sind die zuständige Stelle und ihre Kontaktdaten anzugeben. • Register und Registernummer: Gibt es einen Eintrag im Handelsregister, Vereinsregister, Partnerschaftsregister oder Genossenschaftsregister, so sind das Register und die Registernummer Bestandteil des Impressums. • Umsatzsteuer-Identifikationsnummer: Haben Sie eine Umsatzsteuer- Identifikationsnummer, muss auch diese angegeben werden. • Zusätzliche Pflichten für besondere Berufsgruppen: Bei freien Berufen, bei denen die Ausübung reglementiert ist oder die Berufsbezeichnung unter Schutz steht (z. B. Rechtsanwälte, Steuerberater, Ärzte oder Architekten), müssen die Berufsbezeichnung und der Staat, in dem diese verliehen wurde, angegeben werden. Es muss ein Link auf die berufsrechtlichen Regelungen gesetzt werden. • Weitere Angaben: Bestehen zusätzliche Informationspfichten, müssen auch diese angegeben werden. Ein Beispiel ist die Bereitstellung redaktioneller Beiträge. Hier muss eine natürliche Person als Verantwortlicher benannt werden. Wenn Sie den Text dieser Angaben nicht selbst zusammenstellen wollen, finden Sie im Netz einige Seiten, die Ihnen Hilfestellung bieten. Ein Beispiel ist der Impressum-Generator von e-recht24, den Sie unter dieser URL erreichen: http://www.e-recht24.de/impressum-generator/ Internetseiten, die einen direkten Vertragsabschluss mit dem Verbraucher (B2C) ermöglichen, müssen zwingend zwei Elemente enthalten. Zum einen muss der potenzielle Käufer vor Vertragsabschluss (dem Klick auf den Bestellen-Button) über seine Widerrufsrechte informiert werden. Dies passiert in der Regel während des Bestellvorgangs auf einer eigenen Formularseite. Auch muss es vor Vertragsabschluss für den Verbraucher möglich sein, die allgemeinen Geschäftsbedingungen des Online-Shops einzusehen. Diese sind häufig neben dem Impressum im Hauptmenü verlinkt. Allerdings reicht 98
    • dies nach gängiger Rechtssprechung nicht aus. Auch die AGB sollten direkt im Bestellvorgang dem Verbraucher zur Kenntnisname vorgelegt werden. Alle Webshops erhalten auch persönliche Daten von Kunden. Diese unterliegen einem besonderen Schutz. Die spektakulären Fälle der jüngsten Zeit, bei denen viele Tausend personenbezogene Daten an die Öffentlichkeit gelangt sind, lassen vermuten, dass sich die Bestimmungen in Zukunft verschärfen werden. Auch wenn momentan keine Pflicht besteht, Angaben zur Datensicherheit zu machen, hat es sich bei seriösen Anbietern eingebürgert, Angaben zum Datenschutz zu machen. Darin ist in der Regel aufgeführt, welche Daten gespeichert werden, wie lange sie vorgehalten werden und welchem Verwendungszweck sie dienen. Meist wird auch die Weitergabe an Dritte ausgeschlossen. 17 Online-Shop: VirtueMart VirtueMart ist eine sehr umfangreiche und mit vielen Features ausgestattete Shop-Komponente, die sich nahtlos in Joomla! integrieren lässt. Sie eignet sich ausgezeichnet für kleinere und mittlere E-Commerce-Plattformen, aber auch große Shops sind mit diesem System bereits realisiert worden. Im Folgenden seien nur einige wenige der vielen, vielen Funktionen genannt: • Nutzung als Shop oder als Katalog möglich • Verkauf von downloadbaren Produkten wie Videos oder Software • Rabatte für einzelne Produkte und bestimmte Nutzergruppen • Auswahl von verschiedenen Bestellvorgängen • Bestellübersicht für die getätigten Bestellungen • Zahlreiche Versand- und Zahlungsmodule bereist integriert • Vergabe von Gutscheinen • Statistikfunktion für »Anzahl der Kunden«, »Anzahl der Bestellungen«, »Neueste Kunden« usw. • leichtes Importieren von Produkten mithilfe von CSV-Dateien • umfangreiche Einstellmöglichkeiten für die Shop-Funktionen • Verwaltung mehrerer Steuersätze • Verwaltung von Lieferanten und Herstellern 99
    • Die Software des VirtueMarts ist in der Tat so umfangreich, dass ihre Beschreibung ohne Probleme ein eigenes Buch füllen könnte. Daher müssen wir uns im Folgenden leider auf das Wesentliche beschränken. Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 17.1 Installation Die aktuelle Version dieser Komponente ist 1.1.2 Stable. Laden Sie die Datei VirtueMart_1.1.2-COMPLETE_PACKAGE.j15.zip von der Website http://virtuemart.net herunter, und entpacken Sie diese. Wichtig Das »Komplett-Paket« und das »Manuelle Installation Package« gibt es in zwei Versionen: einer für Joomla! 1.0/Mambo und einer für Joomla! 1.5. Die zweite Version hat die Endung .J15.zip (oder . J15.tar.gz). Wie Sie nach dem Entpacken sehen, besteht das Paket aus der Hauptkomponente selbst und einer Reihe von Modulen und Plug-ins. Beginnen wir mit dem Herzstück der Erweiterung. 17.1.1 Komponente Um die Hauptkomponente zu installieren, laden Sie die Datei com_virtuemart_1.1.2.j15.zip im Installer der Komponenten hoch. Wenn die Installation geglückt ist, öffnet sich ein neues Fenster (Abbildung 17.1) mit der Nachricht, dass die Komponente erfolgreich installiert wurde. Im Menü Komponenten ist nun der Eintrag Virtue Mart sichtbar. 100
    • Hier klicken, um das Bild zu vergrößern Abbildung 17.1 Die Meldung der erfolgreichen Installation 17.1.2 Beispieldaten Jetzt können Sie Ihren Shop mit Beispieldaten bestücken. Dies ist besonders sinnvoll, wenn Sie die Funktionen der Erweiterung erst einmal in Ruhe ausprobieren wollen. Klicken Sie hierzu auf Install SAMPLE DATA. Diese bestätigen Sie mit einem Klick auf den Button OK. Wichtig Die Implementierung der Beispieldaten kann einige Minuten in Anspruch nehmen. Unterbrechen Sie diesen Vorgang nicht, da sonst Ihr Shop nicht mehr richtig funktionieren würde. Sobald dieser Vorgang abgeschlossen ist, erhalten Sie eine Meldung, dass die Beispieldaten erfolgreich installiert wurden. 17.1.3 Module Für den Online-Shop VirtueMart gibt es eine Anzahl von Modulen (Tabelle 17.1). Das Modul mod_virtuemart_1.1.2.j15 müssen Sie installieren, da darüber die Produkte bzw. die verschiedenen Produktkategorien angesteuert werden können. Laden Sie die Datei mod_virtuemart_1.1.2.j15.zip im Installer der Komponenten hoch, und vergessen Sie nicht, das Modul zu veröffentlichen. Die anderen Module und Plug-ins sind optional und können daher auch im Nachhinein installiert werden. 101
    • Tabelle 17.1 Die Module und Plug-ins des VirtueMart-Pakets Modul Funktion Ein Modul, das unbedingt mit dem Shop mod_virtuemart installiert werden muss, damit z. B. der Warenkorb angezeigt werden kann. »Produktkategorienmodul«: Hiermit können mod_product_categories Sie Produkte nach Kategorien sortieren lassen. »Product-Scroller-Modul«: Navigieren Sie zu mod_productscroller bestimmten Erzeugnissen irgendwo auf Ihrer Website. »All-in-one-Modul«: Kann die neuesten mod_virtuemart_allinone Produkte, Top-Ten-Produkte oder zufällige Produkte anzeigen. »Mini-Warenkorb-Modul«: Zeigt einen Mini- mod_virtuemart_cart Warenkorb für den Kunden mit einem Link auf die Warenkorb-Seite. »Währungsmodul«: Zeigt eine Dropdown- mod_virtuemart_currencies Liste der Währungen, die zur Verfügung stehen. »Featured-Products-Modul«: Zeigt zukünftige mod_virtuemart_featuredprod Produkte Ihres Shops. »Neue-Produkte-Modul«: Zeigt die neuesten mod_virtuemart_latestprod Produkte in Ihrem Shop an. »Login-Modul«: Zeigt ein Login-Formular für mod_virtuemart_login VirtueMart-Benutzer. »Modul Manufacturer«: Zeigt alle Hersteller in mod_virtuemart_manufacturers Ihrem Shop. Mit einem Link finden Sie alle Produkte der ausgewählten Anbieter. »Random-Products-Modul«: Zeigt zufällige mod_virtuemart_randomprod Produkte in Ihrem Shop oder einer bestimmten Kategorie an. »Suchfeld-Modul«: Zeigt das VirtueMart- mod_virtuemart_search Suchfeld an. Hiermit können Kunden nach Produkten suchen. »Top-Ten-Produkte-Modul«: Zeigt die zehn mod_virtuemart_topten beliebtesten Produkte Ihres Shops an. Ermöglicht in Joomla!-Artikeln die Verlinkung vmproductsnapshots auf Produkte bzw. deren Details. Weitet die Suche auf die Inhalte des Shop- vmxsearch.plugin Systems aus. 102
    • 17.1.4 Sprachdateien Der VirtueMart ist zunächst einmal eine englische Software. Es gibt jedoch zwei Möglichkeiten, Sprachdateien nachträglich zu installieren. Zum einen können Sie die Dateien mit dem Virtue Mart Language Manager einbinden und zum anderen die Dateien entpacken und in das Sprachverzeichnis kopieren. Wenn Sie den Virtue Mart Language Manager nutzen möchten, müssen Sie diesen zuerst installieren, indem Sie die Datei com_martlanguages_1.1c.zip im Installer der Komponenten hochladen. Im Menü Komponenten erscheint nun der Eintrag Virtue Mart Language Manager. Klicken Sie auf diesen Eintrag. Es öffnet sich ein neues Fenster, in dem Ihnen eine Liste mit den bereits verfügbaren Sprachen anzeigt wird. Standardmäßig ist nur Englisch installiert. Hier klicken, um das Bild zu vergrößern Abbildung 17.2 Die Auflistung der verfügbaren Sprachen Um die deutschen Sprachdateien aktivieren zu können, benötigen Sie die Datei Language_Pack_for_VirtueMart_1.1.2.zip. Diese binden Sie mit einem Klick auf das Symbol Upload Pack ein. Wählen Sie hier nun mit Durchsuchen die zu installierende Sprachdatei aus. Sobald Sie die Datei ausgewählt haben, klicken Sie auf Upload. Nachdem die Datei hochgeladen worden ist, wird Ihnen angezeigt, welche Sprachen installiert wurden. Am Ende dieser Liste befindet sich der Button Back to Language List, mit dem Sie zurück zur Übersicht gelangen. Wie Sie sehen können, wurden nun mehrere Sprachen installiert. German wurde als aktuelle Sprache markiert. Alternativ haben Sie auch die Möglichkeit, die Sprachdateien zu entpacken und in das Verzeichnis administratorcomponentscom_virtuemartlanguages zu kopieren. Deutsch-Englisch 103
    • Leider ist die Oberfläche nicht vollständig ins Deutsche übersetzt worden. Sie werden immer wieder auf englische Sprachschnipsel stoßen. 18 Formulare: BreezingForms und ChronoForms Wenn Sie in der Standardinstallation von Joomla! funktionale Formulare einbinden wollen, über die sich Ihre Leser z. B. zu einer Veranstaltung anmelden können, müssen Sie über gute HTML-, PHP- und MySQL- Kenntnisse verfügen und sich auf eine umständliche Entwicklungsphase gefasst machen. Einfacher geht dies mit den Erweiterungen BreezingForms und ChronoForms. Mit beiden Komponenten kann man dasselbe Ergebnis erzielen, sie basieren jedoch auf völlig unterschiedlichen Ansätzen: Während man die Formulare bei den BreezingForms direkt in Joomla! generieren kann, werden sie bei den ChronoForms mit einem HTML-Editor wie z. B. Dreamweaver erstellt und erst dann auf der Seite eingebunden. Beide Werkzeuge sind sehr mächtig und haben jeweils ihre Fangemeinde. Aber sehen Sie im folgenden selbst. 18.1 BreezingForms Die Erweiterung BreezingForms ist ein komfortabel zu bedienender Formulargenerator, der es ermöglicht, vom einfachen, einseitigen Online- Formular bis hin zur datenbankgestützten Mini-Applikation alles rasch zu entwickeln und zu testen. Dabei können Sie auf vorgefertigte Funktionen zugreifen, die z. B. die Eingaben der User überprüfen, aber auch in PHP eigene Skripte verfassen, die an die Formulare angebunden werden. Die empfangenen Daten können sogar mit einem Mausklick zur Weiterverarbeitung in das flexible XML-Format umgewandelt werden. Die BreezingForms sind übrigens das Nachfolgeprogramm der FacileForms, die eine der beliebtesten Erweiterungen von Joomla! 1.0 gewesen sind, das merken Sie schon allein daran, dass der Name »FacileForms« bei vielen Funktionalitäten noch nicht vollständig ersetzt worden ist und auch in dieser Beschreibung immer mal wieder aufblitzt. Wir beschreiben im Folgenden die aktuelle Version BreezingForms 1.5.1 RC1. Das Programm ist allerdings so umfangreich, dass wir uns auf eine Einführung beschränken müssen. Weiterführende Informationen erhalten Sie über die Site der regen BreezingForms-Fangemeinde, www.crosstec.de. 104
    • 18.1.1 Installation und Konfiguration Laden Sie sich die in Tabelle 18.1 aufgeführten Dateien herunter. Diese Dateien können Sie über die jeweiligen Installer einbinden (siehe Abschnitt 9.4, »Neue Erweiterungen installieren«). Diese finden Sie auch auf der DVD im Verzeichnis erweiterungen/breezing_forms. Tabelle 18.1 Die Dateien von BreezingForms Dateiname Definition Funktion com_breezingforms_151rc1.zip Komponente Kernkomponente mod_breezingforms_151b2.zip Modul BreezingForms als Modul BreezingForms als Plug-in plg_breezingforms_151b2.zip Plug-in (Mambot) Im nächsten Schritt installieren Sie mitgelieferte Beispielformulare. Gehen Sie dazu über das Menü Components oder die Schnellübersicht auf den Punkt Configuration (Abbildung 18.1). Hier klicken, um das Bild zu vergrößern Abbildung 18.1 Der zweite Schritt bei der Installation der BreezingForms Wie Sie sehen, können Sie hier auch Daten von einer älteren Facile Forms- Version upgraden. Lassen Sie die Standardmuster (Samples) ausgewählt, und gehen Sie mit Weiter zu Schritt 3. Hier wird Ihnen mitgeteilt, dass die Installation erfolgreich verlaufen ist, und Sie gelangen wiederum über Weiter zu Schritt 4, dem eigentlichen Konfigurationsdialog der BreezingForms, auf den Sie auch nach der Installation immer wieder zugreifen können (Abbildung 18.2). 105
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.2 Das Konfigurationsfenster der BreezingForms Hier können Sie z. B. für die Textelemente in einem Formular den WYSIWYG-Editor einschalten, Ihre E–Mail-Adresse als Standardkontakt eingeben und Formulare im- und exportieren. 18.1.2 Die BreezingForms in der Übersicht In der Schnellübersicht, zu der Sie auch über das Komponentenmenü gelangen, sollten Sie nun die Optionen aus Abbildung 18.3 sehen. Hier klicken, um das Bild zu vergrößern Abbildung 18.3 Nach der Installation erscheinen die Forms in der Schnellübersicht. Ebenso wie Joomla! selbst ist das Programm BreezingForms in mehrere Manager eingeteilt, die jeweils unterschiedliche Verwaltungsaufgaben übernommen haben. Tabelle 18.2 Die Menüpunkte von BreezingForms Manager Aufgabe Anzeige und Weiterverarbeitung der erhaltenen Einträge verwalten Formulardaten Admin-Menüs Einbindung von Formularen in Backend-Menüs 106
    • verwalten Formulare verwalten Erstellung und Gestaltung von Formularen Skripte verwalten Erstellung von Skripten für Elemente Teile verwalten Erstellung von Skripten für den Formularablauf Konfiguration Haupteinstellungen der BreezingForms Wenn Sie in einen der BreezingForms-Manager springen, finden Sie oberhalb der jeweiligen Verwaltungsoberfläche eine Toolleiste (Abbildung 18.4), über die Sie bequem zwischen den verschiedenen Ansichten hin und her springen können. Hier klicken, um das Bild zu vergrößern Abbildung 18.4 Die Toolleiste über sämtlichen BreezingForms-Managern Im Menü sehen Sie unter den Managern eine weitere Gruppe, Facile Forms Sample Menu, die Sie bei der Installation optional übernehmen konnten. Das sind einige Beispielformulare, die Sie als Anschauungsmaterial verwenden oder nach Ihren Bedürfnissen umändern und weiterverarbeiten können. Tabelle 18.3 BreezingForms Sample Menu Beispiel Beschreibung Contact form Kontaktformular Pizza Shop Pizza-Service 18.1.3 Entwurf eines Beispielformulars Die Erstellung eines Formulars sollten Sie am besten gleich anhand eines konkreten Beispiels kennenlernen. Wir möchten für unsere Tanzschule ein einfaches Anmeldeformular für Joomla!-Tanzkurse kreieren. Dieses sollte der Skizze aus Abbildung 18.5 entsprechen. 107
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.5 Skizze zur Kursanmeldung 18.1.4 Die Formularoberfläche Bevor wir uns an die Umsetzung unseres Skizzenformulars machen, wollen wir Ihnen noch einige grundsätzliche Informationen über die Formularerstellung in den BreezingForms geben. Wenn Sie ein neues Formular erstellt haben, wird Ihnen eine leere Entwurfsfläche präsentiert, auf der Sie Ihre Elemente anordnen können (Abbildung 18.6). Über die Buttons Neue Seite davor und Neue Seite danach können Sie außerdem mehrere Seiten anlegen und diese dann über eingefügte Navigationsbuttons miteinander verbinden. Hier klicken, um das Bild zu vergrößern Abbildung 18.6 Die leere Entwurfsansicht eines Formulars 108
    • Die BreezingForms stellen zur Realisierung des Formulars eine Reihe von Elementen zur Verfügung, die sich zum Teil stark an die HTML-Konventionen halten (Abbildung 18.7), zum Teil aber auch zusätzliche Optionen bieten, z. B. den Tooltip. Hier klicken, um das Bild zu vergrößern Abbildung 18.7 Die Formularelemente, die Ihnen die BreezingForms zur Verfügung stellen In Tabelle 18.4 finden Sie alle Elemente mit einer Erläuterung und da, wo es sinnvoll ist, mit ihrer konkreten Umsetzung in einer Übersicht. Tabelle 18.4 Elemente der BreezingForms Name Bedeutung Ausführung Einfacher (formatierter) Text, z. Statischer B. zur Beschriftung eines – Text/HTML Feldes Viereck zur Dekoration, Rechteck – Umrahmung etc. Grafik Statisches Bild zur Dekoration – Kleines Symbol mit Informationstext, wenn man mit Hinweis der Maus über das Element fährt Ankreuzfeld Mehrfachauswahlfeld Radioknopf Einfachauswahlfeld Text Einzeiliges Texteingabefeld – Textbereich Mehrzeiliges Texteingabefeld – 109
    • Auswahlliste Dropdown-Liste Abfrageliste Abfrage der Datenbank – Formularfeld zum Hochladen Datei-Upload von Dateien Versteckte Verstecktes Feld – Eingabe Normaler Schaltfläche Button Schaltfläche mit Bild als Grafik-Buttom Hintergrund Bild, das als Schaltfläche Piktogramm fungiert Die Entwurfsoberfläche entspricht dem WYSIWYG-Prinzip und kennt nun auch die Drag-&-Drop-Funktionalität. Größe und Position der Elemente können also mit der Maus beeinflusst werden. Die Elemente können aber auch über Einstellungsfenster konfiguriert bzw. mit Pfeilwerkzeugen verschoben werden. Anlegen eines neuen Formulars Lassen Sie uns mit unserem Beispielformular beginnen. Gehen Sie in Formularverwaltung, und legen Sie über Neu ein neues Formular an. Name und Titel des Formulars sind obligatorische Eingaben (Abbildung 18.8). Der Titel ist der Begriff, unter dem das erstellte Element z. B. in Listen auftaucht, damit es besser für Menschen zu lesen ist. Über seinen Namen wird das Element programmiertechnisch z. B. in Skripts, aber auch innerhalb der Joomla!-Konfiguration angesprochen. Achten Sie daher darauf, dass der Name keine Sonderzeichen oder Umlaute enthält. Die restlichen Einstellungen, wie z. B. die Größe des Formulars, können vernünftigerweise auch nachträglich vorgenommen werden. 110
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.8 Ein neues Formular wird angelegt. Der Punkt Paket bietet die Möglichkeit, Ihr Formular einem bereits bestehenden oder auch neuen Paket hinzuzufügen. Über das Konzept der Pakete können Sie später die Listenansicht filtern oder aber ein Paket bequem exportieren lassen. Wir tragen für unser Beispiel ein neues Paket »Anmeld_tanzkurs« ein. Nachdem Sie das Formular gespeichert haben, erscheint es in der Liste des Formularmanagers (Abbildung 18.9). Wie Sie erkennen, wurde bereits eine Seite angelegt, die allerdings noch völlig leer ist. Über die Dropdown-Liste Paket können Sie sich auch die Formulare in den anderen Paketen ansehen. Für den Fall, dass Ihnen hier nur eine leere Tabelle vorliegt, versuchen Sie, über eben diese Dropdown-Liste unser Package auszuwählen. Hier klicken, um das Bild zu vergrößern Abbildung 18.9 Das neue Formular im Formularmanager Texteingabefeld Wir werden das Formular nun mit einigen Elementen bestücken. Klicken Sie dazu auf dessen Titel. Sie befinden sich jetzt im Bearbeitungsmodus und können Eingabeelemente hinzufügen. Klicken Sie auf Neu. Im nun folgenden Dialog werden Sie aufgefordert, eine Auswahl aus vorgegebenen Eingabeoptionen zu treffen (Abbildung 18.7). Wir benötigen als Erstes das Eingabefeld für den Nachnamen und klicken daher im Bereich Eingaben den Radiobutton Text an. Mit Weiter fahren Sie 111
    • fort. Nun erscheint ein Formular, in dem die Angaben zu dem Textfeld detailliert eingestellt werden können (Abbildung 18.10). So können Sie hier z. B. bestimmen, ob das Textfeld für Passwörter gedacht ist und dementsprechend bei der Eingabe nur Sternchen angezeigt werden. Hier klicken, um das Bild zu vergrößern Abbildung 18.10 Auswahl der Formularelemente Wenn Sie das Textfeld gespeichert haben, sehen Sie es links in der Liste der Formularelemente und rechts in der Entwurfsansicht des Formulars (Abbildung 18.11). Hier klicken, um das Bild zu vergrößern Abbildung 18.11 Die Bearbeitungsansicht des Formulars mit einem Texteingabefeld Einstellungen, die bis dahin nicht gespeichert wurden, werden nicht berücksichtigt. Statisches Textfeld Wir wollen nun das Eingabefeld beschriften und fügen daher ein weiteres Element hinzu. Dazu gehen wir wieder auf Neu und wählen dann im Bereich Statische die Option Statischer Text/HTML (Abbildung 18.7). In den Einstellungen für dieses Element sollten Sie neben Titel und Namen natürlich auch ganz unten den Wortlaut der Beschriftung, in unserem Fall »Nachname« eingeben (Abbildung 18.12). 112
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.12 Konfiguration der Beschriftung In der Entwurfsansicht des Formulars sehen Sie jetzt die Beschriftung und das Eingabefeld, die allerdings noch ein wenig anders angeordnet werden müssen. In den Vorgängerversionen konnte man die Elemente nicht mit der Maus hin- und herbewegen. Dies ist nun möglich. Alternativ können Sie auch ein Element in der Liste markieren und es mit den Pfeilen neben dem Formularentwurf verschieben (Abbildung 18.13). Hier klicken, um das Bild zu vergrößern Abbildung 18.13 Das Werkzeug zum Verschieben der Formularteile Mit der Angabe der Pixel können Sie die Positionierung der Elemente verfeinern. Vergessen Sie nicht, die neue Anordnung mit Speichern zu sichern, sonst wird das Formular wieder zurückgesetzt. Mehrfachauswahl Sie können auch mehrere Elemente gleichzeitig verschieben, indem Sie diese in der Liste auswählen. 113
    • Dieselbe Prozedur wiederholen wir für den Vornamen und die E–Mail- Adresse. Zwei Eingabefelder und zwei Beschriftungen werden hinzugefügt und positioniert. Unser Formular sieht nun aus wie in Abbildung 18.14. Hier klicken, um das Bild zu vergrößern Abbildung 18.14 Unser erstes Formular Radiobuttons Als Nächstes fügen wir zwei Radiobuttons für die Angabe des Geschlechts ein. Im Konfigurationsdialog können Sie die Beschriftung im gleichnamigen Feld Beschriftung eingeben (Abbildung 18.15). Hier klicken, um das Bild zu vergrößern Abbildung 18.15 Die Einstellung der Radiobuttons Radiobuttons richtig genutzt Der Sinn einer Gruppe von Radiobuttons besteht darin, dass jeweils immer nur ein Element angeklickt sein kann. Um dem Programm mitzuteilen, dass Radiobuttons zusammengehören, müssen Sie bei jedem Element im Feld Name denselben Wert eingeben. Die Radiobuttons sollten sich nun so präsentieren wie in Abbildung 18.16. 114
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.16 Ansicht der Radiobuttons Dropdown-Liste Für die Angabe eines bestimmten Tanzkurses benötigen wir eine sogenannte Dropdown-Liste. Sie wird im Auswahlfenster der Elemente (Abbildung 18.7) als Auswahlliste bezeichnet. Die Konfiguration sehen Sie in Abbildung 18.17. Hier klicken, um das Bild zu vergrößern Abbildung 18.17 Die Konfiguration der Dropdown-Liste Über den Punkt Mehrfachauswahl können Sie einstellen, ob in der Liste mehrere Einträge ausgewählt werden dürfen. Dies ist in unserem Fall jedoch nicht sinnvoll. Die Auswahloptionen schreiben Sie untereinander in das Feld Optionen, und zwar in drei Abschnitten, die jeweils durch einen Strichpunkt getrennt werden: 1; Bitte Kurs auswählen; 0 0; Joomla!/Anfänger; 1 0; Joomla!/Fortgeschrittene; 2 0; Joomla!/Profi; 3 Im ersten Teil kann entweder eine 1 oder eine 0 angegeben werden. Die 1 bedeutet, dass dies die Standardeinstellung werden soll. Den zweiten Abschnitt bekommt der Nutzer als Listeneintrag zu sehen. Wenn im dritten Teil Werte verwendet werden, werden diese übermittelt. So können die Tanzkurse z. B. intern durchnummeriert werden. 115
    • Tipp Wenn Sie in der ersten Zeile Informationen für den Nutzer formulieren, sparen Sie sich eine zusätzliche Beschriftung der Dropdown-Liste. Außerdem kann man so feststellen, ob der User überhaupt eine Auswahl getroffen hat. Das Ergebnis sehen Sie in der Entwurfsansicht und in Abbildung 18.18. Hier klicken, um das Bild zu vergrößern Abbildung 18.18 Unsere Dropdown-Liste Tooltip Ein Element, das Sie schon von der Joomla!-Oberfläche kennen dürften, ist der Tooltip. Wir wollen unserer Kursauswahlliste einen Tooltip zur Seite stellen, der den User darüber informiert, an wen er sich bei eventuellen Fragen zu Kursinhalten wenden kann. Dazu wählen wir im Bereich Statische den Hinweis aus (Abbildung 18.7) und stellen ihn nach unseren Wünschen ein (Abbildung 18.19). Man könnte nun z. B. über den Typ Spezial ein eigenes kleines Icon einbinden. Wir bleiben in unserem Beispiel jedoch bei dem blauen Informationssymbol. Hier klicken, um das Bild zu vergrößern Abbildung 18.19 Die Einstellungen des Tooltips Wenn Sie gespeichert haben, sehen Sie das eingefügte Symbol und können es neben der Kursliste positionieren. 116
    • Was jetzt noch fehlt, ist der Submit-Button, der die Daten an den Server übermittelt. Submit-Button Das Erstellen des Buttons folgt einer ähnlichen Prozedur wie das Anlegen der bisherigen Elemente. Sie wählen im Bereich Knöpfe (Abbildung 18.7) eine Schaltfläche mit dem gewünschten Layout und konfigurieren sie im Einstellungsdialog (Abbildung 18.20). Hier klicken, um das Bild zu vergrößern Abbildung 18.20 Die Einstellung des Submit-Buttons Die Schaltfläche vom Typ Normaler Knopf erscheint so wie in Abbildung 18.21. Hier klicken, um das Bild zu vergrößern Abbildung 18.21 Der Submit-(Abschicken-)Button Zuletzt soll unser Formular noch eine Überschrift erhalten. Dazu verschieben wir alle Bestandteile nach unten, indem wir in der Liste alle Elemente über die oberste Checkbox in der Titelleiste markieren und anhand der Pfeile nach unten setzen. Danach fügen wir ein zusätzliches statisches Textfeld für den Titel ein. Um den Text als Überschrift formatieren zu können, sollten Sie über Components • Facile Forms • Configuration den WYSIWYG-Editor für Textfelder einschalten. Nun können Sie »Kursanmeldung« als Überschrift der Ebene 2 und kursiv formatieren. Die Oberfläche unseres Formulars ist damit fertig (Abbildung 18.22). 117
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.22 Das komplette Anmeldeformular 18.1.5 Funktionen für das Formular und die Elemente Nachdem nun die Äußerlichkeiten erledigt sind, können wir uns den Funktionalitäten des Formulars zuwenden. Jedem Formular und jedem einzelnen dynamischen Element können Sie Skripte, also kleine Programmteile, zuweisen, die – abhängig von verschiedenen Ereignissen – ausgeführt werden. Sie finden diese Skripte im Konfigurationsdialog der einzelnen Elemente über den Reiter Skripte. Sie lassen sich in drei Kategorien einteilen: Tabelle 18.5 Die verschiedenen Skriptkategorien Skriptkategorie Funktion Initialisierungsskript Was passiert beim Laden des Elements? Was passiert bei einer bestimmten Aktion, z. B. einem Aktionsskript Mausklick? Validierungsskript Worauf soll der Inhalt eines Elements getestet werden? Bei jeder dieser Kategorien haben Sie die Auswahl zwischen Kein, Bibliothek und Spezial. • Kein ist die Default-Einstellung und bedeutet, dass kein Skript ausgewählt wurde. • Unter Bibliothek können Sie sich mehrere vorgefertige Skripte aussuchen. 118
    • • Am flexibelsten, aber auch am anspruchsvollsten ist die letzte Option, Spezial. Hier können Sie sich über Rahmencode erzeugen das Muster einer Funktion vorgeben lassen und die Platzhalter und den eigentlichen Programmteil durch eigene PHP-Befehle ersetzen. Um Ihnen einen Überblick zu verschaffen, haben wir in Abbildung 18.23 für eine beliebige Dropdown-Liste alle drei Funktionsoptionen verteilt auf die verschiedenen Skriptkategorien ausgewählt. Im Folgenden möchten wir die verschiedenen Skriptbereiche anhand einiger praktischer Beispiele erläutern. Hier klicken, um das Bild zu vergrößern Abbildung 18.23 Verschiedene Skriptoptionen Den Fokus auf ein Element setzen Kehren wir zu unserem Beispiel zurück. Beim Aufrufen eines Formulars wird der Fokus standardmäßig auf das erste Element eines Formulars gelenkt. Wir möchten nun aber, dass die Aufmerksamkeit des Nutzers zuerst auf das E– Mail-Feld gezogen wird, damit er diese wichtige Eingabe gleich als Erstes erledigt. Dazu gehen wir in den Skripte-Dialog des E–Mail-Textfeldes und klicken im Initialisierungsskript-Bereich die Option Bibliothek an. Wählen Sie dann die Checkbox Formulareintritt und suchen Sie unter Skript die Funktion FF:ff_getfocus aus. Speichern Sie Ihre Eingaben ab. 119
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.24 Das Fokus-Skript anhängen Sie können sich bereits in der Entwurfsansicht vergewissern, dass sich der Cursor beim Initialisieren des Formulars im E–Mail-Feld befindet. Validierung der Eingaben Wenn ein User ein Formular ausgefüllt hat, schleichen sich oft Fehler ein oder obligatorische Felder werden übersehen, was Auswirkungen auf den ganzen Kommunikationsprozess haben könnte. Um diese fehlerhaften Eingaben abzufangen, können Sie an die jeweiligen Formularfelder kleine Programmskripte anhängen, die nach dem Betätigen des Abschicken- Buttons, aber noch vor dem Einfügen der Daten in die Datenbank den Nutzer darauf hinweisen, dass er das Formular an bestimmten Stellen falsch oder gar nicht ausgefüllt hat. In unserem Beispiel soll ein Skript überprüfen, ob denn tatsächlich eine E– Mail-Adresse in das Feld E–Mail eingegeben wurde. Dazu klicken wir doppelt auf das Eingabefeld E–Mail und begeben uns dann in das Register Skripte (Abbildung 18.24). Hier wählen Sie bei Validierungsskript den Radiobutton Bibliothek und wählen in der Dropdown-Liste die Funktion ff_validemail an. Im Feld darüber können Sie festlegen, welche Fehlermeldung ausgegeben werden soll, falls der Nutzer keine richtige E–Mail-Adresse eingegeben hat. Wie Sie in der Dropdown-Liste sehen, können die unterschiedlichsten Gültigkeitsprüfungen durchgeführt werden. So testet z. B. ff_integer_or_empty, ob das Feld eine ganze Zahl enthält oder leer ist. 120
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.25 Die E–Mail-Adresse soll überprüft werden. Über den Button abschicken Bisher ist unsere Schaltfläche Abschicken zwar für eine bestimmte Aufgabe vorgesehen, aber noch nicht funktionsfähig. Dazu müssen wir noch einmal in die Konfiguration des Buttons gehen und über den Reiter Skripte eine Funktion anbinden (Abbildung 18.25). Wählen Sie im Bereich Aktionsskript den Radiobutton Bibliothek, und aktivieren Sie die Funktion ff_validate_submit, die zunächst die eingestellten Validierungsskripte durchläuft und dann die Daten abschickt. Sie könnten hier aber auch andere Aktionen mit dem Button verbinden – z. B. den Sprung auf eine weitere Seite des Formulars. Hier klicken, um das Bild zu vergrößern Abbildung 18.26 Die Schaltfläche mit der Submit-Funktion verbinden Rückmeldung an den Nutzer geben Wenn das Formular abgeschickt wurde, sollten Sie den User nicht im Unklaren lassen, sondern ihm eine Meldung schicken, dass die Übertragung geklappt hat. Das Skript, das dazu notwendig ist, wird diesmal nicht mit einem einzelnen Element, sondern mit dem gesamten Formular verbunden. Wir gehen daher eine Ebene höher in den Formularmanager und gelangen in die Konfiguration, indem wir auf den Namen (!) unseres Formulars klicken. 121
    • Auch hier finden wir den Reiter Skripte Abbildung 18.27. Wählen Sie im Bereich 'Übermittelt' Skript den Radiobutton Bibliothek und aus der Dropdown-Liste die Funktion ff_showsubmitted und speichern Ihre Eingabe ab. Hier klicken, um das Bild zu vergrößern Abbildung 18.27 Die Einstellung der Rückmeldung Nun können Sie das Formular in der Entwurfsansicht testen. Bei einer falschen Eingabe der E–Mail-Adresse, z. B. ohne das »@«-Zeichen, sollte die JavaScript-Meldung aus Abbildung 18.28 erscheinen. Hier klicken, um das Bild zu vergrößern Abbildung 18.28 Die Meldung im Fall einer falschen E–Mail-Adresse Bei der richtigen Eingabe erhalten Sie eine positive Meldung (Abbildung 18.29). Hier klicken, um das Bild zu vergrößern Abbildung 18.29 Die Daten wurden erfolgreich übermittelt. 122
    • Fehlermeldung? Falls Sie beim Abschicken die Fehlermeldung »send mail failed: could not instantiate mail function« erhalten, sollten Sie in der Global Configuration • Mail den Modus (php, sendmail oder smtp) auf smtp oder sendmail umstellen (vgl. auch Abschnitt 10.3, »Mail-Versand«). 18.1.6 Die Verwaltung der Daten Wenn die Übermittlung der Daten funktioniert hat, können Sie die Eingaben über den Menüpunkt Datensatzverwaltung einsehen und weiterverarbeiten (Abbildung 18.30). Der zuletzt eingegangene Datensatz steht ganz unten. Hier klicken, um das Bild zu vergrößern Abbildung 18.30 Übersicht der Datensätze Neben Angaben wie z. B. dem Zeitpunkt der Übermittlung, der IP-Adresse und dem Provider des Empfängers sehen Sie interessante Informationen über den Status des Datensatzes. Tabelle 18.6 Informationen über den Datensatz Status Bedeutung Gesichtet Der Datensatz wurde schon gesichtet. Exportiert Die Daten wurden bereits einmal in XML umgewandelt. Archiviert Die Daten wurden ins Archiv gelegt. Über der Liste sind Filterformulare, mit denen Sie sich die Ansicht der Daten anhand der Statusinformationen zusammenstellen können. Auf der rechten Seite befinden sich außerdem Schaltflächen, durch die sich die Reihenfolge der Listeneinträge entsprechend abändern lässt. Die Schaltfläche Export XML wandelt die Daten in XML um und macht sie damit für verschiedene andere Anwendungen lesbar. Um sich einzelne Datensätze genauer anzusehen, klicken Sie in der Spalte Abgesandt auf einen Eintrag. Sie erhalten eine detaillierte statische Übersicht 123
    • über die empfangenen Informationen (Abbildung 18.31). Wenn Sie hier auf Speichern klicken, wird der Datensatz automatisch auf Gesichtet umgestellt. Hier klicken, um das Bild zu vergrößern Abbildung 18.31 Die Detailansicht der Daten Zum Archivieren von Daten klicken Sie auf das rote Kreuz in der Spalte Archiviert (Abbildung 18.30). Damit wird der Datensatz ins Archiv verschoben. Dieses Archiv können Sie betrachten, wenn Sie den Archiv-Filter auf nur archivierte setzen. Um Daten endgültig zu löschen, markieren Sie diese und klicken auf das Symbol Löschen. 18.1.7 Formular im Frontend verankern Es gibt drei Möglichkeiten, das Formular im Frontend einzubinden: • Man kann es als Komponente in einem Frontend-Menü verankern, was für Sie keine Schwierigkeit mehr darstellen dürfte (vgl. Abschnitt 6.3.3, »Einen Menüpunkt erstellen«). • Da wir auch das BreezingForms-Modul installiert haben, besteht die Option, das Formular als Modul anzeigen zu lassen. Auch auf diese Vorgehensweise sind wir schon in Abschnitt 9.1, »Module«, eingegangen. • Wenn Sie die Plug-in-Datei von BreezingForms installiert haben, können Sie Ihr Formular als Plug-in in ein bereits bestehendes Content-Element einbinden. Wie dies funktioniert, verraten wir Ihnen im Folgenden. 124
    • Zunächst sollten Sie das Plug-in veröffentlichen. Nun können Sie im Bearbeitungsmodus eines beliebigen Artikels das Plug-in-Tag {FacileForms : Name_des_Formulars, 1, 0} eintragen. Dieses wird dann durch Ihr Formular ersetzt. Im zweiten Parameter bestimmen Sie, welche Seite des Formulars angezeigt wird, und über den dritten Parameter können Sie den Rahmen ein- oder ausstellen. Für unser Beispiel tragen wir folgende Zeile am Ende des Artikels »Lateinamerikanische Tänze« in der Kategorie »Tanzstil« ein: {FacileForms : form_anmeld_tanzkurs, 1, 0} Damit wird das Formular direkt im Artikel angezeigt (siehe Abbildung 18.32). Hier klicken, um das Bild zu vergrößern Abbildung 18.32 Das Formular im Artikel 18.1.8 Formular im Backend-Menü verankern Neben der Möglichkeit, das fertige Formular in die Homepage einzubinden, kann man es allerdings auch über einen selbst erstellten Menüeintrag im Backend anzeigen lassen. Klicken Sie hierfür auf die Option Menüverwaltung. Die Liste, die Sie nun sehen, ist leer. Wir fügen ihr über Neu einen neuen Menüpunkt hinzu. Es öffnet sich ein Fenster mit einer Auflistung aller Formulare, auf die Joomla! aktuell Zugriff hat. Neben den zahlreichen Beispielformularen sollte hier auch unser Formular aufgelistet sein. Markieren Sie es. Über Weiter gelangen Sie zur Konfiguration des Menüpunktes (Abbildung 18.33). 125
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.33 Die Auswahl eines Formulars In Übergeordnete Position können Sie festlegen, wo der neue Menüeintrag erscheinen soll. Es werden Ihnen allerdings nur zwei Optionen geboten: Zuoberst bedeutet, dass der Eintrag gleichberechtigt mit allen anderen Komponenten direkt in das Menü Komponenten eingefügt wird. Wenn Sie BreezingForms Sample Menu wählen, erscheint der Menüeintrag als Untereintrag dieses Menüpunktes. In Titel tragen Sie den Wortlaut des Menüpunktes ein. Zur Dekoration des Menüpunktes können Sie sich eines der kleinen Icons aussuchen. Vergessen Sie nicht, bei Formularname das Formular Ihrer Wahl einzugeben. Hier klicken, um das Bild zu vergrößern Abbildung 18.34 Die Einstellungen zum Menüeintrag Das Ergebnis können Sie gleich im Backend betrachten (Abbildung 18.35). 126
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.35 Der neue Menüeintrag im Menü »Komponenten« 18.1.9 Formular exportieren/importieren Um ein Formular einfach von einem Joomla!-System auf ein anderes zu übertragen, stellen die BreezingForms das Konzept der Pakete zur Verfügung, das wir oben schon ein wenig erläutert haben. Stellen Sie sich vor, dass wir unser Anmeldeformular nun in eine andere Joomla!-Homepage übernehmen wollen. Dazu gehen wir in die Konfigurationsseite der BreezingForms und klicken auf die Schaltfläche Paket erstellen. Hier klicken, um das Bild zu vergrößern Abbildung 18.36 Die Schaltfläche »Paket erstellen« Über ID können wir unser Paket auswählen. Alles, was in dieses Paket gesteckt wurde, seien es Formulare, Skripte oder Menüeinträge, wird nun noch einmal automatisch zu einem neuen XML-Paket zusammengeschnürt und reisefertig gemacht. Falls Sie sich bisher nicht um eine Paketzuordnung gekümmert haben, können Sie das auch manuell erledigen: Sie wählen einfach den leeren Eintrag im Feld ID und sammeln aus den nun erscheinenden Listen alles Notwendige zusammen. 127
    • Hier klicken, um das Bild zu vergrößern Abbildung 18.37 Ein Paket erstellen Wenn Sie am unteren Ende des Formulars auf Weiter klicken, können Sie Ihr neues XML-Paket in Empfang nehmen, speichern und weitergeben. Die umgekehrte Aktion, nämlich das Importieren eines Formularpakets, funktioniert ähnlich einfach. Klicken Sie dazu in Konfiguration auf das Feld Paketinstallation. Hier klicken, um das Bild zu vergrößern Abbildung 18.38 Paketinstallation Ihnen werden nun alle bereits installierten Pakete aufgelistet, die Sie in dieser Ansicht auch wieder löschen können (Abbildung 18.39). Hier klicken, um das Bild zu vergrößern Abbildung 18.39 Das Hochladen eines Pakets Wie Sie sehen, finden Sie hier auch die bei der Installation der BreezingForms mitgelieferten Beispieldateien und die Sammlung von vorgefertigten Skripten und Teilen, die Sie bei der funktionalen Ausstattung Ihrer Formulare unterstützt. Über Durchsuchen greifen Sie auf die 128
    • Verzeichnisstruktur Ihres Computers zu und können nun das neue Formular- Paket importieren. 19 Dokumentenverwaltung: Docman und Attachments Oft liegen das Wissen und die Informationen, die auf einer Website veröffentlicht und/oder geteilt werden sollen, bereits in einem anderen Dateiformat vor. Die Daten in HTML umzuwandeln ist oft zu aufwendig oder wenig sinnvoll, wenn die Dokumentformate Funktionen besitzen, die im WWW schwer abbildbar sind, wie z. B. im Fall einer PowerPoint-Präsentation. Für diese Fälle gibt es die Möglichkeit, bestehende Dokumente an die jeweils geeigneten Artikel anzuhängen. Zwei Erweiterungen, die diese Funktionen für Joomla! zur Verfügung stellen, lernen Sie im Folgenden kennen: zum einen das umfangreichere Dokumentenverwaltungsprogramm Docman und die etwas einfachere Erweiterung Attachments. 19.1 Dokumentenverwaltung: Docman Was die Zoom Media Gallery für Bilder bedeutet, stellt die Erweiterung Docman für Dokumente dar. Neben der Verwaltung von Dokumenten ermöglicht sie es, Dateien in den verschiedensten Formaten für den Download anzubieten. Dabei bietet Docman eine Menge von Funktionen, die sich mit Joomla! allein nicht oder nur schwer realisieren lassen: • Man kann eine unbegrenzte Zahl an Kategorien und Unterkategorien erstellen. • Sie können Gruppen erzeugen und mit detaillierten Rechten ausstatten. • Es gibt einen Download-Zähler, eine ausgefeilte Suchfunktion, eine History und ein eigenes Template-System. • Sie können eigene Lizenzen erstellen und einbinden. Es gibt zudem ein deutsches Sprachpaket. Die aktuelle Version von Docman ist 1.4.0rc3. 129
    • 19.1.1 Installation Laden Sie die Datei docman_1.4.0rc3_erst_entpacken.zip herunter. Entpacken Sie diese Zip-Datei. In der Datei befinden sich ein Komponentenpaket und zwei Sprachpakete. Laden Sie nun die Datei com_docman_1.4.0rc3.zip im Komponenteninstaller hoch. Nach der Installation erscheint im Menü Komponenten ein neuer Eintrag Docman. Wenn Sie auf diesen Menüpunkt klicken, führt er Sie direkt zum Control Panel von Docman. Um das deutsche Sprachpacket zu installieren, entpacken Sie das Sprachpaket mit der UTF-8-Kodierung. Anschließend kopieren Sie den Ordner language nach administrator/components/com_docman und den Ordner themes nach components/com_docman. Hier klicken, um das Bild zu vergrößern Abbildung 19.1 Das Control Panel der Docman-Komponente Das Panel erinnert mit seiner Ansicht der Manager-Symbole sehr stark an das Backend von Joomla!, verfügt aber über eigene Verwaltungsebenen, von denen wir im Folgenden einige näher erläutern wollen. In der Schnellübersicht auf der rechten Seite verbergen sich weitere interessante Optionen: • News: Darin zeigt Ihnen Docman Links zu aktuellen Docman- Informationen, z. B. zu neuen Versionen oder Bugfixes. • Unapproved: Eine Liste der hochgeladenen Dateien und deren Freigabe. • Latest docs: Hier haben Sie Zugriff auf die neuesten Docman- Dokumente, die von Ihnen oder den Anwendern eingestellt wurden. 130
    • • Latest logs: Damit Sie hier Zugriff auf die jüngsten Download- Protokolle haben, muss die Protokollfunktion im Konfigurationsmenü aktiviert sein. 19.1.2 Konfiguration Wenden wir uns nun den allgemeinen Einstellungen zu. Klicken Sie im Panel auf das Symbol Konfiguration. Hier klicken, um das Bild zu vergrößern Abbildung 19.2 Die Konfigurationsregister Ihnen wird nun eine Reihe von Registern präsentiert, die wir in Tabelle 19.1 erläutern wollen. Tabelle 19.1 Die Register von Docman Register Funktion Informationen über die aktuelle Version und den Pfad zum Ordner Allgemein der hochgeladenen Dateien. Einstellungen zur Anzeige im Frontend, z. B. Anzahl der Frontend Dokumente pro Seite. Rechtevergabe für das Frontend und die Dokumente. Rechte der Zugriff Gäste und Autoren. Upload Optionen für den Upload, z. B. mögliche Dateiformate. Einschränkung des Dokumentdownloads und der Sicherheit Dokumentverlinkung auf bestimmte Server, An- bzw. Ausstellen der Logfiles. 19.1.3 Eine Kategorie erstellen 131
    • Die Erstellung einer neuen Kategorie funktioniert wie in Joomla! selbst: Sie gehen in den Manager Categories und fügen mit Hinzufügen eine neue Kategorie hinzu, die Sie auch gleich im Bearbeitungsfenster konfigurieren können (Abbildung 19.3). Hier klicken, um das Bild zu vergrößern Abbildung 19.3 Das Erstellen einer neuen Docman-Kategorie Im Gegensatz zu den Joomla!-Kategorien können Sie diese hier beliebig ineinander verschachteln, indem Sie als Aktuelle Kategorie die übergeordnete Kategorie wählen. 19.1.4 Von der Datei zum Dokument Wie Sie vielleicht schon bemerkt haben, kennt Docman sowohl Dateien als auch Dokumente. Der Unterschied ist nicht schwer zu verdeutlichen: Dateien sind Objekte, die hochgeladen werden, aber noch nicht ins System integriert wurden. Sie befinden sich sozusagen noch im Rohzustand. Zu Dokumenten werden sie erst, wenn sie über den Dokumentenmanager mit einem Dokument verbunden werden und dann auf dieser Ebene weiterverarbeitet werden können. Es besteht auch die Option, eine Datei mehreren Dokumenten zuzuweisen, so dass diese in unterschiedlichen Kategorien gespeichert werden können. Um ein neues Dokument zu erstellen, muss also zunächst eine Datei hochgeladen werden. Dies wird im Dokumenten- oder im Dateimanager erledigt, wo Sie eine Liste bereits geladener Objekte sehen. Wir fügen hier einen neuen Eintrag hinzu, indem wir in der Werkzeugleiste auf das Symbol Hochladen klicken. 132
    • Hier klicken, um das Bild zu vergrößern Abbildung 19.4 Der Upload Wizard Der Upload Wizard führt Sie nun durch die Ladeprozedur. Er gibt Ihnen drei Möglichkeiten zur Auswahl: • Datei von lokalem Rechner hochladen: Lässt Sie das Dateiverzeichnis Ihres lokalen Rechners durchsuchen, um eine Datei auszuwählen. • Datei von einem anderen Server übertragen: Stellt die Verbindung zu einem anderen Webserver her und überträgt die gewünschte Datei. • Dateilink auf einen anderen Server: Verbindet Sie mit einer Datei auf einem anderen Rechner. Bei jeder dieser Optionen erscheint als nächster Schritt ein anderes Dialogfenster für die Eingabe der erforderlichen Informationen. Tragen Sie die gewünschten Angaben ein, und bestätigen Sie diese mit Senden. Wenn Sie ein gezipptes Paket übertragen möchten, benötigen Sie beim Transfer vom lokalen Computer die Option Batch Mode. Die Dateien werden dabei on the fly (im laufenden Betrieb) entpackt. Das Archiv sollte allerdings keine weiteren gezippten Verzeichnisse enthalten. Beachten Sie, dass im Batch Mode eventuell bereits bestehende Dateien mit gleichem Namen ohne Rückfrage überschrieben werden, obwohl dies in der allgemeinen Konfiguration anders festgelegt wurde. Wenn die Datei hochgeladen oder ein Link erstellt wurde, sehen Sie die Erfolgsmeldung aus Abbildung 19.5. Hier klicken, um das Bild zu vergrößern Abbildung 19.5 Die Erfolgsmeldung nach dem Hochladen einer Datei Kein Upload? 133
    • Falls das Hochladen nicht funktioniert, legen Sie bitte einen neuen Ordner im Verzeichnis Joomla! an, und geben Sie den neuen Pfad im Konfigurationsregister Allgemein unter Pfad zum Speichern der Dateien an. Sollte dies ebenfalls nicht funktionieren, ändern Sie die Datei administratorcomponentscom_docmanincludesfile.php in Zeile 177 wie folgt ab: $file_upload = mosGetParam($_FILES, 'upload'); Der Wizard präsentiert Ihnen nun sinnvolle Optionen für das Prozedere. Um die hochgeladene Datei gleich mit einem Dokument zu verbinden, klicken Sie auf die erste Option, die Sie in den Bearbeitungsmodus eines neuen Dokuments bringt. Tabelle 19.2 Register beim Erstellen neuer Dokumente Register Funktion Dokument Allgemeine Einstellungen zum neuen Dokument. Zugriff Erteilung von Lese- und Schreibrechten für das Dokument. Lizenz Eintrag eventueller Lizenzen, denen der User zustimmen muss. Details Per Default sind keine Parameter vorhanden. Hier klicken, um das Bild zu vergrößern Abbildung 19.6 Ein neues Dokument wird erstellt und mit einer Datei verbunden. Wie Sie im oberen Bereich des Dokument-Registers erkennen können (Abbildung 19.6), gibt es über Veröffentlicht den zusätzlichen Status Freigegeben. Durch diesen erhält der Urheber des Artikels die Möglichkeit, einer Veränderung seines Dokuments zuzustimmen. Dieses Recht lässt sich in der Konfiguration genauer festlegen. 134
    • Nach dem Abspeichern sollten Sie Ihr neues Dokument in der Liste sehen. Über die Spaltenoption Aktualisierung können Sie die Verbindung zu Ihrer Datei auffrischen. 19.1.5 Rechte vergeben Wie oben schon erwähnt wurde, verfügt Docman über eine sehr ausgeprägte Rechteverwaltung. Diese basiert auf der Benutzerverwaltung von Joomla!, zeichnet sich jedoch dadurch aus, dass Sie eigene Gruppen anlegen und mit unterschiedlichen Rechtekonstellationen versehen können. Auf die angelegten Gruppen können Sie sich dann im allgemeinen Konfigurationsdialog oder in den Regelungen für die einzelnen Dokumente beziehen. Hier klicken, um das Bild zu vergrößern Abbildung 19.7 Eine neue Gruppe anlegen 19.1.6 Anbindung an das Frontend Nachdem genauestens geklärt wurde, wer welche Rechte besitzt, können die Dateien veröffentlicht werden. Dazu verlinkt man die Komponente mit einem beliebigen Menü. In Abbildung 19.8 sehen Sie, wie sich Docman im Frontend präsentiert. 135
    • Hier klicken, um das Bild zu vergrößern Abbildung 19.8 Docman im Frontend Fehlermeldung? Wenn Sie im Frontend eine Fehlermeldung erhalten, sollten Sie in der Datei components/Docman/themes/default/themeConfig.php folgende Zeile auskommentieren, indem Sie zwei Schrägstriche davor setzen: //var $details_homepage = "1"; Wie Sie an den Schaltflächen in unserem Screenshot sehen, besitzt der User sämtliche Rechte: Er kann Dokumente sehen, herunterladen, hochladen, editieren etc. Die einzelnen Aktionen werden in Tabelle 19.3 erläutert. Tabelle 19.3 Schaltflächen im Frontend Schaltfläche Funktion Download Lädt das aktuelle Dokument herunter. Anzeigen Zeigt das jeweilige Dokument an. Details Listet die Informationen über die Datei auf. Ändern Dient zur Bearbeitung des Dokuments. Auschecken Sperrt das Dokument für andere. Zurücksetzen Setzt den Zugriffszähler zurück. Verschieben Verschiebt das Dokument in eine andere Kategorie. Löschen Löscht das Dokument. Updaten Aktualisiert das Dokument. Zurückziehen Veröffentlicht/deaktiviert das Dokument. Bestätigt die Änderungen anderer User. Es taucht nur auf, Bestätigen wenn ein Dokument geändert wurde und der aktuelle Nutzer das Bestätigungsrecht hat. 136
    • 19.1.7 Eigene Templates Mit dem Themes-Manager verfügt Docman über ein eigenes Template- System. Wenn Sie auf den Manager klicken, sehen Sie das Default-Theme von Docman. Über Hinzufügen können Sie weitere Themes einbinden – leider vorerst nur zusammen, denn es gibt außer »Default« noch keine verfügbaren Themes. Aber Sie können über CSS bearbeiten das bestehende Template ändern oder im Bearbeitungsmodus die zahlreichen Parameter an- bzw. ausschalten. Fehlermeldung? Erscheint hier eine Fehlermeldung, so liegt das ebenfalls an der Datei components/Docman/themes/default/themeConfig.php. Die nötige Änderung ist weiter oben beschrieben. 19.1.8 Statistik Der Statistik-Manager auf dem Control Panel führt Sie zu einer Seite, die Ihnen stets aktuell die 50 beliebtesten Dokumente in einer Rangfolge präsentiert. Die Anzahl der Downloads wird gleich mit angezeigt (Abbildung 19.9). Hier klicken, um das Bild zu vergrößern Abbildung 19.9 Die Top 50 in Sachen Download 19.1.9 Zubehör Obwohl Docman bereits ein sehr mächtiges Tool ist, gab es bei den Usern doch ein paar Extra-Wünsche, die in zusätzlichen Komponenten, Modulen oder Plug-ins umgesetzt wurden. 137
    • Tabelle 19.4 Erweiterungen für Docman Komponenten/Module/Plug- Funktion ins Generiert einen alphabetischen Index aus den AlfaDocman 0.6 Daten der Docman-Komponente. Docman Category 1.4.0 Zeigt die neuesten Dokumente einer zuvor RC2 definierten Kategorie der Docman-Komponente. Editor-Plug-in, das es ermöglicht, einen direkten Link zu einem File aus der Docman- DOCLink 1.4 RC1 Komponente zu setzen. Unterstützt werden die Editoren HTMLArea3 XTD, TinyMCE und WysiwygPro 2.2.4. Listet wahlweise die neuesten oder die am Docman Lister 1.4.0 RC2 besten bewerteten Downloads von Docman auf. Nehmen wir das letzte Modul, Docman Lister, als Beispiel. Wenn Sie es installiert haben, können Sie im Bearbeitungsmodus des Moduls seine Parameter festlegen (Abbildung 19.10). Hier klicken, um das Bild zu vergrößern Abbildung 19.10 Die Parameter des Docman Listers Besonders interessant ist der Parameter Sortieren nach. Hier können Sie auswählen, nach welchem Aspekt die Dokumente geordnet werden sollen. Verlinken Sie das Modul wie gewohnt in einem Menü, und lassen Sie es sich im Frontend anzeigen (Abbildung 19.11). 138
    • Hier klicken, um das Bild zu vergrößern Abbildung 19.11 Das Modul Docman Lister im Frontend 20 Kalender: JEvent und iWebCal Es gibt viele Kalender, die Sie in Joomla! einbinden können. Der Umfang der Funktionalitäten ist bei jedem Programm verschieden. Wir wollen Ihnen hier die Eventkalender JEvent und iWebCal vorstellen. Ersterer generiert eine schöne Oberfläche und verfügt über eine Reihe interessanter Optionen. Letzterer hat den Vorteil, dass er zusätzlich Kalenderinformationen aus z. B. Ihrem lokalen Kalender übernehmen kann, solange dieser auf dem iCalendar- Standard beruht. 20.1 JEvent Der Kalender JEvent übernimmt die komfortable Verwaltung und Darstellung von Terminen und Veranstaltungen. Im Backend können entsprechende Kategorien, wie z. B. Geburtstage, angelegt werden. Die Entwickler werben u. a. mit folgenden Features: • vollständige Verwaltung diverser Einstellungen im Backend • beliebig viele Kategorien • beliebig viele Termine • farbliche Unterscheidung (zuordenbar und frei wählbar) der Termine • Tages-, Wochen-, Monats- und Jahrestermine • wiederkehrende Termine Die aktuelle Version dieser Erweiterung ist 1.4.3 RC2. 139
    • 20.1.1 Installation Laden Sie die Datei com_events_1.4.3rc2.zip im Installer der Komponenten hoch. Um Sprachdateien brauchen Sie sich nicht zu kümmern: Die Erweiterung wird automatisch in der von Ihnen bevorzugten Sprache installiert. Im Menü Komponenten erscheint nun der Eintrag Kalender mit vier Managern: Terminverwaltung, Kategorien, Konfiguration und Archiv (Abbildung 20.1). Hier klicken, um das Bild zu vergrößern Abbildung 20.1 Ein Blick in das Backend des Kalenders »JEvents« Nach der Installation werden Sie aufgefordert, den Reiter Konfiguration aufzurufen und dort die E–Mail-Adresse zu ändern. Erst dann können Sie im Backend weiterarbeiten. 20.1.2 Einrichten des Kalenders Bevor wir nun einen Termin in unserem Kalender anlegen können, müssen wir zuerst eine neue Kategorie erstellen, da jeder Termin einer Kategorie zugeordnet wird. Eine Kategorie erstellen Das Erstellen einer neuen Kategorie funktioniert wie in Joomla! selbst: Sie gehen in das Register Kategorien und fügen mit Neu eine neue Kategorie hinzu, die Sie auch gleich im Bearbeitungsfenster konfigurieren können (Abbildung 20.2). 140
    • Hier klicken, um das Bild zu vergrößern Abbildung 20.2 Eine neue Kategorie erstellen Die neue Kategorie wird danach im Kategorien-Manager angezeigt und kann dort verwaltet werden. Einen neuen Termin anlegen Nachdem Sie eine Kategorie angelegt haben, gehen Sie zurück zum Reiter Terminverwaltung. Fügen Sie mit Neu einen Termin hinzu. Es öffnet sich das Formular Neuer Termin. Dieses Formular ist in sechs Reiter eingeteilt. Im Register Allgemein (Abbildung 20.3) müssen Sie einen Namen und eine Kategorie für den Termin vergeben. In diesem Reiter wird auch hinterlegt, wer Zugriff auf diesen Termin haben darf (angemeldet oder nicht angemeldet). Hier besteht auch noch die Möglichkeit, Zusatzinformationen zu hinterlegen, wie z. B. den Ort des Termins, Ansprechpartner und eventuell auch noch eine kurze Erläuterung. Hier klicken, um das Bild zu vergrößern Abbildung 20.3 Einen neuen Termin erstellen (Reiter »Allgemein«) 141
    • Gehen Sie nun zum Reiter Kalender (Abbildung 20.4). Hier können Sie festlegen, wann Ihr Termin stattfinden soll. Es besteht auch die Möglichkeit, eine Terminserie einzurichten. Um diesen Termin bzw. Terminserien hervorzuheben, können Sie diese(n) farblich kennzeichnen. Hier klicken, um das Bild zu vergrößern Abbildung 20.4 Einen neuen Termin erstellen (Reiter »Kalender«) Im Reiter Bilder (Abbildung 20.5) gibt es die Option, Ihrem Termin ein oder mehrere Bilder zuweisen, die später mit angezeigt werden. Um die entsprechenden Bilder zuordnen zu können, müssen Sie diese im Medienmanager (Abschnitt 5.5, »Eigene Bilder einbinden«) zuerst hochladen. Hier klicken, um das Bild zu vergrößern Abbildung 20.5 Einen neuen Termin erstellen (Reiter »Bilder«) Im Reiter Extra wird Ihnen angezeigt, welchen Status der Termin gerade hat: veröffentlicht, unveröffentlicht oder Entwurf). Des Weiteren sehen Sie hier, wie viele Personen bereits auf den Termin zugegriffen haben, wann dieser erstellt wurde und ob ihn schon jemand bearbeitet hat. 142
    • In den Reitern Hilfe und Über finden Sie eine kurze Anleitung zur Terminerstellung und allgemeine Informationen zum Kalender. Termine archivieren Termine, die Ihren Usern nicht mehr angezeigt werden sollen, weil sie in der Vergangenheit liegen, können Sie archivieren. Die Termine werden dabei nicht gelöscht und können jederzeit wieder sichtbar gemacht werden. Um nun einen Termin zu archivieren, markieren Sie den infrage kommenden Termin und klicken auf das Symbol Archivieren. Wenn Sie in das Register Archiv wechseln, werden Sie bemerken, dass der Termin hier aufgelistet wird. Hier haben Sie jetzt auch die Möglichkeit, diesen wieder zu Ihren aktiven Terminen zurückzuverschieben. Klicken Sie dazu auf das Symbol Aus Archiv entfernen. Mit dem Symbol Löschen können Sie den Termin endgültig löschen. 20.1.3 Der Kalender im Frontend Nachdem Sie den Kalender konfiguriert und Termine erstellt haben, können Sie ihn veröffentlichen. Anbindung an das Frontend Dazu verlinken Sie die Komponente mit einem beliebigen Menü. Um die richtigen Kalenderinformationen anzuzeigen, wählen Sie rechts unter Basisparameter die entsprechenden Kategorien aus, deren Termine im Frontend sichtbar sein sollen. In unserem Fall wäre das die Kategorie »Tanzkurse«. Hier klicken, um das Bild zu vergrößern Abbildung 20.6 Die Verknüpfung des Hauptmenüs mit dem Kalender Wenn Sie sich eingeloggt und den richtigen Menüpunkt angewählt haben, sollte der Kalender samt Ihren Terminen verfügbar sein. 143
    • Hier klicken, um das Bild zu vergrößern Abbildung 20.7 Der Kalender im Frontend Mit den Schaltflächen oberhalb der jeweiligen Kalenderansicht können Sie beliebig in Ihrem Kalender navigieren (Tabelle 20.1). Tabelle 20.1 Aktionen im Kalender Symbol Funktion Geht ein Jahr zurück. Geht einen Monat zurück. Jahresansicht, ausgehend vom aktuellen Jahr. Monatsübersicht, ausgehend vom aktuellen Monat. Wochenübersicht, ausgehend von der aktuellen Woche. Zeigt die Termine des aktuellen Datums. Öffnet die Suche nach Terminen. 144
    • Wechselt zu einem ausgewählten Monat. Geht zum nächsten Monat. Geht zum nächsten Jahr. Druckt den Kalender. Unterhalb des Kalenders befinden sich zwei Links. Mit dem ersten können Sie auch im Frontend Termine hinzufügen. Klicken Sie hierzu auf Neuen Termin eintragen. Wenn Sie auf Meine Termine gehen, gelangen Sie zu Ihren Terminen und können diese nach Wunsch verändern oder löschen. 20.1.4 Die Verwaltung des Kalenders Die Konfigurationsseite von JEvents ist in sechs Reiter (siehe Tabelle 20.2.) eingeteilt. Die entscheidenden Einstellungsmöglichkeiten befinden sich definitiv im ersten Register, Komponente. Neben dem Register Komponente gibt es noch eine Reihe weiterer Reiter, die sich hauptsächlich weiteren Modulen, dem Layout oder Metainformationen über den Kalender selbst widmen. Tabelle 20.2 Die Reiter der Konfigurationsseite Reiter Funktion Hier finden Sie die grundlegenden Kalenderoptionen, wie z. B. Komponente Zugriffsberechtigungen, das Datumsformat, Auswahlmöglichkeiten für die Darstellung des Kalenders usw. Diese Einstellungen betreffen das zusätzliche Modul Mini Kalender MiniKalender (mod_events_cal, s. u.) Nächste Diese Einstellungen betreffen das zusätzliche Modul Nächste Termine Termine (mod_events_latest, s. u.) Hier können Sie eigenen CSS-Code für das Aussehen des CSS Kalenders hinterlegen. Mit Standardkonfiguration laden stellen Sie den ursprünglichen Zustand wieder her. Hier finden Sie Einstellungen für Tooltip-Fenster in der Tooltip Monatsübersicht. Über Hier finden Sie Informationen zur Komponente und zu ihren 145
    • Erweiterungen. 20.1.5 Die Erweiterungen Zu Ihrem Kalender könnten Sie nun noch eine Reihe weiterer Module und Plug-ins hinzufügen. Eine Liste der momentan verfügbaren Erweiterungen finden Sie in Tabelle 20.3: Tabelle 20.3 Eine Auswahl an JEvents-Erweiterungen Module/Plug-ins Funktion Dieses Modul stellt die Termine der JEvents- Komponente in einem Kalenderblatt dar (s. u.). mod_events_cal_1.4.2-1.zip Farbliche Anpassungen können in der CSS- Datei vorgenommen werden. mod_events_latest_1.4.2-1. Dieses Modul zeigt die kommenden Termine der zip JEvents-Komponente. Dieses Modul zeigt eine Übersicht der mod_events_legend_1.4.2-1 angelegten Kategorien aus der JEvents- .zip Komponente. Erweitertes Countdown-Modul für JEvents- Features: mod_countdown_1_4.zip Filter auf bestimmte Kategorien möglich vereinfachtere Konfiguration bot_events_search_1.4.2-1. Dieses Plug-in integriert den Inhalt der JEvents- zip Komponente in die Joomla!-eigene Suchroutine. Anhand des JEvents-Calendar-Moduls wollen wir Ihnen hier demonstrieren, wie schnell Sie den Eventkalender mit nützlichen kleinen Zusatzfunktionen ausstatten können. Laden Sie die Datei mod_events_cal_1.4.2-1.zip im Modulinstaller hoch, veröffentlichen Sie das Modul, und stellen Sie in der Editieransicht ein, auf welcher Seite und in welcher Position das Kalenderblatt zu sehen sein soll. Die Übersicht erscheint dann im Frontend an der von Ihnen gewählten Stelle (Abbildung 20.8). 146
    • Hier klicken, um das Bild zu vergrößern Abbildung 20.8 Das JEvents-Calendar-Modul Mit einem Klick auf ein Datum gelangen Sie in den Gesamtkalender. 21 Bildergalerien: Zoom Media Gallery und JoomGallery Das Verwalten von Bildern ist in Joomla!s Media Manager zwar möglich, aber bei Weitem nicht so komfortabel und flexibel, wie man sich das manchmal wünschen würde. Auch die in Abschnitt 9.4.1, »Die Phoca Gallery«, besprochene Fotogalerie erfüllt nicht alle Bedürfnisse. Daher möchten wir Ihnen im Folgenden zwei Alternativen vorstellen, die auch hohe Ansprüche an eine Bilderverwaltung erfüllen können. 21.1 Zoom Media Gallery Für etwas anspruchsvollere Präsentationen und Download-Optionen gibt es die Zoom Media Gallery. Mit dieser können Sie Bilder und andere Multimediadateien ganz einfach und schnell verwalten, präsentieren und zur Weitergabe bereit machen. So gibt es z. B. die Möglichkeit, ein Bild als E- Card zu verschicken. Ein Highlight ist die Lightbox: Ein Nutzer betrachtet die Bilder in der Diashow und kann die zum Download bestimmten Medien in der Lightbox zwischenlagern, um sie am Ende mit einem Befehl abzurufen. Außerdem können die User anhand einer Bewertungsfunktion über Qualität und Originalität des Mediums entscheiden. 147
    • Die aktuelle Version ist 2.5.1. 21.1.1 Installation Installieren Sie das Paket zOOm_for_Joomla_1.5-b.zip mit dem Installationswerkzeug. Kompatibilität Achten Sie darauf, dass das Plug-in »Vorgängerversion-System – Legacy« aktiviert ist. Das Menü Komponenten und die Schnellübersicht weisen nun einen einzelnen weiteren Unterpunkt auf, der Sie direkt zum Kontrollzentrum bzw. zur Hauptseite der Komponente führt (Abbildung 21.1). Hier klicken, um das Bild zu vergrößern Abbildung 21.1 Die Verwaltung der Bildgalerie auf der Hauptseite Sprache Sollten Sie bei der Ansicht Schwierigkeiten mit seltsamen Sonderzeichen bekommen, kopieren Sie die Datei german.php, die Sie auf der DVD im Verzeichnis der Erweiterung finden, nach components/com_zoom/lib/language. Die bereits vorhandene Datei wird dabei überschrieben. Der Grund für die Sonderzeichen ist eine fehlerhafte Kodierung der Sprachdatei. Von hier aus gelangen Sie zu allen wichtigen Verwaltungsebenen. Wenn Sie mit der Maus über ein Symbol fahren, erscheint dessen Bedeutung in einem Tooltip. Die letzte Option ist schnell erklärt: • Tabellen optimieren: Sie müssen nichts weiter machen, als mit einem Klick die Schaltfläche zu betätigen. Der Manager säubert daraufhin die 148
    • Datenbank, auf der die Komponente basiert. Wenn die Funktion beendet ist, erhalten Sie über dem Control Panel eine blaue Erfolgsmeldung. Hier klicken, um das Bild zu vergrößern Abbildung 21.2 Erfolgsmeldung: Tabellen optimieren Mit den anderen Optionen wollen wir uns im Folgenden ein wenig genauer beschäftigen. 21.1.2 Einstellungen Bevor wir eine eigene Anwendung erstellen, betrachten wir zunächst die Konfiguration des Programms. Dazu wählen wir das Symbol Einstellungen. Hier klicken, um das Bild zu vergrößern Abbildung 21.3 Die Konfigurationsseite der Zoom Media Gallery Dort finden Sie eine Reihe von Registern, die sich mit unterschiedlichen Themen beschäftigen (Abbildung 21.3 und Tabelle 21.1). Tabelle 21.1 Die Register der Konfigurationsseite Register Funktionen 149
    • System Allgemeine Einstellungen der Komponente. Die Größe und die Verarbeitung der darzustellenden Medien Thumbnails werden festgelegt. Einstellungen für die Ansicht der Gallery-Komponente im Eigenschaften Frontend. Legt die Funktionalitäten und das CSS der Komponente im Layout Frontend fest. Hier können Sie einstellen, dass alle Ihre Bilder mit einem Wasserzeichen Wasserzeichen versehen werden sollen. Wenn Sie hier Ihre FTP-Zugangsdaten eintragen, werden zum Hochladen der Bilder die eingebauten FTP-Funktionen Safe Mode genutzt. »Safe Mode« bezieht sich dabei auf eine Einstellung von PHP, die Skripten den Zugriff auf Dateien erschwert. Klärt anhand der möglichen Aktionen den Rechtestatus der Rechte User. Reset Alle Daten unwiderruflich löschen und neu beginnen. 21.1.3 Das Erstellen eines Albums Die Multimediadateien werden diesmal nicht in Kategorien verwaltet, sondern in sogenannten Alben. Um ein neues Album zu erstellen, klicken Sie auf das erste Symbol des Media Gallery Admin-Systems, den Album-Manager (Abbildung 21.2). Hier können Sie die notwendigen Einstellungen vornehmen und Erläuterungen zu dem jeweiligen Album oder ein Bild als eine Art Logo einbinden. [Damit sich der User eine Übersicht über die Bilder in einer Gallery verschaffen kann und die Ladezeit optimiert wird, werden die Bilder nicht in voller Größe angezeigt, sondern als sogenannte Thumbnails. Das sind kleine Vorschaubilder, die von der Zoom Media Gallery mithilfe eines Konvertierungsprogramms automatisch erzeugt werden. ] Klicken Sie zum Anlegen eines Albums auf das Symbol Neues Album. Es erscheint ein Popup-Fenster mit der Nachricht »Neues Album erstellt.«. Jetzt sehen Sie die Konfigurationsansicht. Geben Sie im Feld Titel eine aussagekräftige Beschriftung für Ihr Fotoalbum an, z. B. »Tanzturnier«. Unter dem Namen, den Sie bei Verzeichnis eingeben, wird ein neuer Ordner in images/zoom angelegt, in dem alle zum Album gehörenden Dateien abgelegt werden. Im Reiter Mitglieder können Sie die Zugriffsrechte auf das Album festlegen. Um ein Album zu veröffentlichen, müssen Sie im Reiter Aktionen den Haken nach »Dieses Album freigeben« setzen. Speichern Sie die Einstellungen, indem Sie auf Speichern klicken. Es folgt eine Meldung »Albumdateien erfolgreich bearbeitet!«. 150
    • Hier klicken, um das Bild zu vergrößern Abbildung 21.4 Die Konfiguration des Albums Nach dem Speichern sehen Sie das neue Album in der Liste (Abbildung 21.4). 21.1.4 Das Hochladen von Bildern Nachdem wir das Album erfolgreich erzeugt haben, fehlt uns noch die Hauptsache: die Bilder, die in dieses Album gelegt werden sollen. Zum Hochladen gehen Sie auf den Medien-Manager von Zoom. Hier müssen Sie zunächst ein Album aussuchen. Jetzt sehen Sie eine Liste mit den bereits hochgeladenen Bildern. Um neue Fotos einzupflegen, klicken Sie auf Datei(en) hochladen. Sie haben nun die Wahl zwischen vier Möglichkeiten, ein Bild zu laden (Abbildung 21.5). • Einzelne Datei: Suchen Sie sich eine Datei im Verzeichnis Ihres Rechners aus, und geben Sie hier einen Namen, das übergeordnete Album, Schlüsselwörter und Erläuterungen an. • Mehrere Dateien: Das Hochladen funktioniert im Prinzip wie bei der einzelnen Datei, nur dass Ihnen jetzt entsprechend viele Formulare für die Bilderwahl vorgelegt werden, anhand derer Sie mehrere Dateien am Ende mit einem Klick hochladen können. • Drag’n Drop: Hier können Sie die Vorzüge einer grafischen Benutzeroberfläche genießen: Suchen Sie sich die gewünschten Dateien aus, und laden Sie sie – nachdem Sie in Details noch einen Blick auf ihre Eigenschaften werfen konnten – über eine Schaltfläche hoch. Diese Funktion ist ein Java-Applet. Sie benötigen also ein Java- Plug-in im Browser oder die Java-Laufzeitumgebung auf Ihrem Rechner. 151
    • • Medien suchen: In diesem Register müssen Sie den genauen Pfad zu der Mediendatei auf dem Server wissen. Der gesuchte Ort kann auch eine URL oder ein Verzeichnis auf einem Server sein. Wenn Sie viel mit FTP arbeiten, haben Sie so beispielsweise die Möglichkeit, Ihre Bilder mit einem FTP-Client auf den Server zu laden und diese dann von dort aus in die Zoom Media Gallery einzubinden. Hier klicken, um das Bild zu vergrößern Abbildung 21.5 Bilder hochladen Nach einem erfolgreichen Ladevorgang sollten Sie eine entsprechende Meldung erhalten. Mit Zurück gelangen Sie wieder zum Kontrollzentrum. Datei nicht hochgeladen? Falls keine Datei hochgeladen wurde, überprüfen Sie, ob in den Einstellungen unter Media der richtige Pfad angegeben wurde. Dieser sollte mit einem »/« enden. 21.1.5 Medien verwalten Egal, auf welche Weise Sie die Bilder hochgeladen haben: Diese sollten nun im Medien-Manager sichtbar sein. Hier haben Sie die Möglichkeit, die Dateien nach Belieben zu verwalten. Über die Werkzeugleiste können Sie die markierten Bilder löschen, bearbeiten oder in ein anderes Album verschieben. Bearbeiten bedeutet in diesem Fall, dass der Name, die Schlüsselwörter, die Beschreibung etc. geändert werden können. Es ist außerdem möglich, das Bild als Albumlogo festzulegen. 152
    • Hier klicken, um das Bild zu vergrößern Abbildung 21.6 Einige Bilddateien, aufgelistet im Medien-Manager 21.1.6 Die Galerie im Frontend Die Zoom Media Gallery können Sie nun wie gewohnt in ein Menü des Frontends einbinden (vgl. Abschnitt 6.3.3, »Einen Menüpunkt erstellen«). Wählen Sie als Menüpunkt zOOm Media Gallery. Wenn Sie dann dem Link im Frontend folgen, sollte eine Auflistung Ihrer Alben zu sehen sein. Bei dem Klick auf ein Album wird es geöffnet, und Ihnen wird der Inhalt als Thumbnail-Ansicht präsentiert. Hier klicken, um das Bild zu vergrößern Abbildung 21.7 Der Inhalt des Albums als Thumbnail Wenn Sie ein Thumbnail anklicken, öffnet es sich in der Vollansicht. Sie befinden sich nun im Modus »Diashow«, d. h., Sie können über die blaue Navigationsleiste die gewünschten Bilder im Album ansteuern (Abbildung 21.8). 153
    • Unter dem Bild befindet sich zum einen eine Übersicht über die Bildeigenschaften, zum anderen haben die Nutzer hier die Möglichkeit, das Bild zu kommentieren und zu bewerten. Hier klicken, um das Bild zu vergrößern Abbildung 21.8 Ein Bild in der Vollansicht Ein nettes Feature ist die Zoomfunktion. Gehen Sie mit der Maus über das Bild, so wird ein vergrößerter Ausschnitt in einem Kasten angezeigt. Mit den Cursor-Tasten können Sie den Vergrößerungsfaktor verändern. Sie sehen auch, dass unterhalb des Bildes sehr viele Informationen angezeigt werden. Diese können Sie im Backend im Media Gallery-Admin System bei den Einstellungen unter Layout abschalten, beispielsweise im Feld »Zeige Eigenschaften unter den Medien«. Rechts über dem Bild befinden sich zwei weitere interessante Schaltflächen: Über die linke Schaltfläche können Sie das Bild als E-Card mit einer Nachricht an die E–Mail-Adresse von Bekannten abschicken. Die E–Mail enthält dann einen Link auf das aktuelle Bild. Fehlermeldung? Sollten Sie eine Fehlermeldung erhalten (»Mail-Funktion konnte nicht initialisiert werden!«), dann ist Ihr Mail-Versand wahrscheinlich noch nicht richtig konfiguriert. Um diese Funktion nutzen zu können, müssen Sie, wie in Abschnitt 10.3, »Mail-Versand«, beschrieben wird, noch Ihre E–Mail-Daten eintragen. Der rechte Button legt das Bild oder das gesamte Album in die sogenannte Lightbox ab. Die Lightbox ist eine Art nichtkommerzieller Warenkorb, dessen Inhalt Sie mit der Schaltfläche Lightbox anschauen betrachten und löschen können (Abbildung 21.9). 154
    • Hier klicken, um das Bild zu vergrößern Abbildung 21.9 Die Lightbox Wenn Sie Ihren Rundgang durch die Bildergalerie beendet haben, können Sie sich die ausgewählten Bilder in der Lightbox mit einem Klick komprimieren lassen und diese Datei herunterladen. Achtung Zubehör! Für die neue Version der Zoom Media Gallery gibt es derzeit leider noch keine kompatiblen Module und Plug-ins. Die verfügbaren Erweiterungen (z. B. auf joomlaos.de) arbeiten nur mit älteren Versionen dieser Galerie zusammen. 22 Joomla! als Community-Treff Während eine klassische Homepage die Darstellung einer Person oder Gruppe nach außen zur Aufgabe hat, entdecken immer mehr Betreiber eine weitere Seite: die einer Community-Plattform. Eine Gruppe von Usern sammelt sich um eine Homepage, wird dort aktiv und bereichert die Site um ihre Beiträge. Es geht jetzt weniger um eine monolithische Außendarstellung, sondern vielmehr um einen dynamischen Informationsfluss innerhalb der Gemeinschaft. Um diesen Effekt zu erreichen, müssen Sie Ihren Besuchern die Möglichkeit geben, sich zu beteiligen. Je nach Aufgabe und Zielgruppe Ihrer Seite gibt es dazu verschiedene Werkzeuge und Methoden, deren Auswahl an die Kommunikationsbedürfnisse der Besucher angepasst werden muss. 155
    • 22.1 Online-Kommunikation Man unterscheidet die verschiedenen Arten der Kommunikation im Netz gemeinhin anhand zweier Dimensionen. Die erste bezieht sich auf die Anzahl der Sender und der Empfänger: • One-To-One Die Kommunikation findet zwischen zwei Einzelpartnern statt, und die Öffentlichkeit ist ausgeschlossen. Ein klassisches Beispiel ist E–Mail. • One-To-Many Eine/r publiziert die Inhalte, aber die gesamte Öffentlichkeit ist eingeladen, sie zu rezipieren. Eine statische Homepage arbeitet nach diesem Prinzip. • Many-To-Many Viele, im besten Fall die gesamte Öffentlichkeit, haben nicht nur die Möglichkeit zu lesen, sondern auch zu schreiben. Wikis sind hierfür ein gutes Exempel. Natürlich sind die Grenzen fließend, insbesondere kann »one« auch eine Gruppe von Autoren bezeichnen. Entscheidend ist, dass die »vielen« einen möglichst freien Zugang zu dem Medium haben, wohingegen der Zugang für die anderen meistens beschränkt ist. Joomla! beispielsweise ist zunächst eher ein One-To-Many-System. Alle Leute dürfen lesen, aber nur wenige haben das Recht, auch zu publizieren. Die zweite Dimension hat das Zeitverhältnis der Kommunikation im Blick. • Synchron Die Kommunikationspartner müssen zur gleichen Zeit online sein, wie das beispielsweise im Chat der Fall ist. • Asynchron Die Kommunikation kann zeitversetzt stattfinden. Hier ist das Diskussionsforum ein klassischer Fall. Die meisten textbasierten Kommunikationsformen im Netz sind asynchron, und bei allen ist maßgeblich, dass sich diejenigen, die sich unterhalten, nicht in einem gemeinsamen Raum oder am gleichen Ort befinden müssen. Dadurch können sich in Online-Communities Personen treffen, die sonst nur schwerlich miteinander kommunizieren könnten. Bei der bisher vorherrschenden Form der Unterhaltung, die nur aus geschriebenem Text besteht, wird der gesamte nonverbale Bereich (also Stimmlage, Gesten, Mimik etc.) ausgeklammert. Dies hat zur Folge, dass die Kommunikationspartner nur wenige Informationen über ihr Gegenüber und dessen Befindlichkeit erhalten, sofern diese nicht explizit formuliert werden. Konkret gesagt wissen Sie nicht, wie es der Person am anderen Ende geht, wie sie sich fühlt oder welche Einstellung sie zur Unterhaltung hat, die Sie 156
    • gerade führen. Zwei Aspekte, die sich daraus ergeben, seien im Folgenden erwähnt. Wenn Sie Ihr Gegenüber nicht gut kennen, ist es sehr schwierig festzustellen, ob eine Aussage ernst gemeint oder ironisch zu nehmen ist. Die daraus resultierenden Missverständnisse führen immer wieder zu einer Eskalation der Kommunikation und enden oft genug in wüsten Beschimpfungen. Dem versucht die Netiquette (z. B. www.netservice.ch/german/netiquette_ger.html#Post) mit einer Art Verhaltenskodex entgegenzuwirken. Auch der Einsatz sogenannter Emoticons (Smileys wie :o)) kann ein Mittel sein, um Zweideutigkeiten auszuräumen und Ironie zu kennzeichnen. Eine zweite Auswirkung der Informationsarmut ist die relativ einfache Möglichkeit, unerkannt zu bleiben und unter einem Pseudonym zu schreiben. Die Frage, ob anonyme Beiträge in einer Community erlaubt sein sollten, ist nicht pauschal zu beantworten. Natürlich birgt Anonymität die Gefahr, dass destruktive Geister sich an Ihrer Seite zu schaffen machen, sie verwüsten oder unschöne Sachen verbreiten. Andererseits erleichtert der anonyme Zugang oftmals das Äußern von wertvoller Kritik oder Gedanken, die Teilnehmern sonst peinlich wären oder potenziell schaden könnten. 23 Weblogs: IDoBlog und MMS Blog Ein Blog ist eine Anwendung im Internet, die eine Liste mit Artikeln ausgibt, bei denen der aktuellste Eintrag immer als Erstes angezeigt wird. Die einzelnen Artikel können kommentiert und nachträglich überarbeitet werden. Im Unterschied zu einem Content-Management-System haben Beiträge im Blog im Allgemeinen eine sehr persönliche Note. Sie stellen die Äußerung und oft subjektive Meinung einer bestimmten Person dar. Darüber hinaus spielt die zeitliche Abfolge der Einträge eine überragende Rolle. Ältere Beiträge können zwar immer über die Suche und häufig auch über ein Kategoriesystem gefunden werden. Die Titelseite, die den zentralen Punkt eines Blogs darstellt, ist jedoch streng an der zeitlichen Reihenfolge der Artikel orientiert. Schreiben können in einem Blog meistens nur berechtigte Personen, wohingegen die Kommentierfunktion allen Besuchern offensteht. Damit wird der Originalbeitrag als Äußerung einer Einzelperson geschützt. Es hat sich mittlerweile allerdings etabliert, die Beiträge für den Urheber auch nachträglich veränderbar zu halten. Dabei ist es Konvention, nicht einfach den Text zu ändern, sondern die Änderungen mit Durch- und Unterstreichungen zu kennzeichnen. 157
    • Für Joomla! stehen Ihnen derzeit leider keine der gängigen Weblog- Programme, wie z. B. Wordpress oder Textpattern als Erweiterung zur Verfügung, die den Vorteil hätten, dass die Handhabung schon erprobt und allgemein bekannt wäre. Stattdessen wollen wir Ihnen hier zwei andere Blog- Erweiterungen vorstellen: den IDoBlog und den MMS Blog. 23.1 IDoBlog Normalerweise besteht ein Blog-Programm aus einem einzelnen Blog, also einer Hauptseite, auf der ein Autor oder eine kleine Autorengruppe seine bzw. ihre Beiträge in chronologischer Reihenfolge veröffentlicht. Mit dem IDoBlog können Sie sowohl die eben genannte klassische Form eines Blogs realisieren als auch einen eigenen Blog für jeden einzelnen Ihrer registrierten User anlegen und verwalten. Dies bezeichnet man als einen Multi-User-Blog. Im Prinzip wurden hier die Funktionen eines Social Networks (siehe Kapitel 22, »Joomla! als Community-Treff«), z. B. die Anzeige eines Profils, mit denen von Blogs verbunden. Der IDoBlog hat momentan die Version 1.1 (build 30) mit dem Zusatz stable, worüber sich allerdings streiten lässt. 23.1.1 Installation und Einrichtung Wenn Sie die Blog-Komponente von der Homepage www.joomlaos.de herunterladen, finden Sie eine komprimierte Datei vor, die aus der eigentlichen Komponente und zwei Sprachdateien besteht und zunächst entpackt werden muss. Auf der DVD können Sie im Verzeichnis Erweiterungen/IDoBlog direkt auf die drei Dateien zugreifen. Installieren Sie im Joomla!-Backend unter dem Menüpunkt Erweiterungen • Installieren / Deinstallieren der Reihe nach die Komponente und die beiden Sprachdateien, die Sie in Tabelle 23.1 aufgelistet finden. Tabelle 23.1 Die Dateien des IDoBlogs Datei Funktion Idoblog30.zip Komponente I DO Blog 2.3.8 de-DE_com_IdoBlog_site.zip Deutsche Sprachdatei für das Frontend de-DE_com_IdoBlog_admin.zip Deutsche Sprachdatei für das Backend Im Menü Komponenten finden Sie jetzt den Menüeintrag IDoBlog, über den Sie direkt zum Kontrollpanel des Blogs gelangen. 158
    • Hier klicken, um das Bild zu vergrößern Abbildung 23.1 Das Kontrollpanel des IDoBlogs Dieses wirkt etwas verschoben, was daran liegt, dass die Schaltfläche in der linken oberen Ecke keine Aufschrift trägt. Sie ist dennoch funktional und führt Sie zu der Website der IDoBlog-Entwickler, auf der Sie sich gegebenenfalls Hilfe holen können. Die restlichen Schaltflächen dienen zur Verwaltung Ihres Blogs. Mit ihren Optionen werden wir uns im Einzelnen weiter unten beschäftigen. Damit Ihr Blog im Frontend sichtbar wird, ist es nun – wie bei allen Komponenten – notwendig, dass wir ihn in einem der Menüs verankern. Gehen Sie daher über Menüs • Hauptmenü auf Neu, und klicken Sie dann unter Interner Link auf IDoBlog. Hier klicken, um das Bild zu vergrößern Abbildung 23.2 Die Menüoptionen für den IDoBlog Wie Sie sehen, gibt es viele Möglichkeiten, auf unterschiedliche Ansichten und Funktionalitäten des IDoBlogs zu verlinken. 159
    • Achtung, Open Source! Noch nicht alle der Optionen funktionieren, so z. B. der Link Freunde bearbeiten. Die Grundlagen der Funktionen sind zwar vorhanden, sie besitzen jedoch noch keine Interaktionsmöglichkeiten mit den Usern. Für unser Beispiel wählen wir folgende zwei Menüpunkte: • Zeige alle Blogs als übergeordneten Menüpunkt Blog sowie • Schreiben Sie in Ihrem Blog als untergeordneten Menüpunkt Beitrag schreiben. Die Zugriffsebene der Menüpunkte belassen Sie bei Öffentlich, und auch die Option Bei Klick öffnen im übergeordneten Fenster mit Browser-Navigation bleibt unverändert. Hier klicken, um das Bild zu vergrößern Abbildung 23.3 Das Menü und der (noch) leere Blog im Frontend Die Ansicht, die Sie im Frontend erhalten, wenn Sie auf den Menüeintrag Blogs klicken, ist natürlich nicht aussagekräftig, weil der Blog noch keinerlei Einträge enthält. Das werden wir im Folgenden ändern. 23.1.2 Arbeiten im Blog Beiträge schreiben Über den Menüpunkt Beitrag schreiben gelangt man in die Editieransicht des Blogs. Dies setzt voraus, dass man eingeloggt ist, denn obwohl bei der Erstellung des Links Öffentlich als Zugriffsebene gewählt wurde, wird diese Option von den Einstellungen des Blogs in der Konfiguration (s. u. Abschnitt 23.2.1) überschrieben. Damit hat in diesem Multi-User-Blog standardmäßig jeder nur Schreibzugriff auf seinen eigenen Blog. 160
    • Die Editieransicht mit dem TinyMCE kennen Sie bereits von der Bearbeitung der »normalen« Joomla!-Artikel. Zusätzlich gibt es einen Bereich zum Anhängen von Dateien. Leider funktionierte dieses Feld zum Zeitpunkt der Drucklegung dieses Buches noch nicht. Am Ende der Seite ist die Vergabe von Tags möglich, anhand derer die Blog- Einträge schnell und zuverlässig gefunden werden sollen. Was ist Tagging? Tagging bedeutet die intellektuelle Verschlagwortung und Interpretation des Materials, die durch eine riesige Anzahl von Nutzern zu einer effektiveren Suche führt. Dabei können beliebig viele Schlagwörter ganz frei ohne zuvor festgelegte Regeln vergeben werden. Dies schließt allgemeine Kategorien, wie »Rezept« und »Fussball«, aber auch beschreibende und subjektive Attribute wie »German« oder »cool« mit ein. Hier klicken, um das Bild zu vergrößern Abbildung 23.4 Das Eingabefeld für Tags Die Bedienung dieser Funktion ist sehr einfach: Geben Sie Ihrem Blog-Eintrag Schlagwörter mit, die die Aussage des Artikels möglichst gut erfassen. Die Tags werden durch Kommata getrennt in das Eingabefeld eingetragen. Unter dem Eingabefeld werden Ihnen als Vorschläge die Tags angezeigt, die schon existieren. Bereits für Blog-Artikel vergebene Tags erscheinen in einer etwas größeren Schrift. Wenn Sie auf einen der Vorschläge klicken, wird dieser auch in das Eingabefeld eingefügt. Die Tags werden im Backend in einem eigenen Manager verwaltet (s. u. Abschnitt 23.2.3). Beenden Sie die Erstellung Ihres Blog-Eintrags mit einem Klick auf den Speichern-Button. Als Autor des Blogs können Sie über die entsprechenden Links den Artikel stets bearbeiten oder gar löschen. Beiträge kommentieren Der fertiggeschriebene Artikel ist nun samt Tags und noch nicht individualisiertem Profilbild über den Menüpunkt für alle sichtbar. Die Leser des Blogs können den Blog-Eintrag über ein darunter angehängtes Bearbeitungsfenster kommentieren (Abbildung 23.5). 161
    • Hier klicken, um das Bild zu vergrößern Abbildung 23.5 Einen Blog-Artikel kommentieren Profil pflegen Wie oben bereits erläutert wurde, ist der IDoBlog als Multi-User-Blog mit mehreren Community-Funktionen ausgestattet worden. Dazu gehört auch, dass jeder User ein eigenes Profil mit einem Avatar, also einem Benutzerbild, erhält, das jedes Mal rechts neben dem eigenen Blog-Artikel des jeweiligen Users angezeigt wird. Um Ihr Profil zu bearbeiten, klicken Sie auf den Avatarplatzhalter und gelangen damit zu Ihrer noch leeren Profilseite. Über den Link Profil bearbeiten kommen Sie zu folgenden Profilregistern, die Sie nun befüllen können: • Zusätzliche Informationen: Hier können Sie in einem Textfeld einen Freitext eingeben, der unter Ihrem Bild in der Profilansicht erscheinen wird. • Profil bearbeiten: In diesem Register können Sie die angeforderten Daten, wie z. B. Ihre ICQ-Nummer oder Ihr Geburtsdatum in die jeweiligen Formularfelder eintragen. Es ist hier für Sie sogar möglich, Ihr Joomla!-Passwort zu ändern. • Avatar: Über den letzten Reiter können Sie ein Bild hochladen, das dann immer in Verbindung mit Ihren Blog-Beiträgen oder Ihrem Profil angezeigt wird. Hier klicken, um das Bild zu vergrößern Abbildung 23.6 Ein Benutzerbild hochladen Avatar entfernen Falls Sie den von Ihnen gewählten Avatar wieder loswerden wollen, aber noch kein geeignetes Ersatzbild gefunden haben, das Sie stattdessen 162
    • hochladen möchten, müssen Sie das bisherige Bild im Medien-Manager im Backend im Ordner IDoBlog löschen. 23.1.3 Den Blog administrieren Die Hauptarbeit mit dem IDoBlog erfolgt über das Frontend (s. o.). Hier werden die Artikel geschrieben, kommentiert, überarbeitet und – falls notwendig – gelöscht. Die Verwaltung des Blogs im Backend betrifft lediglich die grundlegenden Einstellungen. Konfiguration • Grundeinstellungen: Hier können Sie z. B. die Größe der Avatare, Datumsformate und weitere Anzeigeoptionen bearbeiten. Zusätzlich können einige Funktionen, wie z. B. Smileys aktiviert bzw. deaktiviert werden (vgl. Abbildung 23.7). • Benachrichtigungen: Wenn ein neuer Beitrag oder Kommentar in den Blog bzw. die Blogs gestellt wurde, besteht die Möglichkeit, den Administrator oder die User über diese Aktion in Kenntnis zu setzen. Wer, wann und mit welcher Meldung benachrichtigt wird, wird in diesem Reiter festgelegt. • Einstellungen: Hier wird bestimmt, welche Rechte die jeweiligen Joomla!-Berechtigungsgruppen im IDoBlog besitzen. • Statistiken: Dieses Register gibt Ihnen lediglich zwei Informationen: wie viele User und wie viele Blogs es gibt. Hier klicken, um das Bild zu vergrößern Abbildung 23.7 Die Grundeinstellungen der Konfiguration 163
    • Vorlagen Um das Look & Feel Ihres Blogs ein wenig zu verändern, können Sie unter Vorlagen aus drei verschiedenen Vorschlägen ein Template auswählen und den Blog umstellen (vgl. Abbildung 23.8). Hier klicken, um das Bild zu vergrößern Abbildung 23.8 Drei Vorlagen zur Auswahl … Wenn Sie direkt auf eine der Vorlagen klicken, wird Ihnen diese in der Vergrößerung angezeigt, so dass Sie sich ein besseres Bild vom Layout machen können. Falls Sie Ihre Vorstellungen in einer eigenen CSS-Datei umgesetzt haben, besteht die Möglichkeit, diese hochzuladen und zu installieren. Tags Die oben erläuterten Tags werden hier verwaltet. Viel gibt es dazu nicht zu sagen: Die Tags werden in der Listenansicht angezeigt, können beliebig ergänzt und wieder gelöscht werden. Aktualisieren Auch die letzte Schaltfläche, Aktualisieren, ist weitestgehend selbsterklärend: Hier wird Ihr IDoBlog aktualisiert und gegebenenfalls repariert. 24 Wiki: JoomlaWiki Ein Wiki ist eine einfach zu bedienende webbasierte Plattform, die es den Betrachtern einer Seite erlaubt, den Inhalt zu ändern, indem sie diese Seite online im Browser editieren. Sie werden sich nun sicherlich fragen, wo denn der Unterschied zu einem CMS liegt. Viele Leute sind tatsächlich der Meinung, dass das Wiki nichts anderes als eine besondere Form des CMS ist, obwohl beide Technologien 164
    • historisch völlig verschiedene Ursprünge und Entwicklungslinien durchlaufen haben. Im Gegensatz zum CMS liegt der Schwerpunkt beim Wiki auf der kooperativen Arbeit an gemeinsamen Texten bzw. Hypertexten. Sie können ein Wiki natürlich auch allein nutzen, doch das Besondere an dieser Software ist, dass sie zur Entstehung einer Community beitragen kann, wie man am Paradebeispiel der Wikipedia sehr schön beobachten konnte. Für die Zusammenarbeit mit anderen Leuten stellt das Wiki daher auch besondere Funktionen zur Verfügung: z. B. Seiten, die übersichtlich die letzten Änderungen des Artikels aufzeigen, Seiten, auf denen man mit anderen über den Artikel diskutieren kann, und die Option, ältere Versionen wiederherzustellen. Wenn Sie das hier beschriebene JoomlaWiki in Ihr Joomla!-System einbinden, geben Sie den Usern also eine Möglichkeit, schneller und einfacher Texte gemeinsam zu generieren und/oder zu diskutieren, als Sie das in Joomla! oder einem anderen CMS selbst bewerkstelligen könnten. Das Wiki ist hier ein eigenes kleines Subsystem, das die User-Accounts zunächst von Joomla! übernimmt. Danach kann der Wiki-Sysop (das ist der Super Administrator aus Joomla!) allerdings eigene Einstellungen vornehmen, die nur das Wiki betreffen, z. B. einen User blocken oder ihm Sysop-Rechte erteilen. Die aktuelle Version des Wikis ist das JoomlaWiki 0.9.7. Dieses Wiki basiert auf dem MediaWiki 1.5.8, das in einer etwas aktuelleren Version auch der Wikipedia zugrunde liegt. Der Vorteil dieses sogenannten Wiki-Klons liegt in seiner einfachen Bedienbarkeit und seiner Mehrsprachigkeit, denn hier können Sie eine Auswahl aus ca. 80 Sprachen treffen, darunter auch Exoten wie z. B. Plattdüütsch. 24.1 Installation Das JoomlaWiki gehört zu den Erweiterungen, die für eine ältere Joomla!- Version kreiert wurden. Daher sollten Sie vor der Installation unter Erweiterungen • Plugins die Option System – Legacy aktivieren. 165
    • Hier klicken, um das Bild zu vergrößern Abbildung 24.1 Das Plug-in »System – Legacy« Erst danach können Sie das Paket com_joomlawiki-0.9.7.zip unter Erweiterungen • Installieren/Deinstallieren im ersten Formularfeld hochladen und installieren (siehe Abschnitt 9.4, »Neue Erweiterungen installieren«). Wenn die Installation der Erweiterung erfolgreich war, erscheint das Wiki u. a. im Menü Komponenten (Abbildung 24.2). Hier klicken, um das Bild zu vergrößern Abbildung 24.2 Die Wiki-Optionen im Menü Komponenten Wie Sie sehen, erreicht man darüber leicht die Setup-Seite, die Sie als Nächstes aufrufen müssen, um die Einrichtung fortzusetzen. Diese füllt die Datenbank und stellt die Konfigurationsdatei des Wikis ein. Sie wird Ihnen danach mitteilen, dass die Installation erfolgreich war und Sie weitere Einstellungen unter Configuration vornehmen können. Über Show Page haben Sie bereits im Backend Zugriff auf das Wiki. Sicherheitslücken stopfen! Sie sollten nun das Installationsverzeichnis config aus dem Wiki-Verzeichnis components/com_joomlawiki entfernen. Ansonsten könnte es von unberechtigten Personen geöffnet werden, die mit den enthaltenen Skripten die aktuelle Datenbank löschen und eine neue erstellen könnten. 166
    • Nun können Sie das Wiki z. B. über das Hauptmenü im Frontend verankern, indem Sie über Menüs • Hauptmenü einen neuen Eintrag, z. B. namens »Mein Wiki« erstellen und mit der Komponente JoomlaWiki verbinden (siehe Abschnitt 6.3.3, »Einen Menüpunkt erstellen«). Mit der Installation des JoomlaWikis wurde Ihnen automatisch ein weiteres Menü, Wiki Options, zur Verfügung gestellt, das mit der Menüposition »Wiki« definiert wurde. Diese Position muss erst im Layout definiert werden, damit das Menü sichtbar wird (vgl. Kapitel 12, »Was macht ein Template aus?«). Bisher sehen Sie es nur, wenn Sie ihm eine andere, bereits bekannte Position, z. B. »left«, zuweisen. Das Wiki-Menü soll standardmäßig zu den Verwaltungsseiten eines Wikis, wie z. B. Recent Changes und Preferences, verlinken. Sie können natürlich Menüeinträge löschen und hinzufügen. Um das Menü zu aktivieren, muss man es zunächst in der Bearbeitungsansicht der Modulverwaltung aktivieren (Abbildung 24.3). Hier klicken, um das Bild zu vergrößern Abbildung 24.3 Aktivierung des Wiki-Menüs Wenn Sie sich nun ins Frontend begeben und die Komponente über den von Ihnen erstellten Menüeintrag »Mein Wiki« aufrufen, wird Ihnen das leere Wiki präsentiert (Abbildung 24.4). Hierzu müssen Sie sich allerdings erst bei Joomla! anmelden. 167
    • Hier klicken, um das Bild zu vergrößern Abbildung 24.4 Der (noch) leere Wiki-Artikel 25 Forum: FireBoard Diskussionsforen stellen eine der beliebtesten Erweiterungen für Homepages dar. Es gibt unzählige Anwendungsgebiete. So gibt es Foren für Selbsthilfegruppen, für Schulen, die sie als Lernplattform nutzen, oder für User zum Support bei Computerproblemen. Kurz: überall, wo ein Bedarf an Erfahrungsaustausch besteht, ist ein Forum die richtige Wahl. Für die Joomla!-Sites stehen mehrere Foren-Erweiterungen zur Auswahl, z. B. phpBB oder Punbo. Wir haben uns FireBoard, eine Weiterentwicklung des beliebten Joomlaboards, ausgesucht. Sowohl für den Administrator im Backend als auch für den Nutzer im Frontend bietet es zahlreiche Vorteile. So kann der Admin alle Bereiche bequem von der FireBoard-Startseite aus verwalten: Er kann Beiträge löschen, ändern und verschieben und sogar Threads [Unter Threads versteht man die verschiedenen Gesprächslinien in einer Diskussion. Ein Teilnehmer eröffnet den Thread mit einer Nachricht, und andere führen das Thema weiter. ] schließen, wenn die Diskussion zu unsinnig wird. Zusätzlich können Moderatoren bestimmt werden, die Sonderrechte genießen und Verwaltungsaufgaben übernehmen können. Der Nutzer hat z. B. die Möglichkeit, sich bei Neuigkeiten über E–Mail benachrichtigen zu lassen, und kann eine Signatur anlegen, die automatisch unter jedem seiner Beiträge erscheint. Sogar Bilder und Dateien können angehängt werden. Das Forum basiert auf der Joomla!-Userverwaltung, unterstützt aber auch eigene Profilinformationen, die über die normalen Benutzerdetails hinausgehen und von den Teilnehmern selbst editiert werden können. Die aktuelle Version ist 1.0.4. stable. Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. 168
    • Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 25.1 Installation Installieren Sie die Zip-Datei FireBoard_1.0.4_Stable_CompletePackage.zip über das Installationstool. Wenn dieser Prozess erfolgreich verlaufen ist, sollte Ihnen eine Seite mit Details zu der Erweiterung angezeigt werden. Nach der Installation kann das Forum über den Menübefehl Komponenten • Fireboard Forum administriert werden. Bevor Sie beginnen, müssen Sie noch mit der Option Clean installation die Datenbank über den Button Apply! einrichten (Abbildung 25.1). Hier klicken, um das Bild zu vergrößern Abbildung 25.1 Die Installation mit der Einrichtung der Datenbank beenden FireBoard wird auf Englisch ausgeliefert. Um auf Deutsch umzustellen, gehen Sie wie folgt vor: Entpacken Sie die mitgelieferte Datei FB_german_1.0.4.zip in ein temporäres Verzeichnis, und kopieren Sie alle Dateien aus diesem Verzeichnis in das Wurzelverzeichnis von Joomla!. Dieses Prozedere ist zugegebenermaßen nicht so komfortabel wie die Methode über das Installationstool, ist aber in einigen Fällen die einzige Vorgehensweise, die möglich ist. 26 Gästebücher Neben Foren oder Chats war die am meisten verbreitete Form der Kommunikation auf Webseiten die Möglichkeit, Einträge in Gästebücher zu machen. Obwohl das Web 2.0 mittlerweile ganz andere Möglichkeiten bietet, werden Gästebücher immer noch gern eingesetzt. Sie sind bei den Usern 169
    • bekannt und haben einen ganz eigenen Charakter. Ebenso wie in einem Restaurant oder einem Museum wird hier die Gelegenheit wahrgenommen, einen kurzen Kommentar zum Besuch zu hinterlegen. Das Gästebuch hat eine doppelte Funktion. So können sich Besucher verewigen und bei der Gelegenheit ihren Besuch auch kommentieren. Die Betreiber, in diesem Fall der Internetseite, bekommen einen Eindruck von ihren Gästen und gleichzeitig eine Resonanz zu ihrem (Web)Angebot. An mancher Stelle hat das elektronische Gästebuch das physische Gästebuch abgelöst, und Gäste eines Lokals machen ihren Eintrag im virtuellen Gästebuch am Tag nach ihrem Abendessen. Das Online-Gästebuch übernimmt also noch mehr die Funktion einer Referenzliste. Neue Besucher werden sich möglichweise an den Einträgen orientieren und entscheiden, ob sie das Lokal besuchen möchten oder nicht. Gleichzeitig bieten Gästebücher aber natürlich auch eine größere Angriffsfläche für Spammer und anonyme Neider. Die Betreiber von Online-Gästebüchern müssen also stärker am Schutz der Einträge arbeiten, als es bei realen Gästebüchern der Fall ist. Wir werden Komponenten etwas genauer betrachten. Natürlich liegt hier auch das besondere Augenmerk auf der Bedienbarkeit und der Sicherheit der Gästebücher. 26.1 Phoca Guestbook Betrachten wir zunächst das Phoca Guestbook. Das Erweiterungspaket muss vor der Installation über das Joomla!-Backend entpackt werden. Es beinhaltet zwei Dateien; die eigentliche Komponente und das deutsche Sprachpaket. 1. Installieren Sie im Backend über das Menü Erweiterungen • Installieren/Deinstallieren die Komponente com_phocaguestbook_v1.3.1_beta.zip. 2. Sie werden gefragt, ob Sie Phoca installieren möchten oder ob es sich um ein Upgrade handelt. In unserem Fall wählen wir die Installation. 3. Nach der Installation landen Sie auch gleich in der Phoca Guestbook- Verwaltung. 4. Bevor wir uns die Funktionen des Gästebuchs anschauen, werden wir noch die Sprachdateien aus dem Paket installieren. 5. Das funktioniert nicht über den Installationsassistenten, sondern muss manuell gemacht werden. Kopieren Sie dazu die beiden Sprachdateien in den Ordner C:xampphtdocsIHR-JOOMLAadministratorlanguagede-DE. 6. Wundern Sie sich nicht: Die Übersetzung zeigt auf den ersten Blick fast 170
    • keine Auswirkungen. Man findet die deutlichste Ausprägung in dem Menü Einstellungen. Damit ist die Installation beendet, und wir können unser erstes Gästebuch erstellen. 26.1.1 Ein kurzer Rundgang Das Phoca Guestbook ist äußerst übersichtlich und bietet in der Verwaltung nur drei Menüpunkte. Tabelle 26.1 Die Verwaltung des Phoca Guestbook Mit der Items-Übersicht haben Sie Zugriff auf einzelne Beiträge und können diese auch über das Backend löschen. Erstellen und verwalten Sie hier Ihre Gästebücher. Über den Info-Bereich gelangen Sie auch zur Phoca- Homepage, zu Anleitungen und zum Forum. Außerdem können Sie Ihr Guestbook auf Updates prüfen lassen. In der Werkzeugleiste befindet sich noch ein weiterer Button Einstellungen, über den Sie die allgemeinen Einstellungen für die Gästebücher definieren können. Die Optionen gliedern sich in drei Bereiche. Im ersten Abschnitt können Sie allgemeine Einstellungen zur Schriftfarbe etc. vornehmen. 171
    • Hier klicken, um das Bild zu vergrößern Abbildung 26.1 Einstellungen zu Inhalten und zur Darstellung des Gästebuchs Im zweiten Block kommen wir zu wichtigeren Einstellungen, denn hier können Sie eine Blacklist für unerwünschte Wörter festlegen. Begriffe, die möglichst nicht in den Texten auftauchen sollen, werden durch *** ersetzt. Außerdem findet hier auch die Einstellung zum Schutz vor Spammern statt. Definieren Sie die Captcha-Einstellungen, die bei Einträgen in Ihr Gästebuch vom User zuerst bestätigt werden müssen, bevor der eigentliche Eintrag stattfindet. Hier klicken, um das Bild zu vergrößern Abbildung 26.2 Filtern Sie unerwünschte Begriffe, und schützen Sie das Gästebuch vor Spammern. Der dritte Bereich der Konfiguration befasst sich mit weiteren Optionen zur Darstellung des Gästebuchs. Sollen z. B. der Name oder die E–Mail-Adresse des Verfassers zu sehen sein, und welches Datumsformat bevorzugen Sie? 172
    • Hier klicken, um das Bild zu vergrößern Abbildung 26.3 Weitere allgemeine Optionen für das Gästebuch Nachdem Sie diese Einstellungen vorgenommen haben, können wir zum eigentlichen Thema übergehen: Wir erstellen das erste Gästebuch. 26.1.2 Ein Gästebuch erstellen und verwalten Über Phoca haben Sie die Möglichkeit, mehrere Gästebücher zu erstellen und zu verwalten. So könnten Sie für bestimmte Themenbereiche Ihrer Website auch eigene Gästebücher anlegen. Wir werden die Prozedur für ein Gästebuch Schritt für Schritt durchgehen. 1. Klicken Sie im Phoca Guestbook Control Panel auf den Button Guestbooks. 2. Über die Werkzeugleiste können Sie mit dem Button Neu ein Gästebuch erstellen. 173
    • Hier klicken, um das Bild zu vergrößern Abbildung 26.4 Ein neues Phoca-Gästebuch erstellen 3. Geben Sie den Titel und gegebenenfalls eine kurze Beschreibung für das Gästebuch ein. 4. Speichern Sie Ihre Eingaben, und das Gästebuch ist fertig. Um das Gästebuch noch den Usern verfügbar zu machen, fehlt uns ein letzter Schritt. Wir müssen die Verknüpfung mit einem Menü erstellen, über das das Gästebuch verfügbar sein soll. 1. Wechseln Sie dazu in das Menü Menüs • Hauptmenü. 2. Klicken Sie auf den Button Neu, und wählen Sie den Menütyp Phoca Gästebuch. 3. Nun können Sie den Menütitel bestimmen und das gewünschte Gästebuch aus der Liste der Basisparameter auswählen. Hier klicken, um das Bild zu vergrößern Abbildung 26.5 Geben Sie einen Menütitel ein, und wählen Sie Ihr Gästebuch. 174
    • Jetzt finden Sie den Menülink im Frontend und können das Gästebuch aufrufen. Hier klicken, um das Bild zu vergrößern Abbildung 26.6 Unser neues Gästebuch im Frontend Sämtliche Einträge in das Gästebuch können Sie, wie bereits angekündigt, auch über das Backend erreichen. 1. Wechseln Sie dazu in die Phoca-Verwaltung über das Hauptmenü Komponenten • Phoca Gästebuch • Einträge. 2. Hier finden Sie die Auflistung sämtlicher Einträge. Klicken Sie einfach auf den gewünschten Eintrag, den Sie etwas genauer betrachten möchten. Hier klicken, um das Bild zu vergrößern Abbildung 26.7 Im Backend finden Sie die Gästebucheinträge wieder. Die Ansicht zeigt Ihnen alles an: vom Titel des Eintrags bis hin zur IP-Adresse des Besuchers. Hier bekommen Sie auch die Möglichkeit, Einträge zu überarbeiten, was man natürlich bei Gästebucheinträgen möglichst nicht 175
    • machen sollte, da der ursprüngliche Verfasser mit seinem Namen und seiner E–Mail-Adresse mit diesem Beitrag verbunden wird. 27 Noch mehr Kommunikation Nun haben wir einige große Kommunikationsplattformen besprochen. Darüber hinaus gibt es noch eine Vielzahl weiterer Tools. Sie alle aufzuzählen würde wahrscheinlich ein eigenes Buch füllen. Zwei wollen wir hier noch herauspicken, weil sie anders funktionieren als die bisher vorgestellten: Der Chat ist ein synchrones Medium, und der Podcast überschreitet die Grenze des reinen Textes. 27.1 Chat Diese schriftliche, synchrone Kommunikation existiert bereits seit den ersten Anfängen des Internets. Bis jetzt hat sie sich vorwiegend in privaten Bereichen etabliert, kann aber auch in anderen Bereichen, z. B. in der Arbeitswelt, von Nutzen sein. Für Joomla! gibt es unseres Erachtens leider nur wenige zufriedenstellende Chat-Lösungen. Da wäre zum einen jPFChat, der allerdings noch sehr fehlerträchtig ist und nur mit viel Aufwand lauffähig gemacht werden kann. Die Alternative, für die wir uns hier entschieden haben, heißt AjaxChat. Dabei handelt es sich um eine Komponente, die auf dem gleichnamigen Open- Source-Chat-Programm basiert und dies in Joomla! integriert. Die Komponente hat eine ganz akzeptable Oberfläche und läuft datenbankbasiert auf dem lokalen Server. Der Vorteil ist, dass man mit dem AjaxChat keinen Chatroom auf einem fremden Server »anmietet«. Sie bleiben also mit Ihrer Seite autonom und unabhängig von Drittanbietern. 27.1.1 Inbetriebnahme Installieren Sie das Zip-Archiv com_ajaxchat-1.2.zip als Komponente im entsprechenden Installer. Die Datei finden Sie auf der beigefügten im Ordner erweiterungen/ajaxchat. Haben Sie die Erweiterung erfolgreich eingespielt, so finden Sie im Menü Komponenten • AjaxChat zwei neue Verwaltungsmodule. 176
    • Vor dem ersten Start sollen Sie sich die allgemeinen Einstellungen des Chats ansehen. Rufen Sie dazu den Punkt Verwalte Chaträume auf, und klicken Sie auf das Symbol Einstellungen. Hier klicken, um das Bild zu vergrößern Abbildung 27.1 Die Einstellungen des AjaxChat Hier sollten Sie zunächst die Standard Sprache auf Deutsch umstellen. Das Aussehen des Chatraums können Sie im Feld Standard Stil bestimmen. Daneben finden Sie noch einige Berechtigungen für das Verhalten im Chat, bei denen Sie erst mal die Standardeinstellungen beibehalten können. Klicken Sie auf Speichern, um die Änderungen wirksam werden zu lassen. Wie bei Komponenten üblich, erscheint AjaxChat erst dann im Frontend, wenn Sie im Menü einen Link gesetzt haben. Erzeugen Sie also einen neuen Menüpunkt im Hauptmenü, der den Typ Ajax Chat und den Untertyp Ajax Chatfenster hat. Im Einstellungsbereich des Menüpunkts selbst sollten Sie im Bereich Umleitung beim Abmelden noch eine Zielseite eingeben, die aufgerufen wird, wenn sich ein Chatter ausloggt. Tun Sie das nicht, ist eine Abmeldung im Chat nicht möglich. Vergessen Sie nicht, einen Titel für den Menüpunkt anzugeben, und speichern Sie die Änderungen. 27.1.2 Der Chat Jetzt können Sie ins Frontend wechseln und die Chat-Komponente über das Menü aufrufen. Dann sollten Sie einen Chat-Bereich sehen, wie er in Abbildung 27.2 dargestellt ist. 177
    • Hier klicken, um das Bild zu vergrößern Abbildung 27.2 Der Chat Wenn Sie sich nicht im Frontend eingeloggt haben, werden Sie als »guest« angemeldet. Um Nachrichten abzuschicken, geben Sie Ihre Mitteilung in das untere Textfeld ein. Sie schicken den Text ab, indem Sie auf den Button Abschicken klicken oder, einfacher, indem Sie die -Taste drücken. Der neueste Beitrag wird im Nachrichtenfenster (links) am Ende angehängt. Das Fenster wird in regelmäßigen Abständen aktualisiert, um neue Nachrichten anderer Chatter anzuzeigen. Sie können Ihre Mitteilungen auch ein wenig gestalten. Nutzen Sie dazu die Funktionsleiste am unteren Ende. Mit einem Klick auf einen Smiley wird beispielsweise der entsprechende Code eingefügt (z. B. 8)). Im Nachrichtenfenster wird dieser Code als Smiley-Bild dargestellt. Ähnlich verhält es sich mit Formatierungen. Für fette Schrift markieren Sie beispielsweise den Text, der so dargestellt werden soll, und klicken dann auf den Button mit der Aufschrift b. Um den Text werden dann Tags im BBCode- Format gesetzt: [b]fett[/b]. Wenn Sie nicht mit Ihrem Benutzernamen zufrieden sind, können Sie diesen ändern. Klicken Sie dazu im Menü rechts auf den Link Benutzernamen ändern. Im Textfeld erscheint nun die Zeile /nick. Setzen Sie dahinter einfach den neuen Wunschnamen: /nick TanzFreak Jetzt sollten Ihre Meldungen im Nachrichtenfenster unter neuem Namen angezeigt werden. Gespaltene Persönlichkeit Um die Kommunikation mit mehreren Benutzern zu testen, können Sie sich über zwei verschiedene Browser (z. B. Firefox und Internet Explorer) im Chat einloggen. 178
    • Sind mehrere Benutzer im System, haben Sie die Möglichkeit, einem der Teilnehmer eine private Nachricht zu schicken. Diese wird dann nur dem Empfänger angezeigt und mit »(flüstert)« markiert. Wählen Sie dazu im Bereich Online Benutzer den entsprechenden Teilnehmer aus, und klicken sie auf Private Nachricht schicken. Im Textfeld erscheint wieder ein Codefragment, an dessen Ende Sie Ihre Mitteilung setzen: /msg (username) Hallo Wenn Sie dauerhaft ein privates Gespräch führen wollen, können Sie das über den Link Privaten Kanal öffnen machen. Dann wird jede Nachricht im Flüstermodus gesendet. Sind Sie bereits in Joomla! angemeldet, haben Sie neben dem öffentlichen Chatraum (Public) noch weitere Räume zur Verfügung. Sie können zwischen diesen wechseln, indem Sie aus dem Dropdown-Feld Raum einen anderen Chatraum auswählen. Vielleicht haben Sie schon bemerkt, dass man alle Aktionen, die im Chat getätigt werden, nicht nur per Mausklick, sondern auch per Steuercode ausführen kann. Eine Liste der verfügbaren Steuercodes finden Sie in Tabelle 27.1. Tabelle 27.1 Die Aktionen im Chat Steuercode Funktion Einen Chatraum betreten. Sind Sie ein registrierter Benutzer, können Sie auch einen privaten Raum /join Raumname erstellen, indem Sie den Raumnamen einfach weglassen. /invite Einen anderen Benutzer in den Chatraum einladen, in (Benutzername) dem man sich gerade befindet. /uninvite Die Einladung zurücknehmen. (Benutzername) /quit Aus dem Chat abmelden. /msg Eine private Nachricht an den angegebenen Teilnehmer (Benutzername) senden. Meldung /query Einen privaten Kanal zum angegebenen Benutzer öffnen. (Benutzername) /query Diesen Kanal wieder schließen. /action Meldung Eine Aktion beschreiben. Diese wird kursiv ausgegeben. /describe (Benutzername) In einer privaten Unterhaltung eine Aktion beschreiben. Meldung 179
    • /ignore Meldungen des angegebenen Teilnehmers werden nicht (Benutzername) mehr angezeigt. /whereis Gibt den Chatraum aus, in dem sich der angegebene (Benutzername) Teilnehmer gerade befindet. /who Alle Teilnehmer auflisten, die gerade online sind. /list Alle verfügbaren Chaträume auflisten. Mit dieser Aktion können Sie würfeln. Es wird eine Zufallszahl erzeugt. Die optionale Angabe [Anzahl] legt /roll fest, wie oft gewürfelt werden soll. Mit [Seiten] bestimmen [Anzahl]d[Seiten] Sie, wie viele Seiten der hypothetische Würfel hat. Ein Beispiel: /roll 2d6 würfelt zweimal mit einem Standardwürfel. Tauscht den Benutzernamen gegen den angegebenen /nick Benutzername Wert aus. Nur Moderatoren /kick Einen Benutzer für eine bestimmte Zeit aus dem Chat (Benutzername) ausschließen. [Zeit] /bans Listet alle ausgeschlossenen Benutzer auf. /unban Hebt die Sperre für den angegebenen Benutzer auf. (Benutzername) /whois Zeigt die IP-Adresse des angegebenen Benutzers an. (Benutzername) Die Benutzerberechtigungen werden direkt aus Joomla! übernommen. Dabei gilt folgende Zuordnung: Tabelle 27.2 Die Zuordnung der Berechtigungen Joomla! AjaxChat Gast Guest Registrierter Benutzer Normal user Benutzer mit höherer Berechtigung Moderator Super Administrator Admin 27.1.3 ShoutBox Mit einem Zusatzmodul können Sie aus dem AjaxChat eine sogenannte ShoutBox machen. Das ist ein Bereich, in dem jeder, der die Seite besucht, ohne vorherige Anmeldung einen Kommentar hinterlassen kann. Diese 180
    • Kommentare werden dann ähnlich wie in einem Chat in einem Feld angezeigt. Hier klicken, um das Bild zu vergrößern Abbildung 27.3 Die ShoutBox Die ShoutBox wurde bereits mit der Installation des AjaxChats mitgeliefert und muss nur noch aktiviert werden. Dabei müssen Sie in den Einstellungen im Feld Haupt-Chatseite die Seite angeben, auf der die AjaxChat- Komponente eingebunden ist. Die Einstellungen dieses Chats werden auch für die ShoutBox verwendet. Ebenso finden sich in der ShoutBox die Kommentare aus der Komponente. Eigener ShoutBox-Chat Wenn Sie die ShoutBox unabhängig von einem anderen Chat machen wollen, so müssen Sie zu einem Trick greifen. Erstellen Sie einen Menüeintrag auf den Chat in einem separaten Menü. Dieses lassen Sie auf einer Position anzeigen, die es nicht im Template gibt, z. B. »hidden«. 28 Installation beim Webhost Der Sinn und Zweck von Joomla! ist es, Ihre Webpräsenz darzustellen. Ein Testsystem ist daher zum Spielen ganz nett, aber irgendwann muss man die Seite auch der großen, weiten Welt vorstellen. Also ab zum Provider, und das System übertragen! Natürlich ist die Veröffentlichung einer Seite immer ein spannender und manchmal auch nervenaufreibender Prozess. Aber keine Sorge, der Umzug ist in der Regel mit wenigen Schritten einfach zu bewältigen. 181
    • Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 28.1 Kriterien zur Webhost-Wahl Der erste Schritt zur Webpräsenz ist die Wahl eines geeigneten Hosters. Bei der Vielfalt der Angebote ist es schwer, sich für einen Dienstleister zu entscheiden. Es gibt jedoch einige Kriterien, die Ihnen die Entscheidung erleichtern können. Zunächst sollten Sie sich Gedanken über die Größe Ihrer Seite und das Zielpublikum machen. Haben Sie nur eine kleine Seite als persönliche Visitenkarte, so reicht Ihnen ein Webspace mit 100 MB mehr als aus. Auch ein Übertragungsvolumen von 1 GB sollte auf alle Fälle genügen. Anders ist die Lage, wenn Sie vorhaben, viele Dateien, beispielsweise Bilder, ins Netz zu stellen. Dann ist Plattenplatz sehr kostbar, und Sie sollten hier nach einem möglichst hohen Wert streben. Ist Ihre Seite darauf ausgelegt, sehr viele Besucher anzuziehen, zählt vor allem die Leistung des Servers und das Traffic-Volumen, das Ihnen zur Verfügung steht. Achten Sie darauf, dass sich die Anzahl der übertragenen Daten multipliziert. Wenn 1000 Besucher am Tag ein Bild mit 100 KB ansehen, haben Sie 100 MB Übertragungsvolumen täglich! Wichtig ist auch, dass Sie Ihre eigenen Kenntnisse in Bezug auf den Betrieb von Servern richtig einschätzen. Bei einigen Providern ist Joomla! bereits vorinstalliert und Sie müssen das System nur noch mit Daten befüllen. Andere Angebote überlassen Ihnen die volle Kontrolle über einen (virtuellen) Server. Folgende Modelle findet man sehr häufig: • Joomla! Hosting. Das ist die einfachste Variante. Sie bekommen einen Webspace auf einem Shared-Hosting-Server. Joomla! ist bereits vorinstalliert. Wichtig ist, dass Sie das System selbst erweitern können. Ein Update-Service auf neue Joomla!-Versionen sollte aber inbegriffen sein. Sie haben häufig die Auswahl zwischen verschiedenen Paketen, bei denen die eine oder andere Erweiterung schon vorinstalliert ist. Das kann im Zweifelsfall einige Nerven sparen. Viele Hoster bieten zudem Support beim Betrieb von Joomla! an. • Shared Hosting. Das ist die häufigste und kostengünstigste Variante des Webhostings. Auf einem Server werden mehrere (hundert) Webseiten betrieben. Jeder Kunde hat einen eigenen Bereich, auf den er per FTP oder SSH zugreifen kann, und ein gewisses Speicherkontingent. Der Provider kümmert um die Server-Software, 182
    • spielt Updates ein und wartet das System. Das hat allerdings seinen Preis: Sie haben in der Regel nur sehr eingeschränkten Zugriff auf die Konfiguration beispielsweise von PHP oder des Apache-Servers. Achten Sie hier in jedem Fall auf Vertrauenswürdigkeit des Providers. Bei einer schlechten Serverkonfiguration kann es vorkommen, dass Ihre Mitnutzer auf dem Server auch Zugriff auf Ihre Dateien bekommen. • Dedizierter Server. In diesem Fall haben Sie einen eigenen Server. Meistens handelt es sich um eine virtuelle Instanz, also nicht um einen physikalischen Rechner. Dennoch haben Sie hier die volle Kontrolle über das System, aber auch die volle Verantwortung dafür. Dedizierte Server haben meistens mehr Speicherplatz und ein höheres Transfervolumen als Shared-Hosting-Lösungen. Vor allem aber bieten sie Ihnen exklusive Rechenpower und damit Geschwindigkeit beim Seitenaufbau. Wichtig ist neben den technischen Daten vor allem, dass Ihr Webhost einen guten Service bietet. Eine Hotline mit technischem Ansprechpartner beispielsweise kann nicht schaden. Gerade, wenn sich Hoster auf den Betrieb von Joomla! spezialisiert haben, können die Mitarbeiter eventuell auch bei Ihren Problemen Hilfestellung geben. Aber hegen sie keine zu hohen Erwartungen: Gute Qualität hat ihren Preis, und individuelle Beratung ist meistens kostenpflichtig. 29 Backup und Upgrade Um ein System wie Joomla! dauerhaft am Laufen zu halten, ist es nötig, regelmäßige Wartungen durchzuführen. Diese dienen zur Erhaltung der Systemstabilität und zur Sicherung des aktuellen Zustands für den Fall der Fälle. Darüber hinaus wollen viele Administratoren und Benutzer die Entwicklungen des Systems und neue Features, die eingeführt werden, nicht verpassen. 29.1 Backup der Daten Kein Administrator und kein System ist perfekt. Wenn Sie eine Webseite betreiben, müssen Sie immer damit rechnen, dass sich ein Fehler im System einschleicht, dass Hardwarekomponenten ausfallen, dass es zu einem Absturz kommt oder dass Sie gehackt werden. In diesem Fall sind möglichst aktuelle Sicherungskopien das A und O einer schnellen Wiederherstellung. 183
    • Diese Backups sollten Sie auf alle Fälle vor größeren Änderungen an der Seite erstellen. Noch besser ist es, wenn Sie die Datensicherung auf einer regelmäßigen Basis, am besten täglich, durchführen. Um die Daten einer Joomla!-Installation zu sichern, sind zwei Schritte notwendig. Erstens müssen die Daten aus dem joomla-Verzeichnis kopiert werden, und zweitens brauchen Sie eine Kopie der Datenbank. Um die alte Version wiederherzustellen, löschen Sie einfach die bestehende Datenbank und leeren das joomla-Verzeichnis. Jetzt kopieren Sie die archivierten Dateien wieder in das Verzeichnis und spielen das Backup wieder in die Datenbank ein. Bei der Datensicherung können an zwei Stellen Probleme auftreten: • Die Zugriffsberechtigungen auf Dateien und Verzeichnisse sowie deren Besitzer gehen verloren. • Die Kodierung der SQL-Daten wird verändert. Um diesen Problemen vorzubeugen, ist es ratsam, die Daten zunächst auf dem Rechner zu sichern, auf dem sich die Joomla!-Installation befindet, und erst das vollständige Backup auf den eigenen Rechner zu kopieren. Video-Lektion Zu diesem Kapitel finden Sie auch eine geeignete Video-Lektion auf der DVD. Hier können Sie das beschriebene Vorgehen Schritt für Schritt anschaulich mitverfolgen. 29.1.1 Manuelles Backup Am leichtesten haben Sie es, wenn Ihr Webhost eine Backup-Funktion anbietet. Dann müssen Sie nur das Backup anstoßen und sich um nichts weiter kümmern, da hier in der Regel Datenbank und Dateien gesichert werden. Ist das nicht der Fall, können Sie meistens mit einem FTP-Programm die Dateien sichern und über phpMyAdmin die Datenbank exportieren. Dabei kann es allerdings unter Umständen zu oben genannten Schwierigkeiten kommen. Auch unter XAMPP steht Ihnen dieses Programm zur Verfügung. Geben Sie in der Adresszeile Ihres Browsers einfach die URL http://localhost/phpmyadmin ein. Wählen Sie nun links im Dropdown-Feld Datenbank den Eintrag »joomla« aus. Jetzt wird eine Liste der vorhandenen Tabellen angezeigt. Klicken Sie auf den Reiter Exportieren. Es erscheint eine neue Seite mit einigen Einstellungen, die Sie in der Regel auf den Standardwerten belassen können. 184
    • Setzen Sie den Haken bei Senden, und klicken Sie auf OK. Es sollte sich ein Download-Fenster öffnen, über das Sie Ihr Backup speichern können. Um die Daten wieder einzuspielen, rufen Sie phpMyAdmin nochmals auf und wählen die Datenbank »joomla« aus. Klicken Sie nun auf den Reiter Importieren. Es erscheint ein neues Formular. Im Bereich Zu importierende Datei klicken Sie auf Durchsuchen… Wählen Sie jetzt die zuvor gespeicherte SQL-Datei aus, und klicken Sie auf Öffnen. Dann sollte der Pfad zur Datei im Feld Datei stehen. Wenn Sie jetzt OK anklicken, wird die Datenbank eingespielt. Wenn Sie einen SSH-Zugang zu Ihrem Webspace oder direkten Zugriff auf den Server haben, können Sie über einige Kommandozeilenbefehle die Datenarchive erstellen und dann an einen sicheren Ort bringen. Verpacken Sie zunächst die Dateien in eine Archivdatei. Stellen Sie dazu sicher, dass Sie sich im Joomla!-Wurzelverzeichnis befinden, und geben Sie dann folgenden Befehl ein: tar czvf joomla_backup.tar.gz * Mit dem Kommando wird die Datei joomla_backup.tar.gz erstellt, die alle Dateien und Verzeichnisse enthält. Diese Datei können Sie nun getrost an einen anderen Ort kopieren. Um die Daten zurückzuspielen, verwenden Sie folgenden Befehl: tar xzvf joomla_backup.tar.gz Jetzt wird das Archiv entpackt, und die Daten werden wieder in die Verzeichnisse gespeichert. Die Datenbank sichern Sie über folgenden Befehl: mysqldump –u root –p joomla > joomla.sql Statt »root« müssen Sie gegebenenfalls den Datenbank-Usernamen angeben, und »joomla« steht für den Namen der Datenbank. Auch diese Datei können Sie an einem sicheren Ort aufbewahren. Um sie zurückzuspielen, verwenden Sie den Befehl: mysql –u root –p joomla < joomla.sql Natürlich müssen Sie die Parameter an Ihre Gegebenheiten anpassen. 29.1.2 Die Backup-Komponente Joomla! bietet auch eine Komponente, die Ihnen die Erstellung und Verwaltung von Backups sehr erleichtert. Diese hat den Namen JoomlaPack. Dieses Sicherungsprogramm behält Dateibesitzer und -berechtigungen bei. Es ist auf der DVD im Verzeichnis Erweiterungen/Backup zu finden. Die 185
    • Webseite der Erweiterung können Sie unter http://www.joomlapack.net besuchen. Nach der Installation können Sie die Sicherungskomponente über den Menüpunkt Komponenten • JoomlaPack aufrufen (Abbildung 29.1). Super Administrator nötig Die Sicherungskomponente ist nur für Benutzer mit Super Administrator- Rechten zugänglich. Hier klicken, um das Bild zu vergrößern Abbildung 29.1 JoomlaPack Bevor Sie die erste Sicherung durchführen, sollten Sie einige Einstellungen vornehmen. Gehen Sie dazu in die Options. Hier können Sie zwei Pfade einstellen. Im Temporären Verzeichnis werden Daten zwischengespeichert, im Ausgabeverzeichnis wird die Sicherungsdatei erzeugt und ausgegeben. Sie werden mir sicher zustimmen, dass diese Datei besonders geschützt werden muss, enthält sie doch die Daten der gesamten Seite, inklusive abgesperrter Bereiche und der gesamten Benutzerinformationen. Daher ist es nicht ratsam, diese Sicherung in einem Ordner abzulegen, auf den jedermann aus dem Web heraus zugreifen kann. Wenn Sie die Möglichkeit haben, sollten Sie hier Verzeichnisse wählen, die außerhalb des Webordners liegen. Einige Hoster lassen dies aber nicht zu. In diesem Fall sollten Sie das gewählte Verzeichnis zumindest per .htaccess-Datei sichern. Egal, wie Sie die Verzeichnisse einrichten, wichtig ist, dass diese für den Webserver beschreibbar sind. Ob das der Fall ist, können Sie links in den Bereichen Übersicht und Details sehen. Wenn Sie bestimmte Verzeichnisse, Dateien oder Datenbanktabellen nicht sichern wollen, können Sie diese im Control Panel über die entsprechend beschrifteten Symbole markieren. Jetzt können Sie mit der Sicherung beginnen. Gehen Sie dazu auf Jetzt sichern (oder den Reiter Backup now). Hier haben Sie zwei Möglichkeiten: Sie können die Ganze Seite sichern oder nur die Datenbank sichern. Mit 186
    • einem Klick auf den entsprechenden Link wird das Backup gestartet. Es erscheint ein Statusfenster, das Sie über den Fortschritt informiert und eine Meldung erzeugt, wenn der Vorgang abgeschlossen ist (Abbildung 29.2). Wundern Sie sich nicht, wenn der Sicherungsprozess eine paar Minuten oder länger in Anspruch nimmt. Fehlermeldungen Reißt der Informationsfluss von Server zum Browser während der Sicherung ab, so meldet JoomlaPack einen Fehler. Dennoch wird die Sicherung weiter ausgeführt. Warten Sie auf alle Fälle, bis ein Haken vor Die Sicherung ist abgeschlossen erscheint, und überprüfen Sie dann das Backup. Hier klicken, um das Bild zu vergrößern Abbildung 29.2 Die Sicherung ist abgeschlossen. Backup im Backup … Vorsicht, wenn Sie Backups unterhalb des Joomla!-Ordners erstellen. Den entsprechenden Ordner müssen Sie auf alle Fälle aus dem Backup-Prozess ausschließen, ansonsten kann es passieren, dass die Wiederherstellung nicht mehr möglich ist. Die fertigen Backups können Sie im Bereich Sicherungen verwalten herunterladen. Das sollten Sie auch tun, denn eine Regel in Sachen Datensicherung besagt, dass die Sicherungsdateien auf einem physikalisch separaten Rechner liegen, um beispielsweise Festplattencrashs auszuschließen. Öffnen Sie die Zip-Datei 187
    • Es wird gelegentlich berichtet, dass sich die heruntergeladenen Zip-Archive nicht öffnen lassen. Sie sollten das daher gleich nach dem Download überprüfen und das Backup gegebenenfalls neu erstellen. Um Backups wieder herzustellen, entpacken Sie das Zip-Archiv und kopieren die Inhalte an den Ort der alten Seite. Die alten Dateien sollten Sie zuvor löschen. Dann rufen Sie die Seite auf. Sie gelangen in einen Installationsmodus, der so ähnlich aussieht wie der Dialog bei der Installation. Geben Sie dort die gewünschten Informationen ein, insbesondere die zur Datenbankanbindung. Dann wird die Seite automatisch wieder hergestellt. Wenn es nicht weitergeht Es kann vorkommen, dass der Wiederherstellungsprozess nach der Eingabe der Datenbank stockt. Sie können den nächsten Schritt aufrufen, indem Sie am Ende der URL den Parameter task=db gegen task=config austauschen. Der Wiederherstellungsprozess kann noch einfacher gestaltet werden. Dazu brauchen Sie den Kickstart von JoomlaPack, den Sie auf der DVD unter erweiterungen/joomlapack finden. Kopieren Sie statt des entpackten Backup- Archivs nur die gezippte Backup-Datei und die Datei kickstarter.php in Ihren Webordner. Rufen Sie dann die URL http://pfad/zu/joomla/kickstart.php auf. Nun können Sie auswählen, welches Backup Sie entpacken wollen (falls Sie mehrere hochgeladen haben). Der Kickstarter entpackt das Archiv und achtet dabei darauf, dass .htaccess-Dateien erst erstellt werden, nachdem der Installationsprozess erfolgreich war (siehe Abbildung 29.3). Hier klicken, um das Bild zu vergrößern Abbildung 29.3 Der Kickstart 188
    • .htaccess und die Installation Diese Dateien schützen bestimmte Ordner im Netz vor unbefugtem Zugriff. Bei der Wiederherstellung eines Backups kann es dadurch jedoch zu Problemen kommen. Nachdem der Kickstart die Dateien entpackt hat, wird eine Meldung ausgegeben, die zwei Links enthält. Klicken Sie auf den ersten Link, startet der oben beschriebene Installationsdialog in einem separaten Fenster. Schließen Sie den Kickstart nicht, den brauchen wir noch. Gehen Sie durch den Installationsdialog. Nachdem das Backup hergestellt worden ist, gehen Sie zurück in das Fenster des Kickstarters und klicken auf den zweiten Link. Dann werden die überflüssigen Archiv-Dateien gelöscht und die .htaccess- Dateien wieder aktiviert. Hier klicken, um das Bild zu vergrößern Abbildung 29.4 Nach dem Entpacken Sie können JoomlaPack auch nutzen, um eine Seite auf einem anderen Server zu installieren. Mithilfe des Kickstarters können Sie ein Backup an jedem beliebigen Ort einspielen, vorausgesetzt, Sie haben eine Datenbank zur Verfügung. 30 Tools In diesem Kapitel wollen wir Ihnen ein paar Helferlein vorstellen, die die tägliche Arbeit mit Joomla! ein wenig erleichtern. Betrachten Sie es als Panoptikum, das Ihnen die Highlights zeigt, ohne Anspruch auf Vollständigkeit zu erheben. 30.1 Editor: JCE Bei der Standardinstallation bringt Joomla! bereits den Editor TinyMCE mit. Es gibt jedoch noch eine Reihe anderer WYSIWYG-Editoren, die Sie zusätzlich einbinden können, z. B. den JoomlaFck oder EditArea. Diese 189
    • Programme sind sich im Prinzip sehr ähnlich, doch jeder Editor hat seine »Spezialität«, die für Sie von Interesse sein könnte. Wir möchten Ihnen hier den JCE vorstellen. Er ist wesentlich komfortabler als TinyMCE in der Handhabung der Funktionen, z. B. indem er Sie beim Einfügen von Bildern mit einem Durchsuchen-Fenster unterstützt. Zudem bietet er Ihnen einige zusätzliche Formatierungsbefehle und die Möglichkeit, Dateien hochzuladen. Seine Besonderheit versteckt sich im Verlinkungsdialog, denn hier können Sie nicht nur Verbindungen zu anderen Seiten im WWW einstellen, sondern auch Links zu den Artikeln im gleichen Joomla!-System. Die aktuelle Version dieses Editors ist 1.5. 30.1.1 Installation Holen Sie sich die Datei plg_jce_151.zip, und installieren Sie das Plug-in über den Menüpunkt Installieren/Deinstallieren. Zudem benötigen Sie die Konfigurationskomponente com_jce_150.zip, die Sie ebenfalls installieren müssen. Sie sollten den Editor nun in der Plug-in-Liste sehen können, und im Komponenten-Menü gibt es einen neuen Eintrag: JCE Administration. Der nächste Schritt ist die Umstellung des (Standard)-Editors auf den JCE. Dazu gehen Sie in die Konfiguration und stellen die Vorgabe für WYSIWYG-Editor auf Editor – JCE 1.5.1 um. Damit steht der Editor allen berechtigten Usern sowohl im Frontend als auch im Backend zur Verfügung. Sie haben außerdem die Möglichkeit, einem Nutzer individuell einen anderen Editor zur Verfügung zu stellen. Diese Funktion finden Sie in der Bearbeitungsansicht der einzelnen User. Wollen Sie den Editor auf Deutsch nutzen, so müssen Sie noch die entsprechenden Sprachdateien einspielen. Gehen Sie dazu auf Komponenten • JCE Administrator • Install, und laden Sie dort im Feld Paketdatei die Datei langpack_de_jce15_RC1.zip hoch. Nicht komplett Die deutsche Übersetzung war zum Zeitpunkt der Drucklegung dieser Auflage nicht vollständig verfügbar. 30.1.2 Unterschiede zum TinyMCE 190
    • Der JCE besitzt sehr viele Funktionen, die wir schon in unserer Beschreibung des TinyMCE (Abschnitt 3.3) erläutert haben. Wir werden daher gezielt auf die Besonderheiten des neuen Editors eingehen. Werfen wir einen Blick auf die Symbolleisten von JCE (Abbildung 30.1). Hier klicken, um das Bild zu vergrößern Abbildung 30.1 Die Symbolleisten des JC-Editors Sie haben sicherlich bemerkt, dass das Look & Feel der Oberfläche dem von TinyMCE sehr ähnlich ist: Das liegt daran, dass beide den gleichen Editor als Grundlage nehmen. Aber Sie finden einige neue Befehle (vgl. Tabelle 30.1). Tabelle 30.1 Zusätzliche Funktionen im JCE Symbol Funktion Format des markierten Textes, beispielsweise als vorformatierter Text, der in Schreibmaschinenschrift dargestellt wird. Hintergrundfarbe Soll die Formatierung des Textes anzeigen, hat aber momentan keine sichtbaren Auswirkungen. Sollte eigentlich die Microsoft-Tags aus einem in Word erstellten HTML-Text entfernen. Hat in der jetzigen Version noch einige Tücken … Rechtschreibprüfung. Ist leider nur in Englisch verfügbar. Drucken Vorschau Anmerkungen zum markierten Text. Diese werden angezeigt, wenn man mit der Maus über den Text geht. Auch hier können Sie verschiedene Anmerkungen machen. Bearbeitung der CSS-Eigenschaften des ausgewählten Elements Attribute des HTML-Elements. Hier ist es auch möglich, JavaScript-Ereignisse zu definieren. Link zum Weiterlesen einfügen. 191
    • Fügt ein geschütztes Leerzeichen (&nbsp;) ein. Wie oben schon angedeutet wurde, befindet sich ein wichtiges Detail in der Verlinkung zu den eigenen Artikeln. Dazu betätigen Sie die Schaltfläche Link einfügen/bearbeiten. Danach öffnet sich ein Dialogfenster, in dem unter anderem alle Artikel der Homepage aufgelistet sind (Abbildung 30.2). Hier klicken, um das Bild zu vergrößern Abbildung 30.2 Möglichkeit der Verlinkung zu anderen Artikeln Sie können nun einen beliebigen Text aussuchen und verlinken. Wenn Sie sich das Ergebnis in HTML ansehen, werden Sie verstehen, dass es wesentlich mühsamer wäre, den Pfad zu dem Artikel herauszusuchen und anzugeben: <a href="index.php?option=com_content&amp;view=article&amp;id=9: 1-million-laecheln&amp;catid=1:aktuelle-nachrichten&amp;Itemid=50"> Auch das Einfügen von Bildern ist stark vereinfacht. Wenn Sie auf die Schaltfläche Bild einfügen/bearbeiten klicken, gelangen Sie in den entsprechenden Dialog (Abbildung 30.3). 192
    • Hier klicken, um das Bild zu vergrößern Abbildung 30.3 Bilder einfügen Aus diesem Dialog heraus können Sie Bilder nicht nur auswählen, sondern auch direkt hochladen. Betätigen Sie dazu die Schaltfläche . In einem Dialogfenster (Abbildung 30.4) können Sie nun festlegen, welche Datei(en) Sie hochladen möchten. Erledigen Sie dies komfortabel über den Add File-Button. Hier klicken, um das Bild zu vergrößern Abbildung 30.4 Das Hochladen einer Datei 31 Standard-Erweiterungen 193
    • Dass Joomla! eine ganze Reihe von Erweiterungen mitbringt, wissen Sie bereits seit Kapitel 9, »Module, Plug-ins, Komponenten«. Dort haben wir einen Rundgang gemacht, die verschiedenen Typen besprochen und einige Module, Plug-ins und Komponenten als Beispiele angesehen. In diesem Kapitel folgt eine systematische Beschreibung aller restlichen Erweiterungen. Hier finden Sie viel Funktionalität, aber auch viel Detail. Wenn Sie also an einzelnen Erweiterungen nicht interessiert sind, können Sie diese getrost überspringen und die entsprechenden Passagen später bei Bedarf nachschlagen. 31.1 Module Bei den Modulen finden sich einige Anzeigeelemente, die insbesondere Ihre Startseite um viele zusätzliche Informationen bereichern und die Navigation erleichtern können. Alle nicht aufgeführten Module wurden entweder schon erwähnt oder sind eigentlich Menüs. 31.1.1 Banner Dieses Modul dient zur Anzeige von Werbebannern. Es spielt eng mit der Banners-Komponente zusammen und wurde in diesem Zusammenhang bereits in Abschnitt 9.3.1, »Banner«, besprochen. 31.1.2 Syndication Syndicates oder Newsfeeds sind Zusammenfassungen Ihrer Seite, die mit einer entsprechenden Lesesoftware (z. B. FeedReader) abgerufen werden können. Dabei wird der Inhalt der Startseite in ein XML-Dokument umgewandelt, das einem bestimmten Standard entspricht. Diese Umwandlung wird in Joomla! von einer Komponente vorgenommen. Damit die Besucher Ihrer Webseite allerdings wissen, unter welcher URL die Newsfeeds zu finden sind, gibt es das Syndication-Modul, das diese anzeigt. Tabelle 31.1 Syndication Detail Bedeutung Text Wird neben dem Feed-Symbol ausgegeben. Format Hier können Sie wählen, ob der Feed im Format RSS 2.0 oder Atom 1.0 ausgegeben werden soll. In der Darstellung ergeben sich kaum 194
    • Unterschiede. Zahl der Feedeinträge Die Anzahl der Einträge, die beim Feed erzeugt werden, können Sie in der Konfiguration unter Site • Site-Einstellungen • Feedlänge festlegen. 31.1.3 Statistik Wenn Sie ein Fan von Zahlen und harten Fakten sind, können Sie das Statistik-Modul aktivieren. Hier finden Sie Angaben über den Server, auf dem Joomla! läuft, sowie über das System selbst und die Anzahl der Seitenaufrufe. Tabelle 31.2 Details für Statistiken Detail Bedeutung Zeigt Informationen über das Betriebssystem, die PHP- und Serverinfo MySQL-Version, die Zeit und den Status von GZip (Packprogramm) und das Caching auf dem Server. Zeigt die Anzahl der Mitglieder, Inhalte und Weblinks der Seiteninfo Seite. Zeigt die Anzahl der Besucher, die sich bisher angemeldet Zugriffszähler haben. Zähler Gibt an, um wie viel der Zähler pro Besucher erhöht werden hochsetzen soll. Über Sinn und Unsinn dieser Option lässt sich streiten. 31.1.4 Archiv Das Modul Archiv stellt im Frontend einen nach Monaten geordneten Zugriff auf Inhalte dar, die ins Archiv (siehe Abschnitt 5.1, »Neue Inhalte einfügen«) übernommen wurden. 31.1.5 Bereiche Das Modul Bereiche zeigt eine Liste aller Bereiche an, die auf der Seite verfügbar sind. Bereiche, die für den aktuellen User nicht erlaubt sind, werden auch nicht angezeigt, es sei denn, Sie haben die Option Nicht zugängliche Links anzeigen aktiviert. 195
    • 31.1.6 Verwandte Beiträge Das Modul Verwandte Beiträge zeigt eine Liste mit Inhalten, die die gleichen Schlüsselwörter enthalten wie das aktuelle Element. Diese Schlagwörter werden in den jeweiligen Beiträgen im Bereich Metadaten im Feld Schlüsselwörter vergeben. 31.1.7 Wrapper Mit dem Modul Wrapper haben Sie die Möglichkeit, den Inhalt anderer Webseiten in Ihre Seite einzubinden. Das Modul erzeugt dazu einen sogenannten IFrame, in dem die Seite angezeigt wird, die sich hinter der angegebenen URL befindet. Ein IFrame ist ein abgeschlossener Bereich innerhalb einer Webseite, in den eigene Inhalte geladen werden können. Tabelle 31.3 Wrapper einstellen Detail Bedeutung Die Adresse der Webseite, die angezeigt werden soll. Wenn URL Sie die Option Protokoll hinzufügen nicht gesetzt haben, müssen Sie hier »http://« oder »https://« voranstellen. Gibt an, ob der IFrame mit Scrollbars ausgestattet werden soll. Scrollbalken Autom. legt fest, dass dies nur geschieht, wenn Scrollbars wirklich benötigt werden. Geben Sie hier die Breite des IFrames absolut in Pixel oder relativ in Prozent (mit nachfolgendem %) an. Relative Angaben Breite beziehen sich auf den enthaltenden Bereich, d. h. in unserem Fall auf das <div>-Element, das den IFrame enthält. Höhe Geben Sie hier die Höhe des IFrames ein (siehe Breite). Passt die Höhe an die tatsächliche Höhe der anzuzeigenden Autom. Höhe Seite an. Funktioniert nur in einigen Versionen. Protokoll Ist diese Option aktiviert, wird vor die URL automatisch hinzufügen »http://« gesetzt. Hier können Sie den Namen des IFrames festlegen. Das ist Zielname dann hilfreich, wenn Sie diesen von außen steuern wollen, beispielsweise per JavaScript. Vorsicht: Performance-Bremse Das Einbinden fremder Inhalte in die eigene Seite verlangsamt den 196
    • Seitenaufbau signifikant. 31.1.8 Umfragen Das Modul Umfragen dient als Frontend für die Umfragen-Komponente, die bereits in Abschnitt 9.3.4, »Umfragen«, besprochen wurde. Haben Sie mehrere Umfragen erstellt, so können Sie im Feld Umfrage aus einer Dropdown-Liste bestimmen, welche genau in diesem Modul angezeigt werden soll. 31.1.9 Wer ist online Dieses Modul zeigt eine Liste der User an, die gerade im System arbeiten. Der Parameter Anzeige bestimmt dabei, ob nur die Anzahl der User, nur die Namen der angemeldeten User oder beides angezeigt werden soll. 31.1.10 Zufallsbild Mit dem Modul Zufallsbild haben Sie die Möglichkeit, ein zufällig aus einem Verzeichnis ausgewähltes Bild anzeigen zu lassen. Tabelle 31.4 Parameter für Zufallsbilder Detail Bedeutung Hier müssen Sie angeben, welchen Typ das anzuzeigende Bildtyp Bild haben soll. Beispiele sind »JPG« oder »GIF«. Die Bilder werden aus diesem Ordner geladen. Der Pfad Bildverzeichnis muss dabei relativ zum Verzeichnis der Joomla!-Installation angegeben werden. Ein Beispiel wäre images/stories. Diese URL wird aufgerufen, wenn das angezeigte Bild Link angeklickt wird. Breite (px) Geben Sie hier die Breite des Bildes an. Höhe (px) Geben Sie hier die Höhe des Bildes an. 197
    • 31.1.11 Schlagzeilen Diese Erweiterung zeigt Beiträge aus einer bestimmten Kategorie an. Dies kann auch zufällig geschehen. Daher eignet sich dieses Modul gut für die Startseite, um den Besucher auf bestimmte Inhalte aufmerksam zu machen, ohne dabei eintönig zu werden. Tabelle 31.5 Schlagzeilen konfigurieren Detail Bedeutung Die Kategorie, aus der die Inhalte ausgewählt werden Kategorie sollen. Die Ausgabe kann entweder vertikal oder horizontal Layout erfolgen. Daneben ist es möglich, zufällig einen einzigen Inhalt auswählen zu lassen (Einen Beitrag zufällig wählen). Gibt an, ob die Bilder, die in einem Inhaltselement Bilder anzeigen enthalten sind, angezeigt werden sollen. Wenn eingeschaltet, dann kann man die angezeigten Inhalte über einen Klick auf den Titel aufrufen. Achtung: Verlinkte Titel Dazu muss natürlich die Anzeige der Titel eingeschaltet werden (siehe Beitragstitel). Letztes Legt fest, ob nach dem letzten Beitrag noch eine Trennlinie Trennelement ausgegeben werden soll. anzeigen Gibt an, ob der mehr-Link angezeigt wird, mit dem der Weiterlesen-Link Rest des Inhalts (der Haupttext) ausgegeben werden kann. Beitragstitel Bestimmt, ob der Titel mit angezeigt werden soll. Hier bestimmen Sie die Anzahl der Elemente, die Anzahl der berücksichtigt werden. Dies gilt auch für die Beiträge Zufallsausgabe. Wenn Sie keinen Wert eingeben, werden alle Elemente mit einbezogen. 31.1.12 Neueste Nachrichten und Meist gelesen In diesem Modul werden die Titel der neuesten (»Neueste Nachrichten«) bzw. beliebtesten (»Meist gelesen«) Inhaltselemente ausgegeben, sofern sie noch aktuell sind. Tabelle 31.6 Neueste Nachrichten und Meist gelesen Detail Bedeutung Reihenfolge Legt fest, ob der Zeitpunkt der Erstellung oder der 198
    • Zeitpunkt der letzten Änderung maßgeblich für die Sortierung der Beiträge ist. Hier bestimmen Sie, ob alle Beiträge in die Anzeige einbezogen werden oder nur die des angemeldeten Autoren Benutzers (mit Zugefügt oder von mir geändert) bzw. nur die der anderen Benutzer (mit Nicht zugefügt oder von mir geändert). Hier haben Sie die Möglichkeit, (mit Verstecken) Elemente Startseitenbeiträge auszublenden, die ohnehin schon auf der Startseite angezeigt werden. Wenn Sie nur Inhalte aus einer oder mehreren Kategorien ausgeben wollen, dann können Sie hier die ID angeben. Kategorie-ID Diese finden Sie in der Kategorieverwaltung unter Kategorie-ID. Mehrere IDs können Sie durch Kommas getrennt angeben. Bereich-ID Wie oben, nur für Bereiche. 31.1.13 Suche Das Modul Suche zeigt Ihnen, wie der Name schon sagt, ein Suchfeld an, mit dem Sie die Seite nach bestimmten Begriffen durchsuchen können. Wenn Sie nach einem Begriff suchen, wird Ihnen im Inhaltsbereich eine Liste mit Titeln der Seiten angezeigt, die den Suchbegriff enthalten. Die entsprechende Passage wird mitangezeigt, wobei das Suchwort jeweils hervorgehoben ist. Tabelle 31.7 Suche konfigurieren Detail Bedeutung Boxbreite Gibt die Breite des Suchfeldes an. Hier können Sie das Suchfeld mit einem Text vorbelegen, z. B. »Geben Sie hier einen Suchbegriff Text ein«. Dieser Text verschwindet, wenn Sie auf das Feld klicken. Soll ein Knopf zum Starten der Suche angezeigt Suchen-Schaltfläche werden? Wenn nicht, dann kann die Suche nur mit der -Taste gestartet werden. Legen Sie hier die Position des Such-Buttons in Schaltflächenpositionen Bezug auf das Suchfeld fest. Wenn man hier Ja wählt, so wird ein Bild als Such- Suchen-Schaltfläche als Button verwendet. Dieses muss den Namen Bild searchButton.gif haben und im Verzeichnis images/ M_images liegen. 199
    • Schaltflächentext Dieser Text erscheint auf dem Such-Button. 31.1.14 Fußzeile Das Modul Fußzeile gibt am Ende der Seite (Position »footer«) die Copyright- Information von Joomla! aus, die in Abbildung 31.1 dargestellt ist. Hier klicken, um das Bild zu vergrößern Abbildung 31.1 Die Fußzeile Sie dürfen diesen Hinweis gemäß der Lizenz von Joomla! ohne weiteres entfernen, da nur die Software selbst, nicht aber die erzeugten Ausgaben unter der GPL liegen. 31.1.15 Navigationspfad Anzeige eines Pfades durch die Seitenhierarchie von der Startseite bis zur aktuellen Seite. Jedes Element ist anklickbar und ermöglicht so eine einfache Navigation zurück in die übergeordneten Bereiche. Hier klicken, um das Bild zu vergrößern Abbildung 31.2 Der Navigationspfad Das Modul bietet Ihnen einige Konfigurationsmöglichkeiten, um Ihren Benutzern die Übersicht zu erleichtern. Tabelle 31.8 Den Navigationspfad konfigurieren Detail Bedeutung Startseite Legt fest, ob die Startseite als Element mit in den Pfad anzeigen aufgenommen werden soll. Text für die Dieser Text wird als Link für die Startseite verwendet. Startseite Legt fest, ob das aktuell dargestelte Element mit in den Pfad Letztes Element aufgenommen werden soll. Ist hier nichts angegeben, so wird »>>« als Trennzeichen verwendet. 200
    • Dieses Zeichen wird zwischen den einzelnen Trennzeichen Hierarchiestufen angezeigt. 32 Mehrsprachigkeit Gerade im Netz, das ja symbolisch dafür steht, dass die Welt zusammenwächst, besteht der Bedarf, eine Homepage nicht nur einem lokalen Publikum zugänglich zu machen. Im deutschen Sprachraum wird man vielfach auch versuchen, zumindest eine englische Version der Seite zur Verfügung zu stellen, um die internationalen Internetnutzer zu erreichen. Bei einer Übersetzung von dynamischen Seiten sind drei Bereiche betroffen: • Alle Inhalte, die von den Redakteuren in die Seite eingepflegt wurden, müssen übersetzt werden. Dabei ist es ratsam, zumindest eine Übersicht zu haben, welche Inhalte noch zu bearbeiten sind. • Die Ausgaben, die vom System generiert werden, wie beispielsweise Servicemeldungen oder Beschriftungen von Buttons und Funktionen, müssen in der jeweiligen Zielsprache ausgegeben werden. • Wenn Sie Erweiterungen von Drittanbietern verwenden, müssen auch diese Mehrsprachigkeit unterstützen. • Daneben ist es nötig, dass der Besucher seine Sprache auf der Titelseite über ein Auswahlfeld bestimmen kann. 32.1 Joom!Fish einrichten Glücklicherweise gibt es eine Komponente, die diese Aufgaben für uns erledigt. Sie wurde in Anlehnung an einen berühmten Übersetzungsdienst Joom!Fish genannt und ist auf der DVD im Verzeichnis Erweiterungen/Joomfish zu finden. Die Komponente ist mittlerweile mit einem komfortablen Installer ausgestattet. Früher mussten Sie viele Einzelkomponenten installieren, jetzt reicht es aus, die Datei jf2.0package_rc.zip einzuspielen. Wenn Sie Joom!Fish mit deutschem Backend betreiben wollen, installieren Sie zusätzlich das Sprachpaket JoomFish German Language.zip, ebenfalls über den Installationsassistenten. 201
    • Die Ausgabe der Systemmeldungen im Frontend wird über die Sprachverwaltung gesteuert, die Sie im Menü über Erweiterungen • Sprachen aufrufen können. Hier können Sie die Seitensprache einstellen und neue Sprachen installieren (vgl. Abschnitt 10.2, »Länder und Sprachen«). Die Sprachen, die dort vorhanden sind, dienen als Grundlage für den Joom!Fish. Daher ist auch die Sprache, die hier eingestellt wird, standardmäßig diejenige, in die Joom!Fish die Seite übersetzt. Rufen Sie nun das Kontrollzentrum des Joom!Fish im Menü über Komponenten • Joom!Fish auf (Abbildung 32.1). Hier klicken, um das Bild zu vergrößern Abbildung 32.1 Das Joom!Fish-Kontrollzentrum 33 Suchmaschinenoptimierung Bei der Fülle von Internetseiten, die mittlerweile online sind, reicht es nicht mehr aus, einfach nur gute Inhalte zu haben und ein paar Freunde darüber zu informieren. Man will ja schließlich gesehen werden! Zentraler Dreh- und Angelpunkt für die Generierung von Aufmerksamkeit für die eigene Seite sind die Suchmaschinen, oder – um das Kind beim Namen zu nennen – momentan im deutschsprachigen Raum vor allem Google. Um dort auf einen guten Platz zu kommen, ist viel Geduld und Geschick notwendig. Wenn Sie jedoch einige Regeln beachten, so haben Sie gute Chancen, die Zahl der Besucher Ihrer Seite deutlich zu erhöhen. 33.1 Suchmaschinenlogik 202
    • Die schier unglaubliche Masse von mittlerweile über 150.000.000 Webseiten kann durch intellektuelle, also durch Menschen erstellte Kataloge nicht mehr erschlossen werden. Der Schlüssel zu einer immer noch vorhandenen Zugänglichkeit der Seiten sind die Suchmaschinen, die Tag und Nacht unermüdlich das Web durchforsten und die Inhalte zutage bringen. Suchmaschinen wie Google oder Yahoo! bestehen vereinfacht gesagt aus zwei Komponenten: zum einen natürlich aus einer Komponente, nennen wir sie den Rechercheur, die Suchanfragen entgegennimmt, in das riesige Archiv der Internetseiten geht und über mehr oder minder intelligente Vergleiche und Schlussfolgerungen eine Zahl von Seiten zurückbringt, von denen sie glaubt, sie seinen für den Fragenden relevant. Die Algorithmen, mit denen diese Vergleiche angestellt werden, sind das am besten gehütete Geheimnis der Suchmaschinenbetreiber, da sie über die Qualität der Suchergebnisse entscheiden. Zum anderen gibt es die Crawler, Robots oder Spider, die sich über registrierte Domains und die dort gesetzten Links von Seite zu Seite hangeln, die Inhalte herunterladen, analysieren und so abspeichern, dass die Recherche-Komponente sie schnell und effizient verarbeiten kann. Beide Teile der Suchmaschine bestehen nur aus bestimmten, vorhersehbaren Verarbeitungsregeln. In den Anfangszeiten dieser Programme war es daher relativ leicht, die Bewertungskriterien für die Relevanz einer Seite zu manipulieren und dadurch ein gutes Ranking, also einen guten Platz in der Trefferliste zu einem bestimmten Stichwort, zu erlangen. Dadurch wurden die Suchergebnisse jedoch wieder schlechter und die Ergebnisse durch Suchmaschinen-Spam verwässert. Die Suchmaschinenbetreiber erfanden neue, effizientere Mechanismen. Und so sind die Algorithmen von Google, Yahoo! und Co. mittlerweile sehr effizient. Um ein gutes Ranking zu erhalten, müssen Sie tatsächlich qualitativ guten Inhalt bereitstellen. Das ist die Faustregel. Daneben gibt es einige Bereiche, von denen bekannt ist, dass die Crawler sie besonders beachten. Diese werden im folgenden Abschnitt aufgeführt. Sie nicht zu beachten, heißt, dem Erfolg der Webseite unnötige Steine in den Weg zu legen. Aber klar ist auch: Es gibt keine Garantie, dass die folgenden Tipps zum gewünschten Erfolg führen. Das liegt allein in der Hand der Suchmaschinenbetreiber. 33.1.1 Keywords Das A und O einer erfolgreichen Optimierung der Seiteninhalte für Suchmaschinen ist die Kenntnis der Suchbegriffe, unter denen Ihre Seite gefunden werden soll. Was gibt ein Besucher in das Suchfeld ein? Wenn Sie beispielsweise eine Seite zum Thema »Tanzen« haben, kann es sein, dass die meisten Leute nach »Salsa tanzen« suchen. Haben Sie also einen Beitrag zu diesem Thema, erhöht das die Wahrscheinlichkeit, gefunden zu werden. 203
    • Hier klicken, um das Bild zu vergrößern Abbildung 33.1 Das Google-Keyword-Tool Um sich über Suchwortkombinationen zu informieren, stehen einige Dienste im Netz zur Verfügung. Einer davon kommt direkt von Google und kann unter dieser URL aufgerufen werden: https://adwords.google.de/select/KeywordToolExternal Wenn Sie dort nach »joomla« suchen, stellen Sie fest, dass viele Suchanfragen zum Thema »Template« stattfinden. Es lohnt sich also, dazu einen Beitrag auf Ihrer Seite zu schreiben. 33.1.2 On-Page-Optimierung: Inhalt Optimierung kann an mehreren Stellen ansetzen. Von On-Page-Optimierung spricht man, wenn auf der Seite selbst Maßnahmen getroffen werden, die die Auffindbarkeit verbessern. Zunächst sollten Sie Ihre Seite inhaltlich fit für die Suchmaschinen machen. Die inhaltliche Gestaltung einer Seite ist die Basis für eine Indizierung durch den Robot. Dieser sucht nach verschiedenen Anhaltspunkten, um die Seite einzuordnen: • Suchmaschinen neigen dazu, einen Artikel mit einem Keyword zu assoziieren. Vermeiden Sie also, thematisch auf einer Seite zu springen. Vielmehr sollten Sie versuchen, sich auf ein Konzept zu konzentrieren. • Der Seitentitel (im <TITLE>-Tag) sollte aussagekräftig sein und zum Thema der Seite passen. Klar ist, dass es nicht zielführend ist, eine Seite über »Tanzen« mit »Motorsport« zu überschreiben. 204
    • • Ähnliches gilt für die Überschriften. So sollten Sie das <H1>-Tag nur einmal auf der Seite verwenden und dort auch eine aussagekräftige Bezeichnung eingeben. • Der Text eines Beitrags sollte eine vernünftige Länge aufweisen. Als Faustregel gelten fünf Absätze. Hier ist es möglich, wichtige Wörter kursiv oder fett hervorzuheben. • Vermeiden Sie doppelte Inhalte, und kopieren Sie schon gar nicht von anderen Seiten. Das wird von den Suchmaschinen mit einem Malus bestraft und schiebt Sie auf die hinteren Ergebnisseiten. Dazu zählen leider auch doppelte Domainnamen, beispielsweise la-joomla.de und lajoomla.de, wenn diese nicht sauber über Umleitungen (Redirects) aufeinander bezogen werden. Generell sollten Ihre Texte so gestaltet sein, dass sie nicht nur Suchmaschinen, sondern vor allem Ihre Besucher überzeugen. 33.1.3 On-Page-Optimierung: Technisches Einige Eigenschaften Ihrer Seite, die nicht direkt Einfluss auf den darstellbaren Inhalt haben, sind dennoch bedeutend für die Suchmaschinen. Hier gibt es einiges zu beachten: • Verwenden Sie sprechende URLs statt kryptischer PHP-Parameter. Am besten ist im Pfad der URL schon das eine oder andere Keyword mit enthalten. • Vermeiden Sie doppelte Inhalte. Sollten Sie Seiten umgezogen haben oder eine alternative Webadresse verwenden wollen, so gehen Sie wie folgt vor: Bestimmen Sie eine der Seiten als maßgebliche Seite für den Suchindex. Von den anderen Seiten leiten Sie mithilfe des Fehlercodes 301 (Redirect permanent) auf die Zielseite um. • Versteckte Inhalte im <Body>-Bereich sind Gift für das Ergebnisranking und führen mittlerweile bei einigen Suchmaschinenbetreibern zum Ausschluss aus der Trefferliste. Also: Verwenden Sie keine weiße Schrift auf weißem Hintergrund, keine Divs, die über Keyword-Listen liegen, etc. Diese Tricks kennen die Suchmaschinen mittlerweile. • Verwenden Sie keine Bilder, um die Texte in der Navigation darzustellen. Diese können von den Robots nicht gelesen werden. Wenn Sie Bilder verwenden, statten Sie diese mit Alternativ-Texten aus. • Meta-Tags haben mittlerweile nicht mehr die Bedeutung für die Beschreibung einer Seite, die sie schon mal hatten. Dennoch wird 205
    • beispielsweise der Bereich aus <Description> bei Google in der Trefferliste mit angezeigt. Es lohnt sich also schon deshalb, dieses Tag zu setzen. • Verwenden Sie beim Aufbau Ihrer Seite sauberes HTML-Markup. Kennzeichnen Sie beispielsweise Überschriften konsequent mit den <Hx>-Tags. Ein <div class=«heading«> wird von den Suchmaschinen nicht verstanden. • Achten Sie auf die interne Verlinkung. Robots steigen häufig auf der Startseite Ihrer Homepage ein und folgen den Links in die Seite hinein. Seiten, die Sie nicht indizieren wollen (beispielsweise das Impressum) können Sie mit dem Attribut rel=«nofollow« im Link versehen. Einige Robots verstehen dieses Attribut und folgen dem Link nicht. 33.1.4 Off-Page-Optimierung Neben dem Erscheinungsbild und der Struktur der eigenen Seite ist für Suchmaschinen die »Nachbarschaft« von Bedeutung. Diese wird im Internet durch Links hergestellt. Dabei spielen sowohl eingehende als auch ausgehende Links eine Rolle. Links zu externen Seiten stellen eine thematische Beziehung mit Ihrer Seite her. Suchmaschinen nutzen diese zur Einordnung. Sparen Sie also nicht mit externen Links, am besten zu thematisch verwandten Webseiten. Der weitaus schwierigere, aber auch wichtigere Part ist das Sammeln von Links. Je mehr Seiten auf die Ihre verlinken, desto höher wird diese von den Suchmaschinen eingestuft. Auch dabei sollten Sie darauf achten, dass diese Links von thematisch relevanten Seiten kommen. Zudem ist es hilfreich, wenn die verlinkenden Seiten selbst hoch bei den Suchmaschinen eingestuft sind. 34 Statistik Jeder Webmaster hat ein großes Interesse daran, zu erfahren, wer die Homepage besucht, wann das erfolgt und welche Seiten besonders häufig aufgerufen werden. Dabei geht es nicht nur um die Eitelkeit herauszufinden, wie beliebt die erstellte Seite ist. Vielmehr wird man die gewonnenen Informationen nutzen, um die Gestaltung der Seite an die Gruppe der Besucher und deren Interessen und Vorlieben anzupassen. Das kann beispielsweise dadurch geschehen, dass man wenig beachtete Seiten besser in den Vordergrund bringt, häufig aufgerufenen Bereichen eine besondere inhaltliche Tiefe gibt oder einfach die Seitendarstellung für die Browser optimiert, die von den Besuchern am häufigsten verwendet werden. 206
    • 34.1 Joomla!-Funktionen Joomla! bringt von Haus aus nur sehr wenig an statistischen Erhebungen mit. Im Backend-Modul Beliebt, das Sie auf der rechten Seite des Kontrollzentrums finden, sehen Sie die zehn Artikel Ihrer Homepage, die am häufigsten aufgerufen werden. Hier klicken, um das Bild zu vergrößern Abbildung 34.1 Die beliebtesten Seiten Daneben finden Sie im Menü unter Komponenten den Punkt Suchen. Dort werden alle Suchbegriffe angezeigt, die auf Ihrer Homepage im Suchfeld eingegeben werden. Normalerweise ist die Suchstatistik deaktiviert. Sie können diese über das Symbol Einstellungen aber einschalten, indem Sie Suchstatistiken auf Ja umstellen. Wenn Sie nun ein paar Suchanfragen im Frontend stellen, können Sie sehen, wie sich die Statistik füllt (Abbildung 34.2). Hier klicken, um das Bild zu vergrößern Abbildung 34.2 Suchstatistik Suchergebnisse anzeigen Der Link Suchergebnisse anzeigen sollte Ihnen die Anzahl der Ergebnisse pro Suchanfrage zeigen. In der alten Version 1.5.6 erzeugt er jedoch lediglich eine Fehlermeldung. 207
    • 35 Performance Die Ausführungsgeschwindigkeit von Joomla! hängt von sehr vielen Variablen ab, die nichts mit der Software selbst zu tun haben. Die Hardware, auf der der Server läuft, sowie die Durchsatzrate der Internetanbindung sind nur zwei Faktoren, die hier zu nennen sind. Aber unabhängig von der Hardware gibt es einiges an Optimierungspotenzial, das man nutzen kann, um zu einer schnellen Seite zu kommen. Dabei kann man an mehreren Stellen ansetzen: auf dem Server, beim Client-Browser und bei der Verbindung. Diese Möglichkeiten wollen wir und im Folgenden systematisch ansehen. 35.1 Seitenaufbau Eine Joomla!-Seite besteht nicht nur aus HTML-Code. Es werden Stylesheets, JavaScripts und zusätzliche Elemente wie Bilder und andere Medien geladen. Viele Elemente sind einer der größten Performance-Killer für Seiten. Um herauszufinden, wie die Ladestruktur einer Seite aussieht, gibt es einige Analysetools. Als sehr hilfreich hat sich für die Autoren eine Erweiterung des Firefox-Browsers herausgestellt: Firebug. Diese finden Sie auf der beigefügten DVD unter tools/firebug. Wie Sie mit Firebug umgehen, wird in Kapitel 13, »Tools zur Template- Erstellung«, ausführlich besprochen. Ist die Komponente installiert, sehen Sie in der Statusleiste von Firefox ein neues Zeichen (Abbildung 35.1). Hier klicken, um das Bild zu vergrößern Abbildung 35.1 Das Firebug-Symbol Klicken Sie auf dieses Symbol, dann öffnet sich die Erweiterung. Die Analyse der Netzwerkverbindungen ist standardmäßig deaktiviert. Um sie einzuschalten, gehen Sie auf den kleinen Pfeil neben Netzwerk und klicken auf Aktiviert. Wenn Sie nun die Joomla!-Seite neu laden, können Sie genau verfolgen, welche einzelnen Dateien beim Seitenaufbau geladen werden (Abbildung 35.2). 208
    • Hier klicken, um das Bild zu vergrößern Abbildung 35.2 Die Analyse der Seite Generell gilt: Je weniger Elemente eine Seite hat, desto schneller lässt sie sich laden. Hier einige Tipps, um die Anzahl der Elemente zu reduzieren: • Überprüfen Sie, ob wirklich alle Bilder, die Sie für die Gestaltung des Layouts verwenden, notwendig sind. Oftmals lassen sich die gleichen Effekte auch mit CSS-Elementen erreichen. • Fassen Sie CSS-Dateien zusammen. Auch wenn die Aufteilung auf mehrere Stylesheets übersichtlicher ist, sollten Sie überprüfen, ob wirklich separate Dateien notwendig sind. Das ist beispielsweise der Fall, wenn Sie CSS-Beschreibungen für spezielle Browser oder Ausgabemedien verwenden, nicht aber, um die Gestaltung von Farben von der Positionierung der Elemente zu trennen. • Ähnliches gilt für JavaScript. Ist es wirklich nötig, dass Sie für jede Funktion eine eigene Datei anlegen und laden? Im Firebug lässt sich auch sehr effektiv prüfen, ob wirklich alle Dateien, die geladen werden sollen, auf dem Server vorhanden sind. Ist das nicht der Fall, wird die entsprechende Datei in Rot dargestellt, und Sie sehen im Statusfeld die Ausgabe »404 Not Found«. Diese Fehler sollten Sie dringend vermeiden, da sie unnötig Transferzeit beanspruchen. Geben Sie entweder eine korrekte Zieladresse an, oder löschen Sie den Aufruf aus dem Code. Neben der Zahl der Elemente spielt selbstverständlich auch deren Größe eine Rolle. So können Sie Traffic einsparen: • Entfernen Sie Kommentare und unnötige Elemente aus dem HTML- Template. • Optimieren Sie Bilder für das Netz. Verkleinern Sie Bilder mithilfe eines Grafikprogramms auf die Größe, in der sie tatsächlich dargestellt 209
    • werden. Verwenden Sie die Formate jpg, gif oder png mit einer passenden Kompressionsrate. Damit lassen sich Einsparungen von bis zu 90 % gegenüber unkomprimierten Bildern erzielen. • CSS-Dateien lassen sich komprimieren, indem man unnötige Zeilenumbrüche und Leerzeichen sowie Kommentare entfernt. • Um JavaScript-Dateien zu verkleinern, gelten dieselben Regeln wie für CSS. Zudem ist es möglich, lange Funktions- und Variablennamen durch kürzere zu ersetzen. Die letzten beiden Maßnahmen von Hand durchzuführen, ist sehr mühsam. Daher wurden dafür Programme, sogenannte Kompressoren, entwickelt. Minify von Google ist ein Beispiel dafür. Wenn es schnell gehen soll, können Sie auch Online-Versionen verwenden. So steht unter der URL http://shygypsy.com/cssCompress ein CSS-Kompressor. Geben Sie Ihre CSS-Datei dort einfach in das Formularfeld ein, und Sie erhalten in einem zweiten Feld die komprimierte Version. Ähnlich ist die Lage für JavaScript-Dateien. Hier können Sie beispielsweise http://jscompress.com aufrufen, um eine komprimierte Version Ihres Skripts zu erhalten. Ein weiterer Punkt, an dem man ansetzen kann, um den Seitenaufbau zu beschleunigen, ist die Anordnung der Elemente innerhalb der Seite. Dazu muss man wissen, dass beim Laden einer Seite zuerst der Head-Bereich abgearbeitet wird. Währenddessen sieht der Benutzer eine weiße Seite. Erst, wenn der Browser zum Body-Bereich des HTML kommt, wird etwas angezeigt. Während allgemein dazu geraten wird, CSS im Head des HTML- Codes unterzubringen, sollte man darauf achten, dass aufwendige JavaScript-Operationen (wie das Nachladen von Dateien per AJAX) erst ausgeführt werden, wenn der restliche HTML-Code geladen wird. Dazu gibt es das Attribut onload, mit dem Sie JavaScript-Funktionen starten können: <body onload="javascript-funktion()"> In diese Funktion packen Sie alle Aktionen, die nicht für die ersten Sekunden der Anzeige relevant sind. Die Seite wird dann bereits angezeigt, und der Besucher kann sich bereits ein wenig orientieren, bis die volle Funktionalität zur Verfügung steht. Weitere nützliche Tipps zur Optimierung Ihrer Seite wurden von den Yahoo!- Entwicklern bereitgestellt und können unter der URL http://developer.yahoo.com/performance/rules.html 210
    • abgerufen werden. 36 Datentransfer und FTP-Modus Die wenigsten Seiten entstehen ohne Vorlage. Meistens gibt es schon eine alte Homepage oder Textvorlagen im Intranet. Damit die bisherige Arbeit nicht umsonst war, liegt es nahe, die Texte in Joomla! zu integrieren. Eines vorweg: Dieser Weg ist nicht einfach und mit einigen Einschränkungen verbunden. Umgekehrt kann es sein, dass Sie eine Seite offline reproduzieren wollen, beispielsweise auf DVD. Auch hierzu gibt es Mittel und Wege. 36.1 Migration von Daten nach Joomla! Sie kennen gewiss folgendes Problem: Sie haben bereits bestehende Daten und wollen diese in Joomla! übernehmen. Das ist nicht immer ganz einfach, da neben der Codierung der externen Daten meist auch deren Struktur eine ganz andere ist. Dennoch gibt es kleine Hilfsmittel und Tricks, die Ihnen die Bewältigung dieser Aufgabe erleichtern. 36.1.1 Statische Homepage Die Übertragung einer Seite von einem bereits existierenden System ist immer mit etwas Aufwand verbunden, kann aber eine lohnenswerte Sache sein. Haben Sie die Seite einmal in Joomla! importiert, stehen Ihnen all die vielfältigen Möglichkeiten offen, die Sie sonst in mühsamer Klein- und Einzelarbeit integrieren müssten. Wie kann eine Übertragung vor sich gehen? Als Erstes muss das Template erstellt werden. Da haben Sie ja schon einige Vorarbeit geleistet, indem Sie die statische Seite erstellt haben. Wie Sie Templates in Joomla! entwickeln, haben Sie bereits in Kapitel 12, »Was macht ein Template aus?«, gelernt. Fügen Sie in die HTML-Datei als Erstes die notwendigen PHP-Befehle zu Beginn des Templates ein. Den gesamten Header ersetzen Sie durch den Header des Beispieltemplates. Nun müssen Sie die Stelle suchen, in der der konkrete Seiteninhalt steht. An dessen Stelle setzen Sie den Befehl zur Ausgabe des Main Body. Die Bereiche Ihrer alten Homepage, die dynamische Inhalte wie Menüs, Suchfelder, Login-Formulare etc. bekommen sollen, müssen Sie mit dem Load Module-Befehl und der jeweiligen Position überschreiben. 211
    • Haben Sie bereits eine CSS-Datei verwendet, so kopieren Sie deren Inhalt in die CSS-Datei des Templates, oder modifizieren Sie den HTML-Header so, dass das alte Stylesheet mit eingebunden wird. Etwas knifflig wird die Übernahme des Menü-Layouts. Wenn Sie das alte Menü bereits mit CSS und Listen formatiert haben, sind Sie aus dem Schneider, weil Joomla! die Option hat, Menüs als Listen auszugeben. Haben Sie Ihr Menü mit HTML-Elementen gestaltet, so sollten Sie am besten versuchen, das Layout in CSS abzubilden. Es ist zwar prinzipiell auch möglich, die HTML-Ausgabe des Menü-Moduls zu modifizieren, das ist aber eine sehr unschöne Lösung, weil sie Ihnen genau die Flexibilität nimmt, die den Einsatz eines CMS so reizvoll macht. Im nächsten Schritt müssen Sie die Struktur der Seite in Joomla! abbilden. Das bedeutet, die Inhalte, wenn möglich, in Bereiche und Kategorien einzuteilen und die Menüstruktur zu erzeugen. Denken Sie daran, dass man im Menü auch direkt auf Content-Elemente verlinken kann und dass Menüs hierarchisch aufgebaut sein können. Zuletzt holen Sie die Inhalte ins System. Hierbei ist es am einfachsten, direkt den entsprechenden HTML-Code mit Copy & Paste in Joomla! einzutragen. Verwenden Sie dazu nicht den WYSIWYG-Editor, da dieser die spitzen Klammern in HTML-Entitys verwandelt und dadurch unbrauchbar macht. Die meisten Editoren haben einen HTML-Modus, in dem man die Daten problemlos übertragen kann. 36.1.2 Einbinden von Seiten mit der StaticXT-Komponente Haben Sie sehr viele alte HTML-Seiten, beispielsweise ein Archiv, das Sie in Joomla! einbinden wollen, so ist die Copy-&-Paste-Lösung relativ mühsam. Hier kann Ihnen die StaticXT-Komponente helfen, die Sie unter der URL www.joomlaxt.com oder auf der DVD unter Erweiterungen/StaticXT finden. Diese Erweiterung bindet bestehende HTML-Seiten ähnlich wie ein Wrapper in den Inhaltsbereich der Joomla!-Page ein. Der Vorteil von StaticXT ist, dass die Seite verarbeitet wird. So werden relative Links so verändert, dass sie wieder über die StaticXT-Erweiterung angezeigt werden. Wenn Sie als Einstiegspunkt beispielsweise Ihre alte index.htm-Datei verwenden, kann sich der User in Joomla! durch Ihre gesamte alte Seite klicken. Nachdem Sie die Komponente über die Datei com_staticxt.zip im Backend installiert haben, müssen Sie noch ein neues Verzeichnis innerhalb des Joomla!-Ordners erstellen, in dem die statischen HTML-Dateien liegen. Kopieren Sie zum Testen ein paar Seiten in dieses Verzeichnis. Nun müssen Sie diesen Pfad für die Komponente sichtbar machen. Gehen Sie dazu auf die Konfigurationsseite, die Sie im Menü unter Komponenten • staticxt aufrufen können. Klicken Sie dann auf den Button Global Settings. Im 212
    • folgenden Fenster können Sie im Feld Path to static files den Pfad relativ zum Joomla!-Verzeichnis angeben. Vergessen Sie nicht, danach zu speichern. Hier klicken, um das Bild zu vergrößern Abbildung 36.1 Die Komponente StaticXT Um den Zugriff auf die Seiten zu ermöglichen, müssen Sie mindestens eine Einstiegsseite im Menü definieren. Erzeugen Sie also im Hauptmenü einen neuen Eintrag mit dem Typ Interner Link, und wählen Sie staticxt als Komponente. Jetzt müssen Sie im Parameter Staticfile den Namen der HTML-Datei angeben, die angezeigt werden soll. Wenn Sie mehrere untereinander verlinkte Seiten haben, reicht es, hier nur einen Link auf die Hauptseite zu erzeugen, da die anderen durch die oben erwähnte Linkersetzung mit eingebunden werden. Alternativ können Sie auch den Parameter Show File List auf Ja setzen und so bewirken, dass statt einer einzelnen Seite eine Liste mit allen Dateien des angegebenen Verzeichnisses ausgegeben wird. Dann kann der Besucher selbst aussuchen, welche Datei er sehen will. 36.1.3 Konvertierung aus anderen CMS Jedes CMS hat in der Organisation und im Aufbau der Inhalte seine spezifischen Eigenheiten. Dennoch haben Sie den Vorteil, dass die vorliegenden Dokumente bereits in Strukturen und Inhalte aufgeteilt sind. Meistens ist bei einer Migration leider Handarbeit angesagt. Wenn Sie beispielsweise von TYPO3 nach Joomla! migrieren wollen, sind prinzipiell die folgenden Schritte notwendig: • Haben Sie das Template nur in HTML geschrieben, so können Sie es übernehmen, indem Sie die Positionsangaben aus TYPO3 durch die entsprechenden Ladefunktionen für die Modulpositionen ersetzen. Ansonsten ist es nötig, die TypoScript-Befehle im neuen Template nach PHP zu portieren. 213
    • • Dateien und Bilder aus dem fileadmin-Verzeichnis kopieren Sie einfach in Ihr Upload-Verzeichnis (Daten) bzw. ins images/stories-Verzeichnis, damit sie in Joomla! eingebunden werden können. • TYPO3-Inhalte, die als Text mit Bild oder HTML abgelegt sind, können im Prinzip direkt aus der Datenbanktabelle tt_content nach jos_content übertragen werden. Die Metadaten müssen jedoch angepasst werden. Bei kleineren Seiten ist es sicher sinnvoller, die Inhalte mit Copy & Paste vom TYPO3-Backend ins Joomla!-Backend zu übertragen. Eine sehr einfache Möglichkeit der Datenübertragung haben Sie, wenn das entsprechende System als Komponente in Joomla! eingebunden werden kann. Dann reicht es, die Datenbankinhalte einfach in die entsprechenden Tabellen der Komponente einzuspielen. Das ist beispielsweise für MediaWiki, phpBB oder WordPress der Fall. 36.1.4 Office-Dokumente Viele Nutzer haben sich mittlerweile gut in Office-Produkten zurechtgefunden und dort zahlreiche Dokumente erstellt. Die Erfahrung zeigt, dass eine Umstellung auf ein neues System durchaus zu Widerständen führen kann. Daher stellt sich die Frage, ob man Dokumente aus Büroanwendungen in Joomla! importieren kann, Leider ist die Unterstützung für diese Art der Datenkonvertierung bisher sehr dürftig und nur über Umwege zu realisieren: • HTML-Export Wenn die Anwendung textbasierte Dokumente erzeugt, wie das beispielsweise bei Schreib- oder Präsentationsprogrammen der Fall ist, so bietet sie meistens die Möglichkeit eines HTML-Exports. Speichern Sie Ihr Dokument also in diesem Format. Jetzt können Sie es wie oben beschrieben als statische HTML-Seite in Joomla! importieren. • WYSIWYG-Editor Die grafischen Editoren von Joomla! arbeiten alle mit dem RTF-Format. Daher ist es möglich, Teile aus Office-Dokumenten mit Copy & Paste direkt in den Editor zu übernehmen. Dieser nimmt dann die Konvertierung nach HTML vor. Hier ist allerdings etwas Vorsicht geboten, denn diese Konvertierung ist nicht immer verlustfrei. Sie sollten sich nach dem Import also immer vergewissern, dass die Daten so angekommen sind, wie Sie das beabsichtigt hatten. • Screenshot Bei Anwendungen, die komplexere grafische Ausgaben erzeugen, ist ein HTML-Export nicht immer möglich oder sinnvoll. Die einfachste Option ist in diesem Fall, einen Screenshot mit + zu erzeugen, diesen in einem Grafikprogramm auf den entsprechenden Ausschnitt zurechtzuschneiden und als Bild in ein 214
    • Joomla!-Inhaltselement einzubinden. Das geht natürlich nur, wenn Sie auf interaktive Bereiche verzichten können. Generell ist es vorzuziehen, neue Dokumente direkt in Joomla! zu erstellen, um Datenverluste, die durch die genannten Konvertierungen entstehen, zu verhindern. 37 Sicherheit Sobald Ihr Rechner mit dem Internet verbunden ist, müssen Sie damit rechnen, dass ungebetene Gäste versuchen, sich an Ihren Daten zu vergreifen. Dabei handelt es sich in den wenigsten Fällen um echte Hacker oder Cracker, sondern vielmehr um sogenannte Scriptkiddies, die irgendwo im Netz eine Anleitung gefunden haben, wie man in ein System eindringt, und das jetzt ausprobieren wollen. Angriffe auf Webserver richten sich in der Regel gegen drei Ziele: • Seiteninhalt: Es wird versucht, den Inhalt einer Homepage zu verändern und eigene Botschaften einzuschleusen. • Software: Das Programm, das eine dynamische Seite steuert, wird vom Missetäter verändert. • Rechner: Es wird versucht, über die Software den Rechner, auf dem die Webapplikation läuft, unter Kontrolle zu bringen. Diese Art von Angriff ist die gefährlichste. Falls sie erfolgreich ist, kann der Angreifer Ihren Computer weitreichend ändern und als Basis für weitere Angriffe auf andere Computer nutzen. Absolute Sicherheit vor Angriffen wird man niemals garantieren können. Es gibt jedoch eine Reihe von Maßnahmen, um das Risiko zu minimieren. Die wichtigste ist: Halten Sie Ihre Software, also Webserver, PHP, MySQL und Joomla! auf dem neuesten Stand. Wie man Joomla! aktualisieren kann, wird weiter oben in diesem Kapitel beschrieben. Verfolgen Sie dazu auch die Nachrichtenticker auf www.joomla.org. 37.1 Angriffstypen Das Einfallstor für Angreifer ist in webbasierten Applikationen immer die Kommunikation zwischen Browser und Server. Dabei kann man folgende häufige Angriffstypen unterscheiden: 215
    • • SQL Injection • Parametermanipulation • Cross Site Scripting • Man in the Middle Diese Typen werden im Folgenden genauer erläuert. 37.1.1 SQL Injection Nehmen wir an, Sie verwenden ein Login-Formular, das die Authentifizierung mittels einer Datenbankabfrage durchführt. Der PHP-Code sieht folgendermaßen aus: $query = "SELECT * FROM users WHERE username = '" .$_POST['username'].'"'; $result = mysql_query($query); if (mysql_num_rows($result) > 0) $auth = true else $auth = false; Es wird also in der Datenbank nachgesehen, ob der Username existiert. Ist das der Fall, wird eine Variable $auth, die den Autorisierungsstatus festlegt, so gesetzt, dass der Zugriff gewährt wird. Stellen Sie sich nun vor, Sie sind ein bösartiger Angreifer. Natürlich geben Sie keinen gültigen Usernamen ein, da Sie ihn ja nicht kennen. Da Sie findig sind, versuchen Sie, das SQL- Statement zu manipulieren. Sie geben also diese Zeichen ein: nix' OR '' = ' Wenn das SQL-Statement nun zusammengesetzt wird, so wird diese Abfrage gestartet: SELECT * FROM users WHERE username = 'nix' OR '' = '' Da die zweite Bedingung in der WHERE-Klausel immer wahr ist, werden wir im System angemeldet. Ein ähnlich gelagerter Fall ist die sogenannte Command Injection, die möglich ist, wenn das Skript auf dem Server beispielsweise mittels exec ein Betriebssystemkommando ausführt, das direkt Parameter aus den übergebenen Formulardaten übernimmt. Um solche Angriffe zu verhindern, müssen Sie bei der Programmierung sorgfältig darauf achten, dass die übergebenen Daten auch wirklich dem entsprechen, was erwartet wird, und auf keinen Fall SQL-Statements oder Kommandos enthalten. 216
    • 37.1.2 Parametermanipulation Diese Art des Angriffs macht sich ungeschützte Parameter einer Seitenabfrage zunutze. Die Gefahr geht dabei davon aus, dass Daten, die sicherheitsrelevant sind, in diesen Parametern gespeichert werden, oft aus dem falschen Glauben heraus, dass man diese nicht manipulieren könne. Zwei Beispiele, die so schon vorgekommen sein sollen, mögen dies verdeutlichen: Mittels POST-Parameter Eine Seite (nicht Joomla!) hatte die Mail-Adresse, an die eine Anfrage gesendet werden sollte, nicht auf dem Server, sondern direkt in ihrem Kontakt-Mail-Formular in einem <hidden>-Feld gespeichert. <form action="mail.php" method="POST"> <input type="hidden" name="an" value="admin@seite.de"> Dies wurde von einem findigen Spammer ausgenutzt, der die Adresse aus diesem Feld einfach austauschte und so eine Menge unerwünschter E–Mails über diese Seite – und deren Namen – verschickte. Mittels Cookie Bei einer anderen Seite hatte der Betreiber zur Erleichterung der Kommunikation die Zugriffsparameter des Nutzers in einem Cookie auf seinem Rechner gespeichert. Das sah in etwa so aus: Cookie: admin=no; time=10:00; Es wurden also der Adminstatus und der letzte Zugriff (zur Sicherheit) protokolliert. Cookies sind allerdings nur Textdateien auf dem Computer. Ein nachfolgender schlitzohriger Benutzer änderte also einfach die beiden Werte in Cookie: admin=yes; time=13:00; und schon hatte er Zugriff auf die Seite. Und das auch noch mit Administratorrechten! Eine mögliche Lösung für Probleme dieser Art ist, alle sicherheitsrelevanten Daten auf dem Server mittels Sessions zu verwalten, die auf jeden Fall sicherer sind als die vorgestellten Methoden. 217
    • 37.1.3 Cross Site Scripting (XSS) Mit dieser Methode wird weniger der Webseite selbst als vielmehr ihren Usern geschadet. Der Angreifer versucht, bösartigen Code, beispielsweise in JavaScript, auf der Seite zu platzieren, der den User dann dazu bringt, Daten preiszugeben oder eine bestimmte Seite aufzurufen. Sehen wir uns das einmal genauer an. Der bösartige Code soll nur ein Hinweisfenster sein: <script>alert ("Ich bin böse")</script> Ein Angreifer hat zwei grundlegende Möglichkeiten, diesen Code zu platzieren. Erstens kann er versuchen, ihn in Foren, Gästebücher, Seiteninhalte etc. einzuschleusen, auf die er Zugriff hat. Ruft der nichts ahnende User eine dieser Seiten auf, wird der Code ausgeführt. Zweitens kann der Code über eine URL eingeschleust werden. Häufig werden Usereingaben beispielsweise auf Bestätigungsseiten noch einmal ausgegeben. Der Angreifer kann nun eben so eine URL auf der Seite platzieren. In Joomla! werden beispielsweise Rückmeldungen an den Benutzer auf diese Weise erzeugt. Keine Angst: Joomla! filtert hier bösartigen Code. Der Mechanismus kann dennoch benutzt werden, um den Besucher übel zu beschimpfen: http://localhost/joomla/index.php?mosmsg=Sie+sind+wohl+doof Wird diese URL aufgerufen, so steht über dem Content-Bereich »Sie sind wohl doof«. Die Gegenmaßnahme ist auch hier wieder die sinnvolle Filterung der Eingaben. Lassen Sie auf keinen Fall <script>-Tags in irgendwelchen Foren zu! 37.1.4 Man in the Middle Eine Gefahr für die sichere Kommunikation zwischen Client und Server stellt immer der Mitleser dar, der sich zwischen die beiden stellt und die Botschaften, die ausgetauscht werden, abhört und unter Umständen manipuliert. Aufgrund der Natur des Internets kann man diese Mithörer nie ausschließen, da die Informationspakete auf dem Weg zwischen den beiden Endpunkten über viele Computer laufen. Dies verdient insbesondere deshalb unsere Aufmerksamkeit, weil Zugangsdaten wie Passwörter zwar im Browserfenster maskiert werden, bei der Übertragung jedoch im Klartext gesendet werden. Ein Mitleser kann sie also sehr leicht abfangen und für seine Zwecke missbrauchen. 218
    • Die einzig sichere Variante, diesem Problem zu entkommen, ist, eine verschlüsselte Verbindung zu verwenden. Dies ist über das HTTPS-Protokoll möglich. Um wirklich sicherzugehen, benötigen Sie dafür allerdings eine feste IP-Adresse und ein Vertrauenszertifikat. Das ist durchaus mit einigen Kosten verbunden. 38 Troubleshooting Trotz aller Vorsicht kann es vorkommen, dass Sie eine Einstellung geändert haben und daraufhin das System nicht mehr läuft oder dass nach der Installation einer Erweiterung eine Fehlermeldung ausgegeben wird. Keine Panik, in diesen Fällen besteht immer noch die Möglichkeit, direkt über den Server auf die Konfiguration Einfluss zu nehmen. Dazu sind im Wesentlichen zwei Bereiche wichtig. Erstens sind alle wichtigen Einstellungen in der Datei configuration.php im Joomla!-Verzeichnis gespeichert. Dies ist also der Ort, an dem Sie alle oben genannten Parameter direkt steuern können. Zweitens finden sich einige Informationen, z. B. das Administrator-Passwort, in der Datenbank. Diese können Sie entweder über eine SQL-Konsole oder (meistens) über das Web-Interface phpMyAdmin abfragen und auch verändern. 38.1 Installation 38.1.1 Apache läuft nicht Problem Sie konnten XAMPP erfolgreich installieren und auch das Control Panel starten. Jedoch startet der Webserver nicht. Immer, wenn Sie auf den Startbutton im Control Panel klicken, erscheint eine kurze Meldung, aber beim Aufruf im Browser wird gemeldet: »Server nicht gefunden.« Lösung Das Problem dabei ist höchstwahrscheinlich, dass ein anderes Programm den Port 80 benutzt. Ports kann man sich wie Radiofrequenzen vorstellen. 219
    • Jeder dieser Ports kann auf einem Rechner nur ein einziges Mal verwendet werden. Übliche Verdächtige, die auch den Port 80 verwenden, sind der Internet Information Server oder das Kommunikationsprogramm Skype. Um herauszufinden, welches Programm diesen Port belegt, können Sie auch das Programm apache-portcheck.exe verwenden, das im Wurzelverzeichnis von XAMPP liegt. Sollte das nichts helfen, ist es am besten, den Webserver von der Konsole aus zu starten und die Fehlermeldungen zu beobachten. Starten Sie dazu unter Windows die Eingabeaufforderung und unter Linux oder MacOS die Konsole. Wechseln Sie in das XAMPP-Verzeichnis, und geben Sie die entsprechenden Startbefehle ein. Unter Windows ist das: xampp_start unter Linux: /opt/lampp/lampp start und unter Mac OS /opt/lampp/lampp start Hier werden Sie beispielsweise auf Fehler in der Konfiguration hingewiesen. 38.1.2 MySQL läuft nicht Problem XAMPP wurde erfolgreich installiert, dennoch kann die Datenbank im XAMPP-Control-Panel nicht gestartet werden. Lösung Ein möglicher Fehler ist, dass bereits ein anderer MySQL-Server läuft, beispielsweise als Dienst. Der Portcheck, der oben genannt wurde, kann hier Hilfestellung leisten. Unter Windows finden Sie die Verwaltung der Dienste im Startmenü unter Verwaltung • Dienste. Wenn Sie hier einen gestarteten MySQL-Server finden, klicken Sie mit der rechten Maustaste auf diesen Dienst und wählen Beenden. Versuchen Sie dann noch einmal, den SQL- Server zu starten. Wenn das nichts hilft, ist es wie oben gesagt ein guter Rat, XAMPP über die Konsole zu starten und die Fehlermeldungen zu analysieren. 220
    • 38.1.3 Mac OS X Apache läuft, findet aber kein Joomla! Problem Unter Mac OS X haben Sie XAMPP erfolgreich installiert und den Webserver sowie die Datenbank gestartet. Wenn Sie aber in der URL Joomla! aufrufen, kommt eine Fehlermeldung. Geben Sie nur localhost ein, so wird eine Apache-Seite angezeigt. Lösung Das Problem ist, dass es unter Mac einen Apache-Server gibt, der unter Umständen bereits aktiv ist. Dieser liegt im Systemsharing. Man kann dort unterschiedliche Bereiche für andere Computer zugänglich machen. Versuchen Sie, das komplette Sharing abzuschalten und dann den Server mittels XAMPP noch einmal zu starten. Jetzt sollte unter localhost der Startbildschirm von XAMPP erscheinen. 38.1.4 Mac OS X vor Version 10.4 Problem Sie wollen Joomla! unter MacOS X in einer Version installieren, die älter ist als 10.4. Für diese Versionen gibt es keine XAMPP-Zusammenstellung. Lösung Hier ist das MAMP-Paket als Testumgebung zu empfehlen, das Sie unter dieser URL herunterladen können: http://www.mamp.info/en/download.html Achten Sie darauf, die Version MAMP 1.4.1 zu verwenden, denn die neueren Pakete laufen ebenfalls erst ab Mac OS 10.4. MAMP wird im Applications- Ordner abgelegt. Dort sollten Sie auch einen Ordner htdocs finden, in den Sie die Joomla!-Dateien entpacken. Dann können Sie mit dem Installationsdialog von Joomla! weitermachen. Was die Lese-/Schreibrechte anbelangt, können Sie direkt über das Terminal dieselben Befehle verwenden, die im Abschnitt »Installation unter Linux« besprochen werden. 39 Mein erstes Modul 221
    • Wie Sie bereits gesehen haben, bietet Joomla! von »Natur« aus eine große Fülle an Funktionalität. Wo diese nicht ausreicht, kann man sich Erweiterungen zu allen möglichen und unmöglichen Aufgaben aus dem Netz holen und installieren. Gibt es da überhaupt noch Bedarf, eigene Extensions zu schreiben? Die Antwort ist ganz klar: ja. • Ein wesentlicher Grund ist, dass Sie Joomla! in den meisten Fällen nicht im luftleeren (Software-)Raum verwenden, sondern in einem Arbeitskontext, in dem viele andere Programme für die Erfüllung von Aufgaben verwendet werden und Daten produzieren. Wollen Sie aus Joomla! heraus an diese Daten kommen, so brauchen Sie eine eigene Lösung. • Noch immer gibt es genügend Funktionen, die noch nicht in Extensions verpackt sind. Open-Source-Programmierer sind wie alle anderen Menschen auch viel beschäftigte Leute, die nur das machen, was sie für sinnvoll erachten. Dabei sehen sie die Dinge oft aus einem eigenen Blickwinkel, der für Sie wichtige Funktionen möglicherweise nicht berücksichtigt. • Auch bei schon bestehenden Erweiterungen ist es oft genug der Fall, dass diese nicht fertiggestellt wurden oder zumindest nicht über die Alpha-Phase hinauskommen. Oder Sie vermissen eine Funktion, die das ursprüngliche Team vergessen hat. Um hier eingreifen zu können, müssen Sie zumindest einen Überblick darüber haben, wie man Erweiterungen programmiert. • Nicht zuletzt ist Joomla! ein Open-Source-Programm, das davon lebt, dass sich Menschen freiwillig an der Weiterentwicklung beteiligen. Die Programmierung von Erweiterungen ist dazu ein guter Einstieg. Joomla! wurde unter anderem dadurch so beliebt, dass es eine große Fülle von Plug-ins, Modulen und Komponenten gibt. Vielleicht fühlt sich der eine oder andere Leser auch dazu berufen, seinen eigenen Beitrag zu dieser Erfolgsgeschichte zu leisten. Um eigene Erweiterungen schreiben zu können, benötigen Sie zumindest grundlegende Programmierkenntnisse, am besten in PHP. Sie sollten Ahnung von HTML haben, und auch ein Grundverständnis von XML kann sicherlich nicht schaden. Diese Kenntnisse hier zu vermitteln, würde den Rahmen dieses Buches sprengen, es sei deshalb auf die einschlägige Fachliteratur verwiesen. Die Joomla!-Gemeinde begrüßt es ausdrücklich, wenn sich Entwickler die Mühe machen, neue Funktionen zu programmieren. Um es den Programmierern möglichst einfach zu machen, gibt es standardisierte Vorgehensweisen, um Erweiterungen mit der Core-Software zu verbinden. Joomla! selbst ist in der Sprache PHP geschrieben. Es liegt daher nahe, dass auch die Erweiterungen in dieser Sprache entwickelt werden müssen. Zusätzlich gibt es eine Beschreibung der Erweiterung, die im XML-Format 222
    • vorliegen muss. Beide Bereiche, das PHP-Skript und die XML-Datei, müssen bestimmten Konventionen folgen und in den richtigen Verzeichnissen liegen, um von Joomla! erkannt zu werden. Eigentlich sind Module, Plug-ins und Komponenten PHP-Skripte oder -Sammlungen, die während der Ausführung von Joomla! an bestimmten Stellen aufgerufen werden. Daher hat man auch Zugriff auf einige Standardfunktionen, die das System bereitstellt. Diese Funktionen werden unter dem Begriff Joomla!-API (Application Programming Interface) geführt und stellen eine Schnittstelle zwischen der Erweiterung und dem eigentlichen System dar. Wenn Sie Erweiterungen entwickeln wollen, die auch für andere Joomla!-User gedacht sind, so ist es sinnvoll, sich an die Coding Standards von Joomla! zu halten. Das betrifft die Formatierung des Quelltextes sowie die Art und Weise der Kommentierung. Die Joomla!-Entwickler halten sich dabei an den Standard der PEAR-Entwickler (eine große PHP-Bibliothek), den Sie unter der URL pear.php.net/manual/en/standards.php finden. Der Code in den folgenden Beispielen ist aus Gründen der Übersichtlichkeit auf die Funktionalität beschränkt und nicht auf Sicherheit optimiert. Hier klaffen weite Lücken für Eindringlinge. Sie sollten Ihre eigenen Skripte auf alle Fälle in dieser Hinsicht prüfen. Insbesondere sollten Sie alle Zeichenketten, die aus Parametern kommen, auf schadhaften Code überprüfen. Aber genug der Vorrede. Sehen wir uns einmal ganz praktisch an, wie man beispielsweise ein eigenes Modul erstellt. Die Listings für dieses und die folgenden beiden Kapitel finden Sie auf der DVD im Verzeichnis listings. 39.1 Tools Um für Joomla! zu entwickeln, reicht im Prinzip ein einfacher Editor. Wenn Sie schnell loslegen wollen, können Sie also diesen Abschnitt getrost überspringen. Wollen Sie allerdings etwas mehr Komfort, ist es ratsam, mit einer Entwicklungsumgebung für PHP zu arbeiten. Diese markiert Ihren Code farbig, hilft Ihnen bei der Fehlersuche und ist in der Lage, Funktionen und Objekte zu erkennen und Ihnen die verfügbaren Elemente zu zeigen. Entwicklungsumgebungen gibt es sehr viele. Wir wollen Ihnen hier Eclipse vorstellen, eine freie Variante, die sehr weit verbreitet ist. Eclipse ist eigentlich nur ein Rahmenprogramm, mit dem sehr viele verschiedene Programmiersprachen bearbeitet werden können. Standardmäßig bringt die Entwicklungsumgebung eine Unterstützung nur für Java mit. Um sie mit PHP zu verwenden, müssen Zusatzpakete installiert werden. Das Projekt PDT (PHP Developer Tools) bietet eine vorkonfigurierte Zusammenstellung solcher Tools. Sie finden das Archiv auf der DVD unter 223
    • tools/pdt. Entpacken Sie den Inhalt auf Ihrer Festplatte. Es ist keine weitere Installation nötig. Sie starten Eclipse mit einem Doppelklick auf eclipse.exe. Beim ersten Start werden Sie gefragt, wo Ihr Standard-Workspace sein soll. Das ist der Ort, wo Eclipse seine eigenen Dateien hinterlegt. Geben Sie hier ein Verzeichnis innerhalb von xampp/htdocs an, beispielsweise xampp/htdocs/joomla_development. Wenn Sie auf OK klicken, öffnet sich der Willkommensbildschirm des Programms. Diesen können Sie über das X auf dem Reiter links oben schließen. Jetzt sind Sie in der Programmieransicht. Kodierung Stellen Sie sicher, dass Ihre Programmdateien im UTF-8-Format gespeichert werden. Gehen Sie dazu über das Menü Window • Preferences… zu den Einstellungen. Öffnen Sie über die Baumansicht links den Bereich General • Workspace. Im Bereich Text file encoding aktivieren Sie Other und wählen UTF-8. Entwicklungsumgebungen arbeiten immer mithilfe sogenannter Projekte. Diese verwalten alle zugehörigen Dateien, wissen, woran Sie zuletzt gearbeitet haben, und kennen den Kontext. Erstellen Sie ein neues Projekt über File • New • Project… Hier klicken, um das Bild zu vergrößern Abbildung 39.1 Ein neues Projekt erstellen Wählen Sie im Dialogfenster im Bereich PHP den Punkt PHP Project, und klicken Sie auf Next > (Abbildung 39.1). Geben Sie im folgenden Fenster als Project name »joomla_module« ein, und klicken Sie wiederum auf Next >. 224
    • Hier klicken, um das Bild zu vergrößern Abbildung 39.2 Der Projektname Im nun folgenden Fenster können Sie zusätzliche Pfade angeben. Das ist nicht zwingend nötig. Bei der Programmierung für Joomla! ist es aber für die Code-Vervollständigung sinnvoll, das Wurzelverzeichnis von Joomla! mit einzubinden. Öffnen Sie den Reiter Libraries, und klicken Sie auf Add External Folder… Hier wählen Sie den Ordner, in dem Ihr Joomla! liegt, z. B. c:apachefriendsxampphtdocsjoomla. Hier klicken, um das Bild zu vergrößern Abbildung 39.3 Joomla! mit einbinden Mit einem Klick auf Finish wird das Projekt erstellt. Wenn alles geklappt hat, sollten Sie jetzt im PHP Explorer einen Baum sehen, der so wie in Abbildung 39.4 aussieht. 225
    • Hier klicken, um das Bild zu vergrößern Abbildung 39.4 Unser Joomla!-Projekt Am besten organisieren Sie Ihr Projekt so, dass Sie für jedes Modul einen eigenen Unterordner erstellen. Klicken Sie dazu am einfachsten mit der rechten Maustaste auf joomla_module, und wählen Sie New • Folder. Geben Sie für das erste Testmodul im Feld Folder name »mod_hallojoomla« ein. In diesem Ordner brauchen wir im Folgenden mehrere Dateien. Das geht so: Klicken Sie mit der rechten Maustaste auf den Ordner mod_hallojoomla. Wählen Sie New • PHP File. Im Feld File Name geben Sie den Namen der Datei ein, z. B. mod_hallojoomla.php. Mit einem Klick auf Finish wird die Datei erstellt, die Sie in Abbildung 39.5 sehen können. Hier klicken, um das Bild zu vergrößern Abbildung 39.5 Eine neue PHP-Datei Hilfestellung (Code Completion) In Abbildung 39.5 sehen Sie ein Hilfefenster, das zur Funktion passt, die gerade eingegeben wird. Dieses Fenster ist sehr hilfreich und kann mit der Tastenkombination + aufgerufen werden. 226
    • 40 Die Joomla!-API Unser nächstes Anliegen ist es, nicht nur irgendwelchen Text auszugeben, sondern auch auf die Umgebung von Joomla! zu reagieren. Dazu stellen die Programmierer uns eine Schnittstelle zur Verfügung, über die wir auf die Daten und Funktionen des Systems zugreifen können: die sogenannte API. Damit erhalten wir Informationen über den angemeldeten Benutzer, das aktuelle Dokument, die Datenbank und viele weitere Elemente der Seite. Es ist natürlich auch möglich, diese Daten zu verändern und so die Seite programmiertechnisch zu gestalten. Der Weg dazu wird in diesem Kapitel beschrieben. Die komplette API ist so umfangreich, dass man über darüber ein eigenes Buch schreiben könnte. Sie ist mittlerweile jedoch auch von den Entwicklern selbst relativ gut beschrieben: • Es wurde ein Dokumentations- und Entwicklerportal eingerichtet, das Sie unter der URL developer.joomla.org aufrufen können. • Eine Referenz finden Sie unter api.joomla.org. Wählen Sie in der Dropdown-Liste Packages den Eintrag Joomla-Framework, um die im Folgenden beschriebenen Klassen zu finden. • Die wertvollste Ressource für Tipps zur Entwicklung ist das Joomla!- Wiki, das man unter der URL docs.joomla.org/Category:Development aufrufen kann. 40.1 Zugriff auf die Interna von Joomla! Um an die Daten und Funktionen von Joomla! heranzukommen, bietet das System dem Entwickler einige Objekte an. Diese können Sie in Ihren eigenen Programmcode einbinden, um ihre Eigenschaften und Methoden zu verwenden. Es liegt daher nahe, sich mit dem Objektmodell von Joomla! auseinanderzusetzen. Viele Objekte finden sich im Joomla!-Framework-Paket. Tabelle 40.1 listet die wichtigsten auf. Daneben verwendet Joomla! noch einige externe Bibliotheken, z. B. PEAR oder geshi, die aber im Folgenden weitestgehend keine Rolle spielen. Tabelle 40.1 Wichtige Objekte des Joomla!-Frameworks Objekt Aufgabe 227
    • Anwendung Stellt den Zugriff auf viele grundlegenden Eigenschaften JApplication von Joomla! her. JModel Grundlage für ein Model nach der MVC-Architektur. JView Grundlage für eine View nach der MVC-Architektur. Grundlage für einen Controller nach der MVC- JController Architektur. JModuleHelper Bietet einige Hilfsfunktionen für Module an. Datenbank Erlaubt Ihnen, auf die Datenbank zuzugreifen, und bietet JDatabase verschiedene Methoden für Abfragen. Dokument Zugriff auf das aktuell erstellte Dokument. Das ist die JDocument Beschreibung der Ausgabe, bevor sie in HTML gegossen wird. JDocumentRenderer Erstellt eine HTML-Ausgabe aus einem Dokument. Umgebung JRegistry Zugriff auf die Konfiguration von Joomla! JParameter Bietet den Zugriff auf Einstellungen von Erweiterungen. Schnittstelle für den Zugriff auf die Variablen, die der JRequest Seite beim Aufruf vom Browser übergeben werden. Damit können Sie gültige URLs erstellen und JURI analysieren. HTML Diese Klasse stellt Ihnen Methoden zur Verfügung, die JHTML komplexe HTML-Bestandteile für die Seite erzeugen. Sprache Klasse für die Verwaltung von Sprachen und JLanguage Internationalisierung. JText Gibt einen Text in der aktuellen Sprache aus. Mail Mit diesem Objekt können Sie E–Mails erstellen und JMail versenden. Benutzer JAuthentication Übernimmt die Anmeldung eines Benutzers im System. Erlaubt es Ihnen, die Daten eines registrieren Benutzers JUser abzufragen und zu verändern. Wie sieht nun der Zugriff auf diese Objekte aus? Grundsätzlich sind drei Fälle zu unterscheiden. Haben wir es mit einem statischen Objekt zu tun, dann wird dieses wie eine normale PHP-Funktion verwendet. Diese Aufrufe werden in 228
    • der Regel verwendet, wenn es sich um Hilfsfunktionen handelt, die keine eigenen Daten verwalten. Das Schema ist: $variable = Objekt::funktion(argument); Beispielsweise liefert dieser Aufruf den Inhalt eines Übergabeparameters action und steckt ihn in die Variable mit dem gleichen Namen: $action = JRequest::get('action'); Das Ergebnis eines solchen Aufrufs ist im Regelfall ein einfacher Datentyp, beispielsweise eine Zeichenkette oder eine Zahl. Normalerweise hat man es jedoch nicht mit statischen Objekten zu tun, sondern mit Instanzen. Diese müssen nach der objektorientieren Lehre zunächst aus der Klasse erstellt werden, bevor man sie benutzen kann. Das sieht so aus: $objektvariable = new Objekt(argument); Das Ergebnis ist eine Referenz auf die Instanz. Man spricht auch von einer Objektvariablen. Der folgende Code liefert beispielsweise den Zugriff auf die Einstellungen, die für ein Plug-in vorgenommen wurden. Als Argument wird eine Eigenschaft des entsprechenden Plug-ins übergeben. $pluginParams = new JParameter( $plugin->params ); Diese Art des Aufrufs findet man im Joomla!-Code jedoch relativ selten. Ein Grund dafür ist, dass man in der Regel auf Objekte zugreifen will, die es bereits gibt. Der angemeldete Benutzer ist ein Beispiel dafür. Es macht wenig Sinn, diesen im Programm mehrfach zu verwalten. Im Gegenteil, dadurch steigt die Gefahr von Inkonsistenzen enorm. Daher gibt es für diese Objekte in Joomla! einen eigenen Zugriffsmechanismus, die sogenannte Factory. Diese hat wiederum einige statische Methoden, über die Sie auf die entsprechenden Objekte zugreifen können. $objektvariable =& JFactory::getObject(argument); Wie Sie sehen, wird wiederum eine Referenz auf ein Objekt erzeugt, dieses Mal jedoch auf ein bereits bestehendes. Daher verwendet man als Zuweisungsoperator auch nicht ein einfaches Gleichheitszeichen, sondern eine Referenzzuweisung. Damit wird sichergestellt, dass das Objekt nicht dupliziert wird. Das folgende Beispiel gibt Ihnen Zugriff auf das Datenbankobjekt: $db =& JFactory::getDBO(); Wie Sie sich denken können, kommt damit der JFactory eine zentrale Rolle zu. In der Tabelle 40.2 wird aufgelistet, welche Objekte Sie über welche Methoden erreichen können. Zudem sind wichtige Objekte auch in vielen 229
    • Kontexten direkt über eine Variable erreichbar. Diese finden Sie ebenfalls in der Tabelle. Tabelle 40.2 Einige Methoden von »JFactory« Methode Variable Rückgabetyp Anmerkung Rahmenklasse für die Ausführung getApplication() $mainframe JApplication von Joomla! Zugriff auf die Einstellungen von getConfig() JRegistry Joomla! getDate() JDate Die aktuelle Uhrzeit Zentraler Zugriff auf die getDBO() JDatabase Datenbank getDocument() JDocument Daten der eben erstellten Seite Ein Objekt zum Versenden von E– getMailer() JMail Mails getTemplate() JTemplate Zugriff auf das aktuelle Template URL, mit der die Seite aufgerufen getURI() JURI wurde getUser() $my JUser Daten zum aktuellen Benutzer Die Parameter, die mit der $params JRequest aktuellen URL übergeben wurden Eine Übersicht über die Methoden und Eigenschaften der Joomla!-Objekte finden Sie in der Referenz in Anhang B. Um ein Gefühl für die API zu bekommen, wollen wir unser Modul nun dahingehend erweitern, dass als Ausgabe der Name eines eingeloggten Users erscheint. Hinter dem Namen soll ein Info-Icon stehen, das einen Tooltip einblendet, wenn man mit der Maus darüber fährt. Das Ganze wird internationalisiert und reagiert auf Einstellungen im Backend. 41 Plug-ins erstellen Im Gegensatz zu Modulen operieren Plug-ins zumeist direkt auf dem eigentlichen Inhalt. Technisch gesehen werden sie in Abhängigkeit von verschiedenen Vorfällen (Events) im Hauptprogramm aufgerufen. Ein solcher Event ist beispielsweise die Vorbereitung eines Inhaltselements für die Ausgabe. Ein anderer Event kann der Aufruf des Editors sein. 230
    • Plug-ins tauchen, wie bereits erwähnt, in verschiedenen Formen auf. Sie können direkt den Inhalt verändern, einen Editor einbinden, über einen Editor- Button eigenen Text einfügen, bei der Suche Ergebnisse zurückliefern, die Benutzeranmeldung übernehmen und Aufgaben im Joomla!-System verrichten. Mit dem neuen Event-System von Joomla! sind die Anwendungsmöglichkeiten enorm gestiegen. Wir werden uns einige Ausprägungen im Folgenden genauer ansehen. Vieles davon wird Ihnen aus Kapitel 39, »Mein erstes Modul«, schon bekannt vorkommen. Auch Plug-ins benötigen für die Installation eine XML-Datei, über die auch Parameter angegeben werden können. Ebenso ist es aus Plug-ins heraus möglich, die Funktionen und Objekte der Joomla!-API zu verwenden. 41.1 Funktionsweise Plug-ins werden in Objekten programmiert. Das Grundgerüst sieht dabei immer gleich aus: 1 jimport('joomla.plugin.plugin'); 2 class plgSystemTest extends JPlugin { 3 function plgSystemText (&$subject, $config) { 4 parent::__construct( $subject, $config ); 5 } 6 function onEvent() { 7 //code 8 } 9 } Listing 41.1 Das Grundgerüst eines Plug-ins Zunächst wird über den Befehl jimport die Basisklasse für ein Plug-in geladen. Von dieser wird das neue Plug-in über den Befehl extends abgeleitet. Der Effekt ist, dass viele Methoden, die ein Plug-in benötigt, hier gleich mit eingebunden werden. In den Zeilen 3–5 wird der Konstruktor der Basisklasse aufgerufen. Dieser führt einige grundlegenden Vorbereitungen durch. Achten Sie darauf, dass der Name der Methode identisch mit dem Namen der Klasse sein muss. Ab Zeile 6 wird eine weitere Methode erstellt, die den Namen eines Events trägt. Wird dieser Event von Joomla! ausgelöst, so erfolgt automatisch ein Aufruf dieser Methode. Events kann man sich als eine Art Botschaft des Joomla!-Grundsystems an seine Plug-ins vorstellen. Diese Botschaften werden gesendet, wenn bestimmte Aktionen durchgeführt werden oder durchgeführt worden sind. So gibt es beispielsweise einen onLogin-Event, der ausgelöst wird, nachdem sich ein Benutzer erfolgreich angemeldet hat. In einigen Plug-ins gibt es dann Methoden, die auf diese Botschaften reagieren und ihrerseits Code ausführen. So kann an verschiedenen Punkten während der Erstellung einer Joomla!-Seite eingegriffen werden. 231
    • Sie ahnen sicher schon, dass eine gute Kenntnis der Events ziemlich wichtig für die Programmierung von Plug-ins ist. In Tabelle 41.1 finden Sie eine Liste der verfügbaren Ereignisse. Tabelle 41.1 Eventhandler Ereignis Beschreibung Authentication Wird bei der Anmeldung eines Benutzers ausgeführt. onAuthenticate Hier können Sie festlegen, ob der Benutzer im System angemeldet wird. Content onPrepareContent Ein Inhaltselement wird zur Ausgabe aufbereitet. Hier haben Sie die Möglichkeit, Daten zwischen Titel onAfterDisplayTitle und Inhalt eines Beitrags einzufügen. onAfterDisplay Content Tritt unmittelbar nach der Ausgabe des Inhalts ein. onBeforeDisplay Tritt unmittelbar vor der Ausgabe des Inhalts ein. Content onAfterContentSave Ein Inhaltselement wurde gespeichert. Es soll ein Inhaltselement gespeichert werden. Hier onBeforeContentSave können Sie noch eingreifen. Wird ausgelöst, nachdem die Inhalte ausgegeben onAfterDisplay worden sind. Wird ausgelöst, wenn Joomla! bereit ist, die Inhalte onBeforeDisplay darzustellen. Editors Der Editor wird gestartet. Hier können Sie noch onInit zusätzliche Einstellungen vornehmen. onGetContent Der Text wird für den Editor aufbereitet. onSetContent Inhalte werden in den Editor geladen. onSave Ein Text soll gespeichert werden. Nach dem Editor-Feld werden zusätzliche Buttons onDisplay ausgegeben. Search onSearch Eine Suchanfrage wird bearbeitet. onSearchAreas Hier können Sie zusätzliche Suchräume definieren. System Wird ausgelöst, nachdem das Joomla!-Framework onAfterInitialise geladen wurde. An dieser Stelle weiß Joomla! bereits, welche onAfterRoute Aufgaben auf das System warten. onAfterDispatch Wird ausgelöst, wenn der Inhalt der aufgerufenen 232
    • Komponente verfügbar ist. Wird ausgelöst, wenn die Ausgabe zusammengesetzt onAfterRender wurde und verfügbar ist. User Wird ausgeführt, nachdem ein Benutzer erfolgreich onLoginUser am System angemeldet wurde. Hat der Benutzer ungültige Daten bei der Anmeldung onLoginFailure eingegeben, wird dieser Event ausgelöst. Wird ausgelöst, nachdem ein Benutzer sich aus dem onLogoutUser System abgemeldet hat. Tritt ein Fehler bei der Abmeldung auf, so können Sie onLogoutFailure hier reagieren. Tritt ein, bevor die Daten eines neuen Benutzers onBeforeStoreUser gespeichert werden. Tritt ein, nachdem die Daten eines neuen Benutzers onAfterStoreUser gespeichert worden sind. Tritt ein, bevor die Daten eines Benutzers gelöscht onBeforeDeleteUser werden. Tritt ein, nachdem die Daten eines Benutzers onAfterDeleteUser gelöscht worden sind. XML-RPC Wird ausgelöst, wenn eine Anfrage von außen onGetWebServices kommt, die herausfinden soll, welche Webservices die Joomla!-Installation anbietet. Sie sehen in der Tabelle, dass die Events nach Plug-in-Typen geordnet sind. Diese Typen sind wichtig für die Registrierung des Plug-ins, die in der XML- Datei festgelegt wird. Denn nur die Ereignisse, die auch dem Plug-in-Typ entsprechen, werden tatsächlich berücksichtigt. So ist es nicht möglich, in einem User-Plug-in die Ausgabe des Inhalts zu verändern. Die einzelnen Event-Methoden werden von Joomla! gegebenenfalls noch mit Parametern gefüttert. Dazu finden Sie mehr in Anhang B. 42 Eine eigene Komponente Komponenten sind wesentlich komplexere Elemente als Plug-ins oder Module. Neben der Darstellung im Frontend gibt es auch im Backend einen Manager und ein eigenes Menü. Zudem greifen Komponenten auf die Datenbank zu, so dass auch hier eine Schnittstelle geschaffen werden muss. 233
    • Daher besteht eine Komponente in der Regel auch aus mehreren Dateien. Wir wollen im Folgenden eine Komponente entwickeln, in der Tanzpaare zusammen mit einem internen Turnier-Ranking gespeichert werden können, so dass man sich immer die aktuelle Vereinswertung ansehen kann. Dazu benötigen wir im ersten Schritt die folgenden Dateien in einem separaten Installationsverzeichnis, z. B. pairrank_inst: Installationsdateien • pairrank.xml Daten für die Installation. • install.php Ein zusätzliches Installationsskript. Wird auch dazu genutzt, um nach der Installation Informationen für den Benutzer anzuzeigen. • install.sql Erstellt die notwendigen Datenbanktabellen und füllt diese mit ersten Daten. • uninstall.sql Löscht bei der Deinstallation der Komponente die eigenen Datenbanktabellen. Frontend • pairrank.php Die Basis des Frontend-Teils der Komponente. • controller.php Enthält die Verarbeitungslogik der Komponente. • views/pairrank/view.html.php Die View-Klasse, die die Daten zur Darstellung aufbereitet. • views/pairrank/tmpl/default.php Das HTML-Template für die Frontend-Ausgabe. • models/pairrank.php Enthält das Datenmodell und Methoden für den Zugriff und die Speicherung. Backend • admin.pairrank.php Enthält die Programmlogik für das Backend. Hoffentlich sind Sie nicht erschrocken über die Fülle der Dateien, die erstellt werden müssen. Wir werden sie im Folgenden im Einzelnen durchsprechen. Vielleicht haben Sie sich gewundert, warum im Backend-Bereich nur eine 234
    • Datei zu finden ist. Diese fungiert momentan nur als Platzhalter; später in diesem Kapitel werden wir sie weiter ausbauen. Basis-Skript und Controller? Vielleicht fragen Sie sich, warum der Controller nicht gleich im Basis-Skript enthalten ist. Eine mögliche Erklärung ist, dass die Joomla!-Entwickler aus Kompatibilitätsgründen noch Raum für »Spaghetti-Komponenten« lassen wollten, die alles in einer Datei verwalten. Zudem ist der Controller ein Objekt, das erst aus einem »Hauptprogramm« heraus erstellt werden muss. Bevor wir beginnen, sollten wir uns noch Gedanken über den Aufbau unserer Datenbasis machen. Die Tabelle #__pairrank soll die folgenden Spalten enthalten: Tabelle 42.1 Die Spalten der Datenbankeinträge Spalte Wert Beschreibung Eine fortlaufende Nummer zur eindeutigen id Integer Identifizierung des Datensatzes. pair Text Die Namen der Tänzer. points Integer Die Anzahl der Punkte. Small published 1 für publiziert, 0 für versteckt. Integer 42.1 Die Installationsdateien Der Installationsprozess bei einer Komponente ist aufwendiger als bei den anderen Erweiterungen. Komponenten bestehen aus einem Frontend- und einem Backend-Bereich und verwalten häufig eigene Daten. 42.1.1 Die Komponenten-Beschreibung Die XML-Datei, die die Installation beschreibt, enthält einige Tags, die wir bisher noch nicht verwendet haben. 1 <?xml version="1.0" encoding="UTF-8"?> 2 <install type="component" version="1.5"> 3 <name>pairrank</name> 4 <files folder="site"> 235
    • 5 <filename>pairrank.php</filename> 6 <filename>controller.php</filename> 7 <filename>views/pairrank/view.html.php</filename> 8 <filename>views/pairrank/tmpl/default.php</filename> 9 <filename>models/pairrank.php</filename> 10 </files> 11 <install> 12 <sql> 13 <file charset="utf8" driver="mysql">install.sql</file> 14 </sql> 15 </install> 16 <uninstall> 17 <sql> 18 <file charset="utf8" driver="mysql">uninstall.sql</file> 19 </sql> 20 </uninstall> 21 <installfile>install.php</installfile> 22 <uninstallfile>install.php</uninstallfile> 23 <administration> 24 <menu>Paar-Ranking</menu> 25 <submenu> 26 <menu act="all">Verwalten</menu> 27 </submenu> 28 <files folder="admin"> 29 <filename>admin.pairrank.php</filename> 30 <filename>install.sql</filename> 31 <filename>uninstall.sql</filename> 32 </files> 33 </administration> 34 </install> Listing 42.1 pairrank.xml Zu den Zeilen 1–3 ist lediglich anzumerken, dass der Eintrag type in Zeile 2 natürlich den Wert component haben muss. Im <files>-Tag der Zeilen 4 –10 werden die Dateien vermerkt, die für den Frontend-Teil zuständig sind. Beachten Sie das Attribut folder="site". In den Zeilen 11–15 und 16 –20 wird die SQL-Datei angegeben, die bei der Installation bzw. der Deinstallation ausgeführt wird. PHP-Skripten, die bei Installationsvorgängen zusätzlich ausgeführt werden sollen, werden in den Zeilen 21 und 22 festgelegt. Der Bereich <administration> legt die Daten für das Backend fest (Zeilen 23–33). Bestimmen Sie zunächst den Namen des Eintrags im Components-Menü mit <menu> (Zeile 24) und dann im <submenu>-Tag die Untermenüs (Zeilen 25– 27). Hier können Sie im Attribut act einen Wert angeben, der später beim Aufruf an die Komponente übergeben wird. Danach folgt nach bekanntem Schema eine Liste der Dateien, die zur Administrationsseite der Komponente gehören (Zeilen 28–32). Beachten Sie, dass hier die SQL-Dateien nochmals angegeben sind. Die Dateistruktur im Installationsverzeichnis sieht dann folgendermaßen aus: mod_pairrank install.php pairrank.xml site 236
    • controller.php pairrank.php views pairrank view.html.php tmpl default.php models pairrank.php admin admin.pairrank.php install.sql uninstall.sql 42.1.2 Die Datenbank Sehen wir uns als Nächstes die Dateien an, die mit der Datenbank zu tun haben. In install.sql finden Sie Anweisungen, die bei der Installation ausgeführt werden. 1 DROP TABLE IF EXISTS `#__pairrank`; 2 CREATE TABLE `#__pairrank` ( 3 `id` INT NOT NULL AUTO_INCREMENT, 4 `pair` TEXT NOT NULL, 5 `points` SMALLINT NOT NULL, 6 `published` TINYINT(1) NOT NULL, 7 PRIMARY KEY (`id`) 8 ); 9 INSERT INTO `#__pairrank` VALUES (1,'Josef/Maria',200,1); 10 INSERT INTO `#__pairrank` VALUES (2,'Hans/Agathe',400,1); Listing 42.2 install.sql Sollten sich noch alte Daten (beispielsweise aus einer früheren Version der Komponente) in der Datenbank befinden, so werden diese in Zeile 1 gelöscht. Nicht zwingend Wenn Sie nicht wollen, dass die alten Daten bei jeder Installation gelöscht werden, können Sie diese Zeile auch weglassen. Dann müssen Sie jedoch sicherstellen, dass sich die Tabellenstruktur nicht ändert. In den Zeilen 2–8 wird die Datenbank gemäß der Struktur angelegt, die wir in Tabelle 42.1 beschrieben haben. Beachten Sie, dass statt des Tabellenpräfixes die Zeichenkette #__ verwendet wird. Diese wird bei der Installation automatisch durch das im entsprechenden System gültige Präfix ersetzt. 237
    • Wenn die Komponente deinstalliert wird, sollten die entsprechenden Datenbanktabellen ebenfalls gelöscht werden. Die nötigen Befehle werden in der Datei uninstall.sql hinterlegt: 1 DROP TABLE IF EXISTS ´#__pairrank´; Listing 42.3 uninstall.sql Diese besteht in unserem Fall nur aus einer Zeile, mit der die Tabelle pairrank entfernt wird. Beachten Sie auch hier das #__ als Präfix. 42.1.3 Zusätzliche Installationsanweisungen Das zusätzliche Installations- und Deinstallationsskript sieht in unserem Fall sehr bescheiden aus und könnte zur Not auch weggelassen werden. Dann müssen Sie allerdings auch die Zeilen 21–22 aus der XML-Datei löschen. 1 <?php 2 defined('_JEXEC') or die('Restricted access'); 3 function com_install() { 4 echo 'Schön, dass Sie unsere Komponente benutzen'; 5 } 6 function com_uninstall() { 7 echo 'Bis bald'; 8 } 9 ?> Listing 42.4 install.php In der Datei sind die Funktionen für beide Aktionen, Installation und Deinstallation, hinterlegt. Wichtig ist, dass Sie dabei die Namenskonvention einhalten: Sie brauchen eine Funktion com_install für die Installation und eine Funktion com_uninstall für das Entfernen der Komponente. Wir haben in beiden Funktionen nur beispielhaft eine Ausgabe implementiert. Diese wird mit der Erfolgsmeldung angezeigt, die ausgegeben wird, wenn die Installation oder Deinstallation korrekt ausgeführt wurde. A Parameter der unterschiedlichen Menütypen 238
    • A.1 Die Funktionen des TinyMCE Tabelle A.1 Die Formatierungsoptionen des TinyMCE Schaltfläche Funktion Fett; Kursiv; Unterstrichen; Durchgestrichen Linksbündig; Zentriert; Rechtsbündig; Blocksatz CSS-Stile Formatierung der verschiedenen Überschriften 1 bis 6 sowie Sonderformate wie z. B. Preformatted Schriftart Aufzählung; Nummerierung Absatz ausrücken, Absatz einrücken Rückgängig; Vorwärts Link einfügen; Link entfernen Anker einfügen Bild einfügen Aufräumen Ansicht HTML Aktuelles Datum/aktuelle Uhrzeit/Smiley einfügen Multimedia-Dateien wie z. B. Flash-Filme einbinden Felder auf linksbündig bzw. rechtsbündig stellen Neues Feld einfügen Feld nach vorn/nach hinten Feld absolut positionieren Schriftfarbe Horizontale Linie einfügen Formatierung entfernen Unsichtbare Elemente wie z. B. Tabellenhilfslinien ein- und ausschalten Hochgestellt, tiefgestellt Sonderzeichen Horizontale Linie mit der Möglichkeit der Detaileinstellung 239
    • Umschalten in die Vollbildansicht CSS editieren B Die Joomla!-API Die Joomla!-API ist die Schnittstelle, die Joomla! den Programmierern von Erweiterungen zur Verfügung stellt. Sie umfasst eine Vielzahl von Klassen und Funktionen und ist so umfangreich, dass sie allein ein ganzes Buch füllen würde. Wir wollen Ihnen im Folgenden die wichtigsten Bestandteile vorstellen. B.1 Funktionen Wenn Ihr Skript innerhalb des Joomla!-Frameworks ausgeführt wird, sind viele Methoden über Objekte des Systems verfügbar. Einige Funktionen sind aber auch direkt implementiert. Tabelle B.1 Funktionen im Joomla!-Framework Funktion Beschreibung jexit(string Beendet Joomla!. Sie können in $msg der Anwendung noch $msg) einen Exit-Code mit geben. jimport (string Bindet Dateien und Klassen in Joomla! ein. Der Pfad wird $path) durch Punkte getrennt angegeben. C Glossar Accessibility → Barrierefreiheit. Accesskey Tastenkombinationen für schnellen Zugriff auf Programmfunktionen. Add-on Eigenständiges Programm, das für eine bestimmte Software zusätzliche Dienste leistet. → Plug-in. 240
    • Administrator (Admin) Softwarenutzer mit besonderen Rechten. Der Administrator hat die Aufgabe, die Software zu installieren, zu warten, zu erneuern und die Bedingungen herzustellen, damit normale User ihrem Tagesgeschäft mit der Software nachgehen können. AdSense Werbeprogramm von Google, bei dem Werbeanzeigen gegen Entgelt auf eigenen Webseiten platziert werden. Die Auswahl der Anzeigen ist inhaltsbezogen und wird automatisch durch Google erzeugt. AdWords Gegenstück zu → AdSense, bei dem die Werbetreibenden Geld auf bestimmte Begriffe bieten, um in AdSense-Anzeigen genannt zu werden. Ajax Technik, die es ermöglicht, Teile einer Seite neu zu laden, ohne dass die ganze Seite nachgeladen werden muss. Dadurch verhalten sich viele Internetapplikationen wie lokale Anwendungen. API (Application Programming Interface) Die Schnittstelle, die ein Programm anderen Anwendungen bereitstellt, damit diese auf die Funktionen des Programms zugreifen können. ASCII (American Standard Code for Information Interchange) Standardisierter Zeichensatz zur Textdarstellung. Atom Bezeichnung für ein plattformunabhängiges Feed-Format und ein Protokoll zum Ver- und Bearbeiten von Webinhalten. Backend Bezeichnet den Teil einer Software-Anwendung, die auf dem Server läuft und die Daten verwaltet. Dagegen wird das Programm, das die Daten auf dem Client darstellt, als → Frontend bezeichnet. Der Backend-Bereich ist nur → Administratoren zugänglich. Backup Eine Sicherungskopie bestehender Daten. Barrierefreiheit Dabei handelt es sich um ein Designprinzip, bei dem versucht wird, die Nutzung einer Webseite unabhängig von körperlichen Behinderungen des Nutzers und technischen Hürden zu ermöglichen. Beiträge Stellen die unterste Ebene der Joomla!-Hierarchie dar. Ähnliche Beiträge werden in → Kategorien zusammengefasst. Bereiche Ein Bereich beinhaltet → Kategorien. Bereiche sind die oberste Ebene in der Joomla!-Hierarchie. Blog (»Weblog«) Eine Art webbasiertes Tagebuch, in dem der Blogger schnell Artikel publizieren kann. Die Einträge werden beginnend mit dem aktuellsten Eintrag in einer Liste angezeigt. Sie können meistens von den Besuchern kommentiert, aber nicht verändert werden. Blogosphäre Bezeichnung für die Gesamtheit aller Blogs und ihrer Verbindungen untereinander. 241
    • Captcha Bild mit einem verzerrten Text, der für Menschen ohne Probleme lesbar ist, Computern aber Schwierigkeiten bereitet. Wird eingesetzt, um sicherzustellen, dass man es mit einem Menschen als Kommunikationspartner zu tun hat. Chat Kommunikationsform im Internet. Mehrere Teilnehmer sind gleichzeitig in einem Chatroom (ein Textfeld) anwesend und unterhalten sich schriftlich. Community (»Gemeinde«) Die Gruppe der Menschen, die zusammen in Wikis, Blogs, CMS etc. arbeiten und interagieren. Content (»Inhalt«) Bezeichnet den Inhalt bzw. den Inhaltsbereich einer Seite. Content Management System (CMS) Software zur Speicherung, Verwaltung und Suche nach Dokumenten oder Inhalten. Webbasierte CMS werden oft verwendet, um gemeinsam eine Homepage zu erstellen. Copyleft Lizenzmodell, das die freie Möglichkeit der Vervielfältigung, Verbreitung und Veränderung eines Werks garantiert, indem es diese Rechte nur einräumt, wenn bei der Weitergabe oder Modifikation die freie Lizenz erhalten bleibt. Cracker Computerfreaks, die Software durch eigene Programmcodes oder sonstige Veränderungen manipulieren. Sie stehen als Synonym für destruktive → Hacker. Creative Commons Freie Lizenz, die die Nutzung eines Dokuments in verschiedenen Abstufungen regelt. Der Urheber hat die Option, die Nennung seines Namens vorzuschreiben, eine kommerzielle Nutzung zu erlauben und Veränderungen zu verbieten, unter Beibehaltung der Lizenz zu erlauben (»Share Alike«) oder generell zu genehmigen. Creative Commons ist daher nicht zwangsläufig mit dem Copyleft-Prinzip konform. Der Lizenztext liegt in drei Fassungen vor einer für Laien verständlichen Kurzversion, der juristisch korrekten Langversion und einer maschinenlesbaren Version (z. B. für Suchmaschinen). Es gibt eine Vielzahl an Übersetzungen, u. a. auch ins Deutsche. CSS (»Cascading Style Sheets«) Ein Formalismus, der das Aussehen einer HTML-Datei beschreibt. Mit CSS lassen sich das Layout und die Formatierungen eines Webangebots zentral und mit geringem Aufwand verwalten. Dokumentenmanagement Verwaltung elektronischer Dokumente. Diese werden als abgeschlossen betrachtet. Der Inhalt des Dokuments ist also anders als beim Content Management nicht über das System veränderbar. DOM (Document Object Model) Wird verwendet, um Elemente auf Websites zu erzeugen, zu löschen und ein- und auszuschalten. 242
    • Emoticon Kleines Bild oder Smiley, das den Gefühlszustand des Schreibers signalisieren soll. Extension (»Erweiterung«) Programm, das verwendet werden kann, um die Funktionalität einer bestehenden Anwendung zu erweitern. Extensions sind nicht eigenständig lauffähig. FDL (»Free Documentation License«) Eine aus der Software-Lizenz → GPL hervorgegangene Lizenz für Dokumente. Garantiert, dass die Nutzung des Dokuments dem → Copyleft folgt. Die Nutzer verpflichten sich zur Nennung der Namen aller an der Entstehung des Dokuments Beteiligten sowie zur ausschließlichen Weitergabe unter der FDL. Dabei muss der Lizenztext mit abgedruckt werden, was besonders bei kleineren Dokumenten problematisch ist. Außerdem liegt die FDL bisher nur in Englisch vor. Eine Alternative stellt die → Creative Commons-Lizenz dar. Feedreader Feedreader oder RSS-Reader sind Programme, die Feeds einlesen und verarbeiten können. In den meisten Browsern und E–Mailclients sind bereits RSS-Reader integriert. Forum Webanwendung, die sich zur Diskussion eignet. Es können Beiträge eingereicht werden, auf die andere Benutzer dann antworten können. Frontend Für alle User zugänglicher Bereich einer webbasierten Software. Das Gegenteil von → Backend. GNU GPL (»General Public License«) Software-Lizenz, die das → Copyleft- Prinzip begründet hat. Garantiert, dass Programme, die unter dieser Lizenz stehen, vervielfältigt, verbreitet und weitergegeben werden dürfen, unter der Bedingung, dass sich die Lizenz nicht ändert. Für Dokumente wurde die → FDL als Ableger entwickelt. Hacker Talentierter Computerspezialist, der in fremde Systeme eindringt oder Sicherheitsbarrieren überwindet. Sein Wissen verwendet er jedoch meist zur Aufklärung der gefundenen Sicherheitslücken. Hash Das Zeichen »#«. HTTPS Protokoll zur Verschlüsselung und Authentifizierung der Kommunikation zwischen Webserver und Browser im World Wide Web. Implementation Konkrete Umsetzung eines Programms in einer Programmiersprache. Inhalt → Content. Instant Messenger (IM) Programme, die es ermöglichen, in Echtzeit Nachrichten über ein Netzwerk zu verschicken und zu empfangen. Der bekannteste IM ist ICQ von der Firma Mirabilis. 243
    • Kategorie Eine Kategorie beinhaltet einzelne, thematisch ähnliche Inhaltsseiten. Kategorien werden Sektionen untergeordnet und stellen das zweite Element in der Joomla!-Hierarchie dar. An oberster Stelle befinden sich die → Bereiche, und nach den Kategorien folgen die → Beiträge. Klickpfad (»Breadcrumbs«) Zeigt den zurückgelegten Weg in einer Menüstruktur an und ermöglicht es, an einen beliebigen Punkt zurückzuspringen. Komponente Erweiterungen von Joomla!. Sie können eigene dynamische Inhalte verwalten und im Backend und in der Datenbank separate Bereiche haben. Üblicherweise werden Ihre Daten im Frontend direkt im Inhaltsbereich angezeigt. Kontrollzentrum Bereich auf der Startseite des Backends mit vielen Symbolen, über die verschiedene Aufgaben bewältigt werden können. Lizenz Einräumung und Regelung von Nutzungsrechten an einem Werk oder Dokument durch den Urheber. Die Lizenzierung von Dokumenten ist ein sehr neues Phänomen, das eng mit deren digitaler Existenz und Kopierbarkeit verbunden ist. Hier sind in den nächsten Jahren einige Neuerungen zu erwarten. → Copyleft, Creative Commons, FDL. Login Die Anmeldung bei einer Website mit Name und Passwort. Ermöglicht häufig den Zugang in einen geschützten Bereich. Mashup Vermischen von Webanwendungen, wie etwa das Einbinden von Google Maps-Karten oder YouTube-Videos in die eigene Website. Modul Erweiterung von Joomla!, die zur Anzeige spezieller Inhalte im Front- und Backend dient. Die Ausgabe erfolgt an speziellen Positionen außerhalb des Inhaltsbereichs. MySQL Quelloffene Datenbank, die häufig im Zusammenhang mit Webanwendungen verwendet wird. Newsfeed Computerlesbare Zusammenfassungen einer Webseite, die in regelmäßigen Abständen von einem Leseprogramm abgefragt und für den User aufbereitet werden. So ist er immer über aktuelle Veränderungen informiert. → RSS. Open Source Lizenzmodell für Software, bei dem der Quelltext eines Programms frei verfügbar ist und von jedem verändert und weitergegeben werden darf. PHP Eine Skriptsprache, die häufig dazu verwendet wird, dynamische Webanwendungen zu betreiben. Pipe Das Zeichen »|«. 244
    • Plug-in Programmteil, der in eine bestehende Software eingeklinkt werden kann, um diese um weitere Funktionalität zu ergänzen. In Joomla! geht es dabei speziell um systemnahe Erweiterungen. Podcast Liste mit Medienbeiträgen, zumeist Audiodateien. Ähnlich wie der → Blog eine Webanwendung, die den neuesten Beitrag als ersten Beitrag anzeigt. Produktionsbetrieb Bezeichnet den Einsatz einer Software »im richtigen Leben«. Das Gegenteil dazu ist der Testbetrieb. Programmierschnittstelle → API. Root-Verzeichnis Ausgangspunkt (Wurzel) einer Verzeichnisstruktur. RSS Standard für → Newsfeeds. Safe Mode Sicherheitsoption von → PHP, bei der ein Skript, das auf eine Datei zugreifen will, und diese Datei selbst den gleichen Eigentümer haben müssen. Das bringt im Allgemeinen Einschränkungen für den Betrieb von PHP-basierten Webanwendungen mit sich. Screenshot Ein Schnappschuss des aktuellen Bildschirminhalts. Besonders hilfreich bei Layout-Entwürfen, die noch keine Funktionalität haben sollen. SEF (»Search Engine Friendly«) Technische Maßnahmen, um eine Seite für Suchmaschinen besser lesbar zu machen. SEO (»Seach Engine Optimization«) Der Prozess aus technischer und inhaltlicher Arbeit, um einen möglichst guten Platz bei der Trefferanzeige von Suchmaschinen zu erhalten. Sitemap Übersicht über alle Beiträge auf einer Homepage. Skript Kleines Programm, das über einen Interpreter ausgeführt wird, der die Skriptsprache versteht. Liegt im Klartext vor, ist also nicht in Maschinensprache übersetzt. Skriptkiddie Der Begriff leitet sich von »Skript« und »Kid« ab und hat zwei unterschiedliche Bedeutungen. Er bezeichnet angehende Programmierer, die sich anfangs auf Skriptsprachen beschränken. Er ist auch Bezeichnung für Personen, die auf vorgefertigte Programme zugreifen, um Sicherheitsbarrieren zu überwinden oder Vandalismus zu betreiben. Diese Skriptkiddies verfügen im Gegensatz zu → Hackern oder → Crackern nur über geringe Computerkenntnisse. Slice Ausschnitt aus einem »zerschnittenen« Layout oder Bild. Die einzelnen Ausschnitte werden später in der HTML-Datei wieder zu einer Seite zusammengesetzt. 245
    • Spam Unerwünschte Werbebeiträge jeder Art, insbesondere in Form von E– Mails oder Forenbeiträgen. Spam wird häufig automatisch generiert. Statischer Beitrag Ein Inhaltselement, das keiner Kategorie oder keinem Bereich angehört. Es ist also auch keiner Hierarchie untergeordnet und kann nicht dynamisch in einem Blog oder einer Liste aufgeführt werden. Stylesheet → CSS. Syntax Schreibweise oder -konvention, hier für Computerdateien. Muss zeichengenau eingehalten werden, damit der Computer »versteht«, was gemeint wird. Tag Element einer Auszeichnungssprache, das bestimmte Bereiche in einem Dokument kennzeichnet. HTML verwendet Tags, um Formatierung und Strukturierung eines Textes anzugeben. Tag Cloud Eine Tag Cloud zeigt alle vergebenen Tags an, wobei die meistvergebenen Tags größer erscheinen und so die Relation untereinander angegeben wird. Tagging Beschreiben von Lesezeichen, Bildern oder auch Bloginhalten mit Schlagwörtern, sogenannten Tags. Die dadurch erstellten Sammlungen von Tags heißen auch Folksonomien. Teaser Der Teil eines → Contents, der auch in Übersichtsseiten und Kurzfassungen angezeigt wird, um den Besucher zum Weiterlesen anzuregen. Template Layout-Prototyp, in den von einer Software (z. B. einem CMS) weitere Inhalte eingebunden werden. Thumbnail Miniaturansicht eines Bildes, die zunächst angezeigt wird, damit der Besucher sehen kann, ob ihn die Darstellung so sehr interessiert, dass er gegebenenfalls längere Ladezeiten auf sich nehmen würde. Update Maßnahme zur Aktualisierung einer Software, die vor allem zur Behebung von Fehlern und zum Stopfen von Sicherheitslücken dient. Upgrade Die Aktualisierung einer Software auf eine neue Hauptversion. URL Die Adresse einer Internetseite. URI (Uniform Resource Identifier) → URL. Verweis, intern Verlinkt Seiten innerhalb der Joomla!-Site und kann auch relativ adressiert werden. Verweis, extern Verlinkt auf fremde Inhalte im WWW und verlässt so den Bereich der Site. Die Adressierung muss immer absolut erfolgen. 246
    • Webhoster Dienstleister, der Speicherplatz und Adresse für Ihre Homepage zur Verfügung stellt. Wiki Webanwendung, in der gemeinsam Texte erstellt werden können. Im Gegensatz zum CMS ist die Bearbeitung dabei für alle Besucher möglich. Die Überprüfung der Inhalte erfolgt durch die → Community. WYSIWYG (»What you see is what you get«) Bezeichnet Editoren, mit denen ein Text gleich in der richtigen Formatierung bearbeitet werden kann. Sie sehen also während der Eingabe schon, wie der Text im Druck oder in der Anzeige aussieht. XML (»Extensible Markup Language«) Standardisierter Formalismus, mit dem Dokumente so gekennzeichnet werden können, dass ihre Struktur sowohl für Menschen als auch für Computer lesbar ist. 247