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

Joomla 1 5 Handbuch

  • 1.
    Inhaltsverzeichnis Vorwort Zur zweiten Auflage Fürwen 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.
    2.1 Systemvoraussetzungen 2.2 Installationunter 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.3 Der EditorTinyMCE 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
  • 4.
    5.1 Neue Inhalteeinfü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
  • 5.
    7 Das Website-Design 7.1Warum 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
  • 6.
    9.1.4 Die Menüs 9.1.5Anmeldung 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
  • 7.
    10.3.2 PHP Mail 10.3.3SMTP 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
  • 8.
    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
  • 9.
    16 Joomla! alsprofessionelle 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
  • 10.
    17.4 Produkte 17.4.1 Kategorienanlegen 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
  • 11.
    18.1.5 Funktionen fürdas 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
  • 12.
    19.2.2 Attachment imBackend 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
  • 13.
    21.2 JoomGallery 21.2.1 Installation 21.2.2Das 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
  • 14.
    23.1 IDoBlog 23.1.1 Installationund 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
  • 15.
    24.3.7 Löschen 24.3.8 GelöschteSeiten 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
  • 16.
    26 Gästebücher 26.1 PhocaGuestbook 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
  • 17.
    28.2.3 Übertragen derDatenbank 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
  • 18.
    30.4 FTP-Client: FileZilla 30.4.1Installation 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
  • 19.
    31.1.14 Fußzeile 31.1.15 Navigationspfad 31.2Plug-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
  • 20.
    31.3.6 Statistiken 31.3.7 Fußzeile 31.3.8Ungelesene 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
  • 21.
    33.2 SEO inJoomla! 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
  • 22.
    36.1.1 Statische Homepage 36.1.2Einbinden 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
  • 23.
    38.2.3 Passwort vergessen 38.2.4Seiten 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
  • 24.
    39.3.4 Der Rahmen 39.3.5Die 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
  • 25.
    42.2.1 Einstiegsskript undController 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
  • 26.
    B.1 Funktionen B.2 Konstanten B.3Objekte 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
  • 27.
    Vorwort Gute zehn Jahrenach 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
  • 28.
    Aus der Geschichtevon 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
  • 29.
    1 Einleitung Vielleicht warenSie 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
  • 30.
    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
  • 31.
    können durch eingutes 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
  • 32.
    besteht darin, dassneue 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
  • 33.
    2.1 Systemvoraussetzungen Joomla! isteine 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
  • 34.
    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
  • 35.
    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
  • 36.
    Hier klicken, umdas 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
  • 37.
    3.1.2 Module Auf vielenJoomla!-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
  • 38.
    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
  • 39.
    Video-Lektion Zu diesem Kapitelfinden 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
  • 40.
    Abbildung 4.1 DerEingang 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
  • 41.
    Bilder in diesesVerzeichnis 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
  • 42.
    Hier klicken, umdas 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
  • 43.
    Sie nach speziellenTiteln, 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
  • 44.
    Hier klicken, umdas 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
  • 45.
    Hier klicken, umdas 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
  • 46.
    Hier klicken, umdas 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
  • 47.
    Hier klicken, umdas 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
  • 48.
    gleich der ganzeArtikel 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
  • 49.
    6 Eine ersteWebseite 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
  • 50.
    erfahren. Dort habenwir 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
  • 51.
    (Abbildung 6.1). Andieser 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
  • 52.
    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
  • 53.
    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
  • 54.
    7 Das Website-Design Mittlerweilehaben 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
  • 55.
    Gutes Webdesign fordertneben 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
  • 56.
    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
  • 57.
    sehen oder zubearbeiten. 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
  • 58.
    Letzter Besuch Hiersehen 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
  • 59.
    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
  • 60.
    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
  • 61.
    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
  • 62.
    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
  • 63.
    Eine wesentliche Eigenschaftder 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
  • 64.
    9.1.3 Die Modul-Detailseite WennSie 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
  • 65.
    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
  • 66.
    In den Parameterneines 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
  • 67.
    stehen soll. 9.1.5 Anmeldung DiesesModul 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
  • 68.
    Klicken Sie inder 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
  • 69.
    10.1.1 Seite Der ersteTeil 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
  • 70.
    10.1.2 Suchmaschinenoptimierung undMetainformation 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
  • 71.
    alle möglichen Variantenvon 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
  • 72.
    und nicht ineinen 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
  • 73.
    Diese drei Punktewerden 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
  • 74.
    4. die DateitemplateDetails.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
  • 75.
    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
  • 76.
    Kommen wir nunzum 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
  • 77.
    Jetzt bleiben unsnur 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
  • 78.
    und neue Möglichkeitenim 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
  • 79.
    Möglichkeiten stehen zurVerfü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
  • 80.
    Hier klicken, umdas 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
  • 81.
    Hier klicken, umdas 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
  • 82.
    bearbeiten. Die dritteSpalte 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
  • 83.
    Hier klicken, umdas 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
  • 84.
    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
  • 85.
    14.1 Bedeutung »Blinde kommeneh 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
  • 86.
    15.1 Zugriff fürregistrierte 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
  • 87.
    Hier klicken, umdas 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
  • 88.
    Hier klicken, umdas 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
  • 89.
    Hier klicken, umdas 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
  • 90.
    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
  • 91.
    Hier klicken, umdas 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
  • 92.
    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
  • 93.
    Hier klicken, umdas 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
  • 94.
    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
  • 95.
    Ein Grund, warumJoomla! 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
  • 96.
    und bezahlen. Manunterscheidet 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
  • 97.
    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
  • 98.
    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
  • 99.
    dies nach gängigerRechtssprechung 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
  • 100.
    Die Software desVirtueMarts 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
  • 101.
    Hier klicken, umdas 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
  • 102.
    Tabelle 17.1 DieModule 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
  • 103.
    17.1.4 Sprachdateien Der VirtueMartist 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
  • 104.
    Leider ist dieOberflä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
  • 105.
    18.1.1 Installation undKonfiguration 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
  • 106.
    Hier klicken, umdas 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
  • 107.
    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
  • 108.
    Hier klicken, umdas 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
  • 109.
    Die BreezingForms stellenzur 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
  • 110.
    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
  • 111.
    Hier klicken, umdas 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
  • 112.
    fort. Nun erscheintein 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
  • 113.
    Hier klicken, umdas 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
  • 114.
    Dieselbe Prozedur wiederholenwir 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
  • 115.
    Hier klicken, umdas 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
  • 116.
    Tipp Wenn Sie inder 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
  • 117.
    Was jetzt nochfehlt, 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
  • 118.
    Hier klicken, umdas 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
  • 119.
    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
  • 120.
    Hier klicken, umdas 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
  • 121.
    Hier klicken, umdas 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
  • 122.
    Auch hier findenwir 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
  • 123.
    Fehlermeldung? Falls Sie beimAbschicken 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
  • 124.
    über die empfangenenInformationen (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
  • 125.
    Zunächst sollten Siedas 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
  • 126.
    Hier klicken, umdas 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
  • 127.
    Hier klicken, umdas 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
  • 128.
    Hier klicken, umdas 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
  • 129.
    Verzeichnisstruktur Ihres Computerszu 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
  • 130.
    19.1.1 Installation Laden Siedie 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
  • 131.
    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
  • 132.
    Die Erstellung einerneuen 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
  • 133.
    Hier klicken, umdas 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
  • 134.
    Falls das Hochladennicht 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
  • 135.
    Nach dem Abspeichernsollten 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
  • 136.
    Hier klicken, umdas 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
  • 137.
    19.1.7 Eigene Templates Mitdem 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
  • 138.
    Tabelle 19.4 Erweiterungenfü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
  • 139.
    Hier klicken, umdas 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
  • 140.
    20.1.1 Installation Laden Siedie 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
  • 141.
    Hier klicken, umdas 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
  • 142.
    Gehen Sie nunzum 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
  • 143.
    In den ReiternHilfe 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
  • 144.
    Hier klicken, umdas 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
  • 145.
    Wechselt zu einemausgewä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
  • 146.
    Erweiterungen. 20.1.5 Die Erweiterungen ZuIhrem 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
  • 147.
    Hier klicken, umdas 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
  • 148.
    Die aktuelle Versionist 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
  • 149.
    Datenbank, auf derdie 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
  • 150.
    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
  • 151.
    Hier klicken, umdas 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
  • 152.
    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
  • 153.
    Hier klicken, umdas 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
  • 154.
    Unter dem Bildbefindet 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
  • 155.
    Hier klicken, umdas 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
  • 156.
    22.1 Online-Kommunikation Man unterscheidetdie 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
  • 157.
    gerade führen. ZweiAspekte, 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
  • 158.
    Für Joomla! stehenIhnen 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
  • 159.
    Hier klicken, umdas 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
  • 160.
    Achtung, Open Source! Nochnicht 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
  • 161.
    Die Editieransicht mitdem 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
  • 162.
    Hier klicken, umdas 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
  • 163.
    hochladen möchten, müssenSie 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
  • 164.
    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
  • 165.
    historisch völlig verschiedeneUrsprü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
  • 166.
    Hier klicken, umdas 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
  • 167.
    Nun können Siedas 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
  • 168.
    Hier klicken, umdas 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
  • 169.
    Hier können Siedas 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
  • 170.
    bekannt und habeneinen 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
  • 171.
    keine Auswirkungen. Manfindet 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
  • 172.
    Hier klicken, umdas 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
  • 173.
    Hier klicken, umdas 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
  • 174.
    Hier klicken, umdas 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
  • 175.
    Jetzt finden Sieden 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
  • 176.
    machen sollte, dader 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
  • 177.
    Vor dem erstenStart 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
  • 178.
    Hier klicken, umdas 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
  • 179.
    Sind mehrere Benutzerim 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
  • 180.
    /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
  • 181.
    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
  • 182.
    Video-Lektion Zu diesem Kapitelfinden 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
  • 183.
    spielt Updates einund 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
  • 184.
    Diese Backups solltenSie 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
  • 185.
    Setzen Sie denHaken 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
  • 186.
    Webseite der Erweiterungkö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
  • 187.
    einem Klick aufden 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
  • 188.
    Es wird gelegentlichberichtet, 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
  • 189.
    .htaccess und dieInstallation 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
  • 190.
    Programme sind sichim 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
  • 191.
    Der JCE besitztsehr 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
  • 192.
    Fügt ein geschütztesLeerzeichen (&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
  • 193.
    Hier klicken, umdas 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
  • 194.
    Dass Joomla! eineganze 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
  • 195.
    Unterschiede. Zahl der Feedeinträge DieAnzahl 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
  • 196.
    31.1.6 Verwandte Beiträge DasModul 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
  • 197.
    Seitenaufbau signifikant. 31.1.8 Umfragen DasModul 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
  • 198.
    31.1.11 Schlagzeilen Diese Erweiterungzeigt 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
  • 199.
    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
  • 200.
    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
  • 201.
    Dieses Zeichen wirdzwischen 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
  • 202.
    Die Ausgabe derSystemmeldungen 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
  • 203.
    Die schier unglaublicheMasse 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
  • 204.
    Hier klicken, umdas 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
  • 205.
    Ä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
  • 206.
    beispielsweise der Bereichaus <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
  • 207.
    34.1 Joomla!-Funktionen Joomla! bringtvon 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
  • 208.
    35 Performance Die Ausführungsgeschwindigkeitvon 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
  • 209.
    Hier klicken, umdas 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
  • 210.
    werden. Verwenden Siedie 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
  • 211.
    abgerufen werden. 36 Datentransferund 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
  • 212.
    Haben Sie bereitseine 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
  • 213.
    folgenden Fenster könnenSie 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
  • 214.
    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
  • 215.
    Joomla!-Inhaltselement einzubinden. Dasgeht 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
  • 216.
    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
  • 217.
    37.1.2 Parametermanipulation Diese Artdes 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
  • 218.
    37.1.3 Cross SiteScripting (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
  • 219.
    Die einzig sichereVariante, 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
  • 220.
    Jeder dieser Portskann 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
  • 221.
    38.1.3 Mac OSX 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
  • 222.
    Wie Sie bereitsgesehen 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
  • 223.
    vorliegen muss. BeideBereiche, 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
  • 224.
    tools/pdt. Entpacken Sieden 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
  • 225.
    Hier klicken, umdas 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
  • 226.
    Hier klicken, umdas 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
  • 227.
    40 Die Joomla!-API Unsernä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
  • 228.
    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
  • 229.
    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
  • 230.
    Kontexten direkt übereine 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
  • 231.
    Plug-ins tauchen, wiebereits 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
  • 232.
    Sie ahnen sicherschon, 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
  • 233.
    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
  • 234.
    Daher besteht eineKomponente 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
  • 235.
    Datei zu findenist. 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
  • 236.
    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
  • 237.
    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
  • 238.
    Wenn die Komponentedeinstalliert 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
  • 239.
    A.1 Die Funktionendes 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
  • 240.
    Umschalten in dieVollbildansicht 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
  • 241.
    Administrator (Admin) Softwarenutzermit 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
  • 242.
    Captcha Bild miteinem 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
  • 243.
    Emoticon Kleines Bildoder 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
  • 244.
    Kategorie Eine Kategoriebeinhaltet 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
  • 245.
    Plug-in Programmteil, derin 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
  • 246.
    Spam Unerwünschte Werbebeiträgejeder 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
  • 247.
    Webhoster Dienstleister, derSpeicherplatz 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