Inhaltsverzeichnis 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 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 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 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 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 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) 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 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 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 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 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 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 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 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 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 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 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 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 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 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! 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 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 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 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 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 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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: · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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! 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. 2.1 Systemvoraussetzungen INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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: 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 · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Wir werden Ihnen im Folgenden die verschiedenen Bestandteile einer Joomla!-Seite vorstellen, damit Sie im Backend gezielt darauf zugreifen können. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t31" 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. 3.1.2 Module HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t32" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t33" 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. · 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t34" 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t31" Klicken Sie im Kontrollzentrum auf den Button Beiträge, und Sie gelangen in die Übersicht zu sämtlichen Inhaltselementen Ihrer Website. 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t33" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t34" 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. 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. 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 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. 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«, 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 (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: · Statische Templates – Diese Templates sind für eine bestimmte Bildschirmbreite ausgelegt. · Dynamische Templates – Dynamische Templates passen sich an die Breite des Bildschirms des Users an. · 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 · 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. · 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. 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? INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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. · 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 Name Das ist der echte Name des Benutzers. Er wird beim Einloggen gegebenenfalls als Begrüßung mit ausgegeben. Benutzername Unter diesem Namen kann sich der Nutzer anmelden. Angemeldet Sehen Sie hier einen grünen Haken, so ist der betreffende Nutzer gerade im System angemeldet. Aktiv Wenn Sie (nur als Administrator) hier durch einen Klick den Haken entfernen, kann sich der Nutzer nicht mehr einloggen. Sein Account ist gesperrt. Benutzergruppe Die Zugehörigkeit zu einer Benutzergruppe entscheidet über die Rechte, die der User im System hat. E–Mail Eine Kontaktadresse, über die Sie den User (hoffentlich) erreichen können. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_08_benutzer_001.htm" \l "t2t31" 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 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. · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t31" 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. Name Der Name des Moduls. Per Klick kommen Sie auf die Detailseite mit weiteren Einstellungsmöglichkeiten. Aktiviert Steht hier ein grüner Haken, wird das Modul im Frontend angezeigt, ansonsten ist es versteckt. Ein Klick auf das Symbol schaltet zwischen den beiden Zuständen um. Reihenfolge 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. 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. Zugriffsebene Zeigt an, wer das Modul sehen darf. Mehr dazu finden Sie in Kapitel 8, »Benutzer und Bereiche«. Position Zeigt an, an welcher Position im Template das Modul ausgegeben werden soll. Seiten Zeigt an, ob das Modul auf allen (»Alle«), nur einigen (»Verschiedene«) oder auf keiner Seite (»Keine«) angezeigt wird. Typ Die Art des Moduls. Aus dieser Angabe kann auch seine 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t32" 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 9.1.3 Die Modul-Detailseite HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t33" 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 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 Modul-Klassen-Suffix Damit können Sie angeben, welche CSS-Klasse mit dem Modul verbunden werden soll. Das ist relevant, wenn Sie Änderungen am Template vornehmen (siehe Kapitel 7, »Das Website-Design«). Caching Bestimmt, ob der Inhalt des Moduls gecacht werden soll. Dies kann unter Umständen dazu führen, dass Änderungen nicht sofort übernommen werden, beschleunigt aber die Darstellung. Anzahl Gibt für Listen an, wie viele Inhalte berücksichtigt oder auf 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t34" 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. 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 Menüname An dieser Stelle erfolgt die Zuordnung eines Menüs aus der Menüverwaltung zu einem Menümodul. Sie können also beispielsweise mehrere Varianten des Hauptmenüs verwalten und hier immer die aktuelle Version aktivieren. Menüstil 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 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. Menüicons anzeigen Den Menüeinträgen können Bilder zugeordnet werden. Sie werden allerdings nur angezeigt, wenn diese Option aktiviert ist. Menüicon-Ausrichtung Wenn Bilder angezeigt werden, so können sie rechts oder links vom eigentlichen Menüpunkt dargestellt werden. Menü erweitern Haben Sie ein hierarchisches Menü, so wird normalerweise nur die erste Unterebene mit angezeigt. Die Option Menü erweitern bewirkt, dass alle Ebenen ausgegeben werden. Dies gilt nur für das vertikale Menü. Vorgänger aktivieren Normalerweise wird in einem Menü nur der aktuell ausgewählte Punkt markiert. Mit Vorgänger aktivieren werden alle Menüeinträge selektiert, die hierarchisch in einer Linie übergeordnet sind. Bild für den Zeileneinzug Werden mehrere Ebenen ausgegeben, so können diese mit eigenen Bildern eingerückt werden. Diese Bilder werden entweder vom Template vorgegeben, kommen direkt von Joomla!, sind komplett abgeschaltet (»Keine«) oder werden in den folgenden sechs Feldern für jede Ebene ausgewählt. Trennzeichen Für horizontale Menüs können Sie hier bestimmen, was 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 stehen soll. 9.1.5 Anmeldung HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t35" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t36" 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: 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 10.1.1 Seite HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t31" 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. 10.1.2 Suchmaschinenoptimierung und Metainformation HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t32" 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, 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t33" 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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? 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Das Template, also die index.php, sollte im Anfangszustand etwa folgendermaßen aussehen: 01   02 05   09  ">Wer ist online? 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« 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_15_aus_der_trickkiste_001.htm" \l "t2t34" 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   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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_29_backup_und_upgrade_001.htm" \l "t2t32" 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 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 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 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 .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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_30_tools_001.htm" \l "t2t31" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_30_tools_001.htm" \l "t2t32" 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. Fügt ein geschütztes Leerzeichen ( ) 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: 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). 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t31" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t33" 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 Serverinfo Zeigt Informationen über das Betriebssystem, die PHP- und MySQL-Version, die Zeit und den Status von GZip (Packprogramm) und das Caching auf dem Server. Seiteninfo Zeigt die Anzahl der Mitglieder, Inhalte und Weblinks der Seite. Zugriffszähler Zeigt die Anzahl der Besucher, die sich bisher angemeldet haben. Zähler hochsetzen Gibt an, um wie viel der Zähler pro Besucher erhöht werden soll. Über Sinn und Unsinn dieser Option lässt sich streiten. 31.1.4 Archiv HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t34" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t35" 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. 31.1.6 Verwandte Beiträge HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t36" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t37" 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 URL Die Adresse der Webseite, die angezeigt werden soll. Wenn Sie die Option Protokoll hinzufügen nicht gesetzt haben, müssen Sie hier »http://« oder »https://« voranstellen. Scrollbalken Gibt an, ob der IFrame mit Scrollbars ausgestattet werden soll. Autom. legt fest, dass dies nur geschieht, wenn Scrollbars wirklich benötigt werden. Breite Geben Sie hier die Breite des IFrames absolut in Pixel oder relativ in Prozent (mit nachfolgendem %) an. Relative Angaben beziehen sich auf den enthaltenden Bereich, d. h. in unserem Fall auf das -Element, das den IFrame enthält. Höhe Geben Sie hier die Höhe des IFrames ein (siehe Breite). Autom. Höhe Passt die Höhe an die tatsächliche Höhe der anzuzeigenden Seite an. Funktioniert nur in einigen Versionen. Protokoll hinzufügen Ist diese Option aktiviert, wird vor die URL automatisch »http://« gesetzt. Zielname Hier können Sie den Namen des IFrames festlegen. Das ist 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 Seitenaufbau signifikant. 31.1.8 Umfragen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t38" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t39" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t310" 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 Bildtyp Hier müssen Sie angeben, welchen Typ das anzuzeigende Bild haben soll. Beispiele sind »JPG« oder »GIF«. Bildverzeichnis Die Bilder werden aus diesem Ordner geladen. Der Pfad muss dabei relativ zum Verzeichnis der Joomla!-Installation angegeben werden. Ein Beispiel wäre images/stories. Link Diese URL wird aufgerufen, wenn das angezeigte Bild angeklickt wird. Breite (px) Geben Sie hier die Breite des Bildes an. Höhe (px) Geben Sie hier die Höhe des Bildes an. 31.1.11 Schlagzeilen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t311" 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 Kategorie Die Kategorie, aus der die Inhalte ausgewählt werden sollen. Layout Die Ausgabe kann entweder vertikal oder horizontal erfolgen. Daneben ist es möglich, zufällig einen einzigen Inhalt auswählen zu lassen (Einen Beitrag zufällig wählen). Bilder anzeigen Gibt an, ob die Bilder, die in einem Inhaltselement enthalten sind, angezeigt werden sollen. Verlinkte Titel Wenn eingeschaltet, dann kann man die angezeigten Inhalte über einen Klick auf den Titel aufrufen. Achtung: Dazu muss natürlich die Anzeige der Titel eingeschaltet werden (siehe Beitragstitel). Letztes Trennelement anzeigen Legt fest, ob nach dem letzten Beitrag noch eine Trennlinie ausgegeben werden soll. Weiterlesen-Link Gibt an, ob der mehr-Link angezeigt wird, mit dem der Rest des Inhalts (der Haupttext) ausgegeben werden kann. Beitragstitel Bestimmt, ob der Titel mit angezeigt werden soll. Anzahl der Beiträge Hier bestimmen Sie die Anzahl der Elemente, die berücksichtigt werden. Dies gilt auch für die Zufallsausgabe. Wenn Sie keinen Wert eingeben, werden alle Elemente mit einbezogen. 31.1.12 Neueste Nachrichten und Meist gelesen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t312" 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 Zeitpunkt der letzten Änderung maßgeblich für die Sortierung der Beiträge ist. Autoren Hier bestimmen Sie, ob alle Beiträge in die Anzeige einbezogen werden oder nur die des angemeldeten Benutzers (mit Zugefügt oder von mir geändert) bzw. nur die der anderen Benutzer (mit Nicht zugefügt oder von mir geändert). Startseitenbeiträge Hier haben Sie die Möglichkeit, (mit Verstecken) Elemente auszublenden, die ohnehin schon auf der Startseite angezeigt werden. Kategorie-ID Wenn Sie nur Inhalte aus einer oder mehreren Kategorien ausgeben wollen, dann können Sie hier die ID angeben. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t313" 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. Text Hier können Sie das Suchfeld mit einem Text vorbelegen, z. B. »Geben Sie hier einen Suchbegriff ein«. Dieser Text verschwindet, wenn Sie auf das Feld klicken. Suchen-Schaltfläche Soll ein Knopf zum Starten der Suche angezeigt werden? Wenn nicht, dann kann die Suche nur mit der -Taste gestartet werden. Schaltflächenpositionen Legen Sie hier die Position des Such-Buttons in Bezug auf das Suchfeld fest. Suchen-Schaltfläche als Bild Wenn man hier Ja wählt, so wird ein Bild als Such-Button verwendet. Dieses muss den Namen searchButton.gif haben und im Verzeichnis images/M_images liegen. Schaltflächentext Dieser Text erscheint auf dem Such-Button. 31.1.14 Fußzeile HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t314" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t315" 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 anzeigen Legt fest, ob die Startseite als Element mit in den Pfad aufgenommen werden soll. Text für die Startseite Dieser Text wird als Link für die Startseite verwendet. Letztes Element Legt fest, ob das aktuell dargestelte Element mit in den Pfad aufgenommen werden soll. Ist hier nichts angegeben, so wird »>>« als Trennzeichen verwendet. Trennzeichen Dieses Zeichen wird zwischen den einzelnen 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t32" 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 -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. · Ähnliches gilt für die Überschriften. So sollten Sie das -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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t33" 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 -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 beispielsweise der Bereich aus 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 -Tags. Ein 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t34" 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. 34.1 Joomla!-Funktionen INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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). 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 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: 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 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! INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t33" 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. · 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t34" 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Das Einfallstor für Angreifer ist in webbasierten Applikationen immer die Kommunikation zwischen Browser und Server. Dabei kann man folgende häufige Angriffstypen unterscheiden: · SQL Injection · Parametermanipulation · Cross Site Scripting · Man in the Middle Diese Typen werden im Folgenden genauer erläuert. 37.1.1 SQL Injection HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t31" 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. 37.1.2 Parametermanipulation HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t32" 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 -Feld gespeichert.     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. 37.1.3 Cross Site Scripting (XSS) HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t33" 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: alert ("Ich bin böse") 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 -Tags in irgendwelchen Foren zu! 37.1.4 Man in the Middle HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t34" 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 38.1.1 Apache läuft nicht HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t32" 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. 38.1.3 Mac OS X Apache läuft, findet aber kein Joomla! HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t33" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t34" 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 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 >. 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:\apachefriends\xampp\htdocs\joomla. 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. 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. 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! INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 Anwendung JApplication Stellt den Zugriff auf viele grundlegenden Eigenschaften von Joomla! her. JModel Grundlage für ein Model nach der MVC-Architektur. JView Grundlage für eine View nach der MVC-Architektur. JController Grundlage für einen Controller nach der MVC-Architektur. JModuleHelper Bietet einige Hilfsfunktionen für Module an. Datenbank JDatabase Erlaubt Ihnen, auf die Datenbank zuzugreifen, und bietet verschiedene Methoden für Abfragen. Dokument JDocument Zugriff auf das aktuell erstellte Dokument. Das ist die 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. JRequest Schnittstelle für den Zugriff auf die Variablen, die der Seite beim Aufruf vom Browser übergeben werden. JURI Damit können Sie gültige URLs erstellen und analysieren. HTML JHTML Diese Klasse stellt Ihnen Methoden zur Verfügung, die komplexe HTML-Bestandteile für die Seite erzeugen. Sprache JLanguage Klasse für die Verwaltung von Sprachen und Internationalisierung. JText Gibt einen Text in der aktuellen Sprache aus. Mail JMail Mit diesem Objekt können Sie E–Mails erstellen und versenden. Benutzer JAuthentication Übernimmt die Anmeldung eines Benutzers im System. JUser Erlaubt es Ihnen, die Daten eines registrieren Benutzers 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 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 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 getApplication() $mainframe JApplication Rahmenklasse für die Ausführung von Joomla! getConfig() JRegistry Zugriff auf die Einstellungen von Joomla! getDate() JDate Die aktuelle Uhrzeit getDBO() JDatabase Zentraler Zugriff auf die Datenbank getDocument() JDocument Daten der eben erstellten Seite getMailer() JMail Ein Objekt zum Versenden von E–Mails getTemplate() JTemplate Zugriff auf das aktuelle Template getURI() JURI URL, mit der die Seite aufgerufen wurde getUser() $my JUser Daten zum aktuellen Benutzer $params JRequest Die Parameter, die mit der 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 onAuthenticate Wird bei der Anmeldung eines Benutzers ausgeführt. Hier können Sie festlegen, ob der Benutzer im System angemeldet wird. Content onPrepareContent Ein Inhaltselement wird zur Ausgabe aufbereitet. onAfterDisplayTitle Hier haben Sie die Möglichkeit, Daten zwischen Titel und Inhalt eines Beitrags einzufügen. onAfterDisplay Content Tritt unmittelbar nach der Ausgabe des Inhalts ein. onBeforeDisplay Content Tritt unmittelbar vor der Ausgabe des Inhalts ein. onAfterContentSave Ein Inhaltselement wurde gespeichert. onBeforeContentSave Es soll ein Inhaltselement gespeichert werden. Hier können Sie noch eingreifen. onAfterDisplay Wird ausgelöst, nachdem die Inhalte ausgegeben worden sind. onBeforeDisplay Wird ausgelöst, wenn Joomla! bereit ist, die Inhalte darzustellen. Editors onInit Der Editor wird gestartet. Hier können Sie noch 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. onDisplay Nach dem Editor-Feld werden zusätzliche Buttons ausgegeben. Search onSearch Eine Suchanfrage wird bearbeitet. onSearchAreas Hier können Sie zusätzliche Suchräume definieren. System onAfterInitialise Wird ausgelöst, nachdem das Joomla!-Framework geladen wurde. onAfterRoute An dieser Stelle weiß Joomla! bereits, welche Aufgaben auf das System warten. onAfterDispatch Wird ausgelöst, wenn der Inhalt der aufgerufenen Komponente verfügbar ist. onAfterRender Wird ausgelöst, wenn die Ausgabe zusammengesetzt wurde und verfügbar ist. User onLoginUser Wird ausgeführt, nachdem ein Benutzer erfolgreich am System angemeldet wurde. onLoginFailure Hat der Benutzer ungültige Daten bei der Anmeldung eingegeben, wird dieser Event ausgelöst. onLogoutUser Wird ausgelöst, nachdem ein Benutzer sich aus dem System abgemeldet hat. onLogoutFailure Tritt ein Fehler bei der Abmeldung auf, so können Sie hier reagieren. onBeforeStoreUser Tritt ein, bevor die Daten eines neuen Benutzers gespeichert werden. onAfterStoreUser Tritt ein, nachdem die Daten eines neuen Benutzers gespeichert worden sind. onBeforeDeleteUser Tritt ein, bevor die Daten eines Benutzers gelöscht werden. onAfterDeleteUser Tritt ein, nachdem die Daten eines Benutzers gelöscht worden sind. XML-RPC onGetWebServices Wird ausgelöst, wenn eine Anfrage von außen 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. 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 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 id Integer Eine fortlaufende Nummer zur eindeutigen Identifizierung des Datensatzes. pair Text Die Namen der Tänzer. points Integer Die Anzahl der Punkte. published Small Integer 1 für publiziert, 0 für versteckt. 42.1 Die Installationsdateien INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t31" Die XML-Datei, die die Installation beschreibt, enthält einige Tags, die wir bisher noch nicht verwendet haben. 1   2   3    pairrank 4     5      pairrank.php 6      controller.php 7      views/pairrank/view.html.php 8      views/pairrank/tmpl/default.php 9      models/pairrank.php 10     11     12       13        install.sql 14       15     16     17       18       uninstall.sql 19       20     21    install.php 22    install.php 23     24      Paar-Ranking 25       26        Verwalten 27       28       29        admin.pairrank.php 30        install.sql 31        uninstall.sql 32       33     34   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 -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 legt die Daten für das Backend fest (Zeilen 23–33). Bestimmen Sie zunächst den Namen des Eintrags im Components-Menü mit (Zeile 24) und dann im -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        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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t32" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t33" 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   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 A.1 Die Funktionen des TinyMCE INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 $msg) Beendet Joomla!. Sie können in $msg der Anwendung noch einen Exit-Code mit geben. jimport (string $path) Bindet Dateien und Klassen in Joomla! ein. Der Pfad wird 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. 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. 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. 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. 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 »|«. 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. 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. 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. PAGE 2
Please download to view
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
...

Joomla 1 5 Handbuch

by

on

Report

Category:

Technology

Download: 0

Comment: 0

29,610

views

Comments

Description

 
Download Joomla 1 5 Handbuch

Transcript

Inhaltsverzeichnis 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 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 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 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 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 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) 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 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 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 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 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 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 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 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 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 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 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 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 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 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! 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 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 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 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 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 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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: · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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! 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. 2.1 Systemvoraussetzungen INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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: 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 · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Wir werden Ihnen im Folgenden die verschiedenen Bestandteile einer Joomla!-Seite vorstellen, damit Sie im Backend gezielt darauf zugreifen können. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t31" 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. 3.1.2 Module HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t32" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t33" 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. · 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_03_frontend_001.htm" \l "t2t34" 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t31" Klicken Sie im Kontrollzentrum auf den Button Beiträge, und Sie gelangen in die Übersicht zu sämtlichen Inhaltselementen Ihrer Website. 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t33" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_05_inhalte_erstellen_und_veraendern_001.htm" \l "t2t34" 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. 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. 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 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. 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«, 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 (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: · Statische Templates – Diese Templates sind für eine bestimmte Bildschirmbreite ausgelegt. · Dynamische Templates – Dynamische Templates passen sich an die Breite des Bildschirms des Users an. · 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 · 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. · 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. 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? INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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. · 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 Name Das ist der echte Name des Benutzers. Er wird beim Einloggen gegebenenfalls als Begrüßung mit ausgegeben. Benutzername Unter diesem Namen kann sich der Nutzer anmelden. Angemeldet Sehen Sie hier einen grünen Haken, so ist der betreffende Nutzer gerade im System angemeldet. Aktiv Wenn Sie (nur als Administrator) hier durch einen Klick den Haken entfernen, kann sich der Nutzer nicht mehr einloggen. Sein Account ist gesperrt. Benutzergruppe Die Zugehörigkeit zu einer Benutzergruppe entscheidet über die Rechte, die der User im System hat. E–Mail Eine Kontaktadresse, über die Sie den User (hoffentlich) erreichen können. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_08_benutzer_001.htm" \l "t2t31" 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 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. · 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t31" 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. Name Der Name des Moduls. Per Klick kommen Sie auf die Detailseite mit weiteren Einstellungsmöglichkeiten. Aktiviert Steht hier ein grüner Haken, wird das Modul im Frontend angezeigt, ansonsten ist es versteckt. Ein Klick auf das Symbol schaltet zwischen den beiden Zuständen um. Reihenfolge 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. 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. Zugriffsebene Zeigt an, wer das Modul sehen darf. Mehr dazu finden Sie in Kapitel 8, »Benutzer und Bereiche«. Position Zeigt an, an welcher Position im Template das Modul ausgegeben werden soll. Seiten Zeigt an, ob das Modul auf allen (»Alle«), nur einigen (»Verschiedene«) oder auf keiner Seite (»Keine«) angezeigt wird. Typ Die Art des Moduls. Aus dieser Angabe kann auch seine 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t32" 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 9.1.3 Die Modul-Detailseite HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t33" 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 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 Modul-Klassen-Suffix Damit können Sie angeben, welche CSS-Klasse mit dem Modul verbunden werden soll. Das ist relevant, wenn Sie Änderungen am Template vornehmen (siehe Kapitel 7, »Das Website-Design«). Caching Bestimmt, ob der Inhalt des Moduls gecacht werden soll. Dies kann unter Umständen dazu führen, dass Änderungen nicht sofort übernommen werden, beschleunigt aber die Darstellung. Anzahl Gibt für Listen an, wie viele Inhalte berücksichtigt oder auf 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t34" 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. 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 Menüname An dieser Stelle erfolgt die Zuordnung eines Menüs aus der Menüverwaltung zu einem Menümodul. Sie können also beispielsweise mehrere Varianten des Hauptmenüs verwalten und hier immer die aktuelle Version aktivieren. Menüstil 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 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. Menüicons anzeigen Den Menüeinträgen können Bilder zugeordnet werden. Sie werden allerdings nur angezeigt, wenn diese Option aktiviert ist. Menüicon-Ausrichtung Wenn Bilder angezeigt werden, so können sie rechts oder links vom eigentlichen Menüpunkt dargestellt werden. Menü erweitern Haben Sie ein hierarchisches Menü, so wird normalerweise nur die erste Unterebene mit angezeigt. Die Option Menü erweitern bewirkt, dass alle Ebenen ausgegeben werden. Dies gilt nur für das vertikale Menü. Vorgänger aktivieren Normalerweise wird in einem Menü nur der aktuell ausgewählte Punkt markiert. Mit Vorgänger aktivieren werden alle Menüeinträge selektiert, die hierarchisch in einer Linie übergeordnet sind. Bild für den Zeileneinzug Werden mehrere Ebenen ausgegeben, so können diese mit eigenen Bildern eingerückt werden. Diese Bilder werden entweder vom Template vorgegeben, kommen direkt von Joomla!, sind komplett abgeschaltet (»Keine«) oder werden in den folgenden sechs Feldern für jede Ebene ausgewählt. Trennzeichen Für horizontale Menüs können Sie hier bestimmen, was 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 stehen soll. 9.1.5 Anmeldung HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t35" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_09_module_001.htm" \l "t2t36" 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: 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 10.1.1 Seite HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t31" 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. 10.1.2 Suchmaschinenoptimierung und Metainformation HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t32" 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, 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_10_konfiguration_001.htm" \l "t2t33" 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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? 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Das Template, also die index.php, sollte im Anfangszustand etwa folgendermaßen aussehen: 01   02 05   09  ">Wer ist online? 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« 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_15_aus_der_trickkiste_001.htm" \l "t2t34" 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   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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_29_backup_und_upgrade_001.htm" \l "t2t32" 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 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 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 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 .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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_30_tools_001.htm" \l "t2t31" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_30_tools_001.htm" \l "t2t32" 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. Fügt ein geschütztes Leerzeichen ( ) 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: 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). 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t31" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t33" 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 Serverinfo Zeigt Informationen über das Betriebssystem, die PHP- und MySQL-Version, die Zeit und den Status von GZip (Packprogramm) und das Caching auf dem Server. Seiteninfo Zeigt die Anzahl der Mitglieder, Inhalte und Weblinks der Seite. Zugriffszähler Zeigt die Anzahl der Besucher, die sich bisher angemeldet haben. Zähler hochsetzen Gibt an, um wie viel der Zähler pro Besucher erhöht werden soll. Über Sinn und Unsinn dieser Option lässt sich streiten. 31.1.4 Archiv HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t34" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t35" 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. 31.1.6 Verwandte Beiträge HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t36" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t37" 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 URL Die Adresse der Webseite, die angezeigt werden soll. Wenn Sie die Option Protokoll hinzufügen nicht gesetzt haben, müssen Sie hier »http://« oder »https://« voranstellen. Scrollbalken Gibt an, ob der IFrame mit Scrollbars ausgestattet werden soll. Autom. legt fest, dass dies nur geschieht, wenn Scrollbars wirklich benötigt werden. Breite Geben Sie hier die Breite des IFrames absolut in Pixel oder relativ in Prozent (mit nachfolgendem %) an. Relative Angaben beziehen sich auf den enthaltenden Bereich, d. h. in unserem Fall auf das -Element, das den IFrame enthält. Höhe Geben Sie hier die Höhe des IFrames ein (siehe Breite). Autom. Höhe Passt die Höhe an die tatsächliche Höhe der anzuzeigenden Seite an. Funktioniert nur in einigen Versionen. Protokoll hinzufügen Ist diese Option aktiviert, wird vor die URL automatisch »http://« gesetzt. Zielname Hier können Sie den Namen des IFrames festlegen. Das ist 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 Seitenaufbau signifikant. 31.1.8 Umfragen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t38" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t39" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t310" 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 Bildtyp Hier müssen Sie angeben, welchen Typ das anzuzeigende Bild haben soll. Beispiele sind »JPG« oder »GIF«. Bildverzeichnis Die Bilder werden aus diesem Ordner geladen. Der Pfad muss dabei relativ zum Verzeichnis der Joomla!-Installation angegeben werden. Ein Beispiel wäre images/stories. Link Diese URL wird aufgerufen, wenn das angezeigte Bild angeklickt wird. Breite (px) Geben Sie hier die Breite des Bildes an. Höhe (px) Geben Sie hier die Höhe des Bildes an. 31.1.11 Schlagzeilen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t311" 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 Kategorie Die Kategorie, aus der die Inhalte ausgewählt werden sollen. Layout Die Ausgabe kann entweder vertikal oder horizontal erfolgen. Daneben ist es möglich, zufällig einen einzigen Inhalt auswählen zu lassen (Einen Beitrag zufällig wählen). Bilder anzeigen Gibt an, ob die Bilder, die in einem Inhaltselement enthalten sind, angezeigt werden sollen. Verlinkte Titel Wenn eingeschaltet, dann kann man die angezeigten Inhalte über einen Klick auf den Titel aufrufen. Achtung: Dazu muss natürlich die Anzeige der Titel eingeschaltet werden (siehe Beitragstitel). Letztes Trennelement anzeigen Legt fest, ob nach dem letzten Beitrag noch eine Trennlinie ausgegeben werden soll. Weiterlesen-Link Gibt an, ob der mehr-Link angezeigt wird, mit dem der Rest des Inhalts (der Haupttext) ausgegeben werden kann. Beitragstitel Bestimmt, ob der Titel mit angezeigt werden soll. Anzahl der Beiträge Hier bestimmen Sie die Anzahl der Elemente, die berücksichtigt werden. Dies gilt auch für die Zufallsausgabe. Wenn Sie keinen Wert eingeben, werden alle Elemente mit einbezogen. 31.1.12 Neueste Nachrichten und Meist gelesen HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t312" 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 Zeitpunkt der letzten Änderung maßgeblich für die Sortierung der Beiträge ist. Autoren Hier bestimmen Sie, ob alle Beiträge in die Anzeige einbezogen werden oder nur die des angemeldeten Benutzers (mit Zugefügt oder von mir geändert) bzw. nur die der anderen Benutzer (mit Nicht zugefügt oder von mir geändert). Startseitenbeiträge Hier haben Sie die Möglichkeit, (mit Verstecken) Elemente auszublenden, die ohnehin schon auf der Startseite angezeigt werden. Kategorie-ID Wenn Sie nur Inhalte aus einer oder mehreren Kategorien ausgeben wollen, dann können Sie hier die ID angeben. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t313" 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. Text Hier können Sie das Suchfeld mit einem Text vorbelegen, z. B. »Geben Sie hier einen Suchbegriff ein«. Dieser Text verschwindet, wenn Sie auf das Feld klicken. Suchen-Schaltfläche Soll ein Knopf zum Starten der Suche angezeigt werden? Wenn nicht, dann kann die Suche nur mit der -Taste gestartet werden. Schaltflächenpositionen Legen Sie hier die Position des Such-Buttons in Bezug auf das Suchfeld fest. Suchen-Schaltfläche als Bild Wenn man hier Ja wählt, so wird ein Bild als Such-Button verwendet. Dieses muss den Namen searchButton.gif haben und im Verzeichnis images/M_images liegen. Schaltflächentext Dieser Text erscheint auf dem Such-Button. 31.1.14 Fußzeile HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t314" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_31_standard_erweiterungen_001.htm" \l "t2t315" 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 anzeigen Legt fest, ob die Startseite als Element mit in den Pfad aufgenommen werden soll. Text für die Startseite Dieser Text wird als Link für die Startseite verwendet. Letztes Element Legt fest, ob das aktuell dargestelte Element mit in den Pfad aufgenommen werden soll. Ist hier nichts angegeben, so wird »>>« als Trennzeichen verwendet. Trennzeichen Dieses Zeichen wird zwischen den einzelnen 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t32" 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 -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. · Ähnliches gilt für die Überschriften. So sollten Sie das -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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t33" 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 -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 beispielsweise der Bereich aus 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 -Tags. Ein 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_33_suchmaschinenoptimierung_001.htm" \l "t2t34" 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. 34.1 Joomla!-Funktionen INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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). 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 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: 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 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! INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t32" 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 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t33" 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. · 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_36_datentransfer_001.htm" \l "t2t34" 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT Das Einfallstor für Angreifer ist in webbasierten Applikationen immer die Kommunikation zwischen Browser und Server. Dabei kann man folgende häufige Angriffstypen unterscheiden: · SQL Injection · Parametermanipulation · Cross Site Scripting · Man in the Middle Diese Typen werden im Folgenden genauer erläuert. 37.1.1 SQL Injection HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t31" 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. 37.1.2 Parametermanipulation HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t32" 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 -Feld gespeichert.     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. 37.1.3 Cross Site Scripting (XSS) HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t33" 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: alert ("Ich bin böse") 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 -Tags in irgendwelchen Foren zu! 37.1.4 Man in the Middle HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_37_sicherheit_001.htm" \l "t2t34" 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 38.1.1 Apache läuft nicht HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t31" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t32" 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. 38.1.3 Mac OS X Apache läuft, findet aber kein Joomla! HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t33" 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_38_troubleshooting_001.htm" \l "t2t34" 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 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 >. 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:\apachefriends\xampp\htdocs\joomla. 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. 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. 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! INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 Anwendung JApplication Stellt den Zugriff auf viele grundlegenden Eigenschaften von Joomla! her. JModel Grundlage für ein Model nach der MVC-Architektur. JView Grundlage für eine View nach der MVC-Architektur. JController Grundlage für einen Controller nach der MVC-Architektur. JModuleHelper Bietet einige Hilfsfunktionen für Module an. Datenbank JDatabase Erlaubt Ihnen, auf die Datenbank zuzugreifen, und bietet verschiedene Methoden für Abfragen. Dokument JDocument Zugriff auf das aktuell erstellte Dokument. Das ist die 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. JRequest Schnittstelle für den Zugriff auf die Variablen, die der Seite beim Aufruf vom Browser übergeben werden. JURI Damit können Sie gültige URLs erstellen und analysieren. HTML JHTML Diese Klasse stellt Ihnen Methoden zur Verfügung, die komplexe HTML-Bestandteile für die Seite erzeugen. Sprache JLanguage Klasse für die Verwaltung von Sprachen und Internationalisierung. JText Gibt einen Text in der aktuellen Sprache aus. Mail JMail Mit diesem Objekt können Sie E–Mails erstellen und versenden. Benutzer JAuthentication Übernimmt die Anmeldung eines Benutzers im System. JUser Erlaubt es Ihnen, die Daten eines registrieren Benutzers 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 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 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 getApplication() $mainframe JApplication Rahmenklasse für die Ausführung von Joomla! getConfig() JRegistry Zugriff auf die Einstellungen von Joomla! getDate() JDate Die aktuelle Uhrzeit getDBO() JDatabase Zentraler Zugriff auf die Datenbank getDocument() JDocument Daten der eben erstellten Seite getMailer() JMail Ein Objekt zum Versenden von E–Mails getTemplate() JTemplate Zugriff auf das aktuelle Template getURI() JURI URL, mit der die Seite aufgerufen wurde getUser() $my JUser Daten zum aktuellen Benutzer $params JRequest Die Parameter, die mit der 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. 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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. 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 onAuthenticate Wird bei der Anmeldung eines Benutzers ausgeführt. Hier können Sie festlegen, ob der Benutzer im System angemeldet wird. Content onPrepareContent Ein Inhaltselement wird zur Ausgabe aufbereitet. onAfterDisplayTitle Hier haben Sie die Möglichkeit, Daten zwischen Titel und Inhalt eines Beitrags einzufügen. onAfterDisplay Content Tritt unmittelbar nach der Ausgabe des Inhalts ein. onBeforeDisplay Content Tritt unmittelbar vor der Ausgabe des Inhalts ein. onAfterContentSave Ein Inhaltselement wurde gespeichert. onBeforeContentSave Es soll ein Inhaltselement gespeichert werden. Hier können Sie noch eingreifen. onAfterDisplay Wird ausgelöst, nachdem die Inhalte ausgegeben worden sind. onBeforeDisplay Wird ausgelöst, wenn Joomla! bereit ist, die Inhalte darzustellen. Editors onInit Der Editor wird gestartet. Hier können Sie noch 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. onDisplay Nach dem Editor-Feld werden zusätzliche Buttons ausgegeben. Search onSearch Eine Suchanfrage wird bearbeitet. onSearchAreas Hier können Sie zusätzliche Suchräume definieren. System onAfterInitialise Wird ausgelöst, nachdem das Joomla!-Framework geladen wurde. onAfterRoute An dieser Stelle weiß Joomla! bereits, welche Aufgaben auf das System warten. onAfterDispatch Wird ausgelöst, wenn der Inhalt der aufgerufenen Komponente verfügbar ist. onAfterRender Wird ausgelöst, wenn die Ausgabe zusammengesetzt wurde und verfügbar ist. User onLoginUser Wird ausgeführt, nachdem ein Benutzer erfolgreich am System angemeldet wurde. onLoginFailure Hat der Benutzer ungültige Daten bei der Anmeldung eingegeben, wird dieser Event ausgelöst. onLogoutUser Wird ausgelöst, nachdem ein Benutzer sich aus dem System abgemeldet hat. onLogoutFailure Tritt ein Fehler bei der Abmeldung auf, so können Sie hier reagieren. onBeforeStoreUser Tritt ein, bevor die Daten eines neuen Benutzers gespeichert werden. onAfterStoreUser Tritt ein, nachdem die Daten eines neuen Benutzers gespeichert worden sind. onBeforeDeleteUser Tritt ein, bevor die Daten eines Benutzers gelöscht werden. onAfterDeleteUser Tritt ein, nachdem die Daten eines Benutzers gelöscht worden sind. XML-RPC onGetWebServices Wird ausgelöst, wenn eine Anfrage von außen 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. 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 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 id Integer Eine fortlaufende Nummer zur eindeutigen Identifizierung des Datensatzes. pair Text Die Namen der Tänzer. points Integer Die Anzahl der Punkte. published Small Integer 1 für publiziert, 0 für versteckt. 42.1 Die Installationsdateien INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t31" Die XML-Datei, die die Installation beschreibt, enthält einige Tags, die wir bisher noch nicht verwendet haben. 1   2   3    pairrank 4     5      pairrank.php 6      controller.php 7      views/pairrank/view.html.php 8      views/pairrank/tmpl/default.php 9      models/pairrank.php 10     11     12       13        install.sql 14       15     16     17       18       uninstall.sql 19       20     21    install.php 22    install.php 23     24      Paar-Ranking 25       26        Verwalten 27       28       29        admin.pairrank.php 30        install.sql 31        uninstall.sql 32       33     34   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 -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 legt die Daten für das Backend fest (Zeilen 23–33). Bestimmen Sie zunächst den Namen des Eintrags im Components-Menü mit (Zeile 24) und dann im -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        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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t32" 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. 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 HYPERLINK "file:///C:\\Users\\DH\\Documents\\joomla15\\joomla_42_eine_komponente_programmieren_mg_001.htm" \l "t2t33" 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   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 A.1 Die Funktionen des TinyMCE INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 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 INCLUDEPICTURE "joomla15/common/15x15leer.gif" \* MERGEFORMAT 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 $msg) Beendet Joomla!. Sie können in $msg der Anwendung noch einen Exit-Code mit geben. jimport (string $path) Bindet Dateien und Klassen in Joomla! ein. Der Pfad wird 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. 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. 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. 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. 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 »|«. 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. 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. 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. PAGE 2
Fly UP