This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Open Source Software wird gegenüber kommerziellen Lösungen immer wichtiger. Addison-Wesley trägt dieser Entwicklung Rechnung mit den Büchern der Open Source Library. Administratoren, Entwickler und User erhalten hier professionelles Know-how, um freie Software effizient einzusetzen. Behandelt werden sowohl Themen wie Betriebssysteme, Netzwerke und Sicherheit als auch Programmierung. Eine Auswahl aus unserem Programm: phpMyAdmin ist das am weitesten verbreitete Tool zur Verwaltung von MySQL-Datenbanken. Dieses Buch gibt Ihnen einen profunden Einstieg in die effiziente Verwaltung von MySQL-Datenbanken mit phpMyAdmin (neue Version 2.6.0) bis hin zur professionellen Administration. Der Autor zeigt, wie Sie mit phpMyAdmin Datenbanken anlegen, editieren, abfragen und pflegen und wie Sie Benutzer anlegen und verwalten. Sie lernen, wie Sie Abfragen optimieren und automatisieren und was Sie beim Arbeiten mit verschiedenen Zeichensätzen und MIMETypen beachten müssen u.v.a.m. Ein TroubleshootingKapitel hilft bei Problemen. phpMyAdmin Marc Delisle 260 S. Euro 19,95 (D), 20,60 (A) ISBN 3-8273-2250-2 Sind Sie Webentwickler und suchen Sie PHP- und MySQLGrundlagen sowie Programmiertechniken in einem Buch? Dann sind Sie hier richtig. Dieses praxisorientierte Buch liefert nach einem kurzen Grundlagenteil eine ganze Sammlung von PHP- und MySQL-Rezepten: objektorientierte Programmierung mit PHP 5, XML-Funktionen, prepared statements, stored procedures, SQL-Grundlagen und -Rezepte, GIS-Funktionen, mysqli-Schnittstelle, etc. Anschließend demonstrieren mehrere umfangreiche Beispielprojekte das Zusammenspiel von PHP und MySQL. Ein Kapitel über TYPO3 zeigt exemplarisch, wie im Internet kostenlos verfügbare PHP/MySQL-Projekte installiert und für eigene Zwecke adaptiert werden. PHP 5 & MySQL 5 Michael Kofler, Bernd Öggl 696 S., 1 CD Euro 49,95 (D), 51,40 (A) ISBN 3-8273-2190-5
Sandini Bib
Hagen Graf
Websites organisieren und gestalten mit dem Open Source-CMS
An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam
Sandini Bib
Die Deutsche Bibliothek – CIP-Einheitsaufnahme Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig.
Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ® Symbol in diesem Buch nicht verwendet.
Umwelthinweis: Dieses Produkt wurde auf chlorfrei gebleichtem Papier gedruckt.
Einleitung Dieses Buch entsteht unter anderem auf einem kleinen Dorf in Sachsen-Anhalt in Deutschland. Hier gibt es kein DSL, keine öffentlichen WLAN-Hotspots, kein UMTS, keine Großkonzerne und keinen Stadtlärm.
Wer bin ich? Mein Name ist Hagen Graf, ich bin 41 Jahre alt, ich wohne in besagtem Dorf. Ich bin verheiratet mit einer Traumfrau, habe vier Töchter und führe seit August 2004 ein Blog.1 Meine Arbeit besteht aus Tätigkeiten wie unterrichten, beraten, zuhören, ausprobieren, programmieren, Strukturen verstehen, neue Anwendungen entwickeln, hinterfragen und immer wieder ausprobieren. Viele dieser Tätigkeiten lassen sich online erledigen. Oftmals bin ich aber auch wochenlang unterwegs. Das heißt auch Kunden in verschiedenen Ländern, mit verschiedenen Sprachen und Kulturen. Lange Auto-, Bus- oder Bahnfahrten. Kurze bis sehr kurze Reaktionszeiten auf E-Mail-Kundenanfragen. Diese Art des Arbeitens hat Auswirkungen auf das, was man früher mal Büro nannte. War es vor fünf Jahren noch üblich, alle wichtigen Dinge lokal auf dem eigenen PC abzuspeichern, so bieten verschiedene Dienstleister inzwischen beinahe unerschöpflichen Festplattenplatz im Internet für diese Zwecke an. Firmen setzen Terminalserver ein und die Bandbreite der Internetverbindungen steigt, vielleicht auch bald in meinem kleinen Dorf! Oft arbeite ich an unterschiedlichen Rechnern in unterschiedlichen Umgebungen. Mal draußen, mal drinnen. Das Endgerät, mit dem Sie und ich auf unsere Informationen zugreifen, wird immer unwichtiger. Was Sie wirklich brauchen, ist eine stabile, finanzierbare Internetverbindung über WLAN, UMTS, Telefon oder Satellit, einen Browser, einen Bildschirm, auf dem Sie bequem lesen können, eine möglichst komfortable Tastatur und natürlich Elektrizität.
1
http://hagen.take-part.org/.
Sandini Bib Einleitung
Sie können von überall auf der Welt auf Ihren Fundus von E-Mails, Bildern und Dokumenten zugreifen. Ihr Büro befindet sich nun plötzlich dort, wo Sie sind.
Wie arbeiten Sie? Womit Sie genau arbeiten, weiß ich natürlich nicht, aber viele Menschen, mit denen ich zu tun habe, arbeiten so ähnlich, wie ich das oben beschrieben habe. Auch die Erfahrungen mit Computern ähneln sich. Meistens fängt man mit einem älteren PC und einem Windows-System in der Schule an und lernt dann aus Erfahrung die harte Realität aus Office-Anwendungen, Datenverlusten, fehlendem Hauptspeicherplatz, Festplatten, Drucker- und Konfigurationsabenteuern kennen. Wenn Sie nicht gerade eine Liebe zu diesen Dingen entwickeln und mit Leidenschaft nachts an Ihrem Betriebssystem herumbasteln, dann sind Sie vermutlich genau wie ich einfach nur glücklich, wenn Ihr Gerät und Ihre Anwendung funktionieren, Sie auf das Internet und Ihre Daten zugreifen und in Ruhe arbeiten können.
Wie ändert sich die Hard- und Software, die wir benutzen? Parallel zu den beschriebenen Änderungen in Arbeitsabläufen wird natürlich Software entwickelt, die genau diese Arbeitsweise unterstützt. Browserbasierte Anwendungen wie E-Mail-Services, Online-Banking, Gruppenkalender, Dokumentenmanagementsysteme, Communitys, Dating-Services und natürlich Online-Auktionen etc. werden immer komfortabler, ausgefeilter und benutzerfreundlicher. Selbst mit Mobiltelefonen können Sie heute per Browser Internetseiten aufrufen, Formulare ausfüllen und abschicken, E-Mails senden und empfangen, Fotos aufnehmen und verschicken und vieles andere mehr. Der stationäre PC wird immer kleiner und Laptops werden immer selbstverständlicher. Weiterentwicklungen finden in erster Linie bei drahtlosen Verbindungstechniken, möglichst kleinen Bauteilen und möglichst leistungsfähigen Akkus statt.
Was bedeutet das für Ihre Website? In dieser Welt benötigt eine Firma, eine Institution, ein Verein, eine Organisation einen Internetauftritt, der ebenfalls benutzerfreundlich und flexibel ist. Der »mit der Zeit geht«, der »einfach über einen Browser zu verändern ist«, der »Ihren Aktenschrank und Ihr Adressbuch ersetzt«, der mit unterschiedlichen Endgeräten kommunizieren und der einfach erweitert werden kann. Ihre Website ist der Platz, an dem Sie anderen erklären können, was Sie tun, bzw. was Ihre Firma tut. Es ist der Platz, der 24 Stunden am Tag, sieben Tage in der Woche bereitsteht, um Kundenbeziehungen zu pflegen. Bis vor kurzem war die Erstellung einer solchen Website eine schwierige Sache. Sie mussten zwar kein ausgewiesener
14
Sandini Bib Worum geht es in diesem Buch?
Spezialist sein, aber eine gewisse Form von Durchhaltevermögen kombiniert mit Spaß am Thema waren notwendig, um ein ansprechendes Ergebnis zu erzeugen. Sie mussten statische HTML-Seiten in einem HTML-Editor erstellen und anschließend per File Transfer Protocol auf einen Server laden. Um auch nur simpelste Interaktivitäten wie beispielsweise ein Gästebuch oder ein Forum zu erstellen, mussten Sie eine Programmiersprache erlernen. Viele Menschen haben aus nachvollziehbaren Gründen diese Mühsal nicht auf sich genommen und die Erstellung ihrer Homepage entweder an eine Webagentur übergeben oder das Projekt gar nicht erst angefangen. Doch Rettung naht, denn jetzt haben Sie mit diesem Buch schon mal Ihren Reiseführer durch die Welt eines der smartesten Website-Verwaltungssysteme der Welt: Joomla!
Worum geht es in diesem Buch? In diesem Buch werde ich die Installation, die Anpassung und die Erweiterung von Joomla! sowie das Entwickeln eigener Elemente für Joomla! und Verbindungen zu anderen Systemen beschreiben.
Was ist Joomla!? Joomla! ist ein von Jumla abgeleitetes Wort aus der afrikanischen Sprache Swahili
und bedeutet »alle zusammen«. Joomla! ist das zu Software gewordene Ergebnis einer heftigen Auseinanderset-
zung zwischen der im August 2005 gegründeten Mambo Foundation und dem damaligen Entwicklerteam. Joomla!2 ist die Weiterentwicklung des erfolgreichen Systems Mambo3 und wie
Mambo ein Stück Software, mit dem sich eine Website per Webbrowser einfach verwalten lässt. Joomla! ist nach eigenen Angaben ein »Cutting Edge Content Management Sys-
tem« und eines der leistungsfähigsten Open Source-Contentmanagementsysteme auf der Welt. Es wird weltweit für einfache Homepages bis hin zu aufwendigen Unternehmenswebsites genutzt. Es ist einfach zu installieren, einfach zu verwalten und sehr verlässlich.
Was können Sie, nachdem Sie dieses Buch durchgearbeitet haben? Sie werden auch als Anfänger in der Lage sein, Ihre eigene Website über einen Browser zu verwalten. Wenn Ihnen HTML, CSS und Bildbearbeitung auf dem Computer nicht fremd sind, werden Sie eigene Templates für Ihre Website gestalten können. Wenn Sie die Programmiersprache PHP in ihren Grundzügen verstanden und schon erste Schritte damit gemacht haben, werden Sie eigene einfache Komponenten, Module und Mambots selbst entwickeln können.
Noch Fragen? Nur zu! Ich kann natürlich keinen E-Mail-Support für Ihre Fragen leisten. Dazu sind die Joomla!-Foren viel besser geeignet. Wenn Sie aber wirklich nicht weiterkommen, Anmerkungen oder Fragen zum Buch haben – schreiben Sie mir einfach eine E-Mail an [email protected]!
16
Sandini Bib
1
Begriffe und Konzepte
Bevor wir uns ins Joomla!-Getümmel stürzen, gestatten Sie mir, ein paar Begriffe, Konzepte und Hintergründe zu klären.
1.1
Contentmanagementsystem (CMS)
Der Begriff Contentmanagement-System enthält die englischen Begriffe Content (Inhalt) und Management (Verwaltung). Er bezeichnet also recht ungenau ein System, mit dem Inhalte verwaltet werden können. Ein solches System kann eine Tafel und ein Stück Kreide sein (Speisekarte, Schultafel), es kann aber auch so etwas wie die freie Enzyklopädie Wikipedia oder ein Auktionshaus wie eBay sein. In allen drei Fällen werden Inhalte verwaltet. In den letzten beiden Beispielen sogar von sehr vielen Teilnehmern. Diese Teilnehmer spielen bei Inhaltsverwaltungssystemen eine große Rolle, einerseits in der Funktion des Verwalters (Administrator) und andererseits in der Rolle des Benutzers (User). Aber es kommt noch besser. Außer CM-Systemen gibt es natürlich auch noch Bezeichnungen wie Enterprise Resource Planning Systems (ERP, Verwaltung von Firmendaten), Customer Relationship Management Systems (CRM, Pflege von Kundenkontakten), Document Management Systems (DMS, Verwaltung von Dokumenten), Human Resource Management Systems (HRM, Personalverwaltung) und viele weitere. Ein Computerbetriebssystem wie Windows oder Linux verwaltet ebenfalls Inhalte. Durch diese inflationäre Begriffs- und Funktionsvielfalt fällt es schwer, den Begriff CMS zu definieren. In der letzten Zeit hat sich der Begriff ECMS für Enterprise Content Management System etabliert. Alle anderen oben aufgeführten Abkürzungen sind dann Untermengen eines ECMS. Joomla! fällt in die Gattung der Web-Contentmanagementsysteme (WCMS), da es ausschließlich Inhalte auf einem Webserver verwaltet. Da all diese Systeme noch relativ neu in der Unternehmenswelt sind, werden sich die Bedeutungen sicher noch weiterentwickeln. Grundsätzlich wird es aber immer ein Integrationssystem geben, das versucht, alle Systeme miteinander zu verbinden.
Sandini Bib 1 Begriffe und Konzepte
Im allgemeinen Sprachgebrauch wird der Begriff Content Management meist im Zusammenhang mit Webseiten verwendet, die sich über einen Browser pflegen lassen. Was die Definition nicht unbedingt einfacher macht.
1.2
Ein kurzer Blick in die Geschichte
Während die Firma Sun in den 90er Jahren behauptete: »Der Computer ist das Netz«, wollte die Firma Microsoft erst ruhen, wenn auf jedem Schreibtisch ein Computer mit Windows steht. Der Rechner, um den es Microsoft ging, war immer eine Mixtur aus Datendateien und Binärdateien. Die Dateien mit den binären Inhalten nennt man Programme. Sie wurden von den Kunden gekauft und installiert, um damit die Daten bearbeiten zu können. Microsoft Office erlebte einen Siegeszug durch die meisten Büros dieser Welt. Der Rechner, um den es der Firma Sun ging, war eher ein Dumb Tube. Ein billiges, dummes Endgerät mit einem Bildschirm, einer Tastatur, einer Maus und einem Zugang ins Internet. Die Programme und die Daten sollten sich nicht auf diesem Rechner befinden, sondern irgendwo im Netz. Die Philosophie von Microsoft tendierte also mehr in die Richtung meins, die Philosophie von Sun mehr in die Richtung unser. Die Triebfedern dieser Philosophien sind nicht reine Menschenfreundlichkeit, sondern wirtschaftliches Interesse. Microsoft verkaufte in erster Linie im Konsumentenbereich Software für PCs, Sun dagegen im Unternehmensumfeld Serverhardware und die passenden Programme dazu. Mitte der 90er Jahre erfolgte die explosionsartige Verbreitung des eigentlich schon in den 60er Jahren erfundenen Internets unter anderem durch HTML (HyperText Markup Language, die Sprache, in der Webseiten geschrieben werden) und die Entwicklung von Webservern und Webclients (Browsern). Das Internet selbst ist nur ein Satz von Spielregeln, der von verschiedenen Geräten verstanden und so geschickt kombiniert wurde, dass dieses Netz in kürzester Zeit den gesamten Planeten überzog. Ohne eine E-Mail-Adresse war der einzelne Mensch nicht erreichbar und ohne eine Homepage war eine Firma nicht nur altmodisch, sondern in den Augen vieler Kunden nicht mehr existent. Die ganze Welt drängelte also in kurzer Zeit in dieses Netz, um ein Teil davon zu werden. Filme wie Matrix1 wurden Klassenschlager und 19842 von George Orwell wurde erfolgreich verdrängt. Die neuen Netzbürger kamen zum einen aus der meins-Welt und zum anderen aus der unser-Welt. 1 2
Sandini Bib 1.2 Ein kurzer Blick in die Geschichte
Diejenigen, die es gewohnt waren, Programme zu kaufen, kauften HTML-Editoren und erstellten damit Internetseiten. Die anderen schrieben den HTML-Code meist lieber gleich selbst in einem ohnehin vorhandenen Texteditor. Die Webagentur war geboren, bei der man Homepages in Auftrag geben konnte. Beide Gruppen hatten allerdings das Problem, dass HTML-Seiten statisch sind. Um den Inhalt der Seite zu ändern, muss man sie am heimischen PC bearbeiten und danach wieder auf den Server kopieren. Das war nicht nur unbequem und teuer, damit waren auch Webauftritte wie solche von eBay oder Amazon unmöglich. Beide Gruppen fanden mehr oder weniger gute Lösungen für das Problem. In der meins-Fraktion entstanden schnell binäre Programme, mit denen man HTMLSeiten erzeugen konnte, und diese wurden dann per automatisiertes Verfahren auf den Server geladen. In die Seiten wurden interaktive Elemente wie Besucherzähler u.Ä. eingebaut. Die unser-Fraktion entdeckte Java Applets und damit die Möglichkeit, ein Programm zu schreiben, das zentral auf einem Server liegt und über einen Browser bedienbar ist. Auf dieser Lösung beruhten ganze Geschäftsideen wie Online-Broking und Flugbuchungskonzepte. Beide Gruppen versuchten auf verschiedene Arten, ihre Marktanteile auszubauen. Das Ergebnis war ein recht stabiler Markt für beide, in dem Religionskämpfe über das richtige Betriebssystem (Windows, Linux, Mac OS X) ständig die Versionsnummern der Programme hochtrieben und sich die Kunden daran gewöhnten, dass alles nicht so einfach ist. In solchen Situationen gibt es immer einen dritten Weg. In unserem Fall ist das unter anderem die Entstehung von Open Source-Scriptsprachen wie PHP3. Rasmus Lerdorf hatte das Ziel, seine Homepage mit interaktiven Elementen zu versehen, und heraus kam eine neue Programmiersprache. PHP wurde von Anfang an optimiert auf die perfekte Zusammenarbeit mit der Datenbank MySQL, die ebenfalls unter der GNU/GPL4 stand. Glücklicherweise gab es das Betriebssystem Linux und einen Webserver namens Apache, die die benötigte Infrastruktur auf dem Server boten. Das Anzeigemedium beim Kunden war der Browser, der mit Sicherheit vorhanden war. LAMP (Linux, Apache, MySQL, PHP) wurde bald das Synonym für datenbankgestützte, interaktive Auftritte im Internet. Wie in einem kreativen Rausch entstanden verschiedenste Systeme, die es ermöglichten, Inhalte nur mit Hilfe eines Browsers zu organisieren, wie Forenseiten, Communitys, Online-Shops, Voting-Seiten und Ähnliches. Nach den »harten« Sachen wie Linux und Apache entstanden nun die »weichen« Produkte. 3 4
Die 90er Jahre neigten sich dem Ende, die Internet-Aktienblase platzte und plötzlich kam es darauf an, ganz klassische Geschäftsmodelle mit ganz klassischen Methoden zu etablieren. Immer wenn es der Wirtschaft nicht gut geht, schaut sie auf die Kosten und überlegt, ob es Möglichkeiten gibt, diese zu senken. Es gab und gibt zahlreiche Möglichkeiten! Die PHP-Anwendungen, die es damals gab, hatten Verbreitungszahlen, die in die Millionen gingen. Als Beispiele seien hier nur die Projekte phpBB5 und phpMyAdmin6 genannt. Das eine hat sich zum Quasistandard für Forensoftware entwickelt, das andere zum Standardtool für das Bearbeiten von MySQL-Datenbanken per Webinterface. Der Quellcode der Sprache PHP selbst wie auch der Quellcode der Anwendungen wurden dank der enormen Anzahl von Nutzern und Entwicklern immer schneller immer besser. Je offener ein Projekt gestaltet wurde, desto mehr Erfolg hatte es. Einzelne Gurus konnten Unternehmen in kürzester Zeit immense Kosten sparen. Statische HTML-Seiten galten als alt, teuer und überholt. Dynamisch musste es sein! In diesem Umfeld bewegen wir uns jetzt seit ein paar Jahren. Linux, Apache, MySQL und PHP sind in der Industrie akzeptiert. Die Suche nach professionell verwertbaren PHP-Anwendungen begann. Bei dieser Suche schaut man auf: eine einfache Installation eine gute Wartbarkeit des Quellcodes Sicherheit des Quellcodes Benutzerfreundlichkeit einfache Erweiterbarkeit Kosten Abhängigkeit vom Lieferanten
Der besondere Vorteil von PHP-Anwendungen ist die Unabhängigkeit von Hardware und Betriebssystem. LAMP existiert auch als WAMP für Windows, MAMP für den Apple und auf zahlreichen anderen Plattformen Und jetzt kommt endlich unser Joomla! ins Spiel.
1.2.1
Joomla! – wie kam es dazu?
Die australische Firma Miro7 entwickelte im Jahre 2001 ein Contentmanagementsystem mit dem Namen Mambo. Sie stellte dieses System als Open Source-Software zur Verfügung, um es auszutesten und für eine weitere Verbreitung zu sorgen. Im Jahre 5 6 7
Sandini Bib 1.2 Ein kurzer Blick in die Geschichte
2002 spaltete die Firma ihr Produkt Mambo in eine kommerzielle und eine Open Source-Version auf. Die kommerzielle Variante nannte man Mambo CMS, die Open Source-Version Mambo Open Source oder kurz MOS. Ende 2004 einigten sich alle Beteiligten darauf, dass MOS ganz offiziell Mambo genannt werden dürfe und dass man gemeinsam eine erfolgreiche Zukunft für das sich momentan am schnellsten entwickelnde CMS gestalten wolle.8 HinweisHinweis Die Vorteile der kommerziellen Variante liegen für Firmen in erster Linie in der erhöhten Sicherheit und in der Tatsache, dass sie die Firma Miro als Ansprechpartner haben, die auch die weitere Entwicklung unterstützt. Die Vorteile der Open Source-Version sind, dass sie »frei« ist und eine riesige Gemeinde von Benutzern und Entwicklern für eine zügige Weiterentwicklung sorgt. Außerdem ist es für Unternehmen natürlich möglich, Mambo als Basis zu nehmen und darauf aufbauend eigene Lösungen zu entwickeln. Um die Existenz und Weiterentwicklung von Mambo zu sichern, gab es im Laufe des Jahres 2005 auf allen Seiten Überlegungen, eine Stiftung für die Open Source-Variante von Mambo einzurichten. Am 10.8.2005 war es dann soweit: Auf der Mambo-Projektseite wurde die MamboFoundation angekündigt. Nach positiven Reaktionen in den ersten Stunden danach stellte sich ziemlich schnell heraus, dass die Stiftung von Miro in Australien gegründet und dass das Entwicklerteam nicht in die Gründungsmodalitäten einbezogen worden war. Daraufhin entbrannten heiße Diskussionen in den Foren der Community und ein paar lange Tage hüllte sich das Entwicklerteam in Schweigen. Am 17.8.2005 veröffentlichte es schließlich eine Stellungnahme unter der URL opensourcematters.org und kündigte an, dass es sich vom neutralen Software Freedom Law Center9 beraten lassen würde und eine Weiterentwicklung von Mambo plane. Wie in einer zerrütteten Ehe entwickelte sich schnell ein Rosenkrieg zwischen der von Miro dominierten Mambo Foundation, der plötzlich das Entwicklungsteam abhanden gekommen war, dem Entwicklungsteam selbst, das natürlich einen neuen Namen für den Fork benötigte, und einer erhitzten internationalen Community von hunderttausenden von Benutzern, die sich teilweise mit harten Worten in Blogs, Foren und den jeweiligen Projektseiten beharkten. Die Entwicklung beider Projekte lief unterdessen weiter. Die Mambo Foundation stellte am 26.8.2005 die Beta-Version von Mambo 4.5.3 vor, die in den einschlägigen Foren nicht sehr gut aufgenommen wurde. 8 9
Am 1.9.2005 wurde der Name für den Fork bekannt gegeben – Joomla!. Diesmal sicherte sich das Entwicklerteam die Namensrechte und gab der Community auch die Möglichkeit, ihre vorhandenen Mambo-Domains auf den neuen Namen umzustellen, bevor er öffentlich verkündet wurde. Im neuen Forum hatten sich in kürzester Zeit etwa 8.000 Benutzer registriert. Das neue Projekt benötigte ein Logo und so wurde am 7.9.2005 ein Wettbewerb in der Community ausgerufen. Am 14.9.2005 wurden verschiedene Logovorschläge veröffentlicht und die neue (alte) Community darum gebeten, über das neue Joomla!-Logo abzustimmen. Die Vorschläge und Ergebnisse sind natürlich online zu finden.10 Am 13.9.2005 stellte die Mambo Foundation ihr neues Entwicklerteam vor. Am 17.9.2005 wurde die Version 1.0 von Joomla! veröffentlicht. Nach und nach wechselten viele der sogenannten Third-Party-Entwickler ebenfalls von Mambo zu Joomla!. (Ein Third-Party-Entwickler ist jemand, der auf einer Basis wie Joomla! aufbaut, um eigene Erweiterungen zu erstellen, beispielweise ein Forum oder eine Bildergalerie.) Die Firma VA Software11, die unter anderem die Entwicklerseite sourceforge.net betreibt, entschied, die Serverinfrastruktur des Joomla!-Projekts zu sponsern. Als vorläufigen Höhepunkt gewann Joomla! im Oktober auf der Linuxworld in London zwei Preise: Zum einen für das beste Linux- bzw. Open Source-Projekt im Jahre 2005 und zum anderen erhielt Core Member Brian Teeman einen Preis für seine Unterstützung von Open Source-Projekten (UK Individual Contribution to Open Source). Seit dem 11.10.05 gibt es in Deutschland mit einem Online-Magazin eine kompetente deutschsprachige Ressource zum Thema Joomla!.12 Eine ausführliche Zusammenfassung der Ereignisse in englischer Sprache finden Sie im Internet unter http://www.devshed.com/c/a/BrainDump/Joomla-is-the-New-Mambo/.
1.3
Struktur eines CMS
1.3.1
Front- und Backend
Ein CMS besteht aus einem Frontend und einem Backend. Das Frontend ist die Homepage, wie sie der Besucher und der angemeldete Benutzer sehen. Das Backend dagegen beinhaltet die Verwaltungsoberfläche der Homepage für den Administrator. Im Backend wird konfiguriert, gepflegt, aufgeräumt, werden Statistiken erstellt und neue Inhalte erzeugt. Das Backend findet man unter einem anderen URL als die Homepage.
Immer wenn es um Management geht, geht es um das clevere Verwalten von vorhandenen Ressourcen. In einem CMS werden den beteiligten Personen Usernamen zugeordnet und diese mit unterschiedlichen Zugriffsrechten versehen. Das geht von einem einfachen registrierten Benutzer über einen Autor und Editor bis hin zum Superadministrator, der alles darf. Abhängig von den Rechten erscheint die Homepage dann mit anderen Inhalten oder der Benutzer arbeitet in der von der Homepage getrennten Verwaltungsoberfläche.
1.3.3
Inhalte
Inhalte können verschiedener Art sein. Im einfachsten Fall ist es ein Text. Inhalt kann aber auch ein Bild, ein Link, ein Musikstück oder die Kombination aus allem sein. Um einen Überblick über die Inhalte zu behalten, bettet man sie in Strukturen ein, beispielsweise Texte in verschiedene Kategorien. Auch die Kategorien sind natürlich Inhalte, die verwaltet werden müssen.
1.3.4
Templates
Ein Template ist eine Art visuelle Schablone, die über die Inhalte gelegt wird. Ein Template definiert die Farben, Schriftarten, Schriftgrößen, Hintergrundbilder, Abstände und Aufteilung der Seite und somit alles, was mit dem Erscheinungsbild der Seite zu tun hat.
1.3.5
Erweiterungen (Komponenten)
Jedes System muss erweiterbar sein und mit den Anforderungen wachsen. Unter den Begriff Komponenten fallen Funktionalitäten, die in einen Sinnzusammenhang gehören. Typische Komponenten sind beispielsweise ein Online-Shop, ein User-Manager, ein Newsletter-Verwaltungssystem oder ein Forensystem. Komponenten enthalten die Geschäftslogik Ihrer Seite. Module innerhalb der Komponenten werden genutzt, um die Inhalte in der gewünschten Form im Template zu integrieren. Ein Letzte Neuigkeiten-Modul liefert beispielsweise die Überschriften der neuesten fünf Nachrichten an das Template. Ein anderes Modul ermittelt die Anzahl der User, die gerade online sind, oder die Wetterdaten Ihres aktuellen Wohnortes.
1.3.6
Workflow
Unter Workflow versteht man einen Arbeitsablauf. Der deutsche Dreisatz (stempeln, lochen, abheften) ist ein Beispiel für einen Workflow. Auch ein Rezept zum Backen eines Kuchens ist ein Workflow. Da bei einem CMS meist mehrere Menschen die Inhalte bearbeiten, ist ein gut organisierter Workflow eine echte Hilfe.
23
Sandini Bib 1 Begriffe und Konzepte
Manchmal spricht man in diesem Zusammenhang auch von Arbeitsvorräten, die ein bestimmter User hat. Beispielsweise sieht der Editor eine Liste von geposteten Neuigkeiten, die er auf Richtigkeit zu untersuchen hat. Nach der Prüfung schaltet er die Neuigkeiten frei und diese erscheinen im Arbeitsvorrat des Publishers, der sich nun überlegen muss, ob er die Nachricht auf der Startseite veröffentlicht.
1.3.7
Konfigurationseinstellungen
Hier werden Einstellungen festgelegt, die für die gesamte Homepage gelten. Dazu gehören beispielsweise der Titeltext im Browserfenster, Schlüsselwörter für Suchmaschinen, Schalter, die es erlauben oder verbieten, sich auf der Seite anzumelden, die die gesamte Seite offline oder online schalten, und viele weitere Funktionen.
1.4
Joomla! als Immobilie?
Joomla! ist eine Art Baukasten, mit dem Sie, wenn es einmal auf dem Server installiert ist, Ihre Homepage erstellen und pflegen können. Joomla! ist wie ein Haus, das Sie sich auf einem Grundstück Ihrer Wahl bauen und nach und nach einrichten. Also gewissermaßen eine Immobilie. Halt! Ich rede die ganze Zeit von Mobilität und nun sollen Sie eine Immobilie bauen? Keine Angst, die Immobilie, die Sie bauen werden, befindet sich zwar physikalisch an einem Ort (Ihrem Server), ist aber von jedem anderen Ort aus zugänglich. Um eine Immobilie bewohnbar zu machen, brauchen Sie lebensnotwendige Versorgungsleistungen wie Heizung, Strom und Wasserversorgung. Das ist der Grund, warum Ihr Joomla! in einem möglichst sicheren Server deponiert wird, bei dem hoffentlich nie der Strom ausfällt. Wie bei einem Haus haben Sie auch in Joomla! eine bestimmte Raumaufteilung. Sie haben einen Raum zum Repräsentieren, einen zum Kochen und Reden, einen zum Arbeiten und einen ganz privaten, den Sie nur guten Freunden zeigen. Vielleicht haben Sie auch einen großen Raum, der alle Bereiche integriert. Egal für welche Raumaufteilung Sie sich entscheiden – Sie müssen Ihr Haus möblieren, mit einem schönen Fußboden versehen, die Wände tapezieren, ein paar Bilder an die Wand hängen und natürlich auch regelmäßig sauber machen. Die vielen Gäste hinterlassen ja Spuren, die nicht immer erwünscht sind. Damit Besucher Ihr Haus auch finden, braucht es eine Adresse, unter der es gefunden werden kann. Diese Adresse muss möglichst vielen Menschen bekannt sein. Da es im Internet kein Einwohnermeldeamt gibt, müssen Sie sich selbst um das Thema »Wie werde ich gefunden« kümmern. Vielleicht haben Sie um Ihr Haus herum auch einen Garten mit verschiedenen Eingangstoren – einem offiziellen Eingangsportal, einem Hintereingang und vielleicht noch einer kleinen verwitterten Gartenpforte für die guten Freunde.
24
Sandini Bib 1.4 Joomla! als Immobilie?
Vielleicht mögen Sie ja solche Häuser gar nicht und benutzen eher Bauwagen, Zelte, Wohnmobile, Hotels oder bevorzugen Wohngemeinschaften. Vielleicht wohnen Sie auch gern zur Miete und wollen sich über diese Dinge keine Gedanken machen. Wenn Sie die letzten Sätze auf Ihre Homepage beziehen, so merken Sie schon, dass es wichtig ist zu wissen, was Sie wollen, wer Sie sind und wie Sie Ihrer Umwelt erscheinen wollen. Man kann nicht nicht kommunizieren! Man kann aber sehr schnell falsch verstanden werden. Also planen Sie Ihr virtuelles Haus im Internet genau. Denken Sie über die Texte und über die Farbgestaltungen nach, über mögliche interaktive Elemente wie einen Kalender oder ein Forum und natürlich einen Bereich, den nur registrierte Benutzer sehen dürfen. Denken Sie an Benutzerführungen, die Benutzer führen und nicht bevormunden, und schauen Sie sich mal um, wie andere es machen. Reden Sie mit den Menschen, die Sie mit Ihrer Homepage ansprechen wollen, und investieren Sie viel Herzblut in diese Dinge, die ganz entscheidend für den Erfolg Ihres Auftritts sind.
1.4.1
Joomla!-Versionen
Bei Joomla! gibt es wie bei jeder Software verschiedene Entwicklungsstufen. Das Joomla!-Team veröffentlichte am 1.9.2005 eine Roadmap13 und startete mit der Version Joomla! 1.0, mit der sich auch dieses Buch befasst. Die erste Joomla!-Version erhält konsequenterweise die Nummer 1.0, um nicht mit bestehenden Mambo-Versionen verwechselt zu werden. Die Version 1.0 ist eine überarbeitete Version der letzten Mambo-Version 4.5.2.3. Die Überarbeitung bezieht sich auf den anderen Namen, bekannte Fehler und Sicherheitspatches.
1.4.2
Nummerierungssystem der Joomla!-Versionen
Die Versionen von Joomla! folgen der X.Y.Z-Systematik: X = die Major Release-Nummer – sie wird immer dann hochgezählt, wenn tiefgrei-
fende Änderungen am Quellcode vorgenommen werden. Die Version mit der höheren Nummer ist unter Umständen nicht kompatibel mit früheren Versionen. Y = die Minor Release-Nummer – sie wird immer dann hochgezählt, wenn größere
Änderungen an der Funktionalität vorgenommen werden. Die höhere Versionsnummer ist meistens kompatibel (mit kleineren Anpassungsarbeiten) mit früheren Versionen. 13 http://www.joomla.org/content/view/14/28/.
25
Sandini Bib 1 Begriffe und Konzepte
Z = die Maintenance Release-Nummer – sie wird immer dann hochgezählt, wenn
Fehler behoben und Sicherheitslücken gestopft werden. Eine Erhöhung dieser Nummer bedeutet nur kleinere Änderungen und sehr kleine neue Features. Diese Versionen sind voll kompatibel mit den Versionen der gleichen X- und Y-Nummer. Ein Full Release ist eine Änderung in der X- und Y-Systematik. Hier wird es Alphaund Beta-Testperioden geben. Die Länge der Testperioden ist nicht festgelegt und liegt im Ermessen des Entwicklerteams. Beta-Versionen sollten mindestens drei Wochen zum Testen bereitstehen, um Komponentenentwicklern die Chance zu geben, ihre Komponenten anzupassen. Ein Maintenance Release kann sofort produktiv benutzt werden.
1.4.3
Zeitleiste (Roadmap)
Diese Zeitleiste kann natürlich jederzeit geändert werden, stellt aber einen guten Orientierungsrahmen dar. Version
Erscheinungstermin
Anmerkungen
Mambo 4.5.2
17. Feb. 2005
Letzte stabile Mambo-Version
Joomla 1.0.x
Seit Sep. 2005
Übernahme der Version Mambo 4.5.2.3
Joomla 1.1
Q4 2005 / Q1 2006
Fehlerbeseitigungen und Sicherheitspatches Erweiterungen in der Benutzeroberfläche Administrationsoberfläche in jeder Sprache möglich Neue Funktionen Joomla 1.2
Kein Termin
Bisher geplante Erweiterungen: Berechtigungserweiterungen – Teil 1 WCAG Priorität 1-Kompatibilität (nur Frontend) Google Summer of Code-Erweiterungen
Joomla 1.3
Kein Termin
Bisher geplante Erweiterungen: Berechtigungserweiterungen – Teil 2 Google Summer of Code-Erweiterungen
Joomla 2.0
2006
Neue CMS-Struktur auf der Basis der Sprachversion PHP 5
Tabelle 1.1: Joomla! Roadmap – Stand September 2005 Berechtigungserweiterungen – Teil 1: Hier soll die Möglichkeit eingebaut werden, Benutzergruppen hinzuzufügen und zu verändern. Der Administrator soll in der Lage sein, jeder Gruppe einzelne Berechtigungen zuweisen zu können. Also beispielsweise darf die Gruppe A das Template einer Seite verändern, Gruppe B aber nicht.
26
Sandini Bib 1.4 Joomla! als Immobilie?
Berechtigungserweiterungen – Teil 2: Hier sollen Zugriffsberechtigungen auf Objektebene möglich sein. Also beispielsweise darf eine Kategorie von Gruppe A nur angesehen, von Gruppe B aber geändert werden. WCAG Priorität 1-Kompatibilität: Barrierefreiheit ist ein wichtiges Thema, dessen Umsetzung in Deutschland ab dem 1.1.2006 für staatliche Websites zur Pflicht wird. Das W3C hat Standards dazu aufgestellt, die ab Joomla! 1.2 eingehalten werden sollen14 (siehe auch Kapitel 6). Erreicht werden sollen diese Standards durch die komplette Trennung des erzeugten HTML-Codes von der Geschäftslogik in den Programmen dahinter. Google Summer of Code Projects: Im Jahre 2005 hat die Firma Google15 talentierte Studenten und ihre Ideen zu bestimmten Open Source-Projekten mit jeweils 4.500 $ unterstützt. Die Ergebnisse dieser Projekte werden in Joomla! nach und nach integriert werden. Zu diesen Projekten gehören u.a.: Zugriff auf das Dateisystem von Joomla! über eine definierte Schnittstelle von
anderen Programmen aus ein System, um Updates zu bemerken und einzuspielen Inhaltsversionskontrolle, um bei geschäftlichen Anwendungen die Änderungen
zurückverfolgen zu können Geschwindigkeitsoptimierung von Joomla!
1.4.4
Joomla!-Features
Hier eine Auflistung der Joomla!-Features in Kurzform: Quellcode ist frei verfügbar nach dem Fork bildete sich sofort eine sehr große und eifrige Benutzer- und Ent-
wicklergemeinschaft ein einfaches Workflow-System Caching-Mechanismus, um einen schnellen Seitenaufbau bei beliebten Seiten
sicherzustellen Papierkorb Bannermanagement Dateimanager für den Upload und die Verwaltung von Dateien Veröffentlichungssystem für Inhalte Inhaltszusammenfassungen im RSS-Format 14 http://www.w3.org/TR/WAI-WEBCONTENT/full-checklist.html. 15 http://code.google.com/summerofcode.html.
27
Sandini Bib 1 Begriffe und Konzepte
Suchmaschinenfreundliche URLs mehrsprachiges Frontend Makrosprache für Inhalte (Mambots) von der Webseite getrennte Administrationsoberfläche einfache Installation von zusätzlichen Templates und Komponenten einfaches, aber mächtiges Template-System (HTML, CSS, PHP) ohne komplizierte
Template-Sprache hierarchische Benutzergruppen einfache Besucherstatistiken WYSIWYG-Editor für Inhalte einfache Umfragen Bewertungssystem für Inhalte
Viele freie Erweiterungen sind auf der Website http://developer.joomla.org/ verfügbar, wie beispielsweise: Foren Bildergalerien Dokumentenmanagementsysteme Templates Kalender u.v.a.m. ...
1.4.5
Beispiele für Joomla!-Seiten
Um ein Gefühl dafür zu bekommen, wie Joomla!-Seiten aussehen und ob es »die« Joomla!-Seite überhaupt gibt, schauen Sie sich einfach mal ein paar an. Durch die Projektgeschichte bedingt basieren diese Seiten meistens noch auf dem Mambo CMS. Mambo wird seit Jahren vom Joomla!-Entwicklungsteam entwickelt, so dass man sie durchaus als Referenzen heranziehen kann.
28
Sandini Bib 1.4 Joomla! als Immobilie?
Joomla.org In der weiteren Entwicklung von Joomla! wird unter anderem ein Schwerpunkt auf Barrierefreiheit gelegt. Auf joomla.org können Sie beispielsweise bereits die Schriften per Mausklick in verschiedenen Größen darstellen.
Abbildung 1.1:
http://www.joomla.org/
Porsche, Brasilien Die Firma Porsche – einen Sportwagenhersteller aus Deutschland – kennen Sie vermutlich.
Abbildung 1.2:
http://www.porsche.com.br/
29
Sandini Bib 1 Begriffe und Konzepte
PC Praxis, Deutschland Ein Computermagazin aus Deutschland:
Abbildung 1.3:
http://www.pc-praxis.de/
BSI DANS, Norwegen Meine Norwegischkenntnisse sind leider nicht besonders fortgeschritten, aber das Design gefällt mir sehr gut.
Abbildung 1.4:
30
http://www.bsi-dmans.no/
Sandini Bib 1.4 Joomla! als Immobilie?
Team Lesotho, Lesotho Die Seite des Entwicklungshilfeteams Aaron & Debbie Smart:
Abbildung 1.5:
http://www.teamlesotho.com/
Eine Auflistung von Joomla!-Websites finden Sie unter anderem auf der Website http://www.joomlapowered.com/.
31
Sandini Bib
Sandini Bib
2
Installation
Die Installation von Joomla! selbst ist eine Sache von zwei Minuten. Damit die Installation überhaupt möglich ist, benötigen Sie als Entwicklungsumgebung das bereits im ersten Kapitel angesprochene Dreamteam Apache, MySQL und PHP. An Apache und MySQL stellt Joomla! keine besonderen Anforderungen. Sie können auch jeden anderen Webserver benutzen, der in der Lage ist, mit PHP zusammenzuarbeiten.1 PHP muss in einer Version höher als 4.1.2 vorliegen und die Unterstützung für MySQL und Zlib muss einkompiliert sein. Zlib ist eine Bibliothek, die es PHP ermöglicht, Dateipakete zu lesen, die mit dem ZIP-Verfahren komprimiert wurden. Die Installation muss auf einem Server stattfinden, der über das Internet erreichbar ist, also in der Regel einem Server bei einem Internetprovider. Bevor Sie sich in die Wildnis des Internets begeben, sollten Sie erst mal lokal auf Ihrem PC üben. Das hat den Vorteil, dass erstens keine Verbindungsgebühren anfallen, dass es zweitens sehr schnell ist und dass Sie drittens in aller Ruhe alles ausprobieren können. Vielleicht haben Sie ja zu Hause sogar ein kleines PC-Netzwerk. Dann können Sie Joomla! auf einem PC installieren und vom anderen PC darauf zugreifen. Um die Beschaffung der benötigten Downloads ein wenig zu erleichtern, habe ich alle Downloads, die in diesem Buch besprochen werden, auf der beiliegenden CD und auf der Website zum Buch2 zusammengestellt. Im Anhang des Buches finden Sie eine Liste der Dateipakete. Für eine lokale Installation sind diese Dateien durchaus geeignet, da sich damit die Beispiele im Buch gut nachvollziehen lassen. Denken Sie aber daran, dass es vermutlich aktuellere Versionen auf den jeweiligen Projektseiten im Internet gibt. Wenn Sie Joomla! in the wild, also auf einem Server im Internet, installieren, sollten Sie immer die letzte stabile Version verwenden.
Um Joomla! lokal auf Ihrem PC installieren zu können, müssen Sie die entsprechende Serverumgebung bereitstellen.
2.1.1
Windows
Windows ist sehr benutzerfreundlich und weit verbreitet. Über 90 % aller PCs arbeiten mit Windows als Betriebssystem. Leider sind weder der Webserver Apache noch die Datenbank MySQL oder PHP im Lieferumfang enthalten. Sie können jedes dieser Programme einzeln installieren, Sie können allerdings auch auf ein vorkonfiguriertes Paket zurückgreifen. Das schont die Nerven und ist einfach praktisch. Melden Sie sich auf Ihrem System im Administratormodus an. Falls Sie nicht wissen, ob Sie Administratorrechte haben, sehen Sie in START -> SYSTEMSTEUERUNG -> BENUTZERKONTEN nach und ändern Sie die Rechte gegebenenfalls (Abbildung 2.1).
Abbildung 2.1:
Benutzerkonten in Windows XP
XAMPP für Windows XAMPP ist ein Projekt von Kai Seidler und Kay Vogelgesang. Die beiden »backen« seit mehreren Jahren eine komplette Entwicklungsumgebung mit den Zutaten Apache, MySQL, PHP, Perl und diversen sinnvollen Erweiterungen und stellen sie auf ihrer Homepage3 als ZIP-Archiv für gängige Betriebssysteme zur Verfügung. Das ist von immensem Vorteil für Menschen wie Sie und mich, da wir ja in erster Linie an 3
34
http://www.apachefriends.org/.
Sandini Bib 2.1 Lokale Serverumgebung einrichten
Joomla! interessiert sind und nicht so sehr daran, wie das Drumherum funktioniert. Außerdem kann man die ganze Installation mit einem Mausklick wieder rückstandsfrei vom Windows-PC entfernen. Jetzt aber los: Laden Sie sich die Datei xampplite-win32-1.4.15.zip von der Buch-CD oder aus dem Web.4 Packen Sie die Datei auf der Laufwerksebene eines beliebigen Laufwerkes aus. Es entsteht ein Verzeichnis xampplite (Abbildung 2.2).
Abbildung 2.2: xampplite-Verzeichnis Doppelklicken Sie auf die Datei setup_xampp.bat im xampplite-Verzeichnis (Abbildung 2.3). Xampp macht selbst keine Einträge in die Windows-Registry und setzt auch keine Systemvariablen. Jetzt können Sie den Apache starten. PHP wird dabei als Modul mitgestartet. Doppelklicken Sie auf die Datei [Laufwerk]:\xampplite\apache_start.bat. Es öffnet sich eine Kommandoaufforderung, die anzeigt, dass Apache gestartet wurde (Abbildung 2.4).
4
Die URLs für den Download finden Sie im Anhang.
35
Sandini Bib 2 Installation
Abbildung 2.3: setup_xampp.bat ausführen AchtungAchtung Die Kommandoaufforderung können Sie minimieren, Sie dürfen sie aber nicht schließen, denn dadurch würde der Apache-Webserver heruntergefahren werden.
Abbildung 2.4: Start Apache-Webserver Starten Sie MySQL mit einem Doppelklick auf die Datei [Laufwerk]:\xampplite\mysql_start.bat. Im Gegensatz zu Apache gibt es hier ein separates Script zum Herunterfahren. Es heißt mysql_stop.bat und Sie können MySQL damit regulär beenden (Abbildung 2.5).
36
Sandini Bib 2.1 Lokale Serverumgebung einrichten
Abbildung 2.5: Start MySQL Öffnen Sie Ihren Internetbrowser und geben Sie http://127.0.0.1/ oder http://localhost/ ein. Danach sollten Sie die XAMPP-Startseite sehen. Klicken Sie auf den Link DEUTSCH und es zeigt sich folgende Seite:
Abbildung 2.6: Startseite XAMPP für Windows Das Dokumentenverzeichnis für Ihre Homepage ist [Laufwerk]:\xampplite\htdocs. In diesem Verzeichnis liegen alle von einem anderen Rechner im Internet zugänglichen Seiten. Lesen Sie die beigelegte readme_de.txt-Datei. Hier finden Sie weitere Informationen zu den benötigten Passwörtern. Wenn Sie das Paket deinstallieren wollen, stoppen Sie alle laufenden Server und löschen einfach das xampplite-Verzeichnis.
2.1.2
Linux
Bei Linux liegen die Dinge meist einfacher. Es gibt verschiedene Distributionen mit verschiedenen Standardkonfigurationen. Meist ist unser Dreamteam vorinstalliert und muss nur gestartet werden. Es besteht auch die Möglichkeit, eine XAMPP-Ver-
37
Sandini Bib 2 Installation
sion für Linux zu installieren. Meines Erachtens ist es hier allerdings sinnvoller, auf die Originalprogramme zurückzugreifen. Die Installation erfolgt mittels Paketmanager und ist sehr einfach.
SUSE (10.x), OpenSUSE Mit Hilfe des Konfigurationsprogramms YaST können Sie überprüfen, ob Apache, MySQL und PHP bereits installiert sind. Sollte das nicht der Fall sein, wählen Sie die entsprechenden Pakete zur Installation aus und lassen Sie sie durch YaST installieren. Im Einzelnen handelt es sich um die Pakete: apache2, apache2-devel, apache2-mod_php4 mysql, php4-mysql
Sie finden diese Pakete über die Oberfläche von YaST (Abbildung 2.7) auf den Datenträgern Ihrer SUSE-Distribution oder auf speziellen Paketseiten im Internet.5
Abbildung 2.7: YaST, von einem Windows-PC aus in einer Shell aufgerufen Starten Sie den Webserver Apache durch den Befehl: /etc/init.d/apache2 start
Starten Sie den Datenbankserver MySQL dann über: /etc/init.d/mysql start
Stoppen können Sie beide mit dem Parameter stop. Eine Übersicht über alle Parameter erhalten Sie mit help.
5
38
http://www.rpmseek.com/.
Sandini Bib 2.2 Auf einem virtuellen Server im Netz
Debian /Ubuntu Bei Debian und auch Ubuntu heißt das Mittel der Wahl apt. Mit Hilfe des Programms apt können Sie Apache, MySQL und PHP installieren. apt-get install [paketname]
Im Einzelnen handelt es sich um die Pakete: apache-common – support files for all Apache webservers php4 – a server-side, HTML-embedded scripting language mysql-common – mysql database common files (e.g. /etc/mysql/my.cnf) mysql-server – mysql database server binaries
Sie finden diese Pakete automatisch über apt im Internet oder auf der DebianCD/DVD. Starten Sie Apache dann durch den Befehl /etc/init.d/apache2 start und MySQL über /etc/init.d/mysql start.
Eigener Server bei einem Provider Wenn Sie einen kompletten Server bei einem Provider gemietet haben, so haben Sie meist einen Shell-Zugang und die freie Wahl der Linux-Distribution, die Sie benutzen wollen. Außerdem ist das System vorkonfiguriert und enthält bereits alle notwendigen Dateipakete und Konfigurationen. Für die Konfiguration dieser Server werden meist spezielle Administrationsoberflächen wie Confixx6 oder Visas7 benutzt. Mit diesen Tools können Sie Ihren Server und die Dienste Apache und MySQL bequem über eine Browseroberfläche starten, stoppen und konfigurieren.
2.2
Auf einem virtuellen Server im Netz
Dieses Thema ist sehr komplex, da es mittlerweile eine unüberschaubare Anzahl von Anbietern und eine noch unüberschaubarere Kombination von installierten Apache-, PHP- und MySQL-Versionen und Webspace-Verwaltungstools wie Confixx und Visas gibt. Knackpunkte sind: ein eventuell in der php.ini aktivierter PHP-Safe Mode, bei Apache untersagte Umformung von URLs wegen der Nichtaktivierung der so
genannten Rewrite Engine oder Verzeichnisrechte unter Linux, die anders gesetzt werden als unter Windows.
Grundsätzlich ist der einfachste Weg, der eigentlich immer funktioniert, folgender: 1. Laden Sie sich die Datei Joomla_1.0.0-Stable.tar.gz auf Ihren heimischen PC und entpacken Sie sie in einem temporären Verzeichnis. 2. Laden Sie die gerade ausgepackten Dateien per FTP-Programm auf Ihren angemieteten Server. Die Dateien müssen im öffentlich zugänglichen Verzeichnis installiert werden. Meistens heißen diese Verzeichnisse htdocs, public_html oder nur html. Sie können innerhalb des Verzeichnisses ein Unterverzeichnis angeben, in das Sie Ihr Mambo installieren. Viele Webhoster erlauben, dass Sie Ihren angemieteten Domainnamen auf ein Verzeichnis linken. Dieser Name ist wichtig, um Ihre Website über den Browser aufrufen zu können. 3. Sie müssen herausbekommen, wie Ihre Datenbank heißt. Meistens sind eine oder auch mehrere Datenbanken in Ihrem Webhosting-Paket enthalten. Manchmal liegen Benutzername, Datenbankname und Passwort fest, manchmal müssen Sie es erst einrichten. Dazu steht Ihnen meistens eine browserbasierte Konfigurationsoberfläche zur Verfügung. Ein Beispiel einer solchen Oberfläche sehen Sie in Abbildung 2.8. Sie brauchen diese Daten für den Webinstaller von Joomla!.
Abbildung 2.8: Webkonfigurator von Host Europe Nachdem Sie die Daten auf Ihren Server geladen haben und im Besitz der Zugangsdaten zu Ihrer Datenbank sind, kann es losgehen.
2.3
Joomla! installieren
Um Joomla! installieren zu können, benötigen Sie zunächst den Quellcode. Laden Sie das Paket von der CD oder aus dem Web Joomla_1.0.0-Stable.tar.gz und speichern Sie es auf Ihrem System.8
8
40
Downloadmöglichkeit siehe Anhang.
Sandini Bib 2.3 Joomla! installieren
2.3.1
In welches Verzeichnis installieren?
Sie müssen sich überlegen, ob Sie Ihr Joomla! direkt in das Dokumentenverzeichnis oder in ein Unterverzeichnis installieren wollen. Das ist wichtig, weil Sie vermutlich einen möglichst kurzen URL zu Ihrer Homepage möchten.
Beispiel Wenn Sie Joomla! direkt in /htdocs auspacken, so startet Ihre Webseite, wenn Sie auf Ihrem lokalen PC http://localhost/ bzw. auf Ihrem Server im Internet Ihren Domainnamen http://www.meinehomepage.de/ aufrufen. Erstellen Sie unter /htdocs/ noch ein weiteres Verzeichnis, beispielsweise /htdocs/Joomla100/, und entpacken das Paket dort, so müssen Sie im Browser http://localhost/Joomla100/ eingeben. Lokal ist das kein Problem, auf einer produktiven Seite im Internet sieht das nicht so gut aus. In Ihrer lokalen XAMPPLITE-Umgebung unter Windows liegen bereits einige HTML-Dateien und Unterverzeichnisse in /htdocs, die beispielsweise die Begrüßungsseite von XAMPPLITE anzeigen (Abbildung 2.6). In Ihrer lokalen Linux-Umgebung wird Ihnen ebenfalls eine Startseite, abhängig von der Distribution und den Webservereinstellungen, angezeigt.
2.3.2
Lokale Installation von Joomla!
Verzeichnis Ich schlage vor, Sie erstellen sich ein Unterverzeichnis mit dem Namen Joomla100 unterhalb Ihres Dokumentenverzeichnisses. In Windows nehmen Sie dazu den Windows-Explorer, in Linux entweder die Shell, den KDE Konqueror oder den Midnight Commander. [Ihr Webspace]/htdocs/Joomla100/
Im Windows-Explorer sollte Ihr Verzeichnisbaum nun folgendermaßen aussehen (Abbildung 2.9).
Abbildung 2.9: Joomla!-Verzeichnis
41
Sandini Bib 2 Installation
Wenn Sie in Ihrem Browser http://localhost/Joomla100/ eingeben, erscheint in der XAMPPLITE-Variante eine Seite mit einem leeren Inhaltsverzeichnis (Abbildung 2.10).
Abbildung 2.10: Apache-Verzeichnisanzeige Unter Linux oder bei einer anderen Konfiguration kann es sein, dass Sie eine Meldung erhalten, der zufolge Sie keinen Zugriff auf dieses Verzeichnis haben. Das hängt mit der Konfiguration des Webservers zusammen. Aus Sicherheitsgründen ist die automatische Verzeichnisanzeige oft deaktiviert. Ein potentieller Angreifer könnte aus diesen Informationen viele interessante Schlüsse über die Verzeichnisstruktur und die Dateien auf Ihrer Homepage ziehen und sie dann gezielt angreifen. Meistens dürfen Sie auf die entsprechende Konfigurationsdatei des Apache-Webservers aus Sicherheitsgründen nicht zugreifen. Falls doch, sollten Sie aus oben genannten Gründen die Inhaltverzeichnisse deaktiviert lassen.
Entpacken Jetzt können Sie endlich das Dateipaket Joomla_1.0.0-Stable.tar.gz in das vorbereitete Verzeichnis auspacken. Das Dateipaket ist ein so genannter komprimierter Tarball. Unter Windows XP können Sie dieses Paket direkt mit dem Datei-Explorer auspacken. Unter allen anderen Windows-Versionen benötigen Sie ein separates Packprogamm wie beispielsweise das freie Programm Filzip (Download siehe Anhang). Unter Linux benutzen Sie in einer Shell den Befehl $ tar -zxvf Joomla_1.0.0-Stable.tar.gz
Nach dem Entpacken sehen Sie im Windows-Explorer die folgenden Verzeichnisse und Dateien (Abbildung 2.11).
42
Sandini Bib 2.3 Joomla! installieren
Abbildung 2.11: Joomla!-Quellcodedateien Diese Struktur ist auf allen Betriebssystemen die gleiche. Unterschiede bestehen nur in der Darstellung. In Abbildung 2.12 sehen Sie beispielsweise eine Darstellung in einem FTP-Client. Im linken Fenster sehen Sie Ihren lokalen PC, im rechten Fenster Ihren entfernten Webserver.
Abbildung 2.12: Joomla!-Dateien im FTP-Client WSFTP
43
Sandini Bib 2 Installation
Joomla!-Webinstaller Ab jetzt geht alles blitzschnell, weil der Joomla!-Webinstaller das Kommando übernimmt. Rufen Sie den URL http://localhost/Joomla100/ auf. Der Webinstaller meldet sich in englischer Sprache mit dem pre-installation check. Dieser Check soll Ihnen helfen, zu beurteilen, ob Ihre Umgebung für die Installation von Joomla! geeignet ist.
Abbildung 2.13: Joomla!-Webinstaller mit pre-installation check Die Installation des Webinstallers erfolgt in mehreren Schritten. Wenn Sie überwiegend grüne Testergebnisse sehen, so ist das schon mal ein gutes Zeichen. Abhängig von Ihrer Konfiguration kann es hier Unterschiede geben. Der Webinstaller berücksichtigt die Konfigurationseinstellungen von Apache, PHP und dem Betriebssystem. Auf Linux-Systemen sollten Sie auf Schreibberechtigungen achten. Wenn Sie mit der XAMPPLITE-Lösung unter Windows arbeiten, sollte es bei Ihnen so aussehen wie bei mir. Klicken Sie auf NEXT und Sie erhalten die Anzeige der GNU/GPL-Lizenz, die Sie durch Ankreuzen des entsprechenden Feldes akzeptieren müssen. HinweisHinweis Eine deutsche Übersetzung dieser Lizenz finden Sie unter http:// www.gnu.de/gpl-ger.html.
44
Sandini Bib 2.3 Joomla! installieren
Schritt 1 (Step 1) Nach diesen Vorbereitungen gelangen Sie nun zum Schritt 1 des Webinstallers. In einem Formular werden die Datenbankparameter abgefragt (Abbildung 2.14). In der XAMPPLITE-Serverumgebung können Sie beliebig viele Datenbanken anlegen und haben einen MySQL-Benutzer mit dem Namen root ohne Passwort. Aus diesem Grund kann ich im Installer den Namen einer Datenbank angeben, die noch nicht existiert. Der Installer legt sie einfach an. In einer produktiven Umgebung werden Ihnen die Datenbankzugangsdaten in der Regel vorgegeben.
Abbildung 2.14: Webinstaller, Schritt 1 Tragen Sie bei einer lokalen XAMPPLITE-Installation folgende Werte ein: Host Name: localhost MySQL Username: root MySQL Password: [leer lassen – Achtung Sicherheitsrisiko !!] MySQL Database Name: joomla100
Der MySQL Table Prefix ist eine praktische Sache. Vor jede Tabelle, die der Webinstaller erzeugt, schreibt er den Text, den Sie in das Prefix-Feld eingeben. Standardmäßig schlägt der Webinstaller jos_ vor.
45
Sandini Bib 2 Installation
HinweisHinweis Das hat einen einfachen Grund. Manchmal erhalten Sie bei einem Internetprovider nur eine MySQL-Datenbank. Wenn Sie nun zwei Joomla!-Seiten betreiben wollen, hätten Sie ein Problem, da Sie ja die Tabellen nicht voneinander unterscheiden können. Durch einen Präfix, der dem Tabellennamen voran gestellt wird, ist es möglich, die Tabellen verschiedener Joomla!-Installationen auseinander zu halten (jos_mueller_ oder jos_schulze_). Hier sollten Sie den Standard jos_ übernehmen. Drop existing Tables: Sollte es eine »frische« Installation in eine leere Datenbank sein, brauchen Sie hier nichts anzukreuzen. Wenn Sie bereits ein Joomla! in Ihrer Datenbank haben, können Sie mit diesem Schalter dafür sorgen, dass die alten Dateien überschrieben werden. Backup old Tables: Mit Joomla! lassen sich Datensicherungen (Backups) erstellen. Die Backups werden in speziellen Backup-Tabellen gespeichert. Wenn Sie hier ein Kreuzchen setzen, werden die alten Backup-Tabellen ersetzt. Install Sample Data: Diese Auswahl ist standardmäßig angekreuzt. Wenn Sie den Haken dort lassen, so wird Ihre Homepage mit Beispieldaten gefüllt, damit Sie eine Vorstellung vom späteren Aussehen erhalten. Füllen Sie Ihre Installation mit diesen Beispieldaten. Wir werden im weiteren Verlauf des Buches damit arbeiten. Klicken Sie auf den Button NEXT. Nach einer Sicherheitsabfrage, ob die Installation wirklich durchgeführt werden soll, legt der Webinstaller die Datenbank und die entsprechenden Tabellen an.
Schritt 2 (Step 2) In Schritt 2 legen Sie den Namen Ihrer Homepage fest (Abbildung 2.15).
Abbildung 2.15: Webinstaller Schritt 2
46
Sandini Bib 2.3 Joomla! installieren
Dieser Name taucht in der Titelzeile des Browserfensters auf, wenn jemand Ihre Homepage aufruft. Der Name wird auch an verschiedenen anderen Stellen benutzt, beispielsweise bei Bestätigungsmails an registrierte Benutzer. Wählen Sie einen aussagekräftigen Namen. Ich nehme für unsere Beispielseite den Namen Joomla100. Klicken Sie auf NEXT und der Name wird gesetzt.
Schritt 3 (Step 3) In Schritt 3 müssen Sie ein paar Basiseinstellungen bestätigen. Diese Einstellungen sind wichtig, um dem Joomla!-System die Orientierung auf Ihrem Server zu erlauben (Abbildung 2.16).
Abbildung 2.16: Webinstaller Schritt 3 URL: Das ist der URL, unter dem Ihre Homepage erreichbar ist. Path: Das ist der Dateipfad auf dem Server, der zu Ihrer Seite führt. In unserem Fall ist es die Windows-Umgebung. Your e-Mail: Tragen Sie hier Ihre E-Mail-Adresse ein. Als Administrator erhalten Sie hin und wieder Post von Ihrer Homepage. Admin Password: Joomla! schlägt ein Passwort vor. Sie sollten es übernehmen oder ein ähnlich kompliziertes Passwort bei einer Internet-Installation wählen. Bei der lokalen Installation können Sie sich etwas Einfacheres ausdenken.
47
Sandini Bib 2 Installation
Die beiden Auswahlmöglichkeiten bei den Datei- und Verzeichnisrechten sollten Sie übernehmen. Bei der Installation setzt Joomla! automatisch Zugriffsrechte für Teile des Systems, in denen Dateien hochgeladen oder Programmteile installiert werden. Sie sollten alle vorgeschlagenen Werte übernehmen und um Ihre E-Mail-Adresse ergänzen.
Schritt 4 (Step 4) Der vierte und letzte Schritt gratuliert zur erfolgreichen Installation. Ich gratuliere auch! In roter, fetter Schrift steht dort, dass Sie bitte das Verzeichnis mit dem Namen Installation löschen sollen. Diesen Hinweis sollten Sie jetzt beherzigen, denn Ihre Joomla!Homepage läuft ohne diese Maßnahme nicht. Außerdem werden Ihnen noch mal Ihre Login-Daten angezeigt. Notieren Sie sich den Usernamen und das Passwort am besten auf einen Zettel. HinweisHinweis Beachten Sie aber, dass Joomla! ein neues Passwort vergibt, wenn Sie von Schritt 4 noch einmal zurückgehen – etwa wenn Sie eine Einstellung ändern wollen oder weil die Installation doch nicht richtig geklappt hat. Für den Fall, dass Sie das Administratorpasswort vergessen/verlegt haben sollten, finden Sie im Anhang eine Lösung.
Abbildung 2.17: Webinstaller Schritt 4 Die Installation ist jetzt vollbracht und Sie haben die Wahl zwischen VIEW SITE (Homepage ansehen) und ADMINISTRATION (Administrationsoberfläche).
48
Sandini Bib 2.3 Joomla! installieren
Sehen Sie sich ruhig mal Ihre frisch erstellte Homepage an und klicken Sie auf VIEW SITE. Sollten Sie noch nicht das Verzeichnis Installation gelöscht haben, erhalten Sie jetzt noch einmal einen freundlichen Hinweis, es zu löschen und anschließend die Seite zu aktualisieren. Das Ergebnis sieht sehr eindrucksvoll aus.
Abbildung 2.18: Ihre Homepage direkt nach der Installation Schauen Sie sich in Ruhe um, klicken Sie ein paar Möglichkeiten durch und versuchen Sie sich zu orientieren. In dieser mit Beispieldaten gefüllten Website werden viele Funktionalitäten von Joomla! genutzt und diese werden wir uns in Ruhe ansehen.
49
Sandini Bib
Sandini Bib
3
Ein Rundgang durch Ihre neue Website
Nachdem Sie nun Ihre Website installiert und vorsichtig erkundet haben, können wir uns das Ergebnis gemeinsam ansehen. Auf den ersten Blick sehen diese Seiten ein wenig verwirrend aus. Grundsätzlich teilen sie sich in ein Frontend und ein Backend. Das Frontend sieht der Kunde oder der Websurfer und das Backend sehen nur die Entwickler bzw. Administratoren der Website.
3.1
Frontend
Wenn Sie sich ein wenig Zeit nehmen, werden Sie feststellen, dass viele verschiedene Funktionen in die Seite integriert sind. Um eine bessere Übersicht zu erhalten, habe ich die Bereiche auf der Seite markiert und beschriftet (Abbildung 3.1). Die Kunst des Webdesigns besteht jetzt darin, die für Ihre Website wichtigen Elemente zu erkennen, die unwichtigen wegzulassen und alles in einer für den Benutzer logischen, schnell überschaubaren und ansehnlichen Form darzustellen. Das Ergebnis ist immer ein Kompromiss aus Funktionsvielfalt und Gestaltung. Vom Aufbau her erinnert diese Struktur an eine Tageszeitung oder eine Portalseite wie Yahoo! oder Freenet. Es gibt Kästen links und rechts mit genau definierten Inhalten. In der Mitte stehen Nachrichten. Das Layout der Seite bestimmt ein so genanntes Template. Templates sind austauschund änderbar, das heißt, sie können die gleichen Inhalte in verschiedenen Layouts anzeigen. Jede Tageszeitung würde Sie um diese Möglichkeit beneiden. Gehen wir das Beispiellayout mal genauer durch. Es gibt vier verschiedene Kategorien von Bereichen auf der Seite. Menüs Funktionen Inhalte Dekorative Elemente
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
Abbildung 3.1:
3.1.1
Struktur der Beispielwebsite
Menüs
Menüs sollen dem Benutzer die Navigation in der Seite so leicht wie möglich machen. Für verschiedene Aufgaben gibt es verschiedene Menüs. Joomla! hat in den Beispieldaten vier Menüarten vordefiniert. Sie können beliebig viele weitere Menüs hinzufügen. Das vierte Menü wird in unserem Beispiel übrigens nicht gezeigt. Es handelt sich um das so genannte Usermenu, das der registrierte Benutzer sieht, nachdem er sich eingeloggt hat.
Oberes Menü
Abbildung 3.2: Top Menu Das obere Menü heißt in Joomla! Top Menu (Abbildung 3.2). Es befindet sich möglichst weit oben und soll dem Benutzer einen Schnellzugriff auf die wichtigsten Inhalte der Seite geben. In Deutschland stehen in solchen Menüs oft die Begriffe Produkte, Kontakt, Impressum.
52
Sandini Bib 3.1 Frontend
Hauptmenü Das Hauptmenü (Main Menu) ist der zentrale Navigationspunkt der Seite (Abbildung 3.3). Hier sollte es immer eine Möglichkeit geben, wieder auf die erste Seite zurückzukommen. Das Menü sollte auf jeder Seite der Website an genau derselben Stelle wieder erscheinen. Das Hauptmenü ist ein wichtiger Orientierungspunkt für den Benutzer.
Abbildung 3.3: Hauptmenü
Zusätzliches Menü
Abbildung 3.4: Zusätzliches Menü Ein zusätzliches Menü (Other Menu) kann an verschiedenen Stellen auftauchen (Modulpositionen). Abhängig vom Inhalt und Kontext der Seite kann es sinnvoll sein, zusätzliche Menüpunkte anzubieten, beispielsweise in einer Shopkomponente.
3.1.2
Inhalte
Da sind sie endlich. Die Inhalte! Der Content, den wir managen wollen.
Was ist Inhalt? Inhalt kann eine Nachricht sein, ein redaktionell bearbeiteter Artikel, eine statische Seite mit Erklärungen. Inhalt kann auch eine dynamische Linkliste wie Google1 sein, ein Shop wie Dell2 oder ein Flohmarkt wie eBay3. 1 2 3
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
Inhalt kann auch etwas völlig Dynamisches, für jeden Offenes sein. Die freie Enzyklopädie Wikipedia4 beispielsweise benutzt zur Verwaltung ihrer Inhalte ein System, das es jedem erlaubt, die Inhalte zu ändern. Diese spezielle Form der Inhaltsverwaltung nennt sich Wiki.5 Jeder darf die Inhalte verändern und sogar löschen. Es funktioniert bisher erstaunlich gut. Das Gegenteil von Wikis sind statische Inhalte, die, einmal geschrieben, für lange Zeit Gültigkeit haben, dieses Buch beispielsweise. Es wird in Bezug auf die Versionsnummern der behandelten Software veralten, bietet aber den Vorteil, dass es das Thema umfassend im Zusammenhang erklärt und beleuchtet. Ich erzeuge Inhalte in einer bestimmten Form und betreibe somit auch eine Form von Content Management. Prospekte, Flyer, Aufkleber, Geschäftsberichte, Betriebsanleitungen sind ebenfalls meist statischer Natur. Sie werden für ein bestimmtes Ereignis erstellt und sind dann irgendwann veraltet oder auch schlicht falsch. Viele ältere Websites bestehen ausschließlich aus statischen Elementen. Im Internet ticken die Uhren jedoch ein wenig schneller. Was bei Büchern, Prospekten und anderen Druckerzeugnissen wohlwollend toleriert wird (schließlich kann ich z.B. das Buch auch am Strand und in der U-Bahn lesen), wird von Website-Besuchern als Mangel empfunden. Für das Image Ihrer Firma gibt es vermutlich nichts Schlimmeres als eine vier Jahre alte statische Website, auf der auch noch ein »powered by ...«Button prangt, der auf eine hoffnungslos veraltete Software hinweist. Die Präsentationsmöglichkeiten von Inhalten sind unerschöpflich. Sie hängen vom verfügbaren Endgerät, der verfügbaren Bandbreite und vielen anderen Dingen ab, die wiederum abhängig vom Benutzer sind. Der Empfänger der Nachricht spielt eine zunehmend wichtigere Rolle. Wer ist eigentlich Ihre Zielgruppe? Es gibt eine sehr einfache Aussage, die lautet: Content ist King! Auf den Inhalt kommt es an. Jede Webagentur würde jetzt vermutlich milde lächeln und sich an die tägliche Arbeit zur nächsten Website machen. Millionenschwere Werbeetats für Produkte wie Tiefkühlspinat oder Bier sind der beste Beweis dafür, dass eine erfolgreiche Kommunikation auch ohne speziellen Inhalt funktioniert. Grundsätzlich ist die Aussage, dass der Inhalt das Entscheidende ist, aber richtig. Wenn Sie nichts zu sagen oder anzubieten haben, wird niemand Ihnen freiwillig zuhören. Da Sie vermutlich keinen millionenschweren Werbeetat haben, können Sie die Menschen auch nicht dazu zwingen. Inhaltsleere Seiten können noch so schön auf noch so vielen Endgeräten zur Verfügung stehen. Kein Mensch wird sie freiwillig besuchen.
HinweisHinweis Überlegen Sie sich die Inhalte Ihrer Seite genau! Jeder, wirklich jeder auf der Welt kann sie lesen und im Zweifel gegen Sie verwenden. Sie können Opfer von Abmahnungsanwälten oder enttäuschten Kollegen oder anderen unangenehmen Dingen werden.6 Auf der anderen Seite ist das natürlich auch ein unschlagbarer Vorteil: Jeder auf der Welt kann Ihre Inhalte lesen, seine Meinung dazu sagen und mit Ihnen Kontakt aufnehmen. Welch eine Chance! Sie sollten sich beider Dinge bewusst sein, wenn Sie die Inhalte konzipieren.
Erste Seite/Frontpage Inhalte werden auf der ersten Seite Ihrer Website angekündigt (Abbildung 3.5).
Abbildung 3.5: Frontpage Inhalte haben einen Autor, ein Erstellungsdatum, eine Überschrift, einen Aufmacher und vielleicht noch ein Bild. Der Aufmacher soll den Besucher neugierig machen und ihn dazu bringen, auf einen READ MORE ...-Link zu klicken, um die gesamte Nachricht zu lesen. 6
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
Neueste Nachrichten/Am meisten gelesene Nachrichten Die Nachricht kann jetzt in verschiedener Form angezeigt werden. Die Menschen interessieren sich meist dafür, was das Neueste ist und was die anderen so lesen (Abbildung 3.6). Also hat unser Beispiellayout einen entsprechenden Bereich, in dem immer die letzten fünf Nachrichten stehen, und einen weiteren mit den am meisten gelesenen Nachrichten. Dieser zweite Bereich wird möglich, weil Joomla! sich jeden Aufruf einer Nachricht in der Datenbank merkt und die Zugriffe zählt.
Abbildung 3.6: Letzte Nachrichten/Am meisten gelesene Nachrichten
3.1.3
Werbung
Wenn Ihre Website beliebt ist und die Inhalte stimmen, können Sie Werbeplatz verkaufen. Werbeplatz bedeutet meist Bannerschaltungen. Banner sind kleine Grafiken im gif-, jpg-, png- oder swf-Format, die den Besucher dazu bringen sollen, durch einen Klick auf das Banner Ihre Website zu verlassen. Wenn Sie das wirklich wollen, suchen Sie sich einen Platz in Ihrem Layout und denken Sie daran, ihn als Werbung zu kennzeichnen.
Bannerbereich Der Bannerbereich ist von der Größe her vorgegeben durch die gängigen Banner, in unserem Fall 468 * 60 Pixel (Abbildung 3.7).
Abbildung 3.7: Bannerbereich
3.1.4
Funktionen
Unter Funktionen versteht man Elemente, die benötigt werden, um Interaktivität zu ermöglichen. In Joomla! werden diese Funktionen mit dem Begriff Modul bezeichnet. Ein Modul ist etwas, das auf der Webseite einen Platz einnimmt und eine bestimmte Funktion erfüllt.
56
Sandini Bib 3.1 Frontend
Login-Bereich Ein Login-Modul ist wichtig, wenn Sie Ihre Website in einen öffentlichen und einen geschützten Bereich aufteilen wollen. Der Besucher muss dann die Möglichkeit haben, sich zu registrieren und anzumelden. Vielleicht vergisst er auch mal sein Passwort. Das Login-Modul sollte alle Situationen berücksichtigen können (Abbildung 3.8).
Abbildung 3.8: Login-Modul
Umfragen Da es hier um Inhalte für gewisse Zielgruppen geht, sollten wir die Gruppe, die sich wirklich auf unserer Website bewegt, hin und wieder nach ihrer Meinung befragen. Das ist die einfachste Art, an verwertbare Meinungen über Ihre Website zu kommen.
Abbildung 3.9: Umfrage-Modul Joomla! hat eine Umfragekomponente integriert, deren Anzeigemodul sich auf der Beispielseite befindet (Abbildung 3.9).
57
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
Wer ist online? Dieses Modul geht klar in Richtung Kommunikation, Community. Nachdem der Benutzer gesehen hat, welche Nachrichten neu und besonders beliebt sind, möchte er natürlich wissen, wer gerade noch so auf der Website unterwegs ist. In diesem Fall wird unterschieden zwischen Gästen und angemeldeten Benutzern (Abbildung 3.10). HinweisHinweis Überlegen Sie sich gut, ob Sie solche Features auf Ihrer Website anbieten wollen. Wenn Sie im Inhalt behaupten, dass Sie die größte Klingelton-Community in Deutschland sind, und sich auf Ihrer Website nur ein Gast tummelt, wirken Sie unglaubwürdig. Wenn Sie dagegen wirklich ständig 10 bis 20 Besucher und angemeldete Benutzer haben, so ist das ein gutes Mittel, um Dynamik zu demonstrieren.
Abbildung 3.10: Wer ist online?
Feeds News-Feeds werden immer beliebter. Es sind standardisierte Sammlungen von Inhalten, die dann weiterverarbeitet werden können. Also gewissermaßen der Inhalt Ihrer Website ohne den Ballast der Webseite drum herum. Das Modul Syndication (Abbildung 3.11) bietet verschiedenste Feeds an. Mehr über diese Technik erfahren Sie in Kapitel 4.
Abbildung 3.11: Syndication-Modul
Zurück
Abbildung 3.12: Zurück! Ein kleines Wort mit einer großen Bedeutung und einer Riesenportion Benutzerfreundlichkeit. Nachdem man auf einen Link gedrückt hat, ist es manchmal gar nicht so einfach, wieder genau dahin zurückzukommen, wo man vorher war. Der Zurück- bzw. BACK-Button versucht genau das zu ermöglichen.
58
Sandini Bib 3.1 Frontend
Suchfeld Ähnlich wie der Zurück-Button ist auch das Suchfeld ganz wesentlich für die Benutzerfreundlichkeit einer Website. Viele Seiten haben Suchfelder. Oftmals durchsuchen die Programme hinter den Suchfeldern aber eben nicht alle Inhalte der Seite. Bei Joomla! ist das natürlich anders: Alle Seiten werden auch wirklich durchsucht. Sie können einen Suchbegriff eingeben und auf der Tastatur auf (Enter) drücken. Das Ergebnis ist eine Trefferliste, bei der der gesuchte Begriff auch optisch hervorgehoben wird.
Abbildung 3.13: Suchfeld
3.1.5
Dekorative Elemente
Nach so vielen Funktionen, Modulen und Inhalten stellt sich die Frage nach dem Design, der Corporate Identity, dem Look and Feel der Website. Ein Template stellt das Layout der Seite dar und wird wie eine Schablone über die Inhalte gelegt. Da sich weder über Geschmack noch Schönheit wirklich streiten lässt, gibt es die Möglichkeit, verschiedene Templates für denselben Inhalt zu erstellen. Beispielsweise könnte Ihre Website im Winter anders aussehen als im Sommer oder während der Fußballweltmeisterschaft das Fußball-Outfit haben.7 Grundsätzlich besteht ein Template aus einem oder mehreren Logos, einer bestimmten Farbkombination, ausgewählten Schriftarten und -größen sowie der möglichst geschickten Anordnung der zur Verfügung stehenden Inhalte. Im Beispieltemplate gibt es zwei Logos (Abbildung 3.14 und Abbildung 3.15) und eine Fußzeile (Abbildung 3.16).
Abbildung 3.14: Logo 1
7
Kapitel 6 beschäftigt sich mit dem Erstellen eigener Templates.
59
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
Abbildung 3.15: Logo 2
Abbildung 3.16: Fußzeile
3.1.6
Aussichten
Nach diesem Rundgang und eigenen Erfahrungen beim Klicken können Sie vermutlich nachvollziehen, dass das Verwalten von Inhalten doch eine sehr anspruchsvolle Aufgabe darstellen kann. Wichtig ist dabei vor allem, nicht den Überblick zu verlieren.
3.2
Backend
Die Verwaltung der Seite findet im Backend mit dem Namen Joomla! Administrator statt. Sie erreichen die Joomla!-Administration unter dem URL: [Domainname]/administrator/
Wenn Sie ebenfalls mit der lokalen Installation arbeiten, erreichen Sie sie unter: http://localhost/joomla100/administrator/
Abbildung 3.17: Joomla!-Administration – Login
60
Sandini Bib 3.2 Backend
Melden Sie sich mit Ihrem admin-Benutzernamen an. Die Benutzerdaten haben Sie bei der Installation im Webinstaller selbst festgelegt.
Abbildung 3.18: Joomla! Administration Sie sehen eine Oberfläche mit Menüs, Icons und Karteireitern – so, wie Sie das von der grafischen Benutzeroberfläche Ihres Betriebssystems gewohnt sind. Die Sprache in Front- und Backend ist noch Englisch. Für das Frontend existieren deutsche Sprachdateien, das Backend dagegen ist derzeit nur in Englisch verfügbar. Das liegt daran, dass die Texte noch im Programmquellcode des Backends stehen. 8
HinweisHinweis Im weiteren Verlauf der Joomla!-Entwicklung (ab Version 1.1.0) sollen die Texte in separate Sprachdateien wandern und dadurch das Backend mehrsprachig werden. Es bestehen bereits heute Möglichkeiten, durch Austausch der Dateien ein deutsches Backend zu erzeugen, diese werden aber bei den weiteren Updates nicht berücksichtigt. Aus diesem Grund rate ich vom Austausch ab und empfehle Ihnen, die Gelegenheit beim Schopfe zu packen und ein wenig Englisch zu lernen. Auch mit sehr schlechten Sprachkenntnissen werden Sie schnell mit der Oberfläche vertraut werden. Außerdem gibt es für solche Fälle noch die Google-Sprachtools8: einfach den zu übersetzenden Text per Copy&Paste ins Formular befördern und dann automatisch übersetzen lassen. Die Übersetzung ist nicht perfekt, hilft aber in 90% der Fälle, die Bedeutung zu erfassen. 8
http://www.google.de/language_tools.
61
Sandini Bib 3 Ein Rundgang durch Ihre neue Website
AchtungAchtung In einer produktiven Umgebung sollten Sie aus Sicherheitsgründen das Verzeichnis [PfadzuJoomla!]/administrator/
mit einer .htaccess-Datei schützen. Durch die große Verbreitung von Joomla! ist anzunehmen, dass bald erste erfolgreiche Versuche unternommen werden, die Administration zu hacken. Eine brauchbare Anleitung für das Erstellen einer solchen Datei finden Sie unter; http://de.selfhtml.org/servercgi/server/htaccess.htm In Ihrer lokalen Installation ist der Schutz nicht notwendig.
62
Sandini Bib
4
Joomla! anpassen – Customizing
Unter Customizing versteht man das Anpassen eines Standardprogramms an die Bedürfnisse des Benutzers. In unserem Fall sind Sie der Benutzer und das Standardprogramm ist Joomla!, genauer gesagt, das Frontend Ihrer Joomla!-Installation. In der Joomla!-Administration, die im letzten Kapitel angesprochen wurde, können Sie Ihre Website anpassen, umbauen und mit Inhalten versehen. Die zwei typischen Dinge, die Website-Besitzer meist als Erstes erledigen wollen, ist, die Sprache auf die Muttersprache einzustellen und die Farben und die Strukturen zu verändern. Also werden wir uns diesen beiden Aufgaben zuerst widmen.
4.1
Eine andere Sprache für das Frontend
Falls Sie mit Ihrer Website eine deutsche Zielgruppe erreichen wollen, immerhin etwa 120 Millionen Menschen mit nicht zu verachtender Kaufkraft, sollten Sie auf Ihrer Website selbstverständlich die Sprache der Zielgruppe sprechen. Wollen Sie ein internationales Publikum ansprechen, sollten Sie natürlich als Standard die englische Sprache beibehalten. Aber auch innerhalb Deutschlands gibt es noch genug Auswahlmöglichkeiten bei der Sprache: neue oder alte Rechtschreibung? Du oder Sie? Slangausdrücke, Denglisch oder seriös? Was ist seriös? Unabhängig davon, wofür Sie sich entscheiden, Sie brauchen eine angepasste Sprachdatei. Als Basis nehmen Sie am besten das, was bereits vorhanden ist.
Sandini Bib 4 Joomla! anpassen – Customizing
4.1.1
Installation einer anderen Sprachdatei
Speichern Sie die Dateien jos100germani.zip und jos100germanf.zip auf Ihrem PC1. Diese Sprachdateien stammen vom deutschen Übersetzungsteam (GTT German Translation Team) unter der Projektleitung von Antonio Cambule.2 Loggen Sie sich, wie im zweiten Kapitel beschrieben, in Ihre Joomla!-Administration ein und klicken Sie auf SITE -> LANGUAGE MANAGER -> INSTALL (Abbildung 4.1).
Abbildung 4.1:
Sprachdatei installieren
Klicken Sie anschließend auf DURCHSUCHEN und wählen Sie zunächst die Datei jos100germanf.zip aus. Klicken Sie auf UPLOAD FILE & INSTALL. Sollten alle Berechti-
gungen korrekt gesetzt sein, erhalten Sie die Meldung: Upload language – Success
Nach einem Klick auf den Link CONTINUE sehen Sie die verfügbaren Sprachen. Außer Englisch gibt es jetzt auch German Formal – Sie und Informationen über den Ersteller der Sprachdatei (zum Zeitpunkt der Erstellung des Buches betrieb das Übersetzungsteam noch die Website mamboGTT.de). In dem anderen ZIP-Archiv befindet sich die Sprachversion mit der Anrede Du. Wenn Sie wollen, können Sie auch diese Version installieren. Aber der grüne Haken für die Standardsprache steht noch neben English. Wählen Sie die deutsche Variante aus und klicken Sie auf das Icon PUBLISH rechts über dem Language Manager. An dieser Stelle befinden sich immer die Icons, die Aktionen und Dialoge abschließen.
Sandini Bib 4.1 Eine andere Sprache für das Frontend
Abbildung 4.2: Sprachauswahl Da außer den Worten auch gravierende Unterschiede in der Darstellung von Zahlen und Datumsangaben bestehen, müssen Sie die entsprechenden Locale-Einstellungen festlegen. Mehr zu diesem Thema finden Sie in Kapitel 4.4.1.
4.1.2
Übersetzen eines Menüeintrags
Ihr Frontend spricht jetzt deutsch. Schauen Sie unter http://localhost/joomla100/ nach, achten Sie auf das Suchfeld, das Login-Modul und klicken Sie im Main Menu mal auf den Link SEARCH. Es ist eine atemberaubende Mischung aus Deutsch und Englisch auf der Seite zu sehen. Alles, was automatisch per Programm funktioniert, wie beispielsweise das Suchen oder die Anmeldeprozedur, ist auf Deutsch, der Rest aber nicht. Warum? Die Antwort ist ganz einfach. Nur die Wörter und Sätze, die bekannt sind, können übersetzt werden. Ein großer Teil der Seite besteht jedoch aus eingegebenem Inhalt. Dieser Inhalt erscheint in der Sprache, in der er eingegeben worden ist. In unserem Fall sind die Beispieldaten in Englisch erstellt worden. Aber bevor Sie die Beispielseite jetzt versuchen zu übersetzen, schauen Sie noch einmal auf die Buttons im Language Manager. Außer PUBLISH gibt es NEW, EDIT, DELETE und HELP. Hinter dem Button HELP verbirgt sich die Joomla!-Onlinehilfe. Natürlich ebenfalls auf Englisch. Mit NEW installieren Sie neue Sprachpakete, mit DELETE können Sie sie wieder löschen. Aber interessant ist natürlich der Button EDIT. Wählen Sie die Sprache aus, die Sie sehen wollen, und klicken Sie auf EDIT. Der Language Editor öffnet sich und Sie können online Änderungen vornehmen (Abbildung 4.3).
65
Sandini Bib 4 Joomla! anpassen – Customizing
Blättern Sie mal ein wenig durch die Sprachdatei. Sie bekommen dadurch auch ein Gefühl für die Funktionen und die Struktur der Joomla!-Texte. Das Prinzip der Datei beruht auf PHP-Konstantennamen, die nach der abgekürzten englischen Bedeutung benannt wurden und je nach Sprache mit dem entsprechenden Text gefüllt werden.
Abbildung 4.3: Language Editor Die Konstanten stehen im Programmquellcode, der Inhalt in dieser Datei. Momentan ist die Sprachdatei writeable, also von PHP oder irgendeinem anderen Tool aus änderbar. Wenn Sie der Meinung sind, dass die Übersetzung nun gelungen ist, und ein wenig mehr Sicherheit haben wollen, kreuzen Sie einfach die entsprechende Checkbox an, um die Datei unwriteable zu setzen. Die Schreibrechte werden der Datei entzogen und beim nächsten Mal nur für den Speichervorgang gewährt. (Um die ursprüngliche Rechtesituation wiederherzustellen, müssen Sie die Dateirechte mit Ihrem FTP-Client oder in einer Shell mit dem Befehl chmod ändern.) Wenn Sie den Language Editor wieder verlassen wollen, klicken Sie auf SAVE oder CANCEL. Was müssen Sie nun tun, um beispielsweise den Menüeintrag Search in Suche zu ändern oder das Main Menu in Hauptmenü umzutaufen? Verlassen Sie den Language Editor und klicken Sie auf MENU -> MAINMENU. Sie befinden sich jetzt im Menu Manager. Klicken Sie auf den Link Search (Abbildung 4.4) und editieren Sie ihn in dem daraufhin erscheinenden Formular (Abbildung 4.5).
66
Sandini Bib 4.1 Eine andere Sprache für das Frontend
Abbildung 4.4: Menu Manager Achten Sie noch nicht auf die zahlreichen Konfigurationsmöglichkeiten, sondern ersetzen Sie einfach das Wort Search durch Suche und klicken Sie auf APPLY (zuweisen). In Ihrem Main Menu auf der Website steht jetzt SUCHE!
Abbildung 4.5: Menu Item ändern
67
Sandini Bib 4 Joomla! anpassen – Customizing
4.1.3
Ändern der Menübezeichnung
Um aus dem Main Menu ein Hauptmenü zu machen, öffnen Sie den Modulmanager über MODULES -> SITE MODULES (Abbildung 4.6). Durch einen Klick auf den Link Main Menu erhalten Sie ein Formular wie eben bei dem Menüeintrag.
Abbildung 4.6: Modulmanager Ändern Sie einfach den Text und schon ist aus dem Main Menu ein Hauptmenü geworden.
4.1.4
Ändern des Templates für Ihre Website
Nachdem jetzt alles schon etwas vertrauter ist, wollen Sie Ihre Website natürlich in einem völlig anderen Design haben.3 Um zu zeigen, was Joomla! von Haus aus mitbringt, wechseln Sie bitte über SITE -> TEMPLATE MANAGER -> SITE TEMPLATES in den Template Manager (Abbildung 4.7). Unter Site versteht man Ihre Website, also das Frontend. Wie Sie sehen, gibt es auch Administrator Templates. Standardmäßig bringt Joomla! zwei fertige Templates mit. Das momentan aktive Template wird durch einen grünen Haken gekennzeichnet. Wenn Sie mit der Maus über den Link mit dem Namen des Templates fahren, erscheint ein kleines Vorschaubild (Abbildung 4.8). Das Solarflare-Template wurde aus der letzten Mambo-Version übernommen und auf Joomla! angepasst. Das madeyourweb-Template von Marc Hinse aus München ist neu dabei. In seinem Blog4 erfahren Sie mehr über seine Templates und erhalten Tipps & Tricks zum Thema Joomla!.
3 4
68
Mehr über Templates finden Sie in Kapitel 6. http://www.mademyday.de/.
Sandini Bib 4.1 Eine andere Sprache für das Frontend
Abbildung 4.7: Template Manager
Abbildung 4.8: Template Manager – Vorschaufunktion Um das Template Ihrer Website zuzuordnen, wählen Sie den Radiobutton vor dem Namen des gewünschten Templates aus und klicken in der Menüleiste auf DEFAULT. Wechseln Sie auf Ihre Website und klicken Sie im Browser auf den Button AKTUALISIEREN. Schon haben Sie ein anderes Layout und ein völlig neues Aussehen. Die Menüs sind jetzt beispielsweise auf der rechten Seite, übrigens mit den deutschen Übersetzungen HAUPTMENÜ und SUCHE. Nachdem wir dem ersten Spieltrieb nachgegeben haben, folgt nun das ausführlichere Customizing.
69
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.9: Ein anderes Template
4.2
Aufbau der Joomla!-Administration
Joomla! bietet fast den gleichen Komfort wie ein Programm unter einer grafischen Benutzeroberfläche – siehe Windows, KDE, Gnome oder Aqua (von Mac OS X). Das ist nicht selbstverständlich für Webseiten und wird erreicht durch den großzügigen Gebrauch der Scriptsprache JavaScript. JavaScript wird lokal auf Ihrem Rechner ausgeführt und kann auch im Browser deaktiviert werden. In diesem Fall können Sie nicht mehr mit der Joomla!-Administration arbeiten. Seit mehreren Jahren können die Browser allerdings gut mit JavaScript umgehen und es gibt auch keine ernsthaften Sicherheitsprobleme mehr. Aus diesem Grund sollten Sie JavaScript einschalten. In diesem Zusammenhang möchte ich den Windows-Benutzern unter Ihnen als Internetbrowser die beiden Open Source-Produkte Mozilla oder Firefox5 ans Herz legen. Beide sind erheblich sicherer und komfortabler als der Internet Explorer. Die Joomla!-Administration besteht ebenso wie Ihre Website aus verschiedenen Elementen. Im oberen Bereich Menüleiste befinden sich die Menüs und auf der rechten Seite zwei Anzeigen, ob Sie Nachrichten erhalten haben und wie viele Benutzer gerade angemeldet sind.
5
70
http://www.mozilla.org/.
Sandini Bib 4.2 Aufbau der Joomla!-Administration
Darunter ist ein Feld mit einem Pfad, der Auskunft darüber gibt, welche Komponente für den gerade angezeigten Manager zuständig ist (Infobar). Rechts daneben befinden sich abhängig vom Manager verschiedene abgeblendete Icons, die Werkzeugleiste (Toolbar). Wenn Sie mit dem Mauszeiger über ein solches Icon fahren, leuchtet es auf und Sie können mit der linken Maustaste klicken und die entsprechende Funktion ausführen. Toolbar-Element
Bedeutung
PUBLISH
Das ausgewählte Element wird veröffentlicht.
UNPUBLISH
Das ausgewählte Element wird vor der Öffentlichkeit versteckt.
ARCHIVE
Das ausgewählte Element wird in das Archiv verschoben.
NEW/NEW ITEM
Die Erstellung eines neuen Elements (Link, Kontakt, Nachricht) wird gestartet.
EDIT
Das ausgewählte Element wird in den Editiermodus geladen.
DELETE OR REMOVE
Das ausgewählte Element wird gelöscht.
TRASH
Das ausgewählte Element wird in den Papierkorb geworfen.
RESTORE/UNTRASH
Das ausgewählte Element wird aus dem Papierkorb zurückgeholt.
MOVE
Das ausgewählte Element wird in einen anderen Bereich (Section) oder eine andere Kategorie verschoben.
COPY
Das ausgewählte Element wird in einen anderen Bereich oder eine andere Kategorie kopiert.
SAVE
Das ausgewählte Element wird gespeichert und der Dialog verlassen.
APPLY
Die Änderungen werden gespeichert, der Dialog bleibt geöffnet.
CANCEL
Die Bearbeitung wird ohne Speicherung abgebrochen.
PREVIEW
Das ausgewählte Element wird in einem eigenen Fenster als Vorschau gezeigt.
UPLOAD
Die ausgewählte Datei wird auf den Server hochgeladen.
CREATE
Erstellt ein Unterverzeichnis auf dem Server
HELP
Die Onlinehilfe von Joomla!
DEFAULT
Das ausgewählte Element wird als Standard benutzt.
ASSIGN
Das ausgewählte Element wird einem anderen Element zugewiesen.
Tabelle 4.1: Toolbar-Elemente Darunter befindet sich der Arbeitsbereich (Workspace) des aktuellen Managers. In Abbildung 4.10 ist dies das Control Panel. Es wird nach dem Einloggen angezeigt und bietet einen Schnellzugriff auf die wichtigsten Elemente. Falls Sie das Control Panel nicht sehen, klicken Sie einfach auf HOME oben links in der Menüleiste.
71
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.10: Joomla!-Administration Im linken Bereich verweisen Icons auf verschiedene Manager. Im rechten Bereich finden Sie fünf Karteireiter, die Ihnen einen Überblick über den aktuellen Status Ihrer Website geben. Im unteren Bereich sehen Sie eine Navigationsleiste, die sich quer durch Joomla! zieht. Hier können Sie die Anzahl der angezeigten Zeilen einstellen und durch die Anzeige navigieren, falls gleichzeitig 100 Benutzer online sind. Diese Menge ist bei gut frequentierten Joomla!-Seiten durchaus realistisch. Die Einstellung der Anzahl der angezeigten Zeilen ist bei allen Tabellendarstellungen möglich. Logged bietet einen Überblick über die gerade eingeloggten Benutzer. Durch einen Klick auf das rote Kreuz neben dem Benutzernamen können Sie als Administrator den Benutzer abmelden. Components zeigt Ihnen die aktuell installierten Softwarekomponenten. Wenn diese mehrere Optionen haben, wie beispielsweise Weblinks, so wird diese Komponente als Überschrift mit Unterpunkten dargestellt. Popular präsentiert Ihnen die am meisten aufgerufenen Seiten Ihrer Website. Durch einen Klick auf den Seitennamen gelangen Sie in den Content Manager und die entsprechende Seite wird Ihnen im Editiermodus angezeigt. Wenn Sie im Editormodus sind, müssen Sie mit CANCEL oder SAVE die Bearbeitung beenden und anschließend wieder auf HOME klicken, um in das Control Panel zu gelangen. Latest Items ist so ähnlich wie Popular. Hier werden die Inhalte in umgekehrt chronologischer Reihenfolge angezeigt. Durch einen Klick auf den Namen landet man ebenfalls im Content Manager. Menu Stats liefert die Anzahl der Menüelemente in jedem Menü. Die Menüleiste besteht aus neun Menüs. Ganz links finden Sie den HOME-Link, der Sie wieder in das Control Panel bringt. Ganz rechts sehen Sie den HELP-Link. Sie können das Control Panel über MODULES -> ADMINISTRATOR MODULES konfigurieren.
72
Sandini Bib 4.3 Menü Help
4.3
Menü Help
Abbildung 4.11: Joomla!-Hilfebereich Der Arbeitsbereich Joomla! Help ist dreigeteilt. Im oberen Teil gibt es ein Suchfeld und eine Leiste mit Links (Abbildung 4.11). Darunter befindet sich links ein Index der verfügbaren Hilfetexte und rechts der entsprechende Anzeigebereich. Standardmäßig sehen Sie hier die Neuigkeiten in der von Ihnen benutzten Joomla!-Version. Die Links, die mit Hilfetexten zu tun haben, verweisen auf den Server http://help.joomla.org/. Um die Suche nutzen zu können, müssen Sie also mit dem Internet verbunden sein. Außer bei einer lokalen Version sind Sie das aber zwangsläufig. Die anderen Links verweisen auf den Text der GNU/Public License, auf Systeminformationen über Ihren Server (Abbildung 4.12) und das Changelog, das die Änderungen der einzelnen Entwickler dokumentiert. Im Changelog können Sie beispielsweise lesen, dass Alex Kempkens am 16.9. das madeyourday-Template hinzugefügt und Rey Gigataras am 14.9. eine neuere Version des WYSIWYG-Editors eingebaut hat. Die Systeminformationen sind wieder in drei Karteireiter aufgeteilt. System Info zeigt eine Zusammenfassung der wichtigsten Daten. Ich arbeite momentan lokal unter Windows mit der XAMPPLITE-Umgebung (Installation siehe Kapitel 2) und habe daher im Vergleich zu den im Internet angemieteten Servern sehr aktuelle Softwareversionen (Apache 2.0.54 und PHP 5.04). PHP Info zeigt alle Informationen aus der Funktion phpinfo() an. Hier geht es um die komplette Konfiguration des PHP-Interpreters. Permissions zeigt die Berechtigungen Ihrer Unterverzeichnisse an. Damit Joomla! fehlerfrei läuft, müssen hier alle Verzeichnisse beschreibbar (writable) sein.
73
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.12: Joomla! Help-Systeminformationen
4.4
Menü Site
Es gibt Voreinstellungen, die für alle einzelnen Seiten und für Ihren Server gelten. Alle diese Einstellungen sind im Menü Site zusammengefasst.
Abbildung 4.13: Menü Site
74
Sandini Bib 4.4 Menü Site
4.4.1
Site – Global Configuration
Der Arbeitsbereich Globale Konfiguration verwaltet die Änderungen in der Datei configuration.php. Hier befinden sich lebenswichtige Dinge wie die Zugangsdaten zum Datenbankserver. Der Arbeitsbereich selbst ist aufgeteilt in zehn Karteireiter.
Site
Abbildung 4.14: Site – Global Configuration – Site Site Offline: Wenn Sie beispielsweise Änderungen an Ihrer Website vornehmen und Ihre Benutzer darauf hinweisen wollen, können Sie hier die entsprechende Nachricht »einschalten«. Offline Message: Der hier eingegebene Text wird auf Ihrer Website im oberen Bereich angezeigt, wenn sie »offline« ist. Probieren Sie es einmal aus (Abbildung 4.15).
Abbildung 4.15: Wartungsmeldung auf der Website
75
Sandini Bib 4 Joomla! anpassen – Customizing
System Error Message: Hier können Sie ebenfalls eine Nachricht angeben, die angezeigt wird, wenn sich keine Verbindung zum Datenbankserver herstellen lässt. Site Name: Der Name der Seite, den Sie bei der Installation eingegeben haben. Show Unauthorized Links: Sie haben die Möglichkeit, einzelne Seiten nur für registrierte Benutzer anzeigen zu lassen. Jetzt kann es sein, dass auf diese Seiten in einem öffentlichen Zusammenhang verlinkt wird. Bei der Auswahl JA werden die Links angezeigt. Wenn ein nicht angemeldeter Besucher auf einen solchen Link klickt, erscheint eine Meldung, dass es sich um einen geschützten Bereich handelt, der eine Anmeldung erfordert. Allow User Registration: Hier können Sie wählen, ob Sie eine eigene Registrierung von Benutzern zulassen wollen oder nicht. Wenn Sie beispielsweise eine FirmenWebsite betreiben, könnten Sie Ihren Mitarbeitern ein Benutzerkonto anlegen, es aber verbieten, dass sie sich selbst ein Konto erstellen. Bei einer Community-Website ist es dagegen erwünscht, dass sich die Benutzer selbst anmelden. Use New Account Activation: Um eine gewisse Sicherheit vor Programmen zu bieten, die automatisiert auf Ihrer Seite 20.000 Benutzerkonten anlegen, können Sie eine separate Aktivierung verlangen. Der Benutzer erhält automatisch eine E-Mail an die von ihm angegebene Adresse. In dieser E-Mail befindet sich ein Link zum Freischalten des Kontos. Nach der Freischaltung kann er sich normal anmelden. Require Unique Email: Wollen Sie, dass jede E-Mail-Adresse nur für ein Konto verwendet werden darf? Debug Site: Hier können Sie die Website in den Debug-Modus versetzen. HinweisHinweis Wenn Programmierer Fehler suchen, sprechen sie von debuggen. Diese Bezeichnung ist historisch gewachsen. Ein Bug ist ein Käfer, und vor 50 Jahren waren es tatsächlich Käfer, die es sich an den warmen Röhren eines Computers gemütlich machten und hin und wieder für Kurzschlüsse sorgten. Debugging – Käfer suchen – war damals also wörtlich zu nehmen. Heute geht es um Fehler in Softwareprogrammen, beispielsweise eine nicht funktionierende Datenbankabfrage. Nach dem Einschalten dieser Funktion werden unter der Website die Datenbankabfragen angezeigt. Um eine einzige Seite von Joomla! zu generieren, sind in diesem Fall 79 Datenbankabfragen notwendig (Abbildung 4.16).
76
Sandini Bib 4.4 Menü Site
Abbildung 4.16: Debug Mode mit Datenbankabfragen WYSIWYG Editor: WYSIWYG ist die Abkürzung für What you see is what you get oder (näher an der Realität) Du hast es so gewollt, da hast du es!. Der Begriff stammt aus den Anfängen grafischer Benutzeroberflächen, als es erstmals möglich war, Texte in einer Textverarbeitung zu schreiben und beim Schreiben zu sehen, wie das fertige Ergebnis nach dem Druck aussehen wird. Heute geht es weniger um das Drucken, sondern mehr um die Darstellung auf Ihrer Website.
Abbildung 4.17: WYSIWYG-Editor Im Internet füllen Sie normalerweise Formulare aus, ohne die Möglichkeit einer Formatierung. Die Formatierung erfolgt über HTML-Tags oder programmspezifische Kürzel. Ein WYSIWYG-Editor ist komfortabler, da Sie hier wie in einer Textverarbeitung nur auf die entsprechenden Icons klicken müssen. In den Textfeldern, in denen Formatierungen benötigt werden, wird dieser Editor automatisch eingeblendet (Abbildung 4.17). Er funktioniert unter allen gängigen, aktuellen Browsern. Joomla! bietet die Möglichkeit, auch andere HTML-Editoren einzubinden. Standardmäßig wird momentan der Editor TinyMCE benutzt.6
6
http://tinymce.moxiecode.com/.
77
Sandini Bib 4 Joomla! anpassen – Customizing
List Length: Auf Ihrer Website tauchen immer wieder Listen auf, beispielsweise News und Links. Hier stellen Sie ein, wie viele Einträge eine Liste standardmäßig haben soll. Favourites Site Icon: Jede Website kann ein so genanntes Favourite Site Icon (Favicon) dem Browser anbieten. Dieses kleine Bild wird links neben dem URL sowie in den Lesezeichen im Browser dargestellt. Das funktioniert in den meisten Browsern ganz gut, im Internet Explorer nur unter bestimmten Bedingungen (Abbildung 4.18 und Abbildung 4.19). Die Icons müssen in einem bestimmten Format vorliegen.7 Hier legen Sie den Namen für das Icon fest. Sie finden die Datei im Hauptverzeichnis von Joomla!.
Abbildung 4.18: Favicon in Mozilla
Abbildung 4.19: Keine Favicon-Anzeige im Internet Explorer (Version 6.0.29...)
Locale Unter diesem Reiter können Sie Ihre Seite lokalisieren (Abbildung 4.20). Unter Lokalisierung versteht man das Anpassen an länderspezifische Eigenheiten.
Abbildung 4.20: Site – Global Configuration – Locale Language: Hier legen Sie die Sprache der Website fest. In der Optionsliste werden alle verfügbaren Sprachen angezeigt. Wie Sie neue Sprachpakete installieren, zeigt Kapitel 4.1.1.
7
78
IconEdit32 1.0 – siehe Downloadhinweise im Anhang.
Sandini Bib 4.4 Menü Site
Time Offset: Diese Einstellung kann benutzt werden, um die richtige Zeit anzuzeigen, wenn beispielsweise der Server, auf dem Joomla! läuft, in den USA steht, die Website aber für Besucher in Deutschland gedacht ist. Country Locale: Jedes Land hat gewisse Vorgaben für die Schreibung von Zahlenund für Datumsangaben8. Hier können Sie ein Schema festlegen. In Deutschland ist es de_DE (Linux) bzw. ge (Windows). PHP bietet die Möglichkeit, verschiedene Funktionen abhängig von dem als Locale eingegebenen Kürzel auszuführen. Der Ansatz ist gut, wird aber nicht immer bei der Template-Erstellung berücksichtigt. Bei der korrekten Locale für Ihr Betriebssystem sollten auch die Tages- und Monatsnamen in der lokalen Sprache erscheinen.
Content Hier werden die Einstellungen für die Content-Anzeige der gesamten Site festgelegt (Abbildung 4.21).
Abbildung 4.21: Site – Global Configuration – Content Linked Titles: Hier können Sie einstellen, dass der Titel eines Inhaltselements als Link dargestellt wird. Der Link verweist dann auf das gleiche Ziel wie der Link Read More. Read More Link: Viele Inhalte bestehen aus einem Aufmacher (Intro Text) und dem eigentlichen Text. An dieser Stelle entscheiden Sie, ob unter dem Aufmacher ein Read More-(Mehr lesen-)Link erscheinen soll, der auf den kompletten Text verweist.
8
http://de.wikipedia.org/wiki/Locale.
79
Sandini Bib 4 Joomla! anpassen – Customizing
Item Rating/Voting: Dies bietet die Möglichkeit, Ihre Inhalte von den Besuchern bewerten zu lassen. Wenn Sie JA anklicken, wird über dem Inhalt ein Bewertungsmodul angezeigt (Abbildung 4.22).
Abbildung 4.22: Voting-Funktion Author Names: Soll der Name des Autors eines Inhalts angezeigt werden? Wenn Sie JA auswählen, erscheint über dem Artikel geschrieben von [Autor] (Abbildung 4.22). Created Date and Time: Sollen das Datum und die Zeit der Erstellung eines Inhalts angezeigt werden? Wenn Sie JA auswählen, wird über dem Artikel ein Text wie Samstag, 17. September 2005 geschrieben. Modified Date and Time: Sollen das Datum und die Zeit der Änderung eines Inhalts angezeigt werden? Wählen Sie JA, kommt unter dem Text Letztes Update (Samstag, 17. September 2005). HITS: Hier wird entschieden, ob die Anzahl der Zugriffe auf einen Inhalt angezeigt werden soll.
Abbildung 4.23: News-Liste mit Zugriffen PDF Icon: Soll ein PDF-Icon über dem Inhalt angezeigt werden (Abbildung 4.22)? Nach dem Klick auf dieses Icon erhalten Sie den Inhalt als PDF-Datei aufbereitet. Um das PDF ansehen zu können, benötigen Sie den kostenlosen Acrobat Reader.9 9
80
http://www.adobe.de/products/acrobat/.
Sandini Bib 4.4 Menü Site
Abbildung 4.24: PDF-Ausgabe eines Inhalts Print Icon: Hier können Sie bestimmen, ob ein Print-Icon über dem Inhalt erscheinen (Abbildung 4.22) soll. Nach dem Klick auf dieses Icon erhalten Sie den Inhalt aufbereitet zum Drucken. Email Icon: Soll ein E-Mail-Icon über dem Inhalt angezeigt werden (Abbildung 4.22)? Nach dem Klick auf dieses Icon erhalten Sie ein Formular, das es Ihnen ermöglicht, einen Hinweis auf diesen Inhalt an jemanden zu versenden (Abbildung 4.25).
Abbildung 4.25: E-Mail-Hinweis auf einen interessanten Artikel Icons: Hier entscheiden Sie, ob PDF, Print und E-Mail als Icon oder als Link dargestellt werden. Table of Contents on multi-page items: Es ist möglich, Inhalte über mehrere Seiten zu schreiben. Dazu wird ein Mambot in den Text eingebunden.10 Wenn Sie JA auswählen, wird automatisch ein Inhaltsverzeichnis für diese Inhalte erzeugt. 10 Mehr zum Thema Mambots in Kapitel 7.
81
Sandini Bib 4 Joomla! anpassen – Customizing
Back Button: Wollen Sie einen ZURÜCK-Button auf jeder Seite? Content Item Navigation: Wenn Sie hier JA auswählen, wird unter den Inhalten eine Leiste mit den Buttons NEXT und PREVIOUS eingeblendet, mit denen Sie durch die Inhalte dieser Kategorie blättern können.
Database Unter diesem Reiter sehen Sie die Zugangsdaten zu Ihrem MySQL-Server (Abbildung 4.26).
Abbildung 4.26: Site – Global Configuration – Database
Server Im SERVER-Bereich finden Sie weitere Informationen und Einstellungen, die Sie ändern können (Abbildung 4.27).
Abbildung 4.27: Site – Global Configuration – Server
82
Sandini Bib 4.4 Menü Site
Absolute Path: Der absolute Pfad auf Ihrem Server ist der Pfad, der den Weg vom root-Verzeichnis des Servers zu Ihrer Joomla!-Installation beinhaltet. In der lokalen Variante unter Windows ist das beispielsweise C:/xampplite/htdocs/Joomla!, auf dem Linux-Server meines Providers hingegen /is/htdocs/wp1007226_40G0RIWV3E/www. Live Site: Die Live Site ist der URL, unter dem die Seite im Internet erreichbar ist. Secret Word: Das verschlüsselte Administratorpasswort11 GZIP Page Compression: Hier können Sie eine Komprimierung der Seiten einschalten. Wenn Browser und Webserver diese Funktion unterstützen, werden die Seiten im ZIP-Format ausgeliefert und im Client-Browser wieder entpackt. Gerade bei langsamen Internetleitungen kann dadurch der Seitenaufbau erheblich schneller gehen. Login Session Lifetime: Wenn Sie sich als Benutzer anmelden, erzeugen Sie eine so genannte Session. Wenn Sie sich nicht abmelden, so wird diese Session nach der hier eingestellten Anzahl von Sekunden gelöscht. Error Reporting: Mit diesen Schaltern werden die PHP-eigenen Fehlerreportmechanismen aktiviert. Option
Beschreibung
System Default
Hier wird die Einstellung aus der Konfigurationsdatei php.ini übernommen.
None
Fehler werden nicht protokolliert.
Simple
Fehler und Warnungen werden protokolliert. Diese Einstellung entspricht dem Parameter error_reporting (E_ERROR|E_WARNING|E_PARSE).
Maximum
Fehler, Warnungen und Hinweise werden protokolliert. Diese Einstellung entspricht dem Parameter error_reporting (E_ALL).
Tabelle 4.2: Error Reporting Help Server: Hier können Sie einen anderen URL für den Joomla!-Helpserver eintragen. File Creation: Wenn Dateien auf dem Server durch Joomla! angelegt werden, werden im Server eingestellte Standardrechte auf diese Dateien angewendet. In den meisten Fällen ist diese Einstellung ausreichend. Sollten Sie Probleme beim Upload haben, können Sie die zweite Option auswählen und die Servereinstellungen überschreiben. Directory Creation: Die gerade beschriebene Einstellungsmöglichkeit für Dateien (siehe File Creation) gilt auch für Verzeichnisse.
11 Admin-Passwort vergessen? – siehe Anhang.
83
Sandini Bib 4 Joomla! anpassen – Customizing
Metadata Metadaten sind Daten über Daten, also beispielsweise eine Beschreibung Ihrer Website. Metadaten spielen bei Suchmaschinen eine Rolle. Wie groß diese Rolle ist, ist jedoch umstritten. Trotzdem stellen Metadaten einen guten Weg dar, in kurzen und klaren Worten Ihre Website zu beschreiben. Wenn Sie in den HTML-Quellcode einer Joomla!-Seite schauen, sehen Sie im oberen Bereich die folgenden Metatags. <meta name="description" content="Joomla - the dynamic portal engine and content management system" /> <meta name="keywords" content="Joomla, joomla" />
Sie können diese Beschreibungen hier mit Standardwerten belegen (Abbildung 4.28).
Abbildung 4.28: Site – Global Configuration – Metatags Global Site Meta Description: Diese Beschreibung des Seiteninhalts wird bei der Anzeige von Suchmaschinenergebnissen oft ausgegeben. Diesem Tag sollte man daher besondere Aufmerksamkeit schenken, denn anhand dieser Information entscheidet der Suchende, ob er Ihre Seite besucht oder nicht. Global Site Meta Keywords: Keywords sind die Schlüssel- oder Schlagwörter in einem Dokument. Sie sollten hier die zentralen Begriffe Ihrer Website auflisten. Manche Suchmaschinen suchen besonders in den Keywords. Die einzelnen Wörter werden durch Kommata getrennt, mehrere Wörter lassen sich zwischen zwei Kommata mit normalen Leerzeichen eintragen. Die Schlüsselwörter sollten auf max. 1.000 Zeichen begrenzt werden, mehr werden nicht ausgelesen. Beachten Sie, dass die Verwendung weniger Schlüsselbegriffe dem einzelnen Begriff zu einer höheren Wertigkeit in der Suchmaschine verhilft. Überlegen Sie, welche die meistgebrauchten Schlüsselwörter sind und nach welchen am ehesten gesucht wird.12 Show Title Meta Tag: Bei einzelnen Inhaltsseiten wird der Inhaltstitel als Metatag eingeblendet. Show Author Meta Tag: Bei einzelnen Inhaltsseiten wird der Name des Autors als Metatag angezeigt. 12 http://de.selfhtml.org/html/kopfdaten/meta.htm.
84
Sandini Bib 4.4 Menü Site
Mail Unter diesem Karteireiter können Sie über die Art und Weise des Joomla!-E-Mailversands entscheiden (Abbildung 4.29). Mailer: Hier können Sie wählen, ob Sie die eingebaute Mailfunktion von PHP, das Programm Sendmail oder ein anderes E-Mail-Konto, beispielsweise bei Yahoo oder GMX, nutzen wollen. Mail From: Diese E-Mail-Adresse wird als Absender bei automatisch von Joomla! generierten Mails eingetragen. From Name: Dieser Name wird als Absender bei automatisch von Joomla! generierten Mails angegeben. Sendmail Path: Falls Sie anstelle der PHP-Mailfunktion das auf vermutlich allen Linux-Servern verfügbare Programm sendmail benutzen wollen, müssen Sie hier den Pfad zum Programm eingeben. SMTP Auth: Wählen Sie, ob Sie einen externen Mailserver benutzen wollen. SMTP User: Ihr Benutzername bei diesem E-Mail-Provider SMTP Pass: Ihr Passwort bei diesem E-Mail-Provider SMTP Host: Der SMTP-Server dieses E-Mail-Providers
Abbildung 4.29: Site – Global Configuration – Mail
Cache Unter einem Cache versteht man ein Zwischenlager. Ihr Browser hat beispielsweise einen Bildercache, um einmal geladene Bilder aus dem Internet schneller bereitstellen zu können. Joomla! benutzt einen ähnlichen Mechanismus auf dem Server, um die durch PHP generierten Seiten zwischenzuspeichern. Bei sehr stark frequentierten Seiten kann diese Funktion die Antwortzeiten stark verringern.
85
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.30: Site – Global Configuration – Cache
Statistics Unter diesem Reiter können Sie die Statistikfunktionen für Ihre Website ein- und ausschalten.
Abbildung 4.31: Global Configuration – Statistik Statistics: Hier bestimmen Sie, ob Sie grundsätzlich Statistiken erzeugen wollen. Log Content Hits by Date: An dieser Stelle schalten Sie die täglich aktualisierte Inhalte-Statistik ein. Hier werden nicht nur komplette Seitenzugriffe, sondern die Zugriffe auf die einzelnen Elemente einer HTML-Seite gezählt. Momentan gibt es leider noch kein Auswertungsprogramm für diese Daten. Außerdem entstehen in kurzer Zeit sehr große Datenmengen. Log Search Strings: Dieser Schalter kann ganz interessante Ergebnisse liefern. Er sammelt Wörter, die Besucher Ihrer Seite in das Suchfeld eingeben. Die Suchmaschine Google veröffentlicht ihre Suchstrings unter dem Stichwort Zeitgeist.13
SEO (Search Engine Optimization) In diesem Bereich geht es um suchmaschinenfreundliche URLs. Normalerweise sieht ein URL eines Contentmanagementsystems etwa so aus: http://localhost/Joomla!/index.php?option=com_contact&Itemid=3 Solche URLs werden von Suchmaschinen normalerweise nicht gespeichert, weil die Suchmaschine davon ausgeht, dass sich der Inhalt dynamisch aufbaut und vermutlich bald ändert.
13 http://www.google.de/press/zeitgeist.html.
86
Sandini Bib 4.4 Menü Site
Abbildung 4.32: Global Configuration – SEO Search Engine Friendly URLs: Mit diesem Schalter können Sie aus einem dynamischen URL einen suchmaschinenfreundlichen URL machen. Wenn Sie den Schalter auf JA stellen, sollte der Link etwa so aussehen: http://localhost/component/option,com_contact/Itemid,47/ Das Prinzip beruht auf einer Funktion des Apache-Webservers. Mit seiner Rewrite Engine kann er URLs beliebig manipulieren. Außer dem Umstellen des Schalters müssen Sie auch noch die Datei htaccess.txt im Joomla!-Verzeichnis in .htaccess umbenennen. Unter Windows ist eine solche Umbenennung nur mit bestimmten Programmen wie beispielsweise dem Editor Ultraedit möglich.14 Unter Linux funktioniert die Umbenennung problemlos, die Datei wird aber anschließend meist nicht mehr in Ihrem FTP-Client angezeigt (abhängig von der Serverkonfiguration). Außerdem kann es sein, dass der Provider .htaccess-Dateien nicht zulässt, da sie ein Sicherheitsrisiko für den Webserver darstellen. Dynamic Page Titles: Diesen Schalter sollten Sie auf jeden Fall auf JA schalten. Der Titel Ihres Inhalts wird dann bei jedem Seitenaufruf an den Seitennamen in der Titelleiste des Browserfensters angehängt.
Abbildung 4.33: Dynamische Seitentitel
4.4.2
Site – Language Manager
Den Language Manager kennen Sie schon von unseren ersten Gehversuchen (siehe Kapitel 4.1.1). Außer dem Auswählen von Sprachen für die Website können Sie hier auch neue Sprachdateien installieren. Bei unserem ersten Versuch haben wir das über das Hochladen der Sprachdatei realisiert. Joomla! stellt jedoch auch die Möglichkeit bereit, Sprachdateien per FTP auf den Server zu laden und dann aus dem Verzeichnis zu installieren. Der Vorteil dabei ist, dass Sie mehrere Sprachdateien in einem Arbeitsgang installieren können. 14 http://www.ultraedit.com/.
87
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.34: Language Manager – Install new Language
4.4.3
Site – Media Manager
Den Media Manager können Sie sich wie einen Datei-Explorer oder ein FTP-Programm in Ihrem Betriebssystem vorstellen. Hier können Sie Dateien mit den Endungen gif, png, jpg, bmp, pdf, swf, doc, xls oder ppt hochladen und in verschiedenen Verzeichnissen verwalten. Dieser Manager ist äußerst praktisch, etwa wenn Sie zwar Administrationsrechte, aber keinen FTP-Zugang haben.
Abbildung 4.35: Site – Media Manager Directory: Hier wählen Sie das gewünschte Verzeichnis aus, dessen Inhalt darunter angezeigt werden soll. Medienleiste: In dieser Leiste werden Ihnen die Dateien (Medien) angezeigt. Unterhalb der Medien finden Sie, abhängig vom Medientyp, mehr Informationen zur jeweiligen Datei. Grundsätzlich wird ein Stift-Icon und ein Mülleimer-Icon angezeigt. Mit Klick auf den Stift erzeugen Sie einen kompletten HTML-Link, den Sie dann per Copy&Paste in Ihren Inhalt einfügen können. Klicken Sie beispielsweise auf den Stift des Joomla!-Logos, so erscheint im Feld Code darunter folgender Ausdruck: Das ist die HTML-Beschreibung, um ein Bild linksbündig mit einem Rand von 6 Pixeln darzustellen.
88
Sandini Bib 4.4 Menü Site
Upload: Hier klicken Sie auf DURCHSUCHEN … und wählen die gewünschte Datei auf Ihrer lokalen Festplatte aus. Anschließend klicken Sie in der Werkzeugleiste auf das Icon UPLOAD. Die Datei wird hochgeladen und angezeigt. AchtungAchtung Joomla! benutzt die Medien so, wie sie sind. Denken Sie daran, dass es keine gute Idee ist, 3 Mbyte große Bilder aus einer Digitalkamera in dieser Größe auf Ihre Webseite zu stellen. Bilder sollten im Internet maximal 50 Kbyte groß sein. Es gibt auch Menschen, die keinen HighSpeed-Zugang zum Internet haben!
Als Grundregel sollten Sie als Downloadzeit für 100 Kbyte (etwa die Größe einer Portalwebseite mit Bildern) folgende Zeiten im Hinterkopf haben (Tabelle 4.3). Verbindungsart
Download von 100 Kilobyte Daten
DSL
je nach DSL-Ausbau unter einer Sekunde!
ISDN
ca. 15 Sekunden
Modem (56 k)
ca. 25 Sekunden
Tabelle 4.3: Dauer eines Downloads von 100 Kilobyte Größe
HinweisHinweis Die maximale Upload-Größe pro Datei ist abhängig von der PHPKonfiguration Ihres Providers. In meinem Fall sind es 16 Mbyte. Größere Dateien müssten Sie per FTP hochladen oder den Wert in der Konfigurationsdatei php.ini entsprechend ändern.
Create Directory: In diesem Feld können Sie einen Namen für ein neues Unterverzeichnis eingeben. Nach einem Klick auf das Icon CREATE in der Werkzeugleiste wird dieses Unterverzeichnis angelegt und kann durch die Optionsliste im oberen Bereich (Directory) ausgewählt werden.
4.4.4
Site – Preview
Hier erhalten Sie eine Preview (Vorschau) auf Ihre Website (Abbildung 4.36). Sie haben drei Möglichkeiten: In New Window: Die Vorschau wird in einem neuen Browserfenster angezeigt.
89
Sandini Bib 4 Joomla! anpassen – Customizing
Inline: Die Vorschau wird im Workplace (Arbeitsbereich) eingeblendet, mit Scrollbalken an den Seiten, falls die Seite zu groß ist. Inline with Positions: Die Vorschau wird im Workplace (Arbeitsbereich) angezeigt, mit Markierungen für die einzelnen Modulpositionen.
Abbildung 4.36: Site – Global Configuration – Preview
4.4.5
Site – Statistics
Hier können Sie die Statistikdaten auswerten, die Sie in Kapitel 4.4.1 unter dem Reiter Statistics hoffentlich eingeschaltet haben (Abbildung 4.37).
Abbildung 4.37: Site – Statistics Browser, OS, Domain: In diesem Bereich erhalten Sie drei Reiter mit den Informationen darüber, welche Browser, welches Betriebssystem und aus welcher Domain Zugriffe auf Ihre Seite erfolgt sind. Die Daten beruhen auf den Daten, die ein Browser automatisch an den Webserver liefert. Wenn beispielsweise Google Ihre Seite mit einem Programm besucht, um Ihre Seiten in den Index aufzunehmen, werden keine Informationen übertragen. Page Impressions: Hier sehen Sie die einzelnen Seiten, das Erstellungsdatum und die Menge der Zugriffe. Search Text: Hier werden Ihnen die von Ihren Besuchern eingegebenen Suchbegriffe präsentiert.
90
Sandini Bib 4.4 Menü Site
4.4.6
Site – Template Manager
Auch den Template Manager kennen Sie bereits aus Kapitel 4.1.4, in dem wir ein anderes Template für die Website festgelegt haben (Abbildung 4.38).
Abbildung 4.38: Site – Template Manager
Site Templates Hier können Sie die Templates für Ihre Site festlegen. Default: Wählen Sie ein Template aus und klicken Sie auf das Icon DEFAULT, um es als Standardtemplate für Ihre Seite zu benutzen. Assign: Wählen Sie ein Template aus und klicken Sie auf ASSIGN, um es auf einzelne Seiten anzuwenden (Abbildung 4.39).
Abbildung 4.39: Site – Template Manager – Assign
91
Sandini Bib 4 Joomla! anpassen – Customizing
Die vorhandenen Menüelemente werden Ihnen angezeigt. Markieren Sie die entsprechenden Elemente, denen Sie das Template zuordnen wollen. Eine Mehrfachauswahl erreichen Sie, indem Sie bei gedrückter (Strg)-Taste die gewünschten Elemente nacheinander anklicken. New: Hier installieren Sie ein neues Template, so, wie die Sprachdatei aus Kapitel 4.1.1. Es gibt eine große Auswahl vorhandener Templates15, die Sie entweder per Upload oder über die Installation aus einem Verzeichnis installieren können. Edit HTML/Edit CSS: Hier können Sie direkt den HTML- oder CSS-Quellcode des ausgewählten Templates bearbeiten (Abbildung 4.40). Templates bestehen immer aus einer HTML- und einer CSS-Datei.
Abbildung 4.40: Site – Template Manager – HTML-Editor AchtungAchtung Wenn Sie hier Hand anlegen, sollten Sie wissen, was Sie tun. HTMLund CSS-Kenntnisse sind unerlässlich.
Trotzdem ist es auch für den Anfänger interessant zu sehen, wie ein Template aufgebaut ist.16 Delete: Hier können Sie ein installiertes Template komplett löschen. 15 Z.B. http://www.joomlaos.de/. 16 Mehr über das Erstellen eigener Templates finden Sie in Kapitel 6.
92
Sandini Bib 4.4 Menü Site
Install Die Installationsmaske für Site Templates. Hier landen Sie, wenn Sie in Site Templates auf NEW klicken oder direkt über das Menü SITE -> TEMPLATE MANAGER -> INSTALL gehen. Sie können hier neue Template-Dateipakete per Upload oder per Verzeichnisinstallation installieren.
Administrator Templates Was für Ihre Website gilt, gilt natürlich auch für die Administrationsoberfläche. Sie können hier analog zu den Site-Templates Ihrer Administrationsoberfläche andere Templates zuweisen und neue installieren. Standardmäßig bietet Joomla! zwei Administrator-Templates zur Auswahl.
Install Analog zu den Site-Templates können Sie hier Administrator-Templates installieren. Sie gelangen hierher, wenn Sie in Administrator Templates auf NEW klicken oder auch direkt über das Menü SITE -> TEMPLATES -> INSTALL. Neue Template-Dateipakete lassen sich per Upload oder per Verzeichnisinstallation installieren.
Module Positions Hier werden die Anzeigepositionen der Module eines Templates verwaltet. Sie können bis zu 56 verschiedene Positionen definieren. Auf diesen Positionen können Sie Modulinhalte anzeigen lassen (siehe auch Kapitel 4.8).
4.4.7
Site – Trash Manager
Beim Trash Manager befindet sich Ihr Mülleimer. Er sammelt unter zwei Karteireitern Inhalts- und Menüelemente, die Sie durch einen Klick auf das Icon TRASH in den Papierkorb geworfen haben. Durch Auswahl des Elements und Klick auf RESTORE können Sie es wieder aus dem Mülleimer holen, mit DELETE wird es endgültig gelöscht.
Abbildung 4.41: Site – Trash Manager
93
Sandini Bib 4 Joomla! anpassen – Customizing
4.4.8
Site – User Manager
Benutzer (User) spielen auf Ihrer Joomla!-Seite eine ganz besondere Rolle. Sie sind momentan der einzige Benutzer (Admin), den die Joomla!-Administration kennt. Wenn Sie eine Benutzerregistrierung auf Ihrer Website erlauben (siehe Kapitel 4.4.1), so werden es vermutlich schnell mehr werden. Im Benutzermanager (Abbildung 4.42) können Sie die Benutzer ändern, löschen, blocken und ihnen verschiedene Rechte zuweisen.
Abbildung 4.42: Site – User Manager Auf der Übersichtsliste sehen Sie den echten Namen des Benutzers, ob der Benutzer gerade eingeloggt ist, symbolisiert mit einem grünen Haken (Logged in), ob der Benutzer aktiviert ist (Enabled), den Benutzernamen (UserID), die Gruppenzuordnung (Group), seine E-Mail-Adresse und das Datum seines letzten Besuchs auf Ihrer Website. Diese Angabe bezieht sich auf das letzte Login auf Ihrer Website, nicht auf das Login in der Joomla!-Administration.
New Bei NEW können Sie einen neuen User anlegen. Durch Klick auf NEW erhalten Sie ein entsprechendes Formular (Abbildung 4.43). Name: Der echte Name des Benutzers Username: Der Benutzername E-Mail: Die E-Mail-Adresse. Abhängig von den Einstellungen im Menü SITE -> GLOBAL CONFIGURATION kann eine E-Mail-Adresse einmal oder mehrmals vorkommen (siehe Kapitel 4.4.1). Password: Das Passwort muss zweimal zur Überprüfung eingegeben werden.
94
Sandini Bib 4.4 Menü Site
Abbildung 4.43: Site – User Manager – New Group: Die Gruppenzugehörigkeit teilt sich in zwei große Bereiche. Benutzer, die sich nur auf Ihrer Website (Public Frontend) anmelden dürfen (Tabelle 4.4), und Benutzer, die sich in der Joomla!-Administration (Public Administration) anmelden dürfen (Tabelle 4.5). Alle Inhalte in Joomla! können diesen Gruppen zugeordnet werden. Gruppe
Rechte
Registered
Ein registrierter Benutzer darf sich einloggen und Teile der Seite sehen, die ein Besucher nicht sehen darf.
Author
Darf alles, was ein registrierter Benutzer darf. Ein Autor darf Nachrichten schreiben und seine eigenen Nachrichten ändern. Dazu befindet sich in seinem Benutzermenü normalerweise ein Link.
Editor
Darf alles, was ein Autor darf. Ein Editor darf Nachrichten schreiben und jede Nachricht, die im Frontend erscheint, ändern.
Publisher
Darf alles, was ein Editor darf. Ein Publisher darf Nachrichten schreiben und jede Nachricht, die im Frontend erscheint, ändern. Außerdem darf er darüber entscheiden, ob Nachrichten veröffentlicht werden oder nicht.
Tabelle 4.4: Frontend-Benutzergruppen
95
Sandini Bib 4 Joomla! anpassen – Customizing
Gruppe
Rechte
Manager
Ein Manager darf Inhalte erzeugen und verschiedene Informationen über das System sehen. Er darf nicht:
Benutzer verwalten Module und Komponenten installieren einen Benutzer zum Superadministrator machen oder Superadministratoren ändern
den Menüpunkt SITE -> GLOBAL CONFIGURATION bearbeiten eine Rundmail an alle Benutzer versenden Templates und Sprachdateien ändern und installieren Administrator
Ein Administrator darf nicht:
einen Benutzer zum Superadministrator machen oder Superadministratoren ändern
den Menüpunkt SITE -> GLOBAL CONFIGURATION bearbeiten eine Rundmail an alle Benutzer versenden Templates und Sprachdateien ändern und installieren Super Administrator Ein Superadministrator darf alle Funktionen in der Joomla!-Administration ausführen. Nur ein Superadministrator kann einen anderen Superadministrator anlegen.
Tabelle 4.5: Backend-Benutzergruppen Es besteht in Joomla! die Möglichkeit, mehrere WYSIWYG-Editoren zu installieren. Sie können im Bereich PARAMETER dem Benutzer einen dieser Editoren zuordnen.
Block User Hier können Sie einen Benutzer blocken und ihm damit verbieten, sich einzuloggen.
Edit Über EDIT ändern Sie einen Benutzer.
Delete DELETE dient zum Löschen eines Benutzers.
Force Logout Mit FORCE LOGOUT können Sie ein sofortiges Abmelden des Benutzers erzwingen.
Special Users Ein Special User ist jeder Benutzer, der mehr Rechte als ein Autor hat. Momentan ist es nicht möglich, eigene Benutzergruppen in Joomla! anzulegen, und so hilft die Gruppe Special Users dabei, Inhaltselemente auf diese Gruppe zu beschränken. Das kann sehr hilfreich sein, wenn man beispielsweise Links zu internen Hilfetexten nur für die Special User einblenden will.
96
Sandini Bib 4.5 Menü Menu
4.5
Menü Menu
Hier werden die einzelnen Menüs verwaltet. Joomla! verfügt in den Beispieldaten über vier verschiedene Menüs (mainmenu, topmenu, othermenu, usermenu). Das topmenu ist ein horizontales Menü, die anderen Menüs sind vertikal. Jedes Menü ist mit einem so genannten Modul gekoppelt, das im Modulmanager verwaltet wird (Kapitel 4.8). Im Arbeitsbereich Menu Manager und in der Menüleiste werden Ihnen die vier Menüs angezeigt (Abbildung 4.44). Sie können die vorhandenen Menüs über die Menüleiste MENU -> MAINMENU, OTHERMENU, ... aufrufen oder im Menu Manager auf das dem entsprechenden Menü zugeordnete Icon MENU ITEM klicken.
Abbildung 4.44: Site – Menu – Menu Manager Die folgenden Bearbeitungsschritte sind für alle Menüs gleich.
4.5.1
Vorhandenes Menü anpassen
Rufen Sie SITE -> MENU MANAGER -> MAINMENU auf (Abbildung 4.45). Hier haben Sie zu Beginn des Kapitels schon SEARCH in SUCHE geändert (Kapitel 4.1.3). Der erste veröffentlichte Menüeintrag, der hier in der Liste steht, wird als Startseite Ihrer Website angezeigt. Momentan ist das die Frontpage. Sie können aber auch jedes beliebige andere Element zur Startseite machen.
New Ein neues Menü erzeugen wir im nächsten Abschnitt.
97
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.45: Site – Menu Manager – Mainmenu
Edit Hier können Sie ein vorhandenes Menü ändern, beispielsweise die LINKS. Nach einem Klick auf den Namen LINKS sehen Sie das Änderungsformular für Menüelemente (Abbildung 4.46). Im linken Bereich geht es um Details, im rechten können Parameter festgelegt werden. Die Anzahl und die Art der Parameter sind abhängig vom Typ des Menüeintrags.
Abbildung 4.46: Site → Menu Manager → Mainmenu → Links → Edit
98
Sandini Bib 4.5 Menü Menu
Details-Name: Das ist der Name des Menüs, der auf Ihrer Website erscheint. Details-Component: Hierüber erfahren Sie, welche Art von Inhalt sich hinter dem Menüeintrag verbirgt. Diese Einstellung wird beim Erstellen des Menüeintrags angegeben. In unserem Fall wird die Komponente Web Links angesprochen. Details-URL: Das ist der Aufruf der Komponente im URL String. Angezeigt wird der Teil hinter dem Domainnamen. In unserem Fall index.php?option=com_weblinks&Itemid=23. Details-Parent Item: Das Elternelement (Parent Item) ist das diesem Menü übergeordnete Element. Top heißt auf der obersten Ebene, alle anderen Einträge stellen vorhandene Menüeinträge dar. Wenn Sie die LINKS beispielsweise unter NEWS einordnen und abspeichern, ändert sich die Anzeige im Menu Manager (Abbildung 4.47) und die Anzeige auf Ihrer Website. Auf der Website ist der Menüeintrag LINKS jetzt in die NEWS gerutscht. Sie müssen also erst auf NEWS klicken, um den LINKS-Eintrag wieder zu sehen. Auf diese Art lässt sich Ihre Website sehr einfach und effektiv wie ein Dateibaum strukturieren.
Abbildung 4.47: Baumstrukturen im Menu Manager
Abbildung 4.48: Baumstrukturen auf der Website Details-Ordering: Durch Klick auf die nach oben und unten zeigenden Dreiecke können Sie die Sortierung innerhalb des Menüs verändern (Abbildung 4.47). Im Feld ORDERING können Sie dies über eine Liste erledigen. Das hat den Vorteil, dass Sie nicht mehrmals auf die Dreiecke klicken müssen. Details-Access Level: Sie können entscheiden, ob das Menü allen Besuchern (Public), nur registrierten Benutzern (Registered) oder einem besonderen Benutzerkreis (Special) zur Verfügung stehen soll.
99
Sandini Bib 4 Joomla! anpassen – Customizing
Details-Published: Hier können Sie das Menü veröffentlichen oder sperren. Parameter-Menu Image: Hier können Sie ein Bild angeben, das im Wurzelverzeichnis des Media Managers (/images/stories/) liegen muss. Dieses Bild wird abhängig vom Template links neben dem Menüeintrag angezeigt. Parameter-Page Class Suffix: Hier können Sie eine Klasse aus der CSS-Datei Ihres Templates angeben, mit der dieser Menüeintrag formatiert werden soll. Parameter-Back Button: Hier können Sie die globalen Einstellungen für den ZURÜCKButton übernehmen oder ihn explizit anzeigen oder ausblenden. Parameter-Page Title: Hier können Sie den Seitentitel ein- oder ausblenden. Parameter-Page Title: Hier können Sie einen Seitentitel festlegen (Abbildung 4.49). Wenn Sie hier nichts eingeben, wird der Name des Links übernommen. Parameter-Table Headings: Hier können Sie die Überschrift über der Liste von Links ein- oder ausblenden. Parameter-Hits: In der Linkliste werden die Zugriffe auf die Links angezeigt. Sie können diese in den globalen Einstellungen oder durch eine entsprechende Auswahl hier ändern. Parameter-Link Descriptions: Hier können Sie die Beschreibung, die unter einem Link in der Linkliste steht, ein- oder ausblenden. Parameter-Category List – Section/Category: Wenn Sie auf den Link LINKS klicken, sehen Sie die Standardtexte oder Ihre in den Parametern festgelegten Texte. Darunter befindet sich eine Liste mit verfügbaren Kategorien und Sektionen. Diese Liste können Sie mit den beiden Schaltern ein- bzw. ausblenden (Abbildung 4.49).
Abbildung 4.49: Individueller Weblink-Bereich I Parameter-Description: Hier können Sie die allgemeine Beschreibung der LINK-Komponente ein- oder ausblenden. Parameter-Description Text: Hier können Sie den Standardtext der LINK-Komponente mit einem individuellen Text überschreiben. Parameter-Image: Hier können Sie ein Bild angeben, das im Wurzelverzeichnis des Media Managers (/images/stories/) liegen muss. Dieses Bild wird abhängig von Para-
100
Sandini Bib 4.5 Menü Menu
meter-Image Align links oder rechts vom Beschreibungstext angezeigt. In Abbildung 4.50 wurde die Datei joomla_rss.png ausgewählt). Parameter-Image Align: Einstellung für die Ausrichtung des Bildes (Abbildung 4.50) Parameter-Icon: Icon, das links neben der Liste von Links angezeigt wird (Abbildung 4.50)
Abbildung 4.50: Individueller Weblink-Bereich II
Publish Wenn Sie ein oder mehrere Menüelemente auswählen und auf das Icon PUBLISH klicken, werden diese veröffentlicht.
Unpublish Wenn Sie auf das Menü UNPUBLISH klicken, werden die markierten Einträge nicht mehr auf der Website angezeigt.
Move
Abbildung 4.51: Site – Menu Manager – Mainmenu – Move
101
Sandini Bib 4 Joomla! anpassen – Customizing
Verschieben von Menüeinträgen. Wählen Sie ein oder mehrere Menüelemente aus und klicken Sie auf das Icon MOVE. Es öffnet sich nun ein Formular mit den verfügbaren Menüs (Abbildung 4.51). Wählen Sie das Menü aus, in das Sie die markierten Menüeinträge verschieben möchten.
Copy Zum Kopieren von Menüeinträgen wählen Sie ein oder mehrere Menüelemente aus und klicken auf COPY. Es öffnet sich ein Formular mit den zur Verfügung stehenden Menüs. Bestimmen Sie das Menü, in das Sie die markierten Menüeinträge kopieren wollen.
Trash Um Menüeinträge in den Papierkorb zu werfen, wählen Sie ein oder mehrere Menüelemente aus und klicken auf das Icon TRASH. Die markierten Menüeinträge landen im Papierkorb.
4.5.2
Neues Menü erzeugen
Lassen Sie uns ein Menü mit dem Namen Joomla! Buch und einem Link zu http://www.joomla.org/ erzeugen. Rufen Sie MENU -> MENU MANAGER -> NEW auf und geben Sie in das Feld Menu Name den internen Namen des Menüs ein. Achten Sie auf einen aussagekräftigen Namen ohne Leerzeichen. In das Feld Module Title geben Sie den Namen ein, der später auf der Website erscheinen wird (Abbildung 4.52).
Abbildung 4.52: Site – Menu Manager – New Menu Name: Der Name des Menüs. Dieser Name taucht nicht auf der Website auf, er dient nur dazu, zwischen Modul und Menü eine Verbindung herzustellen. Ich wähle Joomla_Buch. Module Title: Der Name des Moduls, so, wie er auf der Webseite erscheint. Ich wähle Joomla! Buch.
102
Sandini Bib 4.5 Menü Menu
Abbildung 4.53: Neues Menü im Menu Manager Nach einem Klick auf SAVE erzeugt Joomla! ein neues Modul mit dem angegebenen Namen (Abbildung 4.53). Klicken Sie nun auf das Icon MENU ITEMS oder rufen Sie in der Menüleiste SITE -> MENU MANAGER -> JOOMLA_BUCH auf. Sie erhalten die Übersichtsmaske über die Inhalte des Menüs Joomla_Buch. Da noch keine Inhalte vorhanden sind, klicken Sie auf das Icon NEW. Auf der dann erscheinenden Auswahlmaske können Sie aus vier verschiedenen Bereichen Inhalte wählen (Abbildung 4.54).
Abbildung 4.54: Site – Menu Manager – New Menu Item
Content Inhalte teilen sich in Blogs, Links und Tables. Ein Blog im Sinne von Joomla! ist eine Liste von Einträgen mit einem Aufmacher und einem read more-Link. Ein Link verweist direkt auf einen bestimmten Inhalt. Eine Tabelle ist eine Liste von Links. Eine Section ist ein Gliederungselement. Innerhalb einer Section kann es Kategorien geben. Die Bedeutung der Auswahlmöglichkeiten finden Sie in Tabelle 4.6.
103
Sandini Bib 4 Joomla! anpassen – Customizing
Auswahl
Bedeutung
Blog – Content Category
Blogseite, die sich auf eine Kategorie bezieht (z.B. latest News)
Blog – Content Category Archive
Blogseite, die sich auf archivierte Kategorien bezieht (noch keine Einträge vorhanden)
Blog – Content Section
Blogseite, die sich auf eine Section bezieht (z.B. News)
Blog – Content Section Archive
Blogseite, die sich auf archivierte Sections bezieht (noch keine Einträge vorhanden)
Link – Content Item
Link zu einem Inhaltselement (z.B. Example News Item 2)
Link – Static Content
Direkter Link zu einer statischen Inhaltsseite; in den Beispieldaten gibt es eine statische Inhaltsseite (Joomla! License Guidelines)
Table – Content Category
Link auf eine Tabelle, die den Inhalt einer Kategorie darstellt
Table – Content Section
Link auf eine Tabelle, die den Inhalt einer Section darstellt
Tabelle 4.6: New Menu Item – Content-Optionen
Miscellaneous Auswahl
Bedeutung
Separator / Placeholder
Einfügung eines Trennstrichs in das Menü
Wrapper
Hier kann eine externe Seite innerhalb der Website angezeigt werden, beispielsweise Teile Ihrer alten Website oder ein bereits vorhandenes Gästebuch
Tabelle 4.7: New Menu Item – Miscellaneous
Components Auswahl
Bedeutung
Link – Component Item
Ein Link auf eine Komponente (z.B. Login)
Link – Contact Item
Ein Link auf einen Eintrag in der Kontaktliste
Link – Newsfeed
Ein Link auf eine Nachricht aus der Section News
Table – Contact Category
Ein Link auf eine Tabelle, die Einträge einer Kontaktkategorie enthält
Table – Newsfeed Category
Ein Link auf eine Tabelle, die Einträge einer NewsfeedKategorie enthält
Table – Weblink Category
Ein Link auf eine Tabelle, die Einträge einer WeblinkKategorie enthält
Tabelle 4.8: New Menu Item – Components
104
Sandini Bib 4.5 Menü Menu
Links Auswahl
Bedeutung
Link – Component Item
Link auf eine Komponente (z.B. Login)
Link – Contact Item
Link auf einen Eintrag in der Kontaktliste
Link – Content Item
Link zu einem Inhaltselement (z.B. Example News Item 2)
Link – Newsfeed
Link auf eine Nachricht aus der Section News
Link – Static Content
Direkter Link zu einer statischen Inhaltsseite; in den Beispieldaten gibt es eine statische Inhaltsseite (Joomla! License Guidelines)
Link – Url
Link auf einen URL (z.B. http://www.joomla.org)
Tabelle 4.9: New Menu Item – Links Um einen Link auf einen URL einzufügen, markieren Sie das letzte Auswahlfeld LINK – URL und klicken in der Werkzeugleiste auf NEXT. In dem Formular, das sich öffnet, können Sie die Details und die Parameter des Links festlegen (Abbildung 4.55).
Abbildung 4.55: Site – Menu Manager – Joomla! Buch – New Menu Item – Link URL Name: Name des Links, der im Menü erscheint (Joomla!) Link: Der Link zur Seite (http://www.joomla.org) On Click, Open in: Was soll passieren, wenn jemand auf den Link klickt? Soll das Ziel im gleichen Browserfenster, einem neuen Browserfenster mit Navigation oder einem neuen Browserfenster ohne Navigation ausgeführt werden? Parent Item: Soll der Menüeintrag ein Untermenü eines übergeordneten Eintrags sein? Access Level: Soll der Menüeintrag für die Gruppen Public (Besucher), Registered oder Special sichtbar sein?
105
Sandini Bib 4 Joomla! anpassen – Customizing
Published: Soll das Menü veröffentlicht werden? Wenn Sie auf APPLY klicken, werden Ihre Daten gespeichert. Mit einem Klick auf SAVE werden die Daten gespeichert und der Dialog wird verlassen. Jetzt haben Sie das Menü erstellt und mit einem Link versehen. Bevor es nun angezeigt wird, müssen Sie im Modules Manager das Modul noch veröffentlichen. Klicken Sie auf MODULES -> SITE MODULES (Abbildung 4.56) und dort auf das Icon PUBLISHED. Mit Hilfe der blauen Dreiecke können Sie die Position des Menüs verändern.
Abbildung 4.56: Modules – Site Modules Wenn Sie nun Ihre Website aufrufen, sollte über dem Hauptmenü Ihr neues Menü Joomla! Buch stehen (Abbildung 4.57). Alle Buchstaben werden automatisch groß geschrieben. Diese Verhaltensweise ist in der CSS-Datei des Templates festgelegt und kann dort auch verändert werden.
Abbildung 4.57: Neues Menü Joomla! Buch Bei Klick auf den Link Joomla! sollte sich ein Browserfenster mit Navigation öffnen und die Website des Projektes anzeigen.
106
Sandini Bib 4.6 Menü Content
4.6
Menü Content
Das Menü CONTENT beinhaltet alle Bereiche von Inhalten. Inhalte sind in Joomla! in der folgenden Struktur organisiert. Inhalte -+- Section1 -+- Kategorie1 -+- Inhalt1 | | +- Inhalt2 | | +- Inhalt3 | +- Kategorie2 +- Inhalt1 | +- Inhalt2 +- Section1 -+- Kategorie1 -+- Inhalt1 | | +- Inhalt2 | | +- Inhalt3 | +- Kategorie2 +- Inhalt1 | +- Inhalt2 +- Static Content -+- Inhalt1 +- Inhalt2 +- Inhalt3
Diese Struktur lässt sich mit Ihrem Dateibaum auf der Festplatte vergleichen. Sie können beliebig viele Sections, Categories und Static Contents erzeugen. Wenn Sie einzelne Elemente archivieren, so wird die Struktur komplett in das Archiv übernommen. Diese feste Struktur hat Vorteile und Nachteile. Der größte Vorteil ist meiner Meinung, dass eine Struktur vorgegeben ist und somit der Administrator eine gewisse Hierarchie einhalten muss. Das erleichtert am Anfang die Übersicht und dient der Überschaubarkeit der Website. Der Nachteil ist, dass die zweistufige Struktur nicht änderbar ist und sich manche Administratoren dadurch in der Individualisierung ihrer Website beschränkt fühlen. Das Menü Content stellt verschiedene Arbeitsbereiche zur Verfügung, um die Inhalte und die Strukturen zu bearbeiten (Abbildung 4.58).
Abbildung 4.58: Menü Content
107
Sandini Bib 4 Joomla! anpassen – Customizing
4.6.1
Content By Section
Hier werden Ihnen die Inhalte sortiert nach Section angezeigt. Die nächste Gliederungsstufe ist Kategorie (Category), dann folgen die eigentlichen Inhaltseinträge (Items).
Section Unterhalb des Menüs Content By Section werden alle vorhandenen Sections angezeigt. Sie können beliebig viele Sections hinzufügen.
Kategorie Unterhalb jeder Section wiederum finden Sie eine Auflistung der vorhandenen Kategorien sowie eine Möglichkeit, diese Kategorien zu bearbeiten. Add/Edit Section Category Hier können Sie sich eine neue Kategorie (Category) erstellen. Lassen Sie uns als Beispiel die Kategorie Joomla! Buch anlegen. Klicken Sie auf NEW.
Abbildung 4.59: Content – neue Kategorie »Joomla! Buch« anlegen Category Title: Titel der Kategorie (erscheint in der Titelzeile des Browsers) Category Name: Der Name der Kategorie, der auf der Website angezeigt wird Section: Die Section, in der die Kategorie angelegt werden soll, in unserem Falle The News Image: Hier können Sie ein Bild auswählen, das beim Aufruf der Kategorie auf der Website dargestellt wird. Das Bild muss sich im Media Manager-Wurzelverzeichnis befinden (/images/stories/). Ich habe articles.jpg ausgewählt.
108
Sandini Bib 4.6 Menü Content
Image Position: Hier können Sie die Ausrichtung des Bildes festlegen. Ordering: Hier wird die Sortierung der Kategorie bestimmt. In diesem Fall handelt es sich um ein neues Element, das standardmäßig am Ende eingeordnet wird. Nach dem ersten Speichern kann die Reihenfolge geändert werden. Access Level: Wer hat Zugriff auf dieses Element? Published: Soll die Kategorie sofort veröffentlicht werden? Description: Das ist die Beschreibung der Kategorie. Falls Sie in SITE – GLOBAL CONFIGURATION – SITE den WYSIWYG-Editor ausgewählt haben (Kapitel 4.4.1), wird Ihnen hier eine kleine Textverarbeitung angeboten. Parameter für diese Kategorie können Sie erst nach dem ersten Speichern festlegen. Klicken Sie auf SAVE. Sie landen im Category Manager und sehen die neue Kategorie Joomla! Buch (Abbildung 4.60).
Abbildung 4.60: Content – neue Kategorie im Category Manager Content Item: Nachdem wir nun eine neue Kategorie angelegt haben, wollen wir einen Inhalt in diese Kategorie einfügen. Klicken Sie auf CONTENT – CONTENT BY SECTION – NEWS – NEWS ITEMS. Sie landen im Content Items Manager und sehen die vier Standardeinträge aus den Joomla!-Beispieldaten. Klicken Sie auf NEW, um in den Arbeitsbereich Content Item: New zu gelangen (Abbildung 4.61). Sie sehen ein Formular, das wiederum aus mehreren Bereichen besteht. Im linken Teil steht der eigentliche Inhalt, im rechten Teil befinden sich mehrere Karteireiter mit verschiedenen Parametern.
109
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.61: Content – Content Item-Arbeitsbereich Um eine Nachricht zu schreiben, reicht es zunächst aus, die linke Seite auszufüllen. Title: Titel der Nachricht Title Alias: Alias des Titels Section: Hier können Sie eine Section auswählen, in der die Nachricht angezeigt werden soll. Wählen Sie News. Category: Abhängig von der ausgewählten Section werden die vorhandenen Kategorien angezeigt. Wählen Sie Joomla! Buch. Intro Text/Main Text: Hier geben Sie Ihre eigentliche Nachricht ein. Der Intro Text muss ausgefüllt werden, der Main Text ist optional. Mit einem Klick auf das PREVIEW-Icon können Sie sich in einem eigenen Browserfenster eine Vorschau Ihres Textes anzeigen lassen (Abbildung 4.62).
110
Sandini Bib 4.6 Menü Content
Abbildung 4.62: Content – Content Preview Um die neue Nachricht gleich in das Menü Suche zu integrieren, klicken Sie nun auf den Karteireiter Link to Menu (Abbildung 4.63).
Abbildung 4.63: Content – Content Item-Arbeitsbereich – Link to Menu Sie sehen eine Liste der vorhandenen Menüs. Wählen Sie das Menü Suche aus, geben Sie in das Feld MENU ITEM NAME 4. Kapitel ein und klicken Sie dann auf den Button LINK TO MENU. Die Seite baut sich neu auf und im unteren Bereich Existing Menu Links sehen Sie, dass Ihre Nachricht in das Menü aufgenommen wurde. Klicken Sie auf das Icon SAVE. Wenn Sie jetzt auf Ihre Website schauen, stellen Sie fest, dass das Menü Suche einen Eintrag mehr besitzt. Nach einem Klick auf den Eintrag sehen Sie Ihre Nachricht (Abbildung 4.64).
111
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.64: Die erstellte Nachricht auf der Website
4.6.2
All Content Items
Das Menü All Content Items führt Sie in den Content Manager (Abbildung 4.65). Der Content Manager ist die zentrale Schaltstelle für jede Art von Inhalt. In drei Optionslisten im Informationsbereich können Sie die angezeigten Inhalte nach Section (Bereich), Kategorie und Autor filtern. Außerdem finden Sie dort ein Suchfeld, mit dem Sie in den Titeln suchen können. Im unteren Bereich ist die Navigationsleiste angeordnet, mit deren Hilfe Sie durch die Inhalte blättern können. In einer Optionsliste können Sie auswählen, wie viele Einträge Sie in der Liste sehen wollen. Standardmäßig gilt hier die Einstellung, die Sie unter SITE – GLOBAL CONFIGURATION – SITE eingestellt haben. Die Liste ist sortiert nach Section, Kategorie, Autor und Titel.
Abbildung 4.65: Content – Content Items Manager
112
Sandini Bib 4.6 Menü Content
Beschreibung der Tabelle Vor dem Titel ist eine Checkbox, mit der Sie die zu bearbeitenden Elemente auswählen können. Wenn Sie die Checkbox in der Kopfzeile anwählen, werden alle Elemente der Liste ausgewählt. Der Titel führt als Link zum Editiermodus des Content Items (Abbildung 4.65). Published zeigt an, ob der Eintrag veröffentlicht ist (grüner Haken) oder nicht (rotes Kreuz). Außer diesen beiden Symbolen besteht auch noch die Möglichkeit, dass die Veröffentlichungsperiode abgelaufen ist und das Element im Archiv liegt. Frontpage zeigt an, ob der Eintrag auf der Frontpage (siehe Kapitel 4.6.6) veröffentlicht ist (grüner Haken) oder nicht (rotes Kreuz). Unter Reorder können Sie die Einträge durch Klick auf die blauen Pfeile innerhalb einer Section verschieben. Bei Order können Sie diese Sortierung durch die Eingabe einer Zahl vornehmen. Unter Access sehen Sie grüne Public-Links. Durch Klick auf einen dieser Links ändern Sie die Zugriffsrechte zwischen den drei Gruppen Public, Registered und Special. Daneben gibt es auch noch Symbole für Pending (Wartezustand) und Expired (abgelaufen). ID ist die Datensatznummer innerhalb der Tabelle von MySQL. Diese ID taucht in dem URL zu diesem Eintrag wieder auf. Section ist der Bereich, dem dieser Eintrag zugeordnet ist. Durch einen Klick auf den Link gelangen Sie in den Section Manager. Category ist die Kategorie, in der dieser Eintrag eingeordnet ist. Ein Klick auf den Link führt Sie in den Category Manager. Author ist der Autor des Eintrags. Durch einen Klick auf den Link gelangen Sie in den User Manager. Date schließlich ist das Erstellungsdatum des Eintrags.
4.6.3
Static Content Manager
Der Static Content Manager sieht aus wie der Content Manager, hat aber keine Felder für Sections und Kategorien. Unter Static Content versteht man so etwas Ähnliches wie eine statische HTML-Seite. Innerhalb von Joomla! werden normalerweise Inhaltselemente und Nachrichten innerhalb von Kategorien und Sections erstellt und eingeordnet. Die Inhaltselemente haben einen dynamischen Charakter, da sie meist in einer chronologischen Abfolge angezeigt werden. Static Content ist statisch und bezieht sich auf Inhalte, die sich selten ändern und die in keinem chronologischen Zusammenhang zu anderen Inhaltselementen stehen.
113
Sandini Bib 4 Joomla! anpassen – Customizing
Das für jeden deutschen Internetauftritt vorgeschriebene Impressum wäre ein gutes Beispiel für ein statisches Element. Auch in den Beispieldaten finden Sie einen Beispieltext für Static Content, nämlich die Lizenzbedingungen von Joomla! (Joomla! Licence Guidelines).
Abbildung 4.66: Content – Static Content Manager Lassen Sie uns am Beispiel Ihres Impressums die Erstellung von Static Content Manager durchgehen. Klicken Sie dazu auf NEW. Sie sehen eine Eingabemaske wie in Abbildung 4.66, diesmal allerdings nur mit einem Textfeld. Geben Sie als Title und Title Alias Impressum ein und als Text Ihre Adresse und klicken Sie auf das Icon APPLY.
Publishing Hier werden Parameter, die mit der Veröffentlichung zu tun haben, festgelegt. State: Aktueller Status (momentan veröffentlicht) Published: Checkbox, um den Status zu ändern Access Level: Zugriff für die drei Benutzergruppen Author Alias: Hier können Sie ein Pseudonym für den Autor eingeben. Change Creator: Hier ändern Sie den Verfasser der Nachricht. Override Created Date: An dieser Stelle können Sie das Erstellungsdatum verändern. Durch einen Klick auf die Schaltfläche mit den drei Punkten erhalten Sie einen grafischen Kalender als Eingabehilfe (Abbildung 4.67/4.68). Start Publishing dient dazu, den Start der Veröffentlichung festzulegen. Standardmäßig werden Inhalte sofort veröffentlicht. Durch einen Klick auf die drei Punkte erscheint ein grafischer Kalender als Eingabehilfe (Abbildung 4.67/4.68). Finish Publishing: Hier können Sie das Verfallsdatum des Inhalts bestimmen. Standardmäßig verfallen Inhalte nie (never). Ein Klick auf die Schaltfläche mit den drei Punkten zeigt Ihnen wieder den grafischen Kalender (Abbildung 4.67/4.68).
114
Sandini Bib 4.6 Menü Content
Abbildung 4.67: Content – Static Content Item – Publishing Content ID: Die Datensatznummer Hits: Zugriffe auf diesen Inhalt Version: Das Dokument hat die Versionsnummer 1. Bei jedem Speichervorgang wird die Versionsnummer um eins hochgezählt.
Abbildung 4.68: Kalenderelement
115
Sandini Bib 4 Joomla! anpassen – Customizing
Images Sie können jedem Inhalt ein beliebiges Bild aus dem Media Manager zuordnen. Sollte es noch nicht im Media Manager vorhanden sein, können Sie es durch Klick auf das Icon UPLOAD während der Bearbeitung hochladen (Abbildung 4.69). Bei dieser Art des Datei-Uploads können Sie allerdings kein Zielunterverzeichnis angeben.
Abbildung 4.70: Content – Static Content Item – Images Wählen Sie ein Unterverzeichnis aus und klicken Sie auf ein Bild (Abbildung 4.70). Sie erhalten im rechten Bereich eine Vorschau des Bildes und müssen nun noch auf den Button ADD klicken. Im Fenster darunter sehen Sie jetzt den Dateinamen (Abbildung 4.71). Wenn Sie auf ihn klicken, erscheint die Bildervorschau. Sie können beliebig viele Bilddateien zuordnen. Jetzt müssen Sie noch den Ort im Text angeben, an dem das Bild angezeigt werden soll. Dazu benötigen Sie einen Mambot17 mit dem Namen {mosimage}. Positionieren Sie den Cursor an die Stelle, an der das Bild erscheinen soll. Tippen Sie entwe17 Mehr über Mambots in Kapitel 4.9.
116
Sandini Bib 4.6 Menü Content
der per Hand {mosimage} ein oder klicken Sie auf das Icon INSERT IMAGES unter dem Textfenster. Sie müssen für jedes gewünschte Bild einen {mosimage}-Verweis einfügen. Die Bilder werden in der Reihenfolge angezeigt, in der Sie sie ausgewählt haben.
Abbildung 4.71: Content – Static Content Item – Images – Zuordnung des Bildes im Text Neben dem INSERT IMAGE-Icon sehen Sie noch ein INSERT PAGE BREAK-Icon. Das ist ein Mambot, der einen Seitenumbruch repräsentiert – {mospagebreak}. Falls Sie Texte haben, die Sie über mehrere Seiten verteilen wollen, müssen Sie diesen Mambot einfügen.
Abbildung 4.72: Von Joomla! erzeugte Navigationsleiste für mehrseitige Inhalte Bei der Darstellung auf der Website erzeugt Joomla! automatisch eine Buttonleiste zur Navigation durch den Inhalt (Abbildung 4.72).
Parameters Über den Karteireiter Parameters können Sie die in SITE – GLOBAL CONFIGURATION gesetzten Parameter für diesen Inhalt überschreiben.
Meta Info In diesem Karteireiter können Sie für jede Seite eine spezifische Beschreibung (Description) und Schlüsselwörter (Keywords) als Metadaten eingeben. Die hier eingegebenen Texte werden dann im HTML-Quellcode der Nachricht in den Metatags zusätzlich zu den in der globalen Konfiguration festgelegten Metadaten eingebaut.
Abbildung 4.74: Content – Static Content Item – Meta Info
118
Sandini Bib 4.6 Menü Content
Link to Menu Hier lassen sich automatische Links zu einem Menü, beispielsweise dem Hauptmenü, herstellen (siehe Kapitel 4.5.2). Die Website zeigt einen mehrseitigen Inhalt (Abbildung 4.75 und Abbildung 4.76).
Abbildung 4.75: Impressum – Seite 1
Abbildung 4.76: Impressum – Seite 2 Die Bewertung und die anderen Parameter können Sie noch individuell ausblenden.
119
Sandini Bib 4 Joomla! anpassen – Customizing
4.6.4
Section Manager
Im Section Manager können Sie die Sections (Bereiche) bearbeiten. In der Übersichtstabelle werden Ihnen die Informationen angeboten, die Sie auch schon aus den anderen Listen kennen, in diesem Fall jedoch erweitert um die Anzahl der enthaltenen Kategorien, wie viele davon aktiv sind und wie viele im Mülleimer liegen (Abbildung 4.77).
Abbildung 4.77: Content – Section Manager
4.6.5
Category Manager
Im Category Manager bearbeiten Sie die Kategorien. In der Übersichtstabelle sehen Sie die Informationen, die Sie auch schon aus den anderen Listen kennen, hier ebenfalls zusätzlich die Anzahl der Kategorien, die aktiv sind, und die Anzahl derjenigen, die im Mülleimer liegen (Abbildung 4.78).
Abbildung 4.78: Content – Section Manager
4.6.6
Frontpage Manager
Der Frontpage Manager hat eine besondere Aufgabe. Die Frontpage ist die Titelseite Ihrer Website. Hier werden ausgewählte Inhalte in der Blog Form dargestellt. Blog Form heißt bei Joomla! die Darstellung mehrerer Nachrichten mit Ihrem Intro Text und einem read more-Link in mehreren Spalten. Auf der Frontpage können Sie aus allen Inhalten bestimmte auswählen, unabhängig von Category und Section. Ob ein Inhalt auf der Frontpage erscheint, legen Sie im Content Manager fest. Der Frontpage Manager (Abbildung 4.79) hat den gleichen Aufbau wie der Content Items Manager (Abbildung 4.65). Innerhalb vom Frontpage Manager können Sie die einzelnen Inhalte noch sortieren.
120
Sandini Bib 4.6 Menü Content
Abbildung 4.79: Content – Frontpage Manager
4.6.7
Archive Manager
Die Idee des Archivs ist es, veraltete Inhalte nicht zu löschen, sondern für die Nachwelt zu erhalten.
Abbildung 4.80: Content – Archive Manager Von der Struktur her aufgebaut wie der Content Items Manager (Abbildung 4.65), sammelt der Archive Manager (Abbildung 4.80) alle Inhalte, die durch Klick auf das Icon ARCHIVE archiviert wurden. Die Archive können dann über den Menu Manager beispielsweise in einem neuen Archivmenü angezeigt werden. Dazu gibt es folgende Möglichkeiten (Abbildung 4.54): Blog – Content Category Archive: Darstellung einer bestimmten Kategorie Blog – Content Section Archive: Darstellung einer Section
121
Sandini Bib 4 Joomla! anpassen – Customizing
4.7
Menü Components
In der Softwareentwicklung versteht man unter einer Komponente ein Programm, das Geschäftslogik enthält, über definierte Schnittstellen ansprechbar ist und manchmal auch eine Benutzeroberfläche hat. Stellen Sie sich eine Komponente einfach wie eine so genannte Blackbox vor. Ich gebe vorn etwas hinein und hinten kommt etwas heraus. Was drinnen vorgeht, muss ich nicht wissen. Wichtig ist, dass ich die Blackbox zu ganz unterschiedlichen Zwecken benutzen kann. Komponenten können sehr allgemein konstruiert und in handliche Pakete verpackt werden. Diese Idee einer Softwarekomponente ist in Joomla! ähnlich. Geschäftslogik wie beispielsweise Bannerverwaltung oder ein Forum werden allgemein beschrieben und arbeiten dann in Joomla! mit allen Templates und der Joomla!-Administration zusammen.
4.7.1
Install/Uninstall
Grundsätzlich kann jeder eine Komponente schreiben, nach gewissen Regeln verpacken und per Joomla!-Installation in die Website integrieren (Abbildung 4.81).18
Abbildung 4.81: Components – Install/Uninstall
18 Siehe auch Kapitel 7.
122
Sandini Bib 4.7 Menü Components
Die Installation erfolgt wie bei den Sprachdateien entweder über Datei- oder FTPUpload des Komponentenpakets. Benötigte Datenbanktabellen werden bei der Installation angelegt. Unter den Installationsfeldern wird Ihnen angezeigt, ob die zur Installation notwendigen Verzeichnisse media/, administrator/components/, components/ und images/stories/ mit Schreibrechten versehen sind.
Installed Components Im Arbeitsbereich Installed Components sehen Sie eine Liste der standardmäßig installierten Komponenten. Currently Installed: Name der Komponente Component Menu Link: Benötigte Parameter im URL, um auf die Komponente zugreifen zu können. Diesen Link benötigen nur Komponenten, die von der Website aus aufrufbar sein müssen. Author: Der Autor der Komponente Version: Die Version der Komponente Date: Das Erstellungsdatum Author Email: E-Mail des Autors Author URL: Website des Autors
4.7.2
Banner
Die Bannerkomponente ermöglicht die Anzeige von Werbebannern auf Ihrer Website. Bannerschaltungen werden bei Joomla! auf der Basis von gekauften Bannereinblendungen (Impressions) abgerechnet. Jedes Mal, wenn sich Ihre Website aufbaut, wird ein anderes Banner angezeigt. Jedes Anzeigen zählt als eine Einblendung. Das Banner ist anklickbar und führt auf die Website des Kunden. Die Komponente Banner bietet eine Kunden- und eine Bannerverwaltung. Standardmäßig werden so genannte Fullbanner geschaltet. Ein Fullbanner ist 468 * 60 Pixel groß und sollte eine Dateigröße von 20 Kbyte nicht wesentlich überschreiten. Als Formate stehen gif, jpg und png zur Verfügung. Spielen wir mal eine Bannerschaltung durch. Erstellen oder kopieren Sie sich ein Banner in den Maßen 468 * 60 Pixel (Abbildung 4.82).
Abbildung 4.82: Testbanner in der Größe 468 * 60 Pixel
123
Sandini Bib 4 Joomla! anpassen – Customizing
Manage Clients Bevor Sie ein Banner schalten können, benötigen Sie einen Kunden. Klicken Sie auf COMPONENTS – BANNERS – MANAGE CLIENTS – NEW, eröffnen Sie ein neues Kundenkonto und speichern Sie es dann über SAVE (Abbildung 4.83).
Abbildung 4.83: Components – Banners – Manage Clients – Neuer Kunde Der Banner Client Manager, in dem Sie nach dem Speichern landen, zeigt jetzt Ihren neuen Kunden sowie die Anzahl der aktiven Banner dieses Kunden an.
Manage Banners Um dem Kunden ein Banner zuordnen zu können, klicken Sie auf COMPONENTS – BANNERS – MANAGE BANNERS. Sie sehen den Banner Manager, der eine Übersicht über die vorhandenen Banner gibt (Abbildung 4.84). Bannername: Name des Banners Published: Ob das Banner veröffentlicht ist oder nicht Impressions Made: Anzahl der bisherigen Einblendungen Impressions Left: Anzahl der verbleibenden Einblendungen Clicks: Klicks auf das Banner % Clicks: Prozentualer Anteil von Einblendungen zu Klicks Um ein neues Banner zu schalten, klicken Sie zunächst auf das Icon UPLOAD. Ein kleines Upload-Fenster zum Hochladen des Banners öffnet sich. Die Banner tauchen nicht im Media Manager auf, sondern werden im Verzeichnis /images/banner/ gespeichert. Wenn Sie ein Banner wieder löschen wollen, geht das momentan nur per FTPClient.
124
Sandini Bib 4.7 Menü Components
Abbildung 4.84: Components – Banner Manager Nachdem Sie das Banner hochgeladen haben, klicken Sie auf das Icon NEW und füllen das Formular Banner: New aus (Abbildung 4.85).
Abbildung 4.85: Components – Banner Manager – Neues Banner Banner Name: Geben Sie dem Banner einen aussagekräftigen Namen, damit Sie es im Banner Manager wieder erkennen. Client Name: Wählen Sie den Kunden aus der Optionsliste vorhandener Kunden aus. Impressions Purchased: Geben Sie die Anzahl der gekauften Einblendungen an oder kreuzen Sie die Checkbox unlimited (unbegrenzt) an.
125
Sandini Bib 4 Joomla! anpassen – Customizing
Banner URL: Wählen Sie aus der Liste der vorhandenen Banner Ihr eben hochgeladenes Banner aus. Nach der Auswahl sehen Sie im unteren Bereich eine Vorschau des Banners. Show Banner: Soll das Banner sofort veröffentlicht werden? Click URL: Geben Sie hier den URL der Website ein, auf die das Banner verweisen soll. Custom banner code: Hier können Sie speziellen Bannercode aus Affiliate-Programmen eingeben. Da diese Maske auch zum Editieren von Bannern gedacht ist, finden Sie noch die Anzeige der bereits erfolgten Klicks und einen RESET-Button, um die Clicks wieder auf null zu setzen. Nach einem Klick auf das Icon SAVE sollte sich Ihr Banner nun in der Rotation befinden und auf der Website angezeigt werden.
Abbildung 4.86: Kundenbanner auf der Website
4.7.3
Contacts
Wenn sich ein Kunde auf Ihrer Website bewegt und Kontakt mit Ihnen aufnehmen will, so ist das für ihn oft gar nicht so einfach. Normalerweise arbeiten in Firmen viele Angestellte in verschiedenen Abteilungen und oft findet sich nur eine [email protected] auf der Website oder ein Formular, bei dem der Kunde nicht genau weiß, wer es erhält. Aus diesem Grund gibt es in Joomla! die Möglichkeit, Kontaktkategorien festzulegen. In diese Kategorien können Sie Ansprechpartner Ihrer Firma eintragen. Joomla! erzeugt auf der Website dann ein Kontaktformular für jeden Mitarbeiter.
Manage Contacts Klicken Sie auf COMPONENTS – CONTACTS – MANAGE CONTACTS. Sie sehen den Contact Manager und einen Kontakt aus den Beispieldaten (Abbildung 4.87).
126
Sandini Bib 4.7 Menü Components
Abbildung 4.87: Components – Contact Manager Markieren Sie den Beispielkontakt und klicken Sie auf das Icon UNPUBLISH. Mit NEW legen Sie einen neuen Kontakt an (Abbildung 4.88).
Abbildung 4.88: Components – Contacts – neuer Kontakt Category: Wählen Sie hier die Kontaktkategorie aus. Momentan gibt es die Beispielkategorie Contacts. Linked to User: Mit dieser Option können Sie einen Kontakt mit einem Benutzerkonto verbinden. Da ich mir bereits ein Konto angelegt habe, kann ich es jetzt auswählen. Die restlichen Felder können Sie mit den entsprechenden Adressdaten füllen und bei Miscellaneous Info noch eine Beschreibung hinzufügen. Zum Speichern klicken Sie auf das Icon SAVE.
127
Sandini Bib 4 Joomla! anpassen – Customizing
Um das Ganze besonders schön zu machen, ändern Sie im Menu Manager in den Menüs mainmenu und topmenu die Einträge Contact us in Kontakt. Wenn Sie nun auf einen der beiden Kontaktlinks klicken, sehen Sie Ihre Daten und ein Formular (Abbildung 4.89).
Abbildung 4.89: Kontaktformular Eine VCard ist ein Dateiformat, das sich in viele Adressverzeichnisse automatisch eintragen lässt.19 Da wir den Beispieleintrag nicht veröffentlicht haben, gibt es momentan nur einen Kontakt im System und keine Notwendigkeit, Kategorien anzuzeigen. Daher verzweigt der Kontaktlink sofort auf den einen Eintrag. Wenn Sie den Beispieleintrag wieder veröffentlichen, bietet sich folgendes Bild (Abbildung 4.90):
Abbildung 4.90: Kontaktkategorienliste Hier werden die vorhandenen Kontaktkategorien angezeigt. Nach einem Klick auf die Kategorie erhalten Sie eine Tabelle mit den vorhandenen Kontakten (Abbildung 4.91).
19 http://de.wikipedia.org/wiki/VCard.
128
Sandini Bib 4.7 Menü Components
Abbildung 4.91: Kontaktliste innerhalb einer Kategorie Wenn Sie nun auf den Namen klicken, erhalten Sie das Kontaktformular (Abbildung 4.89).
Abbildung 4.92: Neuer Kontakt – Publishing Bei der Erstellung des Kontaktes sind Ihnen sicher die Karteireiter aufgefallen. Unter dem Reiter Publishing (Abbildung 4.92) legen Sie fest, welcher Kontakt der Standardkontakt ist (Site Default). Außerdem können Sie die Veröffentlichung bestimmen, die Sortierung und die Zugriffsberechtigungen. Unter dem Reiter Image können Sie jedem Kontakt ein Bild zuordnen. Fotografieren Sie Ihre Belegschaft und lassen Sie Ihren Kunden wissen, wie der Mensch aussieht, an den er schreibt (Abbildung 4.93).
Abbildung 4.93: Neuer Kontakt – Images
129
Sandini Bib 4 Joomla! anpassen – Customizing
Unter dem Reiter Parameter lässt sich schließlich das Kontaktformular komplett individualisieren. Sie können sogar die Icons neben den Telefonnummern austauschen. Die zur Verfügung stehenden Icons befinden sich im Unterverzeichnis /images/ M_images/ und sind über den Media Manager erweiter- und änderbar.
Contacts Categories Im Category Manager für Kontakte können Sie neue Kategorien anlegen und vorhandene ändern (Abbildung 4.94).
Abbildung 4.94: Contacts – Kategoriemanager Nach einem Klick auf das Icon EDIT oder den Kategorienamen wird Ihnen das Editierformular angezeigt (Abbildung 4.95). Auch hier können Sie ein Bild zuordnen und mit Hilfe des WYSIWYG-Editors die Beschreibung ändern. Im rechten Bereich lässt sich die Kategorie gleich einem bestimmten Menü zuordnen. Dabei können Sie noch entscheiden, ob Sie gleich die Tabellendarstellung oder zunächst eine Auflistung aller Kategorien haben wollen (Select Menu Type).
Erfreuen Sie Ihre Benutzer mit Rundmails (Abbildung 4.96)!
Abbildung 4.96: Components – Mass Mail So zynisch dieser Satz im Zeitalter massiven E-Mail-Spams auch klingen mag, es ist der beste Weg, mit seinen registrierten Benutzern Kontakt aufzunehmen. Die Mass Mail-Komponente bietet Ihnen die Möglichkeit dazu. Group: Hier können Sie auswählen, an welche Benutzergruppe die Rundmail gerichtet ist. Mail to Child Groups: Wenn Sie hier ein Kreuzchen setzen, werden die Untergruppen der ausgewählten Benutzergruppe ebenfalls angeschrieben. Send in HTML mode: Hier können Sie ein Kreuzchen setzen, wenn Sie die Rundmail im HTML-Format verschicken wollen. HTML-Mails nehmen immer mehr zu. Sie sollten trotzdem daran denken, dass viele E-Mail-Clients die HTML-Darstellung ausschalten können und Empfänger aus verschiedenen Gründen keine HTML-Mails mögen könnten. Subject: Der Betreff Ihrer E-Mail Message: Der eigentliche Text Um die Rundmail zu verschicken, müssen Sie die Maileinstellungen in SITE – GLOBAL CONFIGURATION – MAIL korrekt gesetzt haben. Wenn Sie beispielsweise aus Ihrer lokalen Umgebung eine Rundmail schicken wollen, aber keinen Mailserver laufen haben, so können Sie in den Maileinstellungen auch den SMTP-Server Ihres Mailproviders eintragen.
131
Sandini Bib 4 Joomla! anpassen – Customizing
4.7.5
Newsfeeds
Newsfeeds sind eine tolle Sache. Die immer größere Informationsfülle im Internet macht es notwendig, effektive Methoden der Organisation zu erproben. Wenn Sie beispielsweise 20 Internetseiten haben, die Sie regelmäßig besuchen, um nachzuschauen, was es Neues gibt, so dauert das einfach Zeit. Bei 50 oder 100 Seiten ist es schon hoffnungslos, den Überblick zu behalten. Newsfeeds sind ein Versuch, das Problem zu lösen. Was Newsfeeds sind und wie sie erzeugt werden, lesen Sie weiter unten in Kapitel 4.7.7. In der Newsfeeds-Komponente können Sie Feeds von anderen Seiten in Ihre Seiten einbinden. Dazu stehen Ihnen eine Kategorie und ein Inhaltsmanager zur Verfügung. In den Beispieldaten sind bereits mehrere Kategorien und zahlreiche Newsfeeds enthalten. Binden Sie mal ein eigenes Newsfeed ein. Sie können eine Suchmaschine für diesen Zweck benutzen20 oder bei den Sites, die Sie besuchen, den kleinen XML-Button suchen.
Manage Newsfeeds Klicken Sie auf COMPONENTS – NEWSFEEDS – MANAGE NEW FEEDS – NEW (Abbildung 4.97). Name: Name des Newsfeeds, der auf Ihrer Seite erscheint Category: Wählen Sie aus den vorhandenen Kategorien eine passende aus. Link: Der Link zum Newsfeed, in unserem Fall die Seite der Bundesregierung Number of Articles: Die Anzahl der Artikel, die eingebunden werden sollen Cache time (in seconds): Wie lang soll die Pause zwischen den Aktualisierungen sein in Sekunden? Ordering: Die Reihenfolge. Neue Newsfeeds stehen standardmäßig am Anfang. Die Reihenfolge kann geändert werden, nachdem gespeichert wurde. Published: Soll es gleich veröffentlicht werden?
Abbildung 4.97: Neues Newsfeed einbinden
20 Z.B. http://www.rss-verzeichnis.de/.
132
Sandini Bib 4.7 Menü Components
Ihr neues Newsfeed, einen Internetzugang vorausgesetzt, wird jetzt in Ihrer Website angezeigt (Abbildung 4.98). In der Joomla 1.0.0-Version gibt es allerdings noch Probleme mit den Umlauten. Um dies zu beheben, ändern Sie in der Datei [PfadzuJoomla!]/components/com_newsfeeds/newsfeeds.html.php
Und Zeile 322: $text = htmlentities( $currItem->getDescription(),ENT_QUOTES,'utf-8' );
Wenn Sie nun beispielsweise das Newsfeed der Tagesschau einbinden: http://www.tagesschau.de/newsticker.rdf
erhalten Sie die neuesten Nachrichten auf Ihrer Webseite.
Abbildung 4.98: Newsfeeds auf Ihrer Webseite
133
Sandini Bib 4 Joomla! anpassen – Customizing
Manage Categories Hier können Sie die Newsfeed-Kategorien verwalten. Die Verwaltung funktioniert analog zum Contacts-Kategoriemanager (Abbildung 4.94).
4.7.6
Polls
Das integrierte Umfragemodul erlaubt es Ihnen, Umfragen auf Ihrer Website anzubieten. Eine Umfrage ist bereits in den Beispieldaten enthalten (Abbildung 4.99). Title: Der Titel Ihrer Umfrage Lag: Bestimmt die Zeit in Sekunden, die vergehen muss, damit wieder gewählt werden kann. Dieser Lag ist ein gewisser Schutz vor der Verfälschung der Umfrageergebnisse. Options: Hier können Sie bis zu zwölf Antwortoptionen eingeben. Show on menu items: In diesem Feld können Sie auswählen, in welchem Bereich der Website die Umfrage angezeigt werden soll. Mehrfachauswahl mit gedrückter (Strg)-Taste und linker Maustaste.
Abbildung 4.99: Components – Poll – Edit Durch einen Klick auf das Icon PREVIEW erhalten Sie eine Vorschau auf Ihre Umfrage. Damit sie wirklich auf Ihrer Website dargestellt wird, müssen Sie wissen, ob im aktuellen Template Umfragen vorgesehen sind. Auf Ihrer Website können Sie dann die Umfrage sehen (Abbildung 4.100).
134
Sandini Bib 4.7 Menü Components
Abbildung 4.100: Umfrage auf der Website Wenn Sie jetzt die Umfrage ausprobieren und eine Antwort wählen, erscheint eine Auswertungsmaske. Die Umfrage selbst wird jetzt vermutlich nicht mehr gezeigt, denn sie war standardmäßig nur der Frontpage zugeordnet. Die Zuordnung zu den einzelnen Seiten konfigurieren Sie im Modulmanager (siehe Kapitel 4.8.2).
Abbildung 4.101: Umfrageauswertung auf der Website
4.7.7
Syndicate
In der Komponente Syndicate können Parameter für das Erzeugen von Newsfeeds festgelegt werden.
135
Sandini Bib 4 Joomla! anpassen – Customizing
Ein Newsfeed ist eine XML-Datei, die nach den gängigen Standards aufgebaut ist (Listing 4.1). Sie können diese Datei durch einen Klick auf den RSS 0.91-Button auf Ihrer Website (Abbildung 4.102) erzeugen. Sie ist nicht zum Lesen gedacht, sondern dient lediglich als Austauschformat zwischen zwei Programmen. Normalerweise übergibt man nicht die Datei, sondern nur den entsprechenden URL. In diesem Fall: http://localhost/Joomla100/index2.php?option=com_rss&feed=RSS0.91&no_html=1 Die Dateierzeugung und die optische Aufbereitung übernimmt das lesende Programm. Listing 4.1: Von Joomla! erzeugtes XML-Newsfeed im Format RSS 0.91 Joomla! Buch <description>Joomla! site syndication http://localhost/Joomla100 Sun, 18 Sep 2005 13:10:30 +0100FeedCreator 1.7.2http://localhost/Joomla100/images/M_images/joomla_rss.pngPowered by Joomla! 1.0 http://localhost/Joomla100 <description>Joomla! site syndication Beispielseite http://localhost/Joomla100/index.php?option=com_content&task=view& id=12&Itemid=27 <description>Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum epluribus... Fri, 16 Sep 2005 18:56:41 +0100 … weitere Items
In der Datei stehen Titel und Text der letzten Nachrichten sowie diverse weitere Informationen, wie beispielsweise der Zeitpunkt der Erstellung, von welcher Website die Nachrichten kommen, die direkten Links zu den Websites etc.
136
Sandini Bib 4.7 Menü Components
Abbildung 4.102: Syndication von Newsfeeds auf der Website Joomla! kann Newsfeeds erzeugen und unterstützt folgende Standards: RSS 0.91/1.0/2.0 ATOM 0.3 OPML SHARE IT
Die Inhalte der Feeds können wie folgt beeinflusst werden (Abbildung 4.103):
Abbildung 4.103: Components – Syndicate
137
Sandini Bib 4 Joomla! anpassen – Customizing
Cache: Sollen die Feeds zwischengespeichert werden, um zu vermeiden, dass sie bei jedem Aufruf neu erzeugt werden müssen? Cache Time: Hier können Sie eingeben, wie lange die Daten zwischengespeichert werden sollen (in Sekunden). Items: Wie viel Einträge sollen in das Feed übernommen werden? Title: Wie soll der Titel des Feeds lauten? Description: Wie soll der Feed beschrieben werden? Image: Welcher Bildlink soll dem Feed zugeordnet werden? Sinnvoll wäre hier das Logo Ihrer Firma. Image Alt: Was soll angezeigt werden, wenn das Endgerät keine Bilder lesen kann? Limit Text: Soll der zu übertragende Text auf eine bestimmte Länge begrenzt werden? Text Length: Wie lang soll dieser Text sein? Order: Wie sollen die Nachrichten sortiert werden? wie auf der Frontpage (Frontpage Ordering) die ältesten zuerst (Oldest first) die aktuellsten zuerst (Most recent first) aufsteigend nach Titel (Title Alphabetical) absteigend nach Titel (Title Reverse-Alphabetical) aufsteigend nach Autor (Author Alphabetical) absteigend nach Autor (Author Reverse-Alphabetical) nach den meisten Zugriffen (Most Hits) nach den wenigsten Zugriffen (Least Hits)
Abbildung 4.104: Live Bookmarks-Angebot im Browser Firefox Live Bookmarks: Live Bookmarks sind eine Funktion des Mozilla Firefox-Browsers.21 Es handelt sich dabei um dynamische Lesezeichen, die Ihnen statt festen Links die Informationen aus den Feeds anzeigen. Falls Sie mit Firefox arbeiten, wählen Sie aus der Liste RSS 2.00 aus und speichern die Parameter. 21 Hatte ich schon erwähnt, dass Sie wirklich einmal über den Einsatz von Firefox nachdenken sollten? Siehe http://www.mozilla.org/.
138
Sandini Bib 4.7 Menü Components
Wenn Sie nun mit Firefox Ihre Website besuchen, so sehen Sie in der rechten unteren Ecke des Browsers ein orange leuchtendes XML-Zeichen mit den verfügbaren Newsfeeds Ihrer Website. Hier können Sie Ihre Nachrichten mit einem Klick in die Lesezeichen übernehmen (Abbildung 4.104). Wenn Sie anschließend in Ihre Lesezeichen schauen, finden Sie die Überschriften Ihrer Nachrichten dort wieder (Abbildung 4.105).
Abbildung 4.105: Live Bookmarks in Firefox
4.7.8
Weblinks
Hier bauen Sie eine Linkliste auf, die Sie in Ihre Website integrieren können. Joomla! bietet Kategorien an und zählt die Zugriffe auf die Links. Sie können im usermenu Ihren registrierten Benutzern erlauben, Links zur Aufnahme in die Liste vorzuschlagen. Diese Links landen dann in der Weblink Items-Liste und müssen noch veröffentlicht werden.
Weblink Items Hier können Sie die einzelnen Links eintragen (Abbildung 4.106). Name: Name des Links, der auf der Website erscheint Category: Auswahl einer vorhandenen Linkkategorie URL: Der URL des Links Description: Hier können Sie eine ausführliche Beschreibung des Links eingeben.
139
Sandini Bib 4 Joomla! anpassen – Customizing
Ordering: Sortierung der Links Approved: Ist dieser Link überprüft? Published: Soll der Link sofort veröffentlicht werden? Target: Im Parameterbereich können Sie wählen, ob der Link in einem neuen Fenster (mit Navigation oder ohne) erscheinen oder ob er im gleichen Fenster angezeigt werden soll.
Abbildung 4.106: Components – Weblinks – Edit
Weblink Categories Die Linkkategorien werden im entsprechenden Categories Manager verwaltet (Abbildung 4.107).
Ein Modul ist im Gegensatz zu einer Komponente einfacher aufgebaut. Es ist ein Codefragment oder Sniplet, das von einem anderen Programmteil eingebaut und interpretiert wird. Durch die Möglichkeiten, die die Scriptsprache PHP bietet, können Module Daten aus allen möglichen Quellen sammeln. Das kann eine Quelle auf Ihrer eigenen Website sein (die letzten fünf Artikel) oder ein Wetter-, Devisenkurs-, Amazon- oder eBayWebservice.
140
Sandini Bib 4.8 Menü Modules
Ein Modul enthält eine Geschäftslogik und eine Benutzeroberfläche. Es hat keinen eigenen Administrationsbereich wie die meisten Komponenten. Das Template Ihrer Website spricht die verschiedenen Module direkt an und startet sie. Da die Module eigenständige Programme sind, können sie in diesem Bereich des Templates etwas Bestimmtes tun, beispielsweise ein Banner anzeigen. Ein Template macht nichts anderes, als viele verschiedene Module auf eine optisch ansprechende Art zu gruppieren. Die Modulstruktur hat den Vorteil, dass Sie Ihre Website auf einfache Art erweitern können. Da Sie Templates für Ihre Website und für die Joomla!-Administration verwenden können, gibt es auch unterschiedliche Module für diese Templates.
4.8.1
Install/Uninstall
Hier können Sie Dateipakete für Module per Datei-Upload oder aus einem Verzeichnis heraus installieren (Abbildung 4.108). Das Deinstallieren funktioniert durch Auswahl des Moduls und einen Klick auf das Icon DELETE.
Abbildung 4.108: Modules – Install/Uninstall Unter dem Installationsbereich sehen Sie eine Liste der installierten Module mit der Herkunft der Module und weiteren Informationen.
4.8.2
Site Modules
Der Modulmanager ist die zentrale Stelle, um Module zu verwalten (Abbildung 4.109). Module Name: Name des Moduls und Überschrift auf der Website Published: Ist das Modul veröffentlicht? Reorder: Hier können Sie mit Hilfe der blauen Pfeile die Sortierung verändern. Damit können Sie beispielsweise beeinflussen, ob das Menü Suche über oder unter dem Hauptmenü steht.
141
Sandini Bib 4 Joomla! anpassen – Customizing
Abbildung 4.109: Modules – Site Modules Order: Eine direkte Sortierung durch Angabe der Position und einmaligen Klick auf das Icon neben Order erspart das viele Klicken auf die blauen Pfeile. Access: Zugriffsberechtigung für dieses Modul (Public, Registered, Special) Position: Die Position ist eine Angabe für das Template, in welchem Bereich die Anzeige dieses Moduls vorgesehen ist. Es gibt acht Positionen innerhalb eines Templates: Banner (Werbebereich) Left (Linke Seite) Right (Rechte Seite) Top (Oben) user1 (Benutzerdefiniert 1) user2 (Benutzerdefiniert 2) user3 (Benutzerdefiniert 3) user4 (Benutzerdefiniert 4)
Nach diesen Positionen können Sie mit Hilfe der Optionsliste im oberen Bereich die Anzeige für eine bessere Übersicht filtern. Pages: Wird das Modul auf allen oder nur auf bestimmten Seiten angezeigt? ID: Die Datensatznummer aus der Datenbank Type: Es gibt verschiedene Typen von Modulen. Der Typ mod_mainmenu beispielsweise tritt mehrmals auf, da jedes Menü zu diesem Typ gehört. Die einzelnen Menüs unterscheiden sich dann nur in den Parametern. Nach diesen Typen können Sie mit Hilfe der Optionsliste im oberen Bereich die Anzeige filtern, um eine bessere Übersicht zu haben.
142
Sandini Bib 4.8 Menü Modules
Außerdem gibt es noch ein Filterfeld, mit dem Sie die Anzeige nach Suchbegriffen filtern können. Diese Filtermechanismen sind durchaus sinnvoll, wird doch Joomla! bereits standardmäßig mit 21 Modulen ausgeliefert. Die Bearbeitung dieser Module funktioniert weitgehend einheitlich. Außer den Angaben für Name, Zugriff etc. müssen Sie auch entscheiden, auf welchen Seiten Ihr Modul angezeigt wird und welche Position das Modul im Template haben soll. Die Parameterliste ist bei Modulen besonders wichtig, deswegen werde ich bei der weiteren Vorstellung der Module besonders auf die Parameter eingehen.
Banner Dieses Modul steuert die Anzeige der Banner. Als Parameter können Sie die Datensatz-ID des Kunden angeben (Banner Client) und damit erzwingen, dass nur Banner dieses Kunden angezeigt werden. Außerdem können Sie den Namen einer CSSKlasse angeben. In diesem Fall muss das ein Zusatz zur Klasse table sein, beispielsweise table.moduletable. Das erlaubt eine individuelle Gestaltung des Moduls (Module Class Suffix).
Template Chooser Dieses Modul bietet dem Besucher der Seite an, aus verschiedenen Templates selbst eins auszuwählen. Es ist standardmäßig deaktiviert und der Home-Seite zugeordnet.
Abbildung 4.110: Modul Template Chooser Parameter Max. Name Length: Die Länge des Template-Namens in Zeichen, die in der Optionsliste angezeigt werden. Ist der Name länger, werden drei Punkte angehängt. Show Preview: Soll die Template-Vorschau an- oder abgeschaltet werden? Width/Height: Die Breite und Höhe des Vorschaubildes in Pixel Module Class Suffix: Geben Sie hier den Namen einer CSS-Klasse an. Es muss ein Anhang an die Klasse table sein, beispielsweise table.moduletable. Dadurch können Sie das Modul individuell gestalten.
143
Sandini Bib 4 Joomla! anpassen – Customizing
Alle Menüs Die interne Modulbezeichnung mod_mainmenu wird für alle Menüs benutzt. Es gibt vertikale (Hauptmenü) und horizontale Menüs (Top Menu). Bei vertikalen Menüs bietet sich noch die Möglichkeit einer Flatlist. Eine Flatlist ist einfach eine Aufzählung von einzelnen Punkten. Menu Class Suffix: Hier können Sie eine spezielle CSS-Klasse zur optischen Gestaltung des Menüs eingeben. Module Class Suffix: Hier bestimmen Sie eine spezielle CSS-Klasse zur optischen Gestaltung des Moduls (Menüinhalt). Menu Name: Name des Menüs Menu Style: Vertikal, horizontal oder Flatlist Enable Cache: Soll der Inhalt des Menüs zwischengespeichert werden, um Ladezeit zu sparen? Show Menu Icons: Sollen die Menü-Icons angezeigt werden? Die Anzeige der Icons ist abhängig vom jeweiligen aktiven Template. Menu Icon Alignment: Sollen die Menü-Icons links- oder rechtsbündig positioniert werden? Expand Menu: Soll der Menüeintrag immer aufgeklappt sein, auch wenn man auf einen anderen Eintrag klickt? Diese Funktion ist nur sinnvoll bei verschachtelten Menüstrukturen (Abbildung 4.111). Indent Image: Welches Icon soll bei den Unterstrukturen eines Menüeintrags dargestellt werden? Sie haben die Wahl, die Icons aus dem Template zu übernehmen, die Joomla!-Standardwerte zu benutzen, jede Hierarchieebene mit einem eigenen Bild zu versehen oder überhaupt keine Icons anzuzeigen (Abbildung 4.111).
Abbildung 4.111: Menüschachtelungen Indent Image 1–6: Hier können Sie Icons für sechs Hierarchiestufen festlegen. Spacer: Bei horizontalen Menüs sollte zwischen den Menüeinträgen ein Trennzeichen stehen, das Sie hier bestimmen. End Spacer: Bei horizontalen Menüs kann am Ende der Menüeinträge ein Endezeichen dargestellt werden. Wenn Sie das möchten, können Sie es hier festlegen.
144
Sandini Bib 4.8 Menü Modules
Login Form Das Login-Modul stellt zwei Sichten zur Verfügung. Ist man noch nicht angemeldet, erhält man ein Login-Formular. Abhängig von den Einstellungen in SITE – GLOBAL CONFIGURATION – SITE ist es möglich, sich neu zu registrieren oder nicht (Abbildung 4.112). Nach der erfolgreichen Anmeldung wechselt die Anzeige in eine Abmeldemöglichkeit (Abbildung 4.113).
Abbildung 4.112: Login-Modul – nicht angemeldet
Abbildung 4.113: Login-Modul – angemeldet Parameter Module Class Suffix: Hier können Sie eine spezielle CSS-Klasse zur optischen Gestaltung des Menüs eingeben. Pre-text: Text, den Sie hier eingeben, erscheint vor dem Formular im Login-Modus. Post-text: Text, den Sie hier eingeben, erscheint am Ende des Moduls im LoginModus. Login Redirection URL: Hier können Sie einen URL bestimmen, zu dem nach einem erfolgreichen Login verzweigt wird. Logout Redirection URL: Hier legen Sie den URL fest, zu dem nach einem erfolgreichen Logout umgeleitet wird. Login Message: Soll bei erfolgreichem Anmelden eine Meldung in einer JavaScriptBox ausgegeben werden? Logout Message: Soll bei erfolgreichem Abmelden eine Meldung in einer JavaScriptBox ausgegeben werden?
145
Sandini Bib 4 Joomla! anpassen – Customizing
Greeting: Nach dem Anmelden wechselt das Modul die Erscheinung und zeigt einen Begrüßungstext und einen Abmeldebutton an. Hier können Sie entscheiden, ob Sie diesen Text anzeigen lassen wollen (»Hallo, Benutzername«). Name/Username: Hier bestimmen Sie, ob der Benutzer im Begrüßungstext mit seinem echten Namen oder mit seinem Benutzernamen angesprochen wird.
Syndicate Im Syndicate-Modul werden die verschiedenen Newsfeeds angeboten (Abbildung 4.102). In den Parametern können Sie festlegen, welche Standards Sie anbieten und ob Sie die Standardbilder oder individuelle Bilder benutzen wollen. Die Inhalte des angebotenen Newsfeeds stellen die Einträge der Frontpage dar.
Statistics Das Statistikmodul ist standardmäßig deaktiviert. Wenn Sie es aktivieren, müssen Sie noch die Seiten auswählen, auf denen es angezeigt werden soll. Es liefert Informationen über Ihren Server und Ihre Website (Abbildung 4.114).
Abbildung 4.114: Statistics-Modul Parameter Server Info: Sollen die Serverinformationen angezeigt werden oder nicht? Site Info: Sollen die Websiteinformationen angezeigt werden oder nicht? Hit Counter: Soll der Besucherzähler eingeblendet werden oder nicht? Increase Counter: Hier können Sie den Startwert des Besucherzählers festlegen.
Archive Das Archivmodul ist standardmäßig deaktiviert. Wenn Sie es aktivieren, müssen Sie noch die Seiten auswählen, auf denen es angezeigt werden soll. Es liefert Informationen über die Inhalte Ihres Archivs (Abbildung 4.115). Die Anzeige wird gruppiert nach Monaten.
146
Sandini Bib 4.8 Menü Modules
Abbildung 4.115: Archive Modul Parameter Count: Hier können Sie die Anzahl der angezeigten Monate festlegen.
Sections Das Sections-Modul ist standardmäßig deaktiviert. Wenn Sie es aktivieren, müssen Sie noch die Seiten auswählen, auf denen es angezeigt werden soll. Es listet die vorhandenen Sections auf (Abbildung 4.116).
Abbildung 4.116: Sections-Modul Parameter Count: Hier können Sie die Anzahl der angezeigten Sections festlegen.
Related Items Das Related Items-Modul (ähnliche Inhalte) zeigt andere Inhalte an, die eine Beziehung zu diesem Inhalt haben. Die Beziehung basiert auf den in den Metadaten festgelegten Schlüsselwörtern. Alle Schlüsselwörter des aktuell angezeigten Inhalts werden mit denen der anderen veröffentlichten Inhalte verglichen.
Abbildung 4.117: Related Items-Modul Wenn Sie beispielsweise in den statischen Seiten Joomla! License Guidelines und in Ihrem erstellten Impressum als Schlüsselwort Gesetz eintragen, werden beim Aufruf des Impressums die Lizenzrichtlinien als Related Item angezeigt (Abbildung 4.117).
Wrapper Das Wrapper-Modul bindet externe, nicht von Joomla! erzeugte, Inhalte innerhalb eines so genannten iframe ein. Ein iframe ist ein HTML-Tag22 und stellt einen scrollbaren Bereich innerhalb einer Webseite dar (Abbildung 4.118). 22 http://de.selfhtml.org/html/frames/eingebettete.htm.
147
Sandini Bib 4 Joomla! anpassen – Customizing
Mit Hilfe dieses Moduls können Sie ganze existierende HTML-Seiten, die auf anderen Servern online sind, in den Inhaltsbereich von Joomla! integrieren.
Abbildung 4.118: Per Wrapper eingebundene Seite Parameter URL: Hier können Sie einen Standard-URL angeben. Die Angabe der darzustellenden Seite erfolgt allerdings meist in der Menüzuordnung (Abbildung 4.54). Scroll Bars: Sollen Scrollbars im iframe angezeigt werden? Sie haben die Wahl zwischen Ja, Nein und der automatischen Einblendung bei Bedarf. Width/Height: Breite und Höhe des iframe in Prozent oder Pixel Auto Height: Soll die Höhe automatisch angepasst werden? Auto Add: Standardmäßig wird vor den angegebenen URL ein http:// eingefügt, wenn kein http:// oder https:// gefunden wurde. Dieses Verhalten kann hier ein- oder ausgeschaltet werden.
Polls Hier wird die Funktionalität für die Anzeige von Umfragen grundsätzlich ein- oder ausgeschaltet. Die Umfragen selbst werden in der Komponente Polls konfiguriert (Kapitel 4.7.6). Als Parameter können Sie angeben, ob der Inhalt des Moduls zwischengespeichert (gecacht) werden soll oder nicht.
148
Sandini Bib 4.8 Menü Modules
Who's online Das Who’s online-Modul zeigt an, wer sich gerade auf der Seite bewegt. Dabei wird unterschieden zwischen Gästen und angemeldeten Benutzern (Abbildung 4.119).
Abbildung 4.119: Who's Online-Modul Parameter Display: Hier entscheiden Sie über die Anzeige des Moduls. Sie haben die Wahl zwischen: Anzahl Gäste, Anzahl Mitglieder Benutzernamen der angemeldeten Benutzer Eine Kombination aus den beiden vorangegangenen Punkten
Random Image Mit diesem Modul können Sie zufällig ausgewählte Bilder aus einem Ordner Ihrer Wahl darstellen lassen. Das Modul ist standardmäßig aktiviert, aber keiner Seite zugeordnet. Bevor Sie es auf Ihrer Website sehen können, müssen Sie es durch einen Klick auf das Icon EDIT den gewünschten Seiten zuordnen (Abbildung 4.120).
Abbildung 4.120: Random Image Module Parameter Image Type: Hier können Sie den Typ des Bildes festlegen (jpg, png oder gif). Sie können nur einen Typ gleichzeitig anzeigen. Image Folder: Hier müssen Sie das Verzeichnis angeben, in dem sich die Bilder befinden. Ich habe /images/stories ausgewählt. Link: Wenn Sie hier einen URL eingeben, so wird das Bild anklickbar. Das Linkziel ist der hier bestimmte URL. Width (px)/Height (px): Breite und Höhe der dargestellten Bilder in Pixel. Wenn Sie hier nichts angeben, werden die Bilder so gut wie möglich angezeigt.
149
Sandini Bib 4 Joomla! anpassen – Customizing
Newsflash Das Newsflash-Modul zeigt zufällig Aufmacher von dynamischen Inhalten an (Abbildung 4.121).
Abbildung 4.121: Newsflash-Modul Parameter Category: Hier können Sie durch Auswahl aus einer Liste festlegen, ob die Inhalte aus einer speziellen Kategorie kommen sollen oder aus allen Kategorien. Style: Hier können Sie zwischen einer Spaltendarstellung (horizontal) und der Darstellung wie in Abbildung 4.121 wählen (vertikal). Show Images: Sollen Bilder, die in den Inhalten enthalten sind, angezeigt werden oder nicht? Linked Titles: Wenn Sie Item Titles mit Ja einstellen, können Sie hier festlegen, ob dieser Titel zur Inhaltsseite verlinkt werden soll. Read More: READ MORE…-Button einblenden Item Title: Hier können Sie entscheiden, ob Sie den Titel der Nachricht einblenden wollen. No. of Items: Hier bestimmen Sie die Anzahl der gleichzeitig angezeigten Inhalte. Enable Cache: Sollen die Inhalte zwischengespeichert werden?
Latest News Mit diesem Modul werden die letzten (neuesten) Nachrichten angezeigt (Abbildung 4.122). Standardmäßig ist es auf der user1-Position angeordnet. Sie können es auch auf eine andere Position befördern, beispielsweise nach rechts.
Abbildung 4.122: Latest News-Modul
150
Sandini Bib 4.8 Menü Modules
Parameter Module Mode: Hier können Sie entscheiden, ob Sie dynamische (Content Items only) oder statische Inhalte (Static Content Items only) oder beides (both) in die Liste einbringen wollen. Frontpage Items: Wenn Sie sich im Content Items Only-Modus befinden, können Sie hier festlegen, ob auch Elemente der Frontpage mit einbezogen werden sollen. Count: Hier bestimmen Sie die Anzahl der anzuzeigenden Elemente. Category ID: Wenn Sie hier die Datensatznummern der anzuzeigenden Kategorien, getrennt durch Kommata, angeben, können Sie damit eine Inhaltsauswahl nur aus diesen Kategorien erzwingen. Section ID: Hier können Sie die Datensatznummern der anzuzeigenden Sections, getrennt durch Kommata, angeben und damit eine Inhaltsauswahl nur aus diesen Sections erzwingen.
Popular Mit diesem Modul werden die beliebtesten Nachrichten angezeigt.
Abbildung 4.123: Popular-Modul Parameter Module Mode: Hier entscheiden Sie, ob Sie dynamische (Content Items only) oder statische Inhalte (Static Content Items only) oder beide (both) in die Liste einbringen wollen. Frontpage Items: Wenn Sie sich im Content Items Only-Modus befinden, können Sie hier festlegen, ob auch Elemente der Frontpage mit einbezogen werden sollen. Count: Hier bestimmen Sie die Anzahl der anzuzeigenden Elemente. Category ID: Hier können Sie die Datensatznummern der anzuzeigenden Kategorien, getrennt durch Kommata, angeben und damit eine Inhaltsauswahl nur aus diesen Kategorien erzwingen. Section ID: Auch hier können Sie die anzuzeigenden Sections durch eine Angabe der entsprechenden Datensatznummern eingrenzen.
151
Sandini Bib 4 Joomla! anpassen – Customizing
Search Das Search-Modul taucht im Standard-Template nur als Eingabefeld auf. Die beiden bei Joomla! mitgelieferten Templates setzen diese Parameter nicht um. Um die Konfigurationsmöglichkeiten zu demonstrieren, habe ich das Template JavaBean aus der alten Mambo-Version gewählt (Abbildung 4.124).
Abbildung 4.124: Parametrisiertes Search-Modul Parameter Box Width: Größe der Textbox in Zeichen, im Beispiel sind es 30 Zeichen. Text: Hier geben Sie den Text an, der im Suchfeld angezeigt wird. Search Button: Hier können Sie entscheiden, ob Sie einen Suchbutton haben wollen oder nicht. Button Position: Wenn Sie einen Suchbutton ausgewählt haben, können Sie hier die Position festlegen (rechts, links, oben, unten). Button Text: Hier legen Sie die Beschriftung für den Suchbutton fest.
4.8.3
Modul kopieren
Stellen Sie sich vor, Sie möchten zwei verschiedene Zufallsbilder anzeigen. Ein Modul soll Bilder aus Verzeichnis A und ein Modul Bilder aus Verzeichnis B anzeigen. In einem solchen Fall wählen Sie einfach das Modul Random Images durch Ankreuzen der Checkbox vor dem Namen aus und klicken auf das Icon COPY. In der Liste erscheint ein neues Modul mit dem Namen Copy of Random Images. Ändern Sie die Daten wie gewünscht und Sie haben ein neues Modul.
Abbildung 4.125: Modul kopieren
152
Sandini Bib 4.8 Menü Modules
Wenn Sie die Module Latest News und Popular deaktivieren und die beiden Bildermodule auf die Position user1 und user2 legen, werden die neuen Module im Inhaltsbereich des Templates über den Nachrichten beziehungsweise der Frontpage angezeigt.
4.8.4
Administrator-Module
Unter dem Menüpunkt MODULES – ADMINISTRATOR MODULES sehen Sie den von der Struktur her gleichen Modulmanager, diesmal allerdings mit Modulen, die im Administrationsbereich Anwendung finden.
Abbildung 4.126: Modules – Administrator-Module
Logged Das Modul zeigt eine Liste der momentan eingeloggten Benutzer an der Position cpanel, also als Karteireiter im Control Panel.
Components Das Modul Components zeigt die Liste der installierten Komponenten als Karteireiter im Control Panel an.
Popular Das Modul Popular präsentiert die Liste der am meisten besuchten Inhalte als Karteireiter im Control Panel.
Latest Items Das Modul Latest Items bietet die Liste der neuesten Inhalte als Karteireiter im Control Panel.
Menu Stats Das Modul Menu Stats zeigt die Statistik über die Belegung der einzelnen Menüelemente als Karteireiter im Control Panel an.
153
Sandini Bib 4 Joomla! anpassen – Customizing
Unread Messages Das Modul Unread Messages informiert Sie über die Anzahl der ungelesenen Administratornachrichten an der Stelle header, also oben rechts.
Online Users Das Modul Online Users zeigt die Anzahl der angemeldeten Benutzer auf der Seite an der Stelle header an.
Quick Icons Das Modul Quick Icons bietet die Icons zum schnellen Zugriff im Control Panel.
System Message Das Modul System Message ist zuständig für die Anzeige der Systemmeldungen.
Pathway Das Modul Pathway ist zuständig für die Anzeige der Pfade.
Toolbar Das Modul Toolbar bestimmt die Anzeige der Werkzeugleiste.
Full Menu Das Modul Full Menu ist zuständig für die Anzeige des Joomla!-Administrationsmenüs.
4.9
Menü Mambots
Bot ist die Kurzform für das Wort Roboter. Ein Mambot ist also eine Art Joomla!-Roboter. Man kann Mambots mit einer Joomla!-eigenen Scriptsprache vergleichen. Der Name stammt noch aus Mambo-Zeiten (Mambo Bot = mambot). Das Joomla!-Team entschied, die Bezeichnung beizubehalten. Als wir Bilder in Inhaltselemente eingefügt haben, sind Sie bereits mit den eingebauten Mambots in Berührung gekommen. Mambots gehören immer einem bestimmten Typ an. Um das Bild im Inhaltselement zu positionieren, haben Sie beispielsweise {mosimage} in den Text geschrieben. Dieser Text ruft bei der Darstellung der Seite den Mambot mos_image auf, der dafür sorgt, dass das zugeordnete Bild eingeblendet wird.
4.9.1
Install New Mambots
Neue Mambots installieren Sie über den Menüpunkt MAMBOTS – INSTALL MAMBOTS genauso wie Komponenten, Templates und Sprachdateien entweder per Upload oder per Verzeichnisinstallation.
154
Sandini Bib 4.9 Menü Mambots
4.9.2
Site Mambots
Im Mambot Manager finden Sie standardmäßig neun Content-, vier Editor- und sechs Search-Mambots (Abbildung 4.127). Mambots haben wenig bis keine veränderbaren Einstellungen, da sie meistens für einen ganz speziellen Zweck programmiert und optimiert sind.
Abbildung 4.127: Mambots – Site Mambots
MOS Image (Content) Das ist der Mambot der mit dem Befehl {mosimage} das Bild in den Inhaltselementen auf der Website anzeigt (siehe Kapitel 4.6.3).
Legacy Mambot (Content) Der Legacy Mambot bietet eine Unterstützung für ältere Mambots aus den Mambo Versionen 4.5.x an.
Code Support (Content) Der Code Support Mambot formatiert Quellcode, damit lassen sich also Inhaltselemente, die Quellcode enthalten, formatieren. Listing 4.2: Einsatz des Mambots moscode {moscode} if ($zahl > 0){ echo $zahl; } else{ $zahl++; } {/moscode}
155
Sandini Bib 4 Joomla! anpassen – Customizing
SEF (Content) SEF steht für Search Engine Friendly. Dieser Mambot erzeugt die suchmaschinenfreundlichen URLs für Inhaltselemente. Falls Sie das entsprechende Feature benutzen, muss dieser Mambot aktiviert sein.
MOS Rating (Content) Das ist der Mambot, der die Bewertungsleiste über den Inhalten erstellt. Zur Benutzung muss er aktiviert sein.
Email Cloaking (Content) Dieser Mambot wandelt eine E-Mail-Adresse, die Sie in einem Inhaltselement in der Form [email protected] eingeben, in einen Link um: [email protected]
GeSHi (Content) Der GeSHI Mambot formatiert wie moscode Quellcode. GeSHI beherrscht allerdings Syntax Highlighting und sorgt für eindrucksvolle Listings auf der Website, wenn Sie den zu formatierenden Quellcode in <pre> ... -HTML-Tags einbinden (Abbildung 4.128).23 Listing 4.3: Einsatz des Mambots GeSHI <pre> if ($zahl > 0){ echo $zahl; } else{ $zahl++; }
Abbildung 4.128: Mit GeSHI formatierter Quellcode – Quellcode und Ausgabe
Load Module (Content) Der Load Module Mambot erlaubt es, Module innerhalb von Content zu laden. Aufgerufen wird er beispielsweise mit {mosloadposition user1}.
23 http://qbnz.com/highlighter/.
156
Sandini Bib 4.10 Menü Installers
MOS Pagination (Content) Der MOS Pagination Mambot kümmert sich um die Seitenumbrüche in Inhaltselementen. Er wird wie der MOS Images Mambot einfach in den Inhalt eingefügt. Außer einem einfachen Zeilenumbruch können Sie auch verschiedene Überschriften und Seitentitel definieren. Syntax: {mospagebreak} {mospagebreak title=Seitentitel} {mospagebreak heading=Erste Seite} {mospagebreak title=Seitentitel titleheading=Erste Seite} {mospagebreak heading=Erste Seite title=Seitentitel}
No WYSIWYG Editor/TinyMCE WYSIWYG Editor (Editor) Die Aktivierung dieser beiden Mambots können Sie über SITE – GLOBAL CONFIGURATION steuern. Damit wird der WYSIWYG-Editor bei vielen Beschreibungstexten eingeblendet.
MOS Image Editor Button/MOS Pagebreak Editor Button (Editor-XTD) Diese beiden Mambots generieren die beiden Buttons unterhalb des Editors. Durch Druck auf diese Buttons wird ein {mosimage} oder {mospagebreak} in den Text eingefügt.
Search Mambots Die Search Mambots für Content, Weblinks, Contacts, Categories, Sections, Newsfeeds können nach Wunsch aktiviert werden. Sie beeinflussen die Suche des Search Moduls.
4.10
Menü Installers
Im Menü Installers sind alle Installer zusammengefasst (Abbildung 4.129).
Abbildung 4.129: Installers
157
Sandini Bib 4 Joomla! anpassen – Customizing
Das Menü verzweigt zu den Installern für Site Templates Admin Templates Languages Components Modules Mambots
4.11
Menü Messages
Das Menü Messages verwaltet Administratornachrichten. Joomla! hat ein kleines Nachrichtensystem eingebaut, das es erlaubt, innerhalb der Administratorengruppe Nachrichten zu verschicken. Außerdem werden hier auch systemeigene Nachrichten ausgeliefert, beispielsweise wenn jemand ein neues Inhaltselement gepostet hat.
4.11.1
Inbox
Hier werden die Nachrichten für Sie gesammelt. Durch Klick auf das Icon NEW können Sie eine neue Nachricht an Benutzer schicken, denen der Zugriff auf die Joomla!Administration erlaubt ist.
4.11.2
Configuration
Hier können Sie das Nachrichtensystem konfigurieren. Lock Inbox: Sie können Ihre Mailbox verschließen und damit den Empfang von Nachrichten unterdrücken. Sollten Sie der einzige Administrator sein, ist das in Ordnung, ansonsten sollten Sie Ihre Inbox geöffnet lassen. Mail me on new Message: Dieses Feature ist wirklich praktisch. Joomla! schickt die Nachrichten an die in der Benutzerverwaltung hinterlegte E-Mail-Adresse.
4.12
Menü System
Das Menü System besteht nur aus einem Element. Dabei handelt es sich um ein globales Einchecken aller sich in Bearbeitung befindlicher Inhaltselemente.
158
Sandini Bib 4.12 Menü System
4.12.1
Global Check-in
Wenn ein berechtigter Benutzer den Editiermodus eines Inhaltselements aufruft, so wird dieses Element ausgecheckt. Das heißt, nur der berechtigte Benutzer darf dieses Element bearbeiten. Während der Bearbeitung sehen die anderen Benutzer vor dem Namen des Elements ein Schloss-Icon. Wenn das Dokument nach der Änderung abgespeichert wird, wird es automatisch wieder eingecheckt und das Schloss-Icon verschwindet. Wenn der Benutzer aber beispielsweise sein Browserfenster schließt oder die Internetverbindung plötzlich abreißt, so bleibt das Element ausgecheckt und kann nicht mehr geändert werden. An dieser Stelle kommt das GLOBAL CHECK-IN ins Spiel. Durch einen Klick auf diesen Menüpunkt werden alle sich in Bearbeitung befindlichen Elemente eingecheckt und Sie erhalten eine entsprechende Liste der Elemente (Abbildung 4.130). Der Nachteil an dem globalen Einchecken ist die Tatsache, dass wirklich alle Elemente eingecheckt werden. Wenn jemand gerade dabei ist, etwas zu ändern, so wird auch dieses Element eingecheckt und jemand anders kann es ebenfalls ändern. Seien Sie also vorsichtig mit dieser Funktion und achten Sie darauf, wer gerade online ist.
Abbildung 4.130: Global Check-in
159
Sandini Bib
Sandini Bib
5
Nützliche Erweiterungen
Kommen wir in den schier unerschöpflichen Bereich der Erweiterungen von Joomla!. So schön die Standardvariante auch ist, schnell werden Sie Komponenten, Module und Mambots suchen, mit denen Sie Ihre Website erweitern können. Dank der modularen Struktur von Joomla! ist es sehr einfach, Erweiterungen vorzunehmen. Ich habe sechs populäre Erweiterungen ausgesucht, die ich Ihnen vorstellen werde: ein Forum einen Kalender eine Bildergalerie für Fotos eine Möglichkeit, um überall Kommentare zu posten ein Dokumentenverwaltungssystem einen Online-Shop die Erstellung von mehrsprachigen Seiten mit Joomla!
Falls Sie selbst auf die Suche gehen wollen, so sind Sie bei http://developer.joomla.org/ an der richtigen Adresse. Hunderte von Komponenten, Modulen, Mambots, Templates und Sprachdateien warten auf Sie. HinweisHinweis Der Markt für zusätzliche Erweiterungen ist naturgemäß ein sehr dynamischer. Mittlerweile gibt es auch kommerzielle Erweiterungen für Joomla!. Bevor Sie etwas kaufen, sollten Sie sich genau überlegen, was Sie wollen und ob es nicht schon brauchbare Ansätze für Ihr Thema gibt, an deren Weiterentwicklung Sie sich beteiligen können. Helfende Hände werden immer benötigt und konkrete Anwendungen, die über ein Gästebuch hinausgehen, sind auch für andere interessant. Vielleicht starten Sie auch bald Ihr eigenes Projekt!
Sandini Bib 5 Nützliche Erweiterungen
5.1
Forum
Es gibt verschiedene Ansätze zum Thema Forum. Grundsätzlich geht es immer darum, x Foren mit x Themen, in denen x Benutzer x Beiträge schreiben, möglichst einfach anzuzeigen und zu verwalten. Alles zusammen nennt man dann Board. Ein wirklich gutes Board ist die Komponente der Two Shoes M-Factory1 mit dem bezeichnenden Namen Simpleboard. Das Projekt hat auch schon einen Platz auf dem Entwicklungsserver von Joomla!.2
5.1.1
Was kann Simpleboard?
Eines der größeren Probleme bei Open Source-Software ist oft das fehlende Handbuch in der Muttersprache und der fehlende Überblick, welche Funktionen die Software eigentlich bietet. Sie sollten versuchen, so viel wie möglich über die jeweilige Software in Erfahrung zu bringen, bevor Sie sie installieren. Hier also nun ein Überblick über die Funktionen von Simpleboard.
Simpleboard-Administratorfunktionen Volle Integration in die Joomla!-Administration Benutzer, die ein Konto auf Ihrer Website haben, werden in der Forumskomponen-
te erkannt. Über die normalen Benutzerdetails hinaus kann sich jeder Benutzer ein Forumsprofil anlegen. Benutzerprofile sind vom Administrator änderbar. Sie können Foren mit Zugriffsberechtigungen versehen. Die Benutzer können ihre eigenen Einträge verändern und sehen die vorherigen
Einträge des Themas, wenn sie einen Beitrag schreiben. Man kann einen Mindestzeitraum zwischen zwei Beiträgen bestimmen, um vor
Flood-Angriffen sicher zu sein. Es gibt Forumskategorien, um eine übersichtliche Struktur aufzubauen. Mit dem CSS Template-Editor kann das Erscheinungsbild angepasst werden.
Administratorfunktionen direkt aus dem Forum heraus Ändern, Löschen und Verschieben von Beiträgen Ab- und Aufschließen von Themen, so dass niemand mehr posten kann Positionieren eines Themas am Beginn der Themenliste eines Forums
Funktionen für alle Besucher Schreiben von Beiträgen Einbindung von Smileys und BB-Code zur Textauszeichnung ohne HTML-Kennt-
nisse Zwei Sichten auf die Beiträge (untereinander oder Baumstruktur)
Funktionen für registrierte Benutzer Eigenes Benutzerprofil Man kann sich ein Thema merken und wird bei Neuigkeiten per E-Mail benach-
richtigt. Anlegen einer Signatur, die automatisch unter jedem Beitrag eingeblendet wird Upload von Dateien und Bildern zu einem Eintrag
5.1.2
Installation von Simpleboard
Auf der Website von Simpleboard empfehlen die Entwickler folgende Voraussetzungen für die Installation: eine PHP-Version höher als 4.3.2 (ab PHP 4.1.0 funktioniert das Forum) eine MySQL-Version höher als 4.0 eine Tasse Kaffee oder Ähnliches
Unsere lokale XAMPPLITE-Version erfüllt bis auf den Kaffee alle Bedingungen. Laden Sie sich also die Datei Simpleboard-1.1.0-Stable.zip auf Ihren Rechner.3 Diese Version ist ursprünglich für Mambo 4.5.2 entwickelt worden, funktioniert aber auch hervorragend mit Joomla! 1.0. Klicken Sie in der Menüleiste auf INSTALLER – COMPONENTS. Durchsuchen Sie Ihren Rechner nach der oben angegebenen Datei und klicken Sie auf den Button UPLOAD & INSTALL. Der Installer lädt das Paket auf Ihren Server, packt die einzelnen Dateien aus, legt die benötigten Tabellen in der Datenbank an und meldet sich dann mit weiteren Hinweisen (Abbildung 5.1). Das war’s! Wenn Sie die Meldung Upload component – Success sehen, ist die Komponente installiert. Die Datenbanktabellen wurden angelegt und Ihre Joomla!-Administration wurde entsprechend angepasst. Klicken Sie auf den Link CONTINUE und danken Sie dem Joomla!-Entwicklungsteam für diesen wundervollen Installer4 und der Two Shoes M-Factory für ihr Forum. Unter den installierten Komponenten sehen Sie jetzt eine Komponente mehr, nämlich Ihr gerade installiertes Simpleboard-Forum.
3 4
URLs zum Download finden Sie im Anhang. http://www.joomla.org/content/blogcategory/13/29/.
163
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.1:
Erfolgreiche Installation der Forumskomponente
Deinstallation Die Deinstallation funktioniert ähnlich einfach. Wählen Sie die Komponente aus und klicken Sie auf das Icon UNINSTALL. Die Komponente wird inklusive der Daten rückstandsfrei gelöscht.
5.1.3
Administration von Simpleboard
Im Menü Components finden Sie nach der Installation einen neuen Eintrag. Rufen Sie COMPONENTS – SIMPLEBOARD auf und Sie sehen das Control Panel Ihrer Forumskomponente (Abbildung 5.2).
Abbildung 5.2: Simpleboard Control Panel
164
Sandini Bib 5.1 Forum
Hier befinden sich elf Icons für den Schnellzugriff auf Funktionen des Forums. HinweisHinweis Unten rechts auf dem Control Panel steht ein PayPal-Spendenbutton. Wenn Sie mit dem Forum zufrieden sind, sollten Sie ruhig spenden. Es steckt sehr viel Arbeit in solchen Komponenten und auch Programmierer müssen essen und Miete zahlen und freuen sich über die Anerkennung ihrer Arbeit.
In dieser Komponente ist es möglich, eine deutsche Sprachdatei zu installieren, und die gesamte Forumadministration erscheint danach in deutscher Sprache. Laden Sie sich die Datei SB1.1_stable_deutsch.zip und entpacken Sie diese.5 Ich habe die Datei bei alphanostrum.net entdeckt. Im Paket finden Sie eine Datei mit dem Namen faq.php und eine Datei germanf.php. Kopieren Sie die Datei faq.php in das Verzeichnis [PfadzuJoomla!]/components/com_simpleboard/ und die Datei germanf.php in das Verzeichnis [PfadzuJoomla!]/administrator/components/com_simpleboard/language/. Jetzt kommt es auf Ihre Installation an. Wenn Sie den Beispielen im Buch gefolgt sind, haben Sie bereits über die globale Konfiguration eine deutsche Joomla!-Version eingestellt. Ihre globale Sprachdatei heißt germanf.php. und das Forum erscheint jetzt automatisch in deutscher Sprache. Die Übersetzung ins Deutsche ist eine atemberaubende Mischung aus Deutsch und Englisch, die mich immer wieder zweifeln lässt, ob man Administrationsoberflächen wirklich übersetzen sollte. Urteilen Sie selbst.
Simpleboard-Konfiguration Hier legen Sie die grundsätzliche Konfiguration Ihrer Simpleboard-Komponente fest (Abbildung 5.3). Sie sehen sieben Reiter mit Parametern. Grundlagen Geben Sie hier Ihrem Board einen Namen und fügen Sie Ihre E-Mail-Adresse ein. Wie bei Joomla! selbst haben Sie auch im Forum die Möglichkeit, das Forum »abzuschalten« und eine entsprechende Meldung anzeigen zu lassen (Forum Offline Nachricht). Bei Forum-Zeitverschiebung können Sie die Zeitbasis verändern. Für Deutschland ist 0 die richtige Einstellung. Default Ansicht Typ: Hier wählen Sie eine von zwei möglichen Ansichten für die Forumseinträge aus. Es gibt eine Baumdarstellung der Forumseinträge (Direktansicht) und eine Darstellung, in der alle Einträge hintereinander gezeigt werden (Kompaktansicht).
5
Downloadmöglichkeit siehe Anhang.
165
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.3: Simpleboard-Konfiguration Aktiviere RSS Feed: Hier können Sie auf der Forumsseite einen RSS-Button einblenden, der eine entsprechende XML-Datei für ein News Feed der neuesten Forumsbeiträge erstellt. PDF-Funktionalität einschalten: Hier können Sie von jedem Forumseintrag ein PDFDokument erzeugen. Kopf: Hier können Sie einen Text eingeben, der im Kopfbereich des Forums erscheint. Frontend Hier gibt es vier Blöcke von Parametern. Sie können die Standardeinstellungen übernehmen. Außerdem können Sie nach Herzenslust Bereiche der Anzeige an- und abschalten und viele nützliche »Kleinigkeiten« festlegen. Sicherheit Standardmäßig ist das Board so eingestellt, dass jeder Besucher lesen und schreiben darf, der Flood-(Überlauf-)Schutz ausgeschaltet ist und ein Moderator eine E-Mail bei einem neuen Posting erhält. Auch hier können Sie die Werte zunächst so belassen. Avatare Avatare sind kleine Bilder, die dem Benutzer zugeordnet werden können und bei seinen Beiträgen im Forum angezeigt werden. Es gibt eine Bibliothek von vorhandenen Bildern. Hier können Sie Einstellungen zum Benutzer-Upload, der Größe der Bilder und der Dateigröße vornehmen.
166
Sandini Bib 5.1 Forum
Hochladen Diese Funktionalität ist sehr interessant. Jeder Benutzer kann zu jedem Beitrag eine Datei und/oder ein Bild hochladen. Beides wird dann gemeinsam mit seinem Beitrag angezeigt. Unter diesem Reiter stellen Sie ein, ob und wenn ja, was genau Sie zulassen wollen. Zeige Ranking Ein Ranking in einem Forum ist eine nette Sache. Abhängig von der Anzahl der Beiträge erhalten Sie einen Namen und ein Bild. Dadurch kann der Besucher gut »Neulinge« von »alten Forumshasen« unterscheiden. Hier stellen Sie ein, wie die einzelnen Stufen heißen sollen und bei wie viel Beiträgen ein Wechsel stattfindet. Integration Hier können Sie verschiedene andere Komponenten in das Simpleboard integrieren. Als Beispiel sei hier der Diskussions-Mambot genannt, der bei entsprechendem Eintrag in den Text des Inhaltselements eine Art Kommentarfunktion erlaubt. Unter den Inhaltselementen taucht die Möglichkeit auf, einen Kommentar zu posten. Dieser Kommentar wird dann wie ein Thema in einem Forum behandelt. Durch diesen Schachzug können Sie Diskussionen über Inhalte geschickt ins Forum verlagern.
Forum Administration Hier legen Sie die eigentlichen Foren und die Forenkategorien an. Klicken Sie auf das Icon NEW. Sie erhalten eine Eingabemaske mit drei Reitern (Abbildung 5.4).
Abbildung 5.4: Foren und Kategorien anlegen Basics Bevor Sie ein Forum anlegen können, müssen Sie erst eine Kategorie erstellen, beispielsweise mit dem Namen Cafeteria und einer kleinen Beschreibung. Advanced Hier legen Sie die Zugriffsberechtigungen auf die Kategorie fest.
167
Sandini Bib 5 Nützliche Erweiterungen
Moderation Der Reiter Moderation hat auf Kategorien keine Auswirkung, steht aber hier trotzdem zur Verfügung, da dieses Formular für das Anlegen von Kategorien und Foren benutzt wird. Speichern Sie die Kategorie durch einen Klick auf das Icon SAVE ab und in Ihrer Übersicht taucht diese Kategorie als noch unveröffentlicht auf (Abbildung 5.5).
Abbildung 5.5: Neue Kategorie Cafeteria Jetzt wiederholen Sie den Vorgang und erstellen ein Forum. Nennen Sie es Tipps & Tricks und tippen Sie eine Beschreibung ein. Als zugeordnete Kategorie wählen Sie die eben erstellte Cafeteria aus. Klicken Sie auf das Icon SAVE. In Ihrer Übersicht sind jetzt zwei Einträge (Abbildung 5.6).
Abbildung 5.6: Veröffentlichung eines neues Forums Veröffentlichen Sie beide durch einen Klick auf PUBLISH und die Minimalversion Ihres Forums ist fertig. Einbinden des Forums in Ihre Website Jetzt müssen Sie das eben erstellte Forum noch in das Hauptmenü einbinden, damit man über einen Link auf Ihrer Website dorthin kommt. Klicken Sie auf MENU – MAINMENU und das Icon NEW. Wählen Sie im darauf folgenden Dialog Component aus und klicken Sie auf NEXT (Abbildung 5.7). Geben Sie dem neuen Menüeintrag einen Namen (Forum) und wählen Sie in der Komponentenliste Simpleboard Forum aus. Lassen Sie den Zugriff auf Public und klicken Sie auf das Icon SAVE.
168
Sandini Bib 5.1 Forum
Abbildung 5.7: Neuer Menüeintrag auf eine Komponente Wenn Sie nun auf Ihre Website wechseln und die Seite neu laden, so sollte in Ihrem Hauptmenü ganz unten ein neuer Eintrag stehen (Forum). Wenn Sie ihn anklicken, startet Ihre neue Komponente (Abbildung 5.8).
Abbildung 5.8: Forum auf der Website
Nutzer Administration Hier können Sie die vorhandenen Benutzerprofile ändern. Momentan ist die Liste noch leer. Legen Sie sich einfach ein Profil an (siehe Kapitel 5.1.4) oder posten Sie einfach einen Beitrag. Schon haben Sie ein paar Einträge auf der Liste (Abbildung 5.9). Durch einen Klick auf das Icon EDIT USER PROFILE können Sie die Profile bearbeiten.
Abbildung 5.9: Simpleboard User Profile Manager
169
Sandini Bib 5 Nützliche Erweiterungen
Dateien Browser Im Dateien Browser können Sie zu den Einträgen hochgeladene Dateien verwalten (Abbildung 5.10). Sie können eine Datei löschen (ENTFERNE VOLLSTÄNDIG) oder in den entsprechenden Beitrag im Forum springen (ÖFFNE NACHRICHT).
Abbildung 5.10: Simpleboard Dateibrowser
Hochgeladene Bilder Browser Im Bilderbrowser können Sie die zu den Einträgen hochgeladenen Bilder verwalten (Abbildung 5.10). Sie haben die gleichen Möglichkeiten wie im Dateien Browser.
Editiere CSS Datei Wie Joomla! enthält auch das Forum Templates. Die entsprechende CSS-Datei können Sie über die Joomla!-Administration ändern (Abbildung 5.11).
Abbildung 5.11: Simpleboard Template CSS Editor Weitere Templates finden Sie auf der Two Shoes M-Website.
170
Sandini Bib 5.1 Forum
Bereinige Foren Foren leben von Diskussionen. Wenn es viele Themen, aber wenig Antworten gibt, so ist das nicht besonders ergiebig. Die Funktion BEREINIGE FOREN bietet die Möglichkeit, Themen, zu denen keine Antworten vorhanden sind, zu löschen. Sie müssen das Forum und die Anzahl der Tage, die Sie bearbeiten wollen, auswählen.
Bereinige Nutzer Diese Funktion synchronisiert die Benutzer der Joomla!-Benutzerverwaltung mit denen der Komponente Simpleboard. Wenn beispielsweise in Joomla! Benutzer gelöscht werden, so werden sie nach Einsatz dieser Funktion auch in Simpleboard gelöscht.
Support Webseite Hier ist ein Link zur Website der Two Shoes M-Factory. Auf der Site finden Sie diverse Foren, Downloads und Neuigkeiten über die Forumskomponente.
Lade Beispiel Daten Ein Klick auf diesen Button lädt Beispieldaten in Ihr Forum. Beispieldaten sind immer praktisch zum Üben. Diese Funktion steht nur direkt nach der Installation zur Verfügung. Auf der Webseite, die nach der Installation erscheint, finden Sie ebenfalls einen Link zu den Beispieldaten (Abbildung 5.1).
Aktualisiere Datenbank auf Version: 1.1.0-Stable Falls Sie eine ältere Version von Simpleboard installiert hatten, können Sie nach einem Klick auf dieses Icon Ihre Datenbankstruktur aktualisieren. In unserem Fall ist die Datenbank aktuell.
5.1.4
Benutzer Frontend
Wenn Sie das Forum auf Ihrer Website eingebunden haben (siehe Kapitel 5.1.3), können Sie als Besucher der Seite Themen (Topics) und Einträge (Postings) erstellen (posten). Standardmäßig ist ein neu erstelltes Forum leer. Das wirkt für unerfahrene Benutzer verwirrend. Gewöhnen Sie es sich an, eine Begrüßungsnachricht zu posten. Der erste Beitrag legt das Thema (Überschrift) fest. Klicken Sie also zuerst auf den Link Forum im Hauptmenü, dann auf Tipps & Tricks in der Forenliste und zuletzt auf den Link Erstelle neue Überschrift. In der angezeigten Maske können Sie einen Eintrag verfassen (Abbildung 5.12). Der integrierte Editor ist leider nicht der WYSIWYG-Editor von Joomla!, sondern ein Editor, der auf den BB(Bulletin Board)-Codes beruht. Diese Codes sind in Forensoftware sehr verbreitet. Die Buttons mit den Buchstaben entsprechen den gleichnamigen HTML-Tags:
171
Sandini Bib 5 Nützliche Erweiterungen
b – bold (fett) i – italic (Schrägschrift) u – underline (unterstrichen) quote – Zitat eines anderen Postings ul –unordered list (Aufzählung) ol – ordered list (nummerierte Aufzählung) li – list item (Listenelement) img – image (Bild) URL – Link
Abbildung 5.12: Einen Forumseintrag erstellen Wenn Sie mit der Maus über die Links fahren, wird ein Hilfetext über dem Eingabefenster angezeigt. Unter dem Eingabefenster besteht die Möglichkeit, ein Bild und/oder eine Datei zu Ihrem Eintrag hinzuzufügen.
172
Sandini Bib 5.1 Forum
Exkurs In den Abbildungen sehen Sie einen Fehler in der Sprachdatei. Die Konstanten _GEN_PDF und _GEN_EMAIL sind in der Sprachdatei scheinbar nicht enthalten. Fügen Sie die beiden Zeilen DEFINE('_GEN_PDF','PDF'); DEFINE('_GEN_EMAIL','E-Mail');
in die Datei [PfadzuJoomla!]/administrator/components/com_simpleboard/ language/germanf.php ein. Darunter sehen Sie noch eine Checkbox (ABONNIERE). Die sollten Sie ankreuzen, wenn Sie über Antworten auf Ihren Beitrag per Mail informiert werden wollen. Klicken Sie auf den Button ERSTELLEN, nachdem Sie einen kleinen Text geschrieben haben. Der Beitrag wird gespeichert und Sie erhalten die Möglichkeit, zu verschiedenen Stellen des Forums per Link zu verzweigen. Nach ein paar Sekunden verzweigt das Programm selbst auf Ihren Eintrag (Abbildung 5.13).
Abbildung 5.13: Forumseintrag Sie können sich den Themenbaum als PDF-Datei durch einen Klick auf den PDF-Link anzeigen (Abbildung 5.14). Andere Benutzer oder Sie selbst können jetzt auf diesen Beitrag etwas antworten. Schreiben Sie eine kurze Antwort, vielleicht unter einem anderen Benutzernamen. Der neue Eintrag wird unter Ihrem ersten Eintrag angezeigt. Wenn Sie nun auf den Link TIPPS & TRICKS klicken, landen Sie in der Themenübersicht (Überschriften) und Ihr Willkommensgruß ist die erste Überschrift. Hier sehen Sie, dass bereits viermal auf diesen Beitrag zugegriffen wurde und es eine Antwort gibt. Die letzte Antwort wurde vom Benutzer admin geschrieben.
173
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.14: PDF-Ansicht eines Forumseintrags
Abbildung 5.15: Überschriften des Forums Tipps & Tricks (Kompaktansicht)
Abbildung 5.16: Überschriften des Forums Tipps & Tricks (Direktansicht) In der Linkleiste über dem Forum sehen Sie den Link KOMPAKTANSICHT oder DIREKTANSICHT. Hinter der Kompaktansicht verbirgt sich eine Liste der Überschriften. In der Liste der Überschriften wird die Anzahl der Antworten angegeben. Jede Überschrift
174
Sandini Bib 5.1 Forum
erzeugt nur eine Zeile (Abbildung 5.15). In der Direktansicht dagegen wird eine Baumstruktur angezeigt. Diese Übersicht verbraucht mehr Platz, hat aber den Vorteil, dass Sie die Antworten zur Überschrift besser verfolgen können (Abbildung 5.16). Klicken Sie auf einen dieser Links und beobachten Sie, wie sich die Anzeige verändert.
Benutzerprofil anlegen Rufen Sie das Forum auf Ihrer Website auf, klicken Sie auf den Link Mein Profil und stellen Sie das Profil wie gewünscht ein. Bevorzugte Ansicht: Wählen Sie die Kompakt- oder die Direktansicht aus. Sortierung: Legen Sie hier fest, wie die Sortierung der Überschriften erfolgen soll. Signatur: Hier können Sie einen Text bestimmen, der automatisch unter jedem Beitrag erscheint, den Sie erstellen.
Abbildung 5.17: Forums-Avatare Avatar: Hier können Sie ein Bild von sich hochladen oder aus einer Liste vorhandener Avatare eins auswählen (Abbildung 5.17). Selbstverständlich finden Sie verschiedene Avatarsammlungen zum Nachinstallieren auf der Website von Simpleboard.
5.1.5
Simpleboard-Module
Zu der Komponente Simpleboard gibt es natürlich auch Module. Als Beispiel möchte ich Ihnen ein Modul zeigen, das die letzten fünf Forumseinträge auf der Website anzeigt.
175
Sandini Bib 5 Nützliche Erweiterungen
Installation Laden Sie sich die Datei mod_simpleboard5.zip und installieren Sie sie über den Menüpunkt INSTALLERS –> MODULES. Nach der Installation erscheint in der Modulliste ein neues Modul namens mod_simpleboard5. Klicken Sie auf MODULES –> SITE MODULES, versehen Sie das neue Modul mit einem Namen und bestimmen Sie die Seiten, auf denen es erscheinen soll. Ich nenne es Letzte Forumseinträge und veröffentliche es auf allen Seiten im rechten Template-Bereich. Auf der Website werden nun die fünf letzten Forumseinträge angezeigt (Abbildung 5.18).
Abbildung 5.18: Simpleboard-Modul
5.2
Kalender
Ein Kalender ist praktisch für Websites, auf denen viele Termine verwaltet werden müssen. Für Joomla! gibt es eine beliebte Komponente mit dem unspektakulären Namen Events.6
5.2.1
Installation
Laden Sie sich die Datei com_events-1.2.zip herunter und installieren Sie diese über den Menüpunkt INSTALLERS –> COMPONENTS. Nach der Installation erhalten Sie die Nachricht, dass die Komponente installiert wurde, und Hinweise zur weiteren Vorgehensweise: New demo web site for Events Calendar. Check out http://mosevents.sourceforge.net ATTENTION Please open Components :: Events :: Edit config and change the Admin email address! Then, open Components :: Events :: Manage events categories and set up your categories. You have to set up and publish at least one before you can add any event.
6
Eine Demoversion finden Sie unter http://mosevents.sourceforge.net/.
176
Sandini Bib 5.2 Kalender
Außerdem erscheint in der Komponentenliste ein neues Modul namens Events. In der Kalenderkomponente ist die Administration in englischer, die Anzeige auf der Website jedoch automatisch in deutscher Sprache.
5.2.2
Konfiguration
Klicken Sie auf COMPONENTS –> EVENTS. Sie sehen drei Menüeinträge: MANAGE EVENTS, MANAGE EVENT CATEGORIES und EDIT CONFIG. Da wir die Hinweise beherzigen wollen, beginnen wir in umgekehrter Reihenfolge.
Events Config Hier sehen Sie das mittlerweile bekannte Karteireiter-Konfigurationsprinzip. Im ersten Reiter CONFIG gibt es drei Gruppen von Parametern. In der ersten Gruppe geht es um die Parameter für die Komponente (Abbildung 5.19).
Abbildung 5.19: Events Component Parameters Admin Mail: Ändern Sie hier die E-Mail-Adresse in Ihre eigene. Admin Level: Hier legen Sie fest, wer Termine eintragen darf. Sie haben die Wahl zwischen registrierten und special Benutzern. First day: Mit welchem Tag soll die Woche beginnen? Sonntag oder Montag? View mail, View »By«, View »Hits«, View Repeat and time: Verschiedene Anzeigeoptionen für einzelne Termine
177
Sandini Bib 5 Nützliche Erweiterungen
Date Format: Hier können Sie das Format des Datums auf Deutsch umstellen. Es erscheint dann in dieser Form (Sonntag, 27. März 2005). Use 12hr time Format: Hier können Sie zwischen einer 12h- und einer 24h-Anzeige wechseln. Navigation Bar Color: Hier bestimmen Sie die Farbe des Navigationsbalkens. Start Page: Hier können Sie auswählen, mit welcher Art der Anzeige der Kalender standardmäßig starten soll (Tag, Woche, Monat, Jahr, Monatsliste, Kategorien oder einem Suchfeld). No. of Events to List per page for week, month, or year views: Hier wird die Anzahl der Ereignisse angegeben, die in den Listen auf der ersten Seite erscheinen sollen. Der zweite Reiter STYLE enthält den CSS-Editor für Anpassungen des Layouts. Hier gibt es übrigens einen sehr praktischen Button, der die CSS-Datei wieder auf die Standardwerte zurücksetzt, wenn Sie den Überblick verloren haben.
Manage Event Categories Bevor Sie ein Ereignis eingeben können, benötigen Sie eine Kategorie. Rufen Sie in der Menüleiste COMPONENTS –> MANAGE EVENT CATEGORIES auf und klicken Sie auf das Icon NEW.
Abbildung 5.20: Kalenderkomponente – neue Kategorie
178
Sandini Bib 5.2 Kalender
Hier können Sie eine Kategorie anlegen. Jede Kategorie erhält eine Farbe, damit sie im Kalender besser erkennbar ist. Außerdem können Sie ein Bild aus dem Media Manager zuordnen und positionieren. Durch einen Klick auf das Icon UPLOAD können Sie auch an Ort und Stelle ein Bild hochladen. Das Bild wird im Unterverzeichnis /images/ stories/ gespeichert. Die Beschreibung der Komponente können Sie mit dem Komfort des WYSIWYG-Editors erstellen. Klicken Sie nach der Bearbeitung auf das Icon SAVE zum Speichern. Danach müssen Sie die Kategorie noch im Event Categories Manager veröffentlichen.
Manage Events Nachdem Sie die Grundlagen für den Eintrag eines Termins geschaffen haben, können Sie nun zur Tat schreiten. Klicken Sie in der Menüleiste auf COMPONENTS –> EVENTS –> MANAGE EVENTS und danach auf das Icon NEW. Sie sehen ein Formular mit vier Reitern (Abbildung 5.21).
Abbildung 5.21: Termineintrag EVENTS Hier legen Sie die Kategorie, den Titel und die Beschreibung des Ereignisses fest. Für die Beschreibung steht Ihnen wieder der WYSIWYG-Editor zur Verfügung. Außerdem können Sie noch den Ort, den Ansprechpartner und eine Zusatzinformation hinterlegen. IMAGES Unter dem Reiter IMAGES können Sie dem Ereignis, ähnlich wie bei den Inhaltselementen, ein Bild aus dem Media Manager zuordnen (Abbildung 5.22).
179
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.22: Ereignis – Bilderzuordnung PUBLISHING Die Datumsangaben der Termine sind hier sehr komfortabel gelöst. Für die Eingabe des Datums gibt es nach einem Klick auf den Button mit den drei Punkten einen Popup-Kalender, in dem Sie per Mausklick den ersten und den letzten Tag des Ereignisses auswählen können (Abbildung 5.23). Außerdem können Sie im Kalender durch Klick auf die <<-Zeichen die Monate und Jahre durchblättern. Die Start- und Endzeit müssen Sie abhängig von den Einstellungen in Event Config im 12h- oder 24h-Format HH:SS eingeben. Ein komfortables Feature sind die Wiederholungstypen für Termine: Jeden Tag: Wählen Sie diese Option für ein sich wiederholendes ein- oder mehrtägiges Ereignis. Es wird ein neues Ereignis für jeden Tag innerhalb des Start- und Endzeitraums eingetragen. Jede Woche: Diese Option ermöglicht es, den Tag in der Woche zu setzen, an dem das Ereignis stattfindet. Mehrere Tage in einer Woche: Diese Option erlaubt die Variante mit mehreren Ereignissen an verschiedenen Wochentagen. Wochen: Hier können Sie auf Wochenbasis Ereignisse eintragen (z.B. alle 2 Wochen). Monat: Hier können Sie den Wiederholungstag für den Monat auswählen. Am Ende jeden Monats: Das Ereignis ist jeweils am letzten Tag eines Monats, falls der letzte Tag in den durch das Start- und Enddatum festgelegten Zeitraum fällt. Jahr: Diese Option erlaubt es, den Wiederholungstag für ein Jahr auszuwählen.
180
Sandini Bib 5.2 Kalender
Abbildung 5.23: Ereignis – Terminwahl HELP Im Reiter HELP werden die Datumsangaben in Ereignissen ausführlich in deutscher Sprache erklärt. Es gibt sogar den Fall des eintägigen Ereignisses, das über Mitternacht hinausgeht. HinweisHinweis Bitte beachten Sie den Spezialfall für ein eintägiges Ereignis über Mitternacht. D. h., für ein eintägiges Ereignis, das z.B. um 19:00 beginnt und um 3:00 endet, müssen Start- und Endedatum gleichlauten und auf das Datum vor Mitternacht gesetzt werden.
Einbinden des Kalenders auf Ihre Website Um einen Link zum Kalender auf der Website anzuzeigen, müssen Sie die Kalenderkomponente noch in das Hauptmenü einbinden. Klicken Sie auf MENU –> MAINMENU und das Icon NEW und wählen Sie im darauf folgenden Dialog Component aus und dann NEXT (Abbildung 5.7). Geben Sie dem neuen Menüeintrag einen Namen (Kalender) und wählen Sie in der Komponentenliste Events aus. Lassen Sie den Zugriff auf Public und klicken Sie auf das Icon SAVE.
181
Sandini Bib 5 Nützliche Erweiterungen
Wenn Sie nun auf Ihre Website wechseln und die Seite neu laden, so sollte in Ihrem Hauptmenü ganz unten ein neuer Eintrag stehen (Kalender). Wenn Sie ihn anklicken, startet Ihre neue Komponente (Abbildung 5.24).
Abbildung 5.24: Ereignisanzeige auf der Website
5.2.3
Benutzer Frontend
Wenn Sie sich auf der Website anmelden, dürfen Sie, abhängig von den Einstellungen in Event Config, Termine eintragen oder nicht. Wenn Sie die Erlaubnis haben, so erscheinen unter dem Kalender zwei Links, TERMINE EINTRAGEN und MEINE TERMINE. Hinter dem Link TERMINE EINTRAGEN verbirgt sich die gleiche Oberfläche, inklusive Hilfetext, wie sie auch in der Joomla!-Administration zur Verfügung steht. Hinter dem Link MEINE TERMINE sehen Sie alle Termine, die Sie unter diesem Benutzernamen eingetragen haben, dahinter steht jeweils ein ÄNDERN- und ein LÖSCHENLink (Abbildung 5.25).
Abbildung 5.25: Eigene Termine auf der Website
182
Sandini Bib 5.2 Kalender
Wenn Sie auf den Namen des Ereignisses klicken (die Unterstreichung ist in diesem Template deaktiviert), erhalten Sie die detaillierte Darstellung. Auch hier können Sie durch einen Klick auf das Bleistift-Icon in die Änderungsmaske gelangen (Abbildung 5.26).
Abbildung 5.26: Detailansicht – Termin mit Editor-Icon
5.2.4
Module
Zu der Komponente Event gibt es auch ein Modul, das den aktuellen Monat auf der Website anzeigt.
Installation Laden Sie sich die Datei mod_events_cal-1.1-beta.zip herunter und installieren Sie diese über den Menüpunkt INSTALLERS –> MODULES. Nach der Installation erscheint in der Modulliste ein neues Modul namens mod_events_cal. Klicken Sie auf MODULES – > SITE MODULES, benennen Sie das neue Modul und bestimmen Sie die Seiten, auf denen es erscheinen soll. Ich nenne es Termine und veröffentliche es auf allen Seiten im rechten Template-Bereich. Auf der Website wird nun der Monat mit verschiedenfarbig hinterlegten Tagen angezeigt und die Ereignisse werden verlinkt (Abbildung 5.27).
183
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.27: Event-Modul
5.2.5
Event Mambot
Um auch Termine über das Suchfeld (Search-Modul) durchsuchen zu können, gibt es den Event Mambot. Laden Sie sich die Datei bot_events_search-1.1.zip herunter und rufen Sie diese über die Menüleiste INSTALLERS –> MAMBOTS auf. Wählen Sie die Datei aus und klicken Sie auf den Button UPLOAD FILE & INSTALL. In der Liste der installierten Mambots taucht Search Events auf. Klicken Sie in der Menüleiste auf MAMBOTS –> SITE MAMBOTS und veröffentlichen Sie den eben installierten Event Mambot. Wenn Sie nun im Suchfeld Ihrer Website etwas eingeben, werden auch die Termine und Ereignisse durchsucht und bei einem Treffer in der Ergebnisliste angezeigt (Abbildung 5.28).
Abbildung 5.28: Suchfunktion im Frontend mit installiertem Event Mambot
5.3
Galerie
In einer Galerie finden Sie oft Bilder, Skulpturen, Installationen und ähnliche künstlerische Werke. Eine Galerie kann aber auch eine Sammlung von Schaufenstern in einer Ladenpassage oder ein einfaches Fotoalbum sein. Grundsätzlich geht es bei einer
184
Sandini Bib 5.3 Galerie
Galerie um visuelle Eindrücke. Das Internet wird zunehmend visueller und Bilder sagen oft mehr als tausend Worte. Für Galerien gibt es viele Einsatzbereiche: Wenn Sie beispielsweise eine Vereinswebsite aufsetzen wollen, fotografieren Sie vermutlich Ihre Vereinsveranstaltungen und Ihre Mitglieder. Stellen Sie die Bilder doch den Besuchern und/oder den registrierten Benutzern Ihrer Website zur Verfügung!
5.3.1
Zoom Media Gallery
Mike de Boer aus Rotterdam/Niederlande hat diese Komponente entwickelt. Auf seiner Website können Sie sich weiter umsehen, aktuelle Downloads laden, im Forum mitdiskutieren und auch eine Demo der Komponente ansehen.7
5.3.2
Installation Zoom Media Gallery
Laden Sie sich die Datei com_zoom_25b3.zip herunter.8 Es ist zwar noch eine Beta-Version, aber sie läuft bereits recht stabil. Bis zur Veröffentlichung des Buches wird es bestimmt eine stabile Variante geben. Installieren Sie die Datei über den Menüpunkt INSTALLERS –> COMPONENTS. Nach der Installation erscheinen neben der Nachricht, dass die Komponente installiert wurde, auch Hinweise zur weiteren Vorgehensweise (Abbildung 5.29).
Abbildung 5.29: Installation Zoom Gallery Klicken Sie auf den Link CONTINUE. In der Komponentenliste sehen Sie eine neue Komponente mit dem Namen zOOm Media Gallery Admin. 7 8
Standardmäßig wird diese Komponente (Version 2.5 Beta) bereits mit einer deutschen Sprachdatei ausgeliefert. Nach der Installation sehen Sie bereits deutsche Menübeschreibungen.
5.3.4
Administration Zoom Gallery
Im Menü COMPONENTS finden Sie einen neuen Menüpunkt (ZOOM MEDIA GALLERY ADMIN). Die Administration der Galerie besteht aus sechs Icons, die untereinander aufgelistet sind. Wenn Sie mit der Maus über die Icons fahren, erscheint ein kleines Fenster mit der jeweiligen Bedeutung (Abbildung 5.30).
Abbildung 5.30: Zoom Media Gallery – Administration
Album Manager Wie überall bei Inhalten benötigen Sie eine gewisse Ordnung. Im Falle von Bildern werden die Hierarchieebenen Alben genannt. Klicken Sie also auf das Icon ALBUM MANAGER und anschließend auf NEUES ALBUM. Neues Album Die Eingabemaske für ein neues Album ist in zwei Reiter geteilt. Unter dem Reiter Eigenschaften legen Sie die Eigenschaften des Albums fest (Abbildung 5.31), unter dem Reiter Mitglieder die Zugriffsberechtigungen für dieses Album.
186
Sandini Bib 5.3 Galerie
Abbildung 5.31: Neues Album erstellen Einfügen nach: Wie im System der Menüeinträge von Joomla! können Sie Alben beliebig verschachteln. Dazu müssen Sie hier das übergeordnete Album auswählen. Verberge »keine Bilder« Text: Wenn sich noch keine Bilder im Album befinden, wird der Text »keine Bilder« angezeigt. Wenn Sie das nicht wollen, kreuzen Sie die Checkbox an. Name Album: Dies ist der Name des Albums, der auf der Website erscheinen wird. Schlüsselwörter: Diese Schlüsselwörter werden bei der Suche berücksichtigt. Beschreibung: Diese Beschreibung wird auf der Website zum Album angezeigt. Veröffentlicht: Hier können Sie das Album bereits freigeben. Reiter: Mitglieder Allgemeiner Zugriff: Jeder Besucher der Website darf auf die Bilder zugreifen. Nur für Mitglieder: Nur registrierte Benutzer dürfen auf die Bilder zugreifen. Benutzername: Nur der namentlich ausgewählte Benutzer darf auf die Bilder zugreifen. Nach einem Klick auf das Icon SPEICHERN erhalten Sie noch eine Meldungsbox, dass das Album erstellt wurde, und gelangen dann automatisch auf die Liste der vorhandenen Alben. Wenn Sie ein Album bearbeiten wollen, wählen Sie es per Checkbox aus und klicken auf das Icon BEARBEITEN.
187
Sandini Bib 5 Nützliche Erweiterungen
Dateien hochladen, ändern, verschieben, ändernund löschen Der Media Manager, der sich hinter diesem Punkt verbirgt, bietet Ihnen die Möglichkeit, Ihre Bilder komfortabel zu verwalten. Abhängig von den zur Verfügung stehenden Bildbearbeitungsbibliotheken können Sie die Bilder sogar drehen und spiegeln.
Abbildung 5.32: Zoom Gallery – Media Manager Hochladen Sie können Dateien auf verschiedene Arten hochladen. Einzelne Datei Vermutlich werden Sie zunächst eine einzelne Datei hochladen wollen. Das Prinzip ist immer gleich. Zur Beschreibung des Bildes werden Dateiort, Album, Name, Schlüsselwörter und erläuternder Text angegeben (Abbildung 5.33). Mehrere Dateien Hier wird Ihnen das Formular für die einfache Datei mehrfach angezeigt, so dass Sie mehrere Bilder auf einmal hochladen können. Drag&Drop Falls Sie ein Java Plugin in Ihrem Browser und/oder eine Java-Laufzeitumgebung auf Ihrem Rechner installiert haben9, können Sie ein Java Applet, mit dem Sie ebenfalls mehrere Dateien auf einmal übertragen können, durch Klick auf den Link DRAG & DROP starten (Abbildung 5.34).
9
http://java.sun.com/products/plugin/.
188
Sandini Bib 5.3 Galerie
Abbildung 5.33: Hochladen einer Datei
Abbildung 5.34: Java Applet für den Datei-Upload
189
Sandini Bib 5 Nützliche Erweiterungen
In dieses Applet können Sie auch Dateien über einen normalen Dateidialog oder per Drag&Drop aus Ihrem Dateimanager in die Eingabemaske ziehen! All den Bildern ordnen Sie damit die gleiche Beschreibung zu. Durchsuche Verzeichnis Hier können Sie ganze Verzeichnisse nach Bildern durchforsten und auf einmal hochladen. HinweisHinweis Abhängig von Ihrer Serverkonfiguration und der von Ihnen verwendeten Version der virtuellen Java-Maschine kann es sein, dass der Mehrfach-Upload nicht funktioniert.
Einstellungen Der Einstellungsdialog ist ebenfalls in mehrere Reiter aufgeteilt. Layout Beim Arbeiten mit Bildern stellt sich immer das Problem der Größe und der Übersicht. Es hat sich eingebürgert, so genannte Thumbnails (kleine Vorschaubilder) zu erzeugen, die dann auf einer Seite wie ein Inhaltsverzeichnis angezeigt werden. Das hat den Vorteil, dass man ohne große Ladezeiten einen groben Überblick über die Bilder erhält. Wenn Sie auf ein Vorschaubild klicken, öffnet sich dann die große Variante des Bildes. Damit das funktioniert, müssen die Vorschaubilder automatisch erzeugt werden. Das ist nun nicht ganz so einfach und auf vielerlei Art möglich. Die Zoom Media Gallery bietet vier Varianten an: zwei externe Programme, die auf dem Server installiert sein müssen (ImageMagick10 und NetPBM11), und zwei in das PHP-Modul einkompilierte Bibliotheken (GD1 und GD2). Da Sie auf einem gemieteten Server vermutlich keinen Einfluss auf die Auswahl der installierten Software haben und beide recht viel Systemressourcen benötigen, sind die ersten beiden Optionen echte Glückssache. Bei einer lokalen Installation unter Windows oder Linux können Sie sich die Programme natürlich downloaden und installieren.
Abbildung 5.35: Einstellungen – Layout Ein drittes Programm, die Bibliothek GD12, hat den Vorteil, dass es in PHP bereits enthalten ist. Nun gibt es aber verschiedene PHP- und verschiedene GD-Versionen. Glücklicherweise wird in den Einstellungen automatisch erkannt, ob, und wenn ja, welche GD vorhanden ist, und automatisch ausgewählt. GD hat weniger Funktionen als die ersten beiden Programme, kann aber auf jeden Fall Vorschaubilder erzeugen! NetPBM und GD2 JPEG Qualität: Hier stellen Sie den Komprimierungsgrad in Prozent ein. Thumbnail max. Größe: Hier bestimmen Sie die Größe der Vorschaubilder in Pixel. Temporärer Name: Hier vergeben Sie einen Standardnamen. Temporäre Beschreibung: Hier können Sie eine Standardbeschreibung festlegen. Pfad zu FFmpeg: ffmpeg ist ein Kommandozeilenprogramm, um Dateien von einem Video-, Audio- oder Bildformat in ein anderes Format zu konvertieren. Es unterstützt auch das Aufnehmen und Enkodieren von einer TV-Karte in Echtzeit. Die Zoom Gallery benutzt dieses Tool, um Vorschaubilder von Videodateien zu erstellen. Pfad zu PDFtoText: Ein Programm, das PDF in Text umwandelt
Layout Hier können Sie auf eine optisch ausgefallene Art Parameter für Ihre Galerie einstellen (Abbildung 5.36). 12 http://www.boutell.com/gd/.
191
Sandini Bib 5 Nützliche Erweiterungen
Es geht dort um die Anzahl der Thumbnails auf einer Seite und das Ein- und Ausblenden von verschiedenen Optionen wie beispielsweise Kommentaren, Postkarten, Schlüsselwörtern, Suchfeldern etc. Außerdem kann hier die CSS-Datei der Zoom Media Gallery angepasst und eine Thumbnail-Sortierungsmethode ausgewählt werden.
Abbildung 5.36: Einstellungen – Zoom Settings
Safe Mode Die Sprache PHP kennt einen so genannten Safe Mode, in dem bestimmte Aktionen wie beispielsweise schreibende Dateizugriffe unter Umständen verboten sind und andere Dinge eingeschränkt werden.13 Der Safe Mode wird beispielsweise beim Webhoster Strato14 verwendet. Wenn der Safe Mode eingeschaltet ist, können auch keine Dateien hochgeladen werden. Datei-Uploads sind für die Galerie natürlich notwendig. Deswegen können Sie an dieser Stelle einfach Ihre FTP-Zugangsdaten eintragen, und PHP benutzt dann für das Hochladen der Bilder die eingebauten FTP-Funktionen.
Zugriffsrechte Hier legen Sie die Standardzugriffsrechte fest. Sie können hier den Benutzern erlauben: Bilder hochzuladen Bilder zu bearbeiten Bilder zu löschen ein Album zu erstellen ein Album zu bearbeiten ein Album zu löschen den HOCHLADEN-Link im Benutzermenü anzuzeigen
Abbildung 5.37: Einstellungen – Zugriffsrechte
Compute your Zoom Thumb codes easily Hier können Sie sich Thumb codes erstellen lassen. Es gibt verschiedene Erweiterungen zur Zoom Gallery, wie beispielsweise den Zoom Thumb Mambot. Er blendet, ähnlich wie der Image Mambot, Bilder aus der Zoom Gallery in Ihre Inhalte ein. Die entsprechend benötigten Codes können Sie sich unter diesem Menüpunkt erzeugen lassen. {moszoomthumb imgid=2}
Tabellen optimieren Mit dieser Funktion werden die Datenbanktabellen der Galerie aufgeräumt. Solche Aufräumungsarbeiten können hin und wieder notwendig werden, wenn beispielsweise Benutzer Dateien hochladen und den Vorgang während des Hochladens unterbrechen. Dann kann es vorkommen, dass bereits Einträge in der Datenbank erstellt werden, das passende Bild dazu aber nie ankommt.
193
Sandini Bib 5 Nützliche Erweiterungen
Update Zoom Media Gallery Hier können Sie sich über Updates der Galerie auf dem Laufenden halten. Der Link führt zur Website von Mike de Boer.
Einbinden der Galerie in Ihre Website Jetzt müssen Sie die Galerie noch in das Hauptmenü einbinden, damit sie auf Ihrer Website angezeigt wird. Klicken Sie auf MENU – MAINMENU und das Icon NEW. Wählen Sie im darauf folgenden Dialog Component aus und klicken Sie auf NEXT (Abbildung 5.7). Geben Sie dem neuen Menüeintrag einen Namen (Bildergalerie) und wählen Sie in der Komponentenliste Zoom Media Gallery Admin aus. Lassen Sie den Zugriff auf Public und klicken Sie auf das Icon SAVE. Wenn Sie nun auf Ihre Website wechseln und die Seite neu laden, so sollte in Ihrem Hauptmenü ganz unten ein neuer Eintrag stehen (Bildergalerie). Wenn Sie ihn anklicken, startet Ihre neue Komponente. Je nachdem, was Sie in den Einstellungen angegeben haben, sehen Sie nun Ihre Fotoalben mit einer Vorschau der darin enthaltenen Bilder. Wenn Sie auf den Albumlink klicken, sehen Sie alle enthaltenen Bilder als Vorschau. Wenn Sie auf eines der Vorschaubilder klicken, öffnet sich eine neue Seite mit dem Originalbild und den von Ihnen eingegebenen Informationen. Unter dem Bild befindet sich eine Möglichkeit, Kommentare zu hinterlassen.
5.3.5
Benutzer Frontend
Abhängig von den gesetzten Zugriffsrechten dürfen Sie Alben erstellen und Dateien hochladen. Dabei wird Ihnen eine ähnliche Oberfläche zur Verfügung gestellt wie in Kapitel 5.3.4 beschrieben. Sie erreichen diese Oberfläche über den Link BENUTZERSYSTEM.
Lightbox Die Lightbox ist eine persönliche Auswahl von Bildern, die angezeigt wird, wenn Sie auf das LIGHTBOX-Icon klicken. Sie können einzelne Bilder und ganze Alben in die Lightbox einfügen. Das LIGHTBOX-Icon finden Sie rechts oberhalb des Bildes.
E-Cards Jedes Bild können Sie als E-Card, zusammen mit einer Nachricht, an die E-MailAdresse eines Freundes verschicken. In der E-Mail befindet sich dann ein Link auf Ihre Karte. Das Verfallsdatum der E-Card können Sie in der Administration in den Einstellungen festlegen.
194
Sandini Bib 5.4 Kommentare
Kommentare und Bewertungen Jedes Bild ist kommentierbar und bewertbar. Sie können diese Funktionalität in den Einstellungen konfigurieren.
Abbildung 5.38: Zoom Gallery – Kommentare und Bewertungen Die Auswertungen der Daten können in separaten Modulen angezeigt werden.
5.3.6
Modul für die Zoom Media Gallery
Es gibt viele Module für Ihre Galerie: z.B. für Zufallsbilder, die letzten fünf, die am meisten besuchten, die mit den meisten Kommentaren und sogar ein ScrollingModul, das Zufallsbilder auf Ihrer Website scrollen lässt. Schauen Sie sich auf der Website von Mike de Boer um und probieren Sie ein paar Module aus.
5.4
Kommentare
Wenn Sie eine interaktive Website bevorzugen und an der Meinung Ihrer Besucher interessiert sind, wäre es schön, wenn Ihre Besucher Inhaltselemente kommentieren könnten. Mit der Komponente AkoComments von Arthur Konze ist genau das möglich.
195
Sandini Bib 5 Nützliche Erweiterungen
5.4.1
Installation
Laden Sie sich die Datei com_akocomment20.zip herunter und installieren Sie diese über den Components Installer (Abbildung 5.39). Laden Sie sich anschließend die Datei cb_akocommentbot.zip herunter und installieren Sie sie über den Mambots Installer (Abbildung 5.40).15 Aktivieren Sie den Mambot! Da die Komponente zum jetzigen Zeitpunkt (September 2005) noch nicht perfekt mit PHP5 zusammenarbeitet, müssen Sie in der Datei [Joomla!]/administrator/components/com_akocomment/toolbar.akocomment.php
Abbildung 5.39: Installation der AkoComment-Komponente
Abbildung 5.40: Installation von AkoComment Mambot
15 Ein Download ist in diesem Fall nur über die Seite mamboportal.com nach einer Registrierung möglich. Daher liegt die Datei nicht auf CD bei.
196
Sandini Bib 5.4 Kommentare
5.4.2
Administration
Im Menü COMPONENTS -> AKOCOMMENT finden sich drei Menüeinträge.
View Comments Hier können Sie die von Ihren Benutzern geposteten Kommentare bearbeiten. Da momentan keine Kommentare vorhanden sind, ist dieser Bereich leer.
Edit Settings Hier können Sie in vier verschiedenen Reitern Einstellungen festlegen. General Main Operating Mode: Hier können Sie entscheiden, ob immer Kommentare angezeigt werden sollen oder nur, wenn im Inhalt das Mambot-Kommando {moscomment} vorkommt. Sections available: Bei der automatischen Anzeige können hier die Bereiche ausgewählt werden, unter deren Inhaltselementen automatisch Kommentarfenster erscheinen sollen. Autopublish Comments: Hier können Sie festlegen, ob Kommentare automatisch freigeschaltet werden sollen und damit sofort auf der Seite erscheinen. Anonymous Comments: Sollen anonyme Kommentare erlaubt sein? Comment Window: Soll das Kommentarfenster im selben oder in einem eigenen Fenster erscheinen? Layout Comments Sorting: Sollen die ältesten oder neuesten Kommentare zuerst gezeigt werden? Form Position: Soll das Formular über oder unter den Kommentaren angezeigt werden? Posting BB Code Support: Sollen BB Codes zur einfachen Formatierung unterstützt werden? Picture Support: Sollen Bilder in Kommentaren erlaubt sein? Smilie Support: Sollen Smileys angezeigt werden? Notification Notify Admin: Soll der Admin bei einem neuen Kommentar eine Mail erhalten? Admin's Email: Die E-Mail Adresse, an die die Meldung geschickt werden soll
Edit Language Hier erhalten Sie ein Textfenster zum Ändern der deutschen Texte.
197
Sandini Bib 5 Nützliche Erweiterungen
5.4.3
Frontend
Wenn Sie nun auf Ihre Website gehen, werden Sie entsprechend Ihrer Einstellungen unter den Inhaltselementen ein Kommentarfenster sehen (Abbildung 5.41).
Abbildung 5.41: Kommentarfenster Hier können Ihre Besucher nun nach Herzenslust Ihre Inhalte kommentieren.
5.5
Dokumentenmanagement / Downloadbereich
Wenn Sie Dateien auf Ihre Website laden und in verschiedenen Benutzergruppen verwalten und diese Dateien mit individuellen Beschreibungen und beliebigen Lizenzen zum Download anbieten wollen, dann gibt es nur eine Komponente für Sie: DOCMan.16 Sie können verschiedene Arten von Dokumenten (Dateien) verwalten und zum Download bereitstellen. Durch die Möglichkeit, Kategorien und Benutzergruppen zu erstellen, können Sie sich so einen sehr übersichtlichen Downloadbereich auf Ihrer Website erstellen. DOCMan eignet sich auch hervorragend, um in geschlossenen Arbeitsgruppen relevante Dokumente an einer zentralen Stelle zu platzieren. 16 http://www.mambodocman.com/.
Laden Sie sich die Datei docmanV13_RC_1.zip17 und installieren Sie sie über den Component Installer.
Abbildung 5.42: Installation von DOCMan Im Komponentenmenü finden Sie jetzt den neuen Eintrag DOCMan mit vielen Untermenüs. Wenn Sie direkt den Hauptmenüpunkt DOCMan auswählen, gelangen Sie in das DOCMan-spezifische Control Panel (Abbildung 5.43). Über neun Icons können Sie direkt zu den Funktionen von DOCMan springen.
Abbildung 5.43: DOCMan Control Panel 17 Downloadmöglichkeit siehe Anhang.
199
Sandini Bib 5 Nützliche Erweiterungen
5.5.2
Deutsche Sprachdateien
Bevor wir uns intensiver mit der Administration beschäftigen, wollen wir zunächst die deutsche Sprachdatei installieren. Auch hier leistet das Team von JoomlaGTT wieder ganze Arbeit. Laden Sie das Sprachpaket JOOMLA_com_docman_german_1.3_RC1_ joomlaGTT.zip und entpacken Sie es in einem Verzeichnis Ihrer Wahl (Abbildung 5.44).
Abbildung 5.44: Deutsche Sprachdateien Diese Sprachdateien enthalten alle am Anfang das Wort german. Wenn Sie den Installationen in diesem Buch gefolgt sind, müssen Sie alle fünf Dateinamen so ändern, dass am Anfang germanf steht (german formal). Kopieren Sie nach der Namensänderung die Dateien in das Verzeichnis [PfadzuJoomla!]/administrator/components/com_docman/language
Wenn Sie nun die Administrationsseite im Browserfenster aktualisieren, ist die deutsche Übersetzung aktiv. Für das Frontend benötigen Sie eine zusätzliche Übersetzung. Laden Sie sich die Datei FRONTEND_com_docman_german_1.3_RC1.zip herunter und packen Sie sie aus. Die im Paket enthaltene Datei germanf.php kopieren Sie in das Unterverzeichnis PfadzuJoomla!]/components/com_docman/themes/default/language. Das Frontend von DOCMan erscheint jetzt auch in deutscher Sprache.
5.5.3
Administration
Ich werde kurz die Administration anhand eines konkreten Beispiels durchgehen. Wir wollen Dateien auf der Website zum Download anbieten, die einer bestimmten Lizenz unterliegen. Bevor der Besucher die Datei herunterlädt, muss er die Lizenz per Checkbox bestätigen. Eine Gruppe von Benutzern soll für die Datei verantwortlich sein und ein Administrator soll diese Gruppe per E-Mail benachrichtigen können.
Configuration Die vorgegebenen Parameter können Sie so belassen, wie sie standardmäßig eingerichtet sind. Sie können in dieser Einstellung Dateien mit dem Datentyp zip, rar, pdf und txt mit einer Größe bis zu einem Megabyte auf den Server laden. Alle registrierten Benutzer dürfen Dateien hochladen, Publisher dürfen die Dateien freigeben und Besucher der Seite dürfen sie herunterladen. Sie können diese und sehr viele andere Einstellungen in der DOCMan-Konfiguration verändern.
Durch einen Klick auf das Toolbar-Icon SAVE können Sie Ihre Einstellungen speichern, ein Klick auf das Icon CPANEL bringt Sie zurück in das DOCMan Control Panel.
Lizenzen Im Lizenz-Manager können Sie Ihre persönlichen Lizenzbedingungen formulieren. Sie können beliebig viele Lizenzen verwalten und später separat zu den Downloads zuordnen (Abbildung 5.45). Erstellen Sie hier eine Lizenz, die Sie später vom Besucher bestätigt haben wollen.
Abbildung 5.45: Verwaltung der Lizenzen
Gruppe Eine Gruppe von Benutzern, die für diese Datei zuständig ist, wird hier festgelegt. Alle Gruppenmitglieder benötigen ein Benutzerkonto in Ihrem Joomla!-System. Legen Sie beispielsweise eine Gruppe Politiker an (Abbildung 5.46).
Abbildung 5.46: Neue Gruppe Politiker Wenn Sie auf den Reiter Mitglieder klicken, können Sie hier die Mitglieder der Gruppe aus Ihren registrierten Benutzern auswählen (Abbildung 5.47).
Abbildung 5.47: Mitgliederzuordnung der Gruppe Politiker
201
Sandini Bib 5 Nützliche Erweiterungen
Durch einen Klick auf das Icon SAVE speichern Sie die Gruppe. Die neu erstellte Gruppe taucht jetzt in der Gruppenliste auf. Im rechten Bereich dieser Liste finden Sie ein E-Mail-Symbol. Durch einen Klick auf dieses Symbol können Sie an die Mitglieder der Gruppe eine Nachricht senden.
Kategorien Jetzt benötigen Sie eine Kategorie. Erstellen Sie sich eine mit dem Namen Verfassungen. Klicken Sie dazu auf das KATEGORIE-Icon im DOCMan Control Center und anschließend auf das Toolbar-Icon NEW.
Abbildung 5.48: Neue Kategorie Verfassungen Weisen Sie alle Parameter zu und speichern Sie die neue Kategorie durch einen Klick auf das Toolbar-Icon SAVE ab.
Dateien Um nun ein Dokument oder einen Download unserer Gruppe zuordnen zu können, benötigen wir natürlich erst mal eine Datei. Klicken Sie auf das Icon DATEIEN im DOCMan Control Center und laden Sie den ersten Entwurf der neuen EU-Verfassung (euverfassung.pdf) auf Ihren Server. Als ersten Schritt müssen Sie entscheiden, auf welche Weise die Datei auf Ihren Server befördert werden soll. Sie können die Datei vom lokalen Rechner hochladen, von einem anderen Server aus hochladen oder durch einen Link auf eine Datei auf einem anderen Server verweisen. Wir benötigen den ersten Fall (Abbildung 5.49).
Abbildung 5.49: Datei-Upload in DOCMan Nach einem Klick auf den Button NÄCHSTE >>> gelangen Sie in einen Upload-Dialog. Wählen Sie die gewünschte Datei aus. Falls Sie mehrere einzelne Dateien in einer gezippten Datei hochladen wollen, können Sie die Checkbox STAPEL MODUS (Stapelverarbeitung) ankreuzen. Das Zip-Archiv wird entpackt und jede Datei steht einzeln zur Verfügung (Abbildung 5.50).
Abbildung 5.50: Datei-Upload II in DOCMan Nach dem Hochladen erhalten Sie eine Erfolgsmeldung und einen Abfragebildschirm, ob sie weitere Dateien hochladen, in die Dokumentverarbeitung gehen oder die hochgeladenen Dateien anzeigen wollen. Wählen Sie die letzte Variante und lassen Sie sich die hochgeladenen Dateien anzeigen (Abbildung 5.51).
Abbildung 5.51: Liste der vorhandenen Dateien HinweisHinweis Auf einem Rechner, der – wie vermutlich bei Ihrem Provider – mit dem Betriebssystem Linux läuft, müssen Sie auf die Verzeichnisberechtigungen achten. Das standardmäßig von DOCMan angelegte Verzeichnis [PfadzuJoomla!]/dmdocuments muss für den Webserver schreibbar sein, sonst funktioniert der Upload von Bildern nicht. Benutzen Sie das chmod-Kommando oder die entsprechende Funktion in Ihrem FTP-Programm und setzen Sie die Verzeichnisattribute auf 0777. Auf der Kommandozeile sähe das so aus:
203
Sandini Bib 5 Nützliche Erweiterungen
chmod 0777 [PfadzuJoomla!]/dmdocuments
Legen Sie dieses Verzeichnis wenn möglich außerhalb des öffentlich zugänglichen Bereiches Ihres Webservers an. Wenn dieses Verzeichnis öffentlich zugänglich und sein Name außerdem bekannt ist, können die darin enthaltenen Dateien direkt heruntergeladen werden. Bei der zweiten Möglichkeit des Uploads müssen Sie den URL der gewünschten Datei und den Namen, den diese Datei auf Ihrem Server erhalten soll, eingeben. DOCMan lädt die Datei dann ohne Umweg über Ihren Rechner auf den Server. Die dritte Variante springt sofort in die Dokumentenverwaltung, wo der gewünschte Link dann mit den gewünschten Parametern zur Anzeige auf der Website versehen werden kann. Genau da wollen wir jetzt auch hin.
Dokumente Nachdem wir nun eine Gruppe, eine Kategorie und eine Datei haben, können wir alle drei Objekte miteinander verbinden. Öffnen Sie dazu durch einen Klick auf das Icon DOKUMENTE im DOCMan Control Center die Dokumentenverwaltung und klicken Sie auf das Toolbar-Icon NEW.
Abbildung 5.52: DOCMan Dokumente – Reiter Dokument Sie können hier einen ausführlichen Dateititel, ein im Media Manager vorhandenes Bild, die gewünschte downloadbare Datei, eine Kategorie, einen Datum/Zeitstempel und eine ausführliche Beschreibung eintragen (Abbildung 5.52). Im Ordner Rechte legen Sie fest, wer auf die Datei zugreifen darf (jeder) und wer dafür zuständig ist (Politiker) (Abbildung 5.53).
Abbildung 5.53: DOCMan Dokumente – Reiter Rechte Jetzt müssen wir uns noch um die Lizenzfrage kümmern. Klicken Sie auf den Reiter Lizenz, wählen Sie Ihre Lizenz aus und legen Sie fest, dass diese Lizenz explizit bestätigt werden muss (Abbildung 5.54).
Abbildung 5.54: DOCMan Dokumente – Reiter Lizenz Zu guter Letzt können Sie im Reiter Details noch eine Website angeben, die im Zusammenhang mit dieser Datei wichtig ist (Abbildung 5.55).
Abbildung 5.55: DOCMan Dokumente – Reiter Details Nachdem Sie den Download nun in allen Facetten beschrieben haben, klicken Sie auf das Toolbar-Icon SAVE und speichern die Daten ab. Sie gelangen wieder in die Liste der Dokumente. Veröffentlichen Sie Ihr Dokument und geben Sie es frei durch jeweils einen Klick auf die roten Kreuze (Abbildung 5.56).
Abbildung 5.56: Dokumentenliste
Einbindung in die Website Nach dieser Arbeit können Sie nun die DOCMan-Komponente in Ihre Website einbinden. DOCMan hat bereits einen Menüpunkt Docs angelegt. Diesen können Sie ändern, indem Sie den Menüpunkt übersetzen oder einen neuen anlegen. Für die
205
Sandini Bib 5 Nützliche Erweiterungen
Neuanlage fügen Sie im Menu Manager dem Hauptmenü einen weiteren Menüpunkt hinzu, kreuzen Component an, klicken auf das Toolbar-Icon NEXT und geben im anschließenden Formular die entsprechenden Beschreibungen ein.
Abbildung 5.57: Neuer Menüpunkt Dokumente Nach einem Klick auf das Toolbar-Icon SAVE hat Ihr Hauptmenü einen neuen Link zu Ihrem Dokumentenbereich. Sie sehen zunächst die verfügbaren Kategorien und gelangen durch einen Klick auf den Kategorienamen in die Auflistung der Dokumente (Abbildung 5.58).
Bevor Sie eine Datei herunterladen können, müssen Sie die der Datei zugeordnete Lizenz bestätigen.
Abbildung 5.59: Lizenzbestätigung vor dem Download
Themen Im Themes-Bereich können Sie wie bei den Site-Templates die HTML- und CSS-Datei der DOCMan Themes bearbeiten und neue Themes installieren (Abbildung 5.60).
Abbildung 5.60: DOCMan Themes
Statistik Hier sehen Sie die 50 am häufigsten heruntergeladenen Dateien.
Updates Nach einem Klick auf dieses Icon wird nach evtl. vorhandenen Updates gesucht und eine entsprechende Meldung angezeigt.
5.5.4
Module
Es gibt verschiedene Module für DOCMan. Um die am meisten heruntergeladenen Dateien auf der Website anzuzeigen, laden Sie sich die Datei mod_mostdownV10_RC_ 1.zip18 herunter und installieren sie über den Modul Installer. Schalten Sie das Modul frei, ändern Sie die Bezeichnung in eine deutschsprachige Überschrift und ordnen Sie es an einer Stelle Ihrer Wahl an.
18 Download siehe Anhang.
207
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.61: DOCMan Modul – beliebteste Downloads
5.5.5
Mambots
Um die Sache abzurunden, benötigen Sie noch einen Such-Mambot, damit die Beschreibungen Ihrer Downloads auch durchsuchbar werden. Laden Sie die Datei bot_searchV10_RC_2.zip herunter und installieren Sie sie über den Mambot Installer. Veröffentlichen Sie den Search Docman-Mambot und probieren Sie die Suche aus (Abbildung 5.62).
Abbildung 5.62: DOCMan Such-Mambot
5.6
Shopsystem
Shopsysteme werden immer benötigt und auch Joomla! hat hier einiges zu bieten. Die Komponente virtuemart19 bietet ein komplettes Shopsystem für Ihre Joomla!-Installation. virtuemart ist nach der Trennung von Mambo und Joomla! aus dem Mambo-phpShop hervorgegangen. Der Mambo-phpShop wiederum basiert auf dem phpShop in der Version 0.8.0.20 An dieser Stelle ein paar Features, um einen Eindruck von der Leistungsfähigkeit dieses Shopsystems zu bekommen: beliebig viele Produkte und Kategorien mit beliebiger Schachtelungstiefe Verkauf von downloadbaren Gütern wie MP3s, Videos und Software möglich 19 http://virtuemart.net/. 20 http://www.phpshop.org/.
208
Sandini Bib 5.6 Shopsystem
zusätzliche Attribute wie Größe und Farbe der Produkte Möglichkeit von Aktionspreisen Importmöglichkeit aus CSV-Dateien eine »Willkommen-Maske« zeigt Ihnen aktuelle Statistiken, beispielsweise die An-
zahl der Kunden und die Anzahl der Bestellungen Administration ist über das Frontend möglich Verwaltung unterschiedlicher Währungen und Länder verschiedene Lieferadressen für Kunden verschiedene Steuersätze SSL-Verschlüsselung Zahlung mit Kreditkarte und über viele Online-Paymentsysteme wie beispiels-
weise PayPal möglich Anhand dieser Features sehen Sie schon, dass es sich bei einer Shopeinrichtung um ein größeres Projekt handelt. Sind die Artikel noch verhältnismäßig einfach zu organisieren, so sind Sie spätestens bei Kreditkartenzahlungen auf Schnittstellen zu den gängigen Kartenfirmen angewiesen. Ein Shop verlangt ständige Pflege des Sortiments, Aktionspreise und Sonderaktionen auf der einen Seite, Kundenpflege, schnelle Bearbeitung der Bestellungen und Auslieferung auf der anderen Seite. Auch hier bietet virtuemart beispielsweise die Möglichkeit, den Kunden zu benachrichtigen, wenn seine Ware versendet wurde, und Übersichtsmasken für den Shopadministrator.
5.6.1
Installation
Die Installation gestaltet sich naturgemäß einfach. Laden Sie sich die Datei mambophpShop_1.2_stable-pl3_COMPLETE_PACKAGE.zip21 in ein Verzeichnis und entpacken Sie. In diesem Paket sind alle Komponenten, Module und Mambots, die Sie für einen erfolgreichen Shop benötigen. Installieren Sie zuerst die Datei com_phpshop_1.2_stablepl3.tar.gz über den Component Installer. Nach dem Upload werden Sie gefragt, ob Sie einen leeren Shop oder einen mit Beispieldaten haben wollen (Abbildung 5.63). Entscheiden Sie sich beim ersten Mal für die Beispieldaten und klicken Sie auf den Button INSTALL SAMPLE DATA. Die Installation der Beispieldaten kann ein paar Sekunden dauern, brechen Sie also die folgende Verarbeitung nicht ab. Wenn alle Tabellen korrekt erstellt worden sind, wird Ihnen die Verwaltungsoberfläche des Shops (Store Control Panel) angezeigt (Abbildung 5.64).
21 Downloadmöglichkeit siehe Anhang.
209
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.63: Begrüßungsmaske nach der Installation
Abbildung 5.64: Shop – Verwaltungsoberfläche Schauen Sie sich ein wenig in den Menüs um.22 Der Aufbau entspricht dem Joomla!System. Sie haben im oberen Bereich ein Menüsystem mit zwölf Menüs, im Hauptfenster neun Icons zum Sofortzugriff auf die gängigsten Menüpunkte und im rechten Bereich Reiter mit aktuellen Informationen über Bestellungen und Kunden. Für eine korrekte Funktion des Shops benötigen Sie mindestens ein Modul. Installieren Sie die Datei mod_phpshop_1.2_stable-pl3.tar.gz über den Module Installer. Gehen Sie in die Modulliste, suchen Sie das neue Modul und veröffentlichen Sie es. Wenn Sie jetzt auf Ihre Website gehen und die Anzeige aktualisieren, sollte das Modul mit den Beispieldaten erscheinen (Abbildung 5.65).
22 Zur Installation der deutschen Sprachdatei siehe nächstes Kapitel.
210
Sandini Bib 5.6 Shopsystem
Abbildung 5.65: Shop-Modul auf der Website Sie haben jetzt die minimale Konfiguration des Shops und er ist bereits funktionsfähig. Wenn Sie auf die Kategorien klicken, sehen Sie die Beispielartikel (Abbildung 5.66).
Abbildung 5.66: Beispielartikel Sie sehen bereits bei der Säge (Nice Saw), dass Preisgegenüberstellungen möglich sind (You Save x $). Die Artikel sind auch von den Kunden bewertbar. Durch einen Klick auf den Artikelnamen gelangen Sie in den Detailbereich (Abbildung 5.67). Sie können diese Säge in drei Größen und drei Leistungsstufen kaufen. Außerdem wird Ihnen die Verfügbarkeit angezeigt (1–4 Weeks). Wenn Sie sich im Frontend anmelden, könnten Sie eine Bewertung zu diesem Artikel schreiben.
211
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.67: Artikeldetails Wir haben nur noch ein Problem: Alles ist in englischer Sprache!
5.6.2
Deutsche Sprachdateien
Um den Shop in deutscher Sprache anzuzeigen, müssen Sie wieder ein Sprachpaket installieren. Laden Sie die Datei Language_Pack_for_mambo-phpShop_1.2_stable-pl3.tar.gz und entpacken Sie sie. In der Datei finden Sie zahlreiche Übersetzungen. Benennen Sie die Datei german.php um in germanf.php und kopieren Sie sie in das Verzeichnis [PfadzuJoomla!]administrator/components/com_phpshop/languages. Wenn Sie nun Ihren Shop ansehen, so sind alle Bezeichnungen in deutscher Sprache verfügbar.
5.6.3
Konfiguration
Die individuelle Konfiguration können Sie in folgender Reihenfolge durchführen. Starten Sie immer von der Shop-Startseite unter dem Menüpunkt COMPONENTS -> MAMBO-PHPSHOP.
Shopdaten bearbeiten Gehen Sie zuerst in das Menü IHR SHOP -> SHOPDATEN BEARBEITEN. Hier können Sie unter drei Reitern alle notwendigen Informationen über Ihren Shop eintragen. Sie können hier sogar Ihr Logo hochladen! Denken Sie an die Auswahl der richtigen Währung und deren Darstellung und natürlich an Ihre korrekte E-Mail-Adresse.
212
Sandini Bib 5.6 Shopsystem
Abbildung 5.68: Shopdaten
Steuersätze hinzufügen Rufen Sie danach im Menu STEUERN -> STEUERSÄTZE AUFLISTEN die Steuersatzliste auf. Fügen Sie über STEUERN -> STEUERSATZ HINZUFÜGEN alle Steuersätze hinzu, die Sie für Ihren Shop benötigen. Sie können die Steuersätze jeweils einem Land zuordnen.
Abbildung 5.69: Steuersatzliste
Konfiguration Im Menü ADMINISTRATION -> KONFIGURATION können Sie unter zahlreichen Reitern und in diversen Untermenüs Details zu allen relevanten Bereichen Ihres Shops festlegen. Die einzelnen Parameter sind selbsterklärend. Um beispielsweise das Feature downloadbare Güter zu benutzen, müssen Sie es im Reiter Downloads aktivieren (Abbildung 5.70).
Abbildung 5.70: Shopkonfiguration
213
Sandini Bib 5 Nützliche Erweiterungen
Sie können auch verschiedene bereits eingebaute Schnittstellen zu Liefersystemen konfigurieren.
Artikelkategorien Im Menüpunkt PRODUKTE -> KATEGORIEN sehen Sie eine Übersicht der bereits vorhandenen Shopkategorien. Über PRODUKTE -> NEUE KATEGORIE können Sie Ihre benötigten Kategorien hinzufügen. Sie können die Kategorien ähnlich wie im Menu Manager baumartig strukturieren, sortieren und löschen. Denken Sie daran, neu erstellte Kategorien zu veröffentlichen (Abbildung 5.71).
Abbildung 5.71: Artikelkategorien
Artikel Hier kommen nun endlich die eigentlichen Artikel. UNTER PRODUKTE -> NEUES PRODUKT können Sie Ihre Artikel anlegen. Über fünf Reiter können Sie alle relevanten Artikeldaten festlegen. Sie können auch Artikelbilder hochladen, Maße und Gewichte, die Verfügbarkeit des Artikels eintragen und verwandte Artikel definieren, die dann im Shop entsprechend angezeigt werden (Abbildung 5.72).
Abbildung 5.72: Artikel-Erfassungsmaske Die gesamte Artikelliste können Sie unter dem Menüpunkt PRODUKTE -> PRODUKTE sehen. Hier können Sie die Artikel bearbeiten, veröffentlichen, kopieren und löschen. AUFLISTEN
214
Sandini Bib 5.6 Shopsystem
5.6.4
Joomla!-Konfiguration
Damit der Shop richtig funktioniert, müssen Sie in der globalen Konfiguration von Joomla! ein paar Dinge beachten. Es muss möglich sein, sich als Benutzer zu registrieren (Allow User Registration).
Der Shop nutzt die Registrierung für den Bestellvorgang. Die Aktivierung des Benutzerkontos über einen E-Mail-Link muss deaktiviert sein
(New Account Activation). Der Shop benutzt die E-Mail-Konfiguration aus der globalen Konfiguration von
Joomla!. Search Engine Friendly Links (SEF) funktionieren prinzipiell gut, hin und wieder
kann es aber zu Fehlern kommen. Wenn Sie auf Nummer sicher gehen wollen, benutzen Sie dieses Feature nicht. Mehr über die Konfiguration erfahren Sie in einem englischen Tutorial unter http://mambo-phpshop.net/documentation/User_Manual/index.html.
5.6.5
Der Bestellvorgang
Der Kunde wählt die gewünschten Artikel aus und befördert sie durch einen Klick auf den Button BESTELLEN in den Warenkorb. Der Warenkorb wird im Standardmodul angezeigt. Durch einen Klick auf den Link WARENKORB ZEIGEN sieht der Kunde die detaillierte Auflistung der Artikel mit Einzelpreisen. Hier kann er die Bestellmenge ändern und den Artikel wieder aus dem Warenkorb entfernen (Abbildung 5.73).
Abbildung 5.73: Warenkorb mit zwei Artikeln Nach einem Klick auf den Button ZUR BESTELLUNG beginnt der mehrstufige Bestellvorgang. Die Anzahl und Gestaltung der Stufen hängen von der Konfiguration des Shops ab (Abbildung 5.74).
215
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.74: Bestellvorgang Auf der nächsten Seite muss sich der Kunde registrieren. Wenn er bereits ein Benutzerkonto hat, kann er sich hier mit seinem Benutzernamen authentifizieren. Wenn er noch kein Benutzerkonto hat, kann er sich in dem Formular auf der gleichen Seite ein Benutzerkonto einrichten. Der Kunde kann in diesem Dialog einen Gutschein einlösen und die Rechnungs- und Lieferadresse festlegen (Abbildung 5.75).
Abbildung 5.75: Rechnungs- und Lieferadresse
216
Sandini Bib 5.6 Shopsystem
Nach einem Klick auf den Button WEITER muss der Kunde die gewünschte Versandund Zahlungsart festlegen ( Abbildung 5.76, Abbildung 5.77).
Abbildung 5.76: Versandart festlegen
Abbildung 5.77: Zahlungsart festlegen Der Kunde erhält im nächsten Schritt eine Zusammenfassung seiner eingegebenen Daten zur Überprüfung und Bestätigung. Bei jedem Bearbeitungsschritt wird auch optisch über das Einkaufswagensymbol der Fortschritt bei der Bearbeitung angezeigt. Hier kann der Kunde auch noch schriftliche Ergänzungen zur Bestellung in ein Formularfeld eingeben (Abbildung 5.78). Wenn alles korrekt ist, klickt der Kunde auf den Button BESTELLUNG BESTÄTIGEN und löst dadurch seine Bestellung aus. Es erscheint ein Bestätigungsbildschirm mit einem Link zu einer Seite mit allen relevanten Bestelldaten (Abbildung 5.79). Der Kunde erhält eine Bestätigungs-E-Mail und Ihre Bearbeitung der Bestellung kann beginnen.
217
Sandini Bib 5 Nützliche Erweiterungen
Abbildung 5.78: Letzte Überprüfung vor der Bestellung
Abbildung 5.79: Bestätigung der Bestellung
5.6.6
Die Bestellungsverwaltung im Backend
Nachdem der Kunde bestellt hat, taucht im Administrationsinterface des Shops im Menüpunkt BESTELLUNGEN –> BESTELLUNGEN AUFLISTEN die gerade getätigte Bestellung auf (Abbildung 5.80).
218
Sandini Bib 5.6 Shopsystem
Abbildung 5.80: Liste aller Bestellungen Sie können jetzt den Verlauf der Bestellung Ihrem Kunden gegenüber per E-Mail dokumentieren. Wählen Sie den entsprechenden Status aus, kreuzen Sie die Checkbox KUNDEN BENACHRICHTIGEN an und drücken Sie den UPDATE STATUS-Button. Der Kunde erhält eine E-Mail-Benachrichtigung über die Statusänderung und in Ihrer Bestellverwaltung wandert die Bestellung in die entsprechende Liste. Auf diese Art haben sowohl Sie als auch Ihre Kunden einen guten Überblick über den Status der Bestellungen. Sie als Shopadministrator benötigen natürlich detaillierte Informationen über die Bewegungen in Ihrem Shop. Im Reporte-Menü können Sie sich variable Listen über variable Zeitpunkte erzeugen (Abbildung 5.81).
Abbildung 5.81: Reporte
5.6.7
Module
Im Shoppaket sind diverse Module enthalten. Installieren Sie sie über den Modulmanager und probieren Sie die Wirkung aus.
219
Sandini Bib 5 Nützliche Erweiterungen
5.6.8
Mambots
Auch ein Shop benötigt natürlich einen Search Mambot. Um diese Funktionalität für den PHP-Shop zu nutzen, müssen Sie die ebenfalls im Shoppaket enthaltene Datei phpshop.searchbot_1.2_stable-pl3.tar.gz über den Mambot Installer installieren.
5.7
Mehrsprachigkeit mit Mambelfish
Die Komponente Mambelfish ermöglicht die Erstellung einer mehrsprachigen Website. Das Thema ist recht komplex und so ist auch diese Komponente nicht ganz einfach zu bedienen. Der Bedarf nach mehrsprachigen Websites wird gerade in Europa immer größer. Bisher war eine echte Mehrsprachigkeit in Mambo, für das diese Komponente ursprünglich erstellt wurde, nicht möglich. Sie konnten zwar aus vielen Frontend-Sprachdateien auswählen, die Website an sich hatte aber nur eine Sprache. Durch diese wirklich geniale Komponente von Alex Kempkens (seines Zeichens Mitglied des Entwicklerteams von Joomla! und Fachlektor dieses Buches) ist es möglich, echte Mehrsprachigkeit anzubieten. Auch in der ersten Joomla!-Version ist Mehrsprachigkeit von Webseiten standardmäßig nicht eingebaut. In der nächsten Version von Joomla!, die vermutlich schon auf dem Markt ist, wenn Sie dieses Buch in den Händen halten, ist der Administrationsbereich mehrsprachig, und es wird vermutlich eine internationale Joomla!-Version geben, in der die Mambelfish-Komponente integriert sein wird. Trotz aller Möglichkeiten, die mehrsprachige Seiten bieten, ist das mit der Übersetzung immer so eine Sache. Schließlich besteht eine Website aus Standardsätzen, die in Sprachdateien übersetzt werden. Diese Sprachdateien werden im Mambelfish auch benutzt. Es gibt weiterhin eine Standardsprache, die in der Global Configuration festgelegt wird. Darüber hinaus kann man beliebig viele mögliche Zielsprachen wählen. Was aber passiert mit den Inhalten? Hier geht Mambelfish den steinigen, aber sinnvollen Weg! Alle dynamischen Inhalte können in einem Übersetzungsmanager in die entsprechenden Zielsprachen übersetzt werden. Dazu gehören natürlich auch die Menübezeichnungen und die verschiedenen Kategorien. Dabei wird keinesfalls automatisch übersetzt, sondern jedes Inhaltselement müssen Sie selbst in die Zielsprache bringen.
220
Sandini Bib 5.7 Mehrsprachigkeit mit Mambelfish
Die Vorteile liegen auf der Hand: Jeder Teil Ihrer Website ist in jeder Sprache verfügbar. Der Benutzer kann per Mausklick die gesamte Website in einer anderen Sprache
sehen.
5.7.1
Installation von Mambelfish (Komponente und Modul)
Laden Sie sich die Datei MambelFish_1.5.zip herunter und installieren Sie diese über den Menüpunkt INSTALLERS –> COMPONENTS. Nach der Installation sehen Sie die Nachricht, dass die Komponente installiert wurde. Außerdem sehen Sie einen umfangreichen Begrüßungstext mit dem Hinweis, dass Sie verschiedene Dateien noch separat »patchen« müssen. Die Patch-Dateien finden Sie im Verzeichnis: [PfadzuJoomla!]\administrator\components\com_mambelfish\patch\4.5.2
Kopieren Sie alle Dateien und Unterverzeichnisse inklusive der enthaltenen Dateien in Ihr Joomla!-Stammverzeichnis [PfadzuJoomla!] (Abbildung 5.82).
Abbildung 5.82: Mambelfish-Patches Die vorhandenen Joomla!-Dateien werden bei dieser Aktion überschrieben. Die gepatchten Dateien sind notwendig, um die Sprachfunktionalität wirklich an jeder Stelle in Joomla! zur Verfügung zu stellen. Um gleich Ergebnisse zu sehen, installieren Sie bitte das passende Modul. Laden Sie sich die Datei mbf_module.zip herunter und installieren Sie diese über den Menüpunkt INSTALLERS –> MODULES. Nach der Installation sehen Sie die Nachricht, dass das Modul erfolgreich installiert wurde.
221
Sandini Bib 5 Nützliche Erweiterungen
Klicken Sie auf MODULES –> SITE MODULES und aktivieren Sie das Modul. Wenn Sie nun auf Ihre Website schauen, werden Sie unten links einen leeren Kasten mit der Überschrift Mambelfish sehen. Das kommt daher, dass Sie die Komponente noch nicht konfiguriert haben.
5.7.2
Konfiguration von Mambelfish
Nach der Installation sollten Sie im Menü SITE –> LANGUAGES –> INSTALL alle Sprachen installieren, die Sie auf der Seite anbieten wollen. Momentan müssten die deutsche und die englische Sprachdatei installiert und die deutsche als Standard ausgewählt sein. Ich belasse es zunächst dabei. Um die Sprachen für Mambelfish verfügbar zu machen, müssen Sie in COMPONENTS -> MAMBELFISH -> LANGUAGE CONFIGURATION die entsprechenden Einstellungen vornehmen. Der Dialog hat zwei Karteireiter: SPRACHEN und FRONTEND.
Sprachen Hier sehen Sie die installierten Sprachen. Sie können hier alle Sprachen auswählen und die vorgegebenen Bezeichnungen überschreiben. Außerdem müssen Sie das richtige Sprachkürzel (unter ISO) eingeben. Für die deutsche Sprache geben Sie de und für die englische Sprache en ein. Zusätzlich können Sie noch eine Bilddatei angeben, die anstelle des Namens beispielsweise eine Flagge anzeigt. Die Sortierung der Anzeige im Modul können Sie ebenfalls festlegen (Abbildung 5.83).
Abbildung 5.83: Mambelfish – Language Configuration – Sprachen Nun enthält das Modul auf der Website auch die beiden Sprachen (Abbildung 5.84).
Abbildung 5.84: Sprachauswahl auf der Website
222
Sandini Bib 5.7 Mehrsprachigkeit mit Mambelfish
Wenn Sie auf die Sprachlinks klicken, werden Ihnen Unterschiede auffallen. Der auffälligste dürfte der Hinweis sein: Sorry this content is not available in your selected language. Diesen Inhalt gibt es nicht für Ihre Sprache. Da wir ja immer noch mit den Joomla!Beispieldaten arbeiten, müssen diese zunächst übersetzt werden. Doch bevor wir das tun, sehen wir uns noch den Inhalt des zweiten Karteireiters genauer an.
Frontend Hier werden die Einstellungen für die Website definiert (Abbildung 5.85).
Abbildung 5.85: Mambelfish – Language Configuration – Frontend Es geht hier um zwei Dinge: zum einen um das Verhalten bei der Darstellung von Inhaltselementen, wenn keine Übersetzung vorhanden ist, und zum anderen um die Darstellung der Spracheneinträge im Modul. Bei einem nicht übersetzten Element gibt es die Variante, einen Ersatztext anzuzeigen. Der Ersatztext kann im nächsten Feld eingegeben werden und wurde Ihnen vorhin auch schon präsentiert. Die zweite Variante ist das Anbieten des Originaltextes. Die dritte bietet ebenfalls den Originaltext, aber mit Zusatzinformationen, an. Die Frontend-Darstellung erfolgt entweder horizontal oder vertikal, entweder als Text oder als Bild. Im Feld darunter kann ein Trennzeichen eingegeben werden. Dieses Trennzeichen wird bei der horizontalen Darstellung benutzt. Standardmäßig ist es das Pipe-Zeichen ( | ).
223
Sandini Bib 5 Nützliche Erweiterungen
5.7.3
Übersetzung mit Mambelfish
Die Übersetzung der Seite geht jetzt bezüglich der Mambelfish-Komponente sehr einfach. Es ist halt nur viel Arbeit! Über das Menü COMPONENTS -> MAMBELFISH -> TRANSLATION kommen Sie in den Übersetzungsbereich der Komponente. Beim ersten Aufruf erhalten Sie ein leeres Fenster. Wählen Sie als Sprache Ohne Übersetzung und als Inhaltselemente Categories. Jetzt werden Ihnen alle Kategorien angezeigt, unter anderem auch die Kategorie Joomla! Buch, die wir im früheren Teil des Buches angelegt haben.
Abbildung 5.86: Mambelfish – Translation – ohne Übersetzung Wählen Sie nun die Sprache Deutsch. Die Anzeige ohne Übersetzung wechselt zu Deutsch. Klicken Sie auf den Link JOOMLA! BUCH. Sie erhalten eine Änderungsmaske, in der auf der linken Seite der Originaltext steht. Da in unserem Fall der Originaltext ebenfalls in Deutsch ist, brauchen Sie Ihn nur in die leeren Felder zu kopieren (Abbildung 5.86). Falls Sie den WYSIWYG-Editor eingeschaltet haben, kann es sein, dass das Einfügen per Mausklick nicht klappt. Benutzen Sie dann die Tastenkombination (ª)+ (Einfg) oder (Strg)+(V). Nach einem Klick auf das Icon SAVE haben Sie den ersten Teil Ihrer Website übersetzt. In der Liste der Kategorien erscheint das Übersetzungsdatum. Veröffentlichen Sie nun durch einen Klick auf das Icon mit dem roten Kreuz die Kategorie. Wählen Sie oben in der Optionsliste die Sprache English und wiederholen Sie den Vorgang.
224
Sandini Bib 5.7 Mehrsprachigkeit mit Mambelfish
Abbildung 5.87: Mambelfish – Translation – Übersetzung Wenn Sie nun in der Optionsliste Alle Sprachen auswählen, sollten beide Übersetzungen zu sehen sein (Abbildung 5.88).
Abbildung 5.88: Anzeige der übersetzten Kategorien Wiederholen Sie den Vorgang nun bei einem Inhaltselement. Ich nehme das Beispiel aus Kapitel 4.6.1 (Abbildung 5.89). Auf Ihrer Website erscheint nun abhängig von der vom Benutzer ausgewählten Sprache der deutsche oder der englische Text. Auf diese Art können Sie nun Ihre gesamte Seite übersetzen. Das ist zwar viel Arbeit, aber das Ergebnis wirkt gerade im geschäftlichen Bereich sehr seriös und kompetent.
Abbildung 5.89: Anzeige der übersetzten Inhalte
225
Sandini Bib 5 Nützliche Erweiterungen
5.7.4
Mambot für Mambelfish
Um die übersetzten Seiten über das Suchfeld (Search-Modul) durchsuchen zu können, gibt es den Mambelfish Mambot. Laden Sie die Datei mbf_searchbot.zip und rufen Sie diese über die Menüleiste INSTALLERS –> MAMBOTS auf. Wählen Sie die Datei aus und klicken Sie auf den Button UPLOAD FILE & INSTALL. In der Liste der installierten Mambots taucht multi lingual content searchbot auf. Klicken Sie in der Menüleiste auf MAMBOTS –> SITE MAMBOTS und veröffentlichen Sie den eben installierten multi lingual content searchbot. Wenn Sie nun im Suchfeld Ihrer Website etwas eingeben, werden die übersetzten Elemente durchsucht und bei einem Treffer in der Ergebnisliste angezeigt.
5.7.5
Eigene Komponenten in Mambelfish einbinden
Sie können auf sehr einfache Art alle Komponenten in das Mambelfish-System einbinden, indem Sie eine Tabellenbeschreibung im XML-Format in das Verzeichnis [PfadzuJoomla!]/administrator/components/com_mambelfish/contentelements/
kopieren. Für die Beispielkomponente, die wir im nächsten Kapitel erzeugen, finden Sie den Inhalt der Datei in Listing 5.1. Auf der Basis dieser Beschreibung integriert Mambelfish die zu übersetzenden Daten in die Administrationsoberfläche. Durch die Angabe des Attributs translate mit dem Wert 0 oder 1 kann Mambelfish sogar auf Feldebene gesteuert werden. Listing 5.1: joomlabuch.xml <mambelfish type="contentelement"> joomlabuchHagen Graf1.0 <description>Beispiel aus dem Joomla!buch
IDText
226
Sandini Bib
6 Joomla!-Templates selbst schreiben Um das Erscheinungsbild Ihrer Seite an Ihre Firmenfarben anzupassen, müssen Sie ein vorhandenes Template ändern oder ein neues erstellen. In diesem Kapitel lernen Sie die Grundlagen der Template-Erstellung in Joomla! kennen.
6.1
Corporate Identity
Unter Corporate Identity (CI) versteht man das Selbstverständnis und das Erscheinungsbild eines Unternehmens. Dieses Erscheinungsbild, die Identität, ergibt sich entweder aus der Tradition eines Unternehmens oder sie wird komplett bei der Neugründung erdacht. Diese Identität ist wichtig, um dem Kunden ein Gefühl für das Unternehmen zu geben und eine Wiedererkennung zu ermöglichen. Zur Corporate Identity gehören: Corporate Image (Preis-, Produkt- und Werbestrategie) Corporate Design (visuelle Erscheinung) Corporate Communication (Unternehmenskommunikation) Corporate Behaviour (Verhaltensweisen der Mitarbeiter untereinander und nach
außen) Alle diese Bereiche müssen bei der Erstellung einer Homepage berücksichtigt werden. Wir wollen in diesem Kapitel das Corporate Design betrachten. Es besteht mindestens aus einem Logo, einer Schriftart und den Hausfarben, die das Unternehmen benutzt. Die Besucher Ihrer Homepage sollten Ihr Unternehmen auf Anhieb wiedererkennen.
Sandini Bib 6 Joomla!-Templates selbst schreiben
6.2
HTML/XHTML, CSS, XML
Die Abkürzungen HTML1/XHTML2, CSS3 und XML4 stehen für Internettechnologien, mit denen Joomla! arbeitet. Diese Technologien werden vom World Wide Web-Konsortium5 standardisiert.
6.2.1
HTML/XHTML
Das World Wide Web basiert auf der Seitenbeschreibungssprache HTML. Bei HTML handelt es sich nicht um eine Programmiersprache, sondern um eine Textbeschreibungssprache. Jeder Text besteht aus Strukturen wie beispielsweise Überschriften, Aufzählungen, fett und kursiv gedruckten Bereichen, Tabellen und vielem mehr. HTML arbeitet mit so genannten Tags. Ein Tag hat einen öffnenden und einen schließenden Teil. Eine Überschrift erster Ordnung wird beispielsweise so dargestellt:
Dies ist eine Überschrift
Im Browser werden die Tags interpretiert und entsprechend ihrer Bedeutung wird der Text dargestellt. HTML ist sehr einfach zu erlernen. Die wohl beste Anleitung gibt es online und downloadbar unter http://de.selfhtml.org/. HTML selbst wird nicht mehr weiterentwickelt. Der Nachfolger von HTML ist XHTML in der Version 1.0.
6.2.2
CSS
Cascading Stylesheets (CSS) sind eine Ergänzung zu HTML. Auch CSS ist keine Programmiersprache, sondern ein Vokabular zur Definition von Formateigenschaften einzelner HTML-Elemente. Mit Hilfe von CSS-Befehlen können Sie beispielsweise bestimmen, dass Überschriften der ersten Ordnung eine Schriftgröße von 18 Punkt haben, in der Schriftart Arial, aber nicht fett erscheinen und mit einem Abstand von 1,9 Zentimeter zum darauf folgenden Absatz versehen werden.
Angaben dieser Art sind mit reinem HTML nicht möglich und waren bei der Entwicklung von HTML auch nicht nötig. Mit der fortschreitenden Kommerzialisierung des Internets werden weitergehende Formatierungsmöglichkeiten allerdings immer wichtiger. CSS-Angaben können auf drei Arten in HTML eingebunden werden.
Zentral für eine HTML-Datei Hier werden die CSS-Befehle innerhalb des Kopfes der HTML-Datei definiert. Titel der Datei <style type="text/css">
In einer separaten CSS-Datei Wenn die CSS-Befehle für mehrere HTML-Dateien gelten sollen, bietet es sich an, die CSS-Befehle in eine extra Datei auszulagern und den Pfad zu dieser Datei im HTMLKopf anzugeben. Diese Variante wird von Joomla! benutzt. Titel der Datei
Innerhalb eines HTML-Tags Innerhalb eines HTML-Tags können ebenfalls CSS-Befehle eingebunden werden.
...
Kombinationen Die drei Möglichkeiten können in einer HTML-Datei problemlos kombiniert werden. Es ist beispielsweise möglich, in einer zentralen Datei definierte CSS-Befehle, die für alle Seiten gelten, im weiteren Quellcode einer HTML-Seite zu überschreiben. Da diese Art der Benutzung jedoch schnell in unübersichtlichen Strukturen endet, sollten Sie lieber die zentrale Datei anpassen.
229
Sandini Bib 6 Joomla!-Templates selbst schreiben
6.2.3
XML
Die Extended Markup Language (XML) ist ein Universum für sich. Sie stellt eine Metasprache dar, in der andere Sprachen formuliert werden. Die Mutter aller Sprachen gewissermaßen. Für unsere Zwecke benötigen Sie XML als Beschreibungssprache für die Metadaten des Templates, das Sie erstellen wollen. Diese Metadaten sind in erster Linie für den Template Installer und die Anzeige im Template Manager wichtig. Prinzipiell bestehen diese Daten wieder aus öffnenden und schließenden Tags, beispielsweise: Joomla_buch
Der Unterschied zu HTML liegt darin, dass in XML keine Tags vordefiniert werden. Man ist also völlig frei in der Gestaltung der Strukturen und der Benennung der Tags.
6.3
Templates selbst erstellen
Jetzt wollen wir ein Template selbst erstellen. Bis zum fertigen Template-Paket sind viele Dinge zu beachten. Wir gehen in mehreren Schritten vor:
6.3.1
Konzept
Als Allererstes sollten Sie ein Konzept erstellen. Gerade im Bereich der TemplateErstellung fängt die Arbeit mit einer Skizze oder einer Grafik an. Ob Sie diese Skizze mit einem Bildbearbeitungsprogramm wie dem kommerziellen Adobe Photoshop6, dem in Windows enthaltenen Microsoft Paint, dem Open Source-Programm Gimp7 oder tatsächlich mit Zettel und Buntstiften erstellen, ist Ihre Sache.
Feste Größe oder variabel Sie können zwei Arten von Templates erstellen: Templates, die sich in der Struktur der Größe des Browserfensters anpassen, und Templates, die eine feste vorgegebene Größe haben. Ein Beispiel zum ersten flexiblen Layout: Wenn jemand 2048 Pixel Platz auf seinem Bildschirm hat und das Browserfenster maximiert, so wird Ihre Seite entsprechend auseinander gezogen. Wenn Sie grafische, nicht skalierbare Elemente wie Logos und Schriftzüge in Ihrem Template benutzen, kann das sehr eigenartig aussehen. Sie haben also keine echte Kontrolle über das Aussehen. Die andere Variante ist, sich für eine bestimmte Auflösung zu entscheiden und alle Elemente auf den Pixel genau im Template zu positionieren. Das hat den Vorteil, dass Ihre Homepage immer so aussieht, wie Sie das wollen. Leider wissen Sie nicht, mit welcher Bildschirmauflösung Ihre Seite betrachtet wird. Auf einem Bildschirm mit 6 7
der Auflösung von 800 * 600 Pixel ist Ihre Seite bildschirmfüllend. Auf einem großen Bildschirm mit 1400 * 1050 Pixel belegt sie nur etwa ein Viertel der Fläche und sieht etwas verloren aus. Es gibt für dieses Dilemma keine echte Lösung. Sie müssen die Vor- und Nachteile abwägen und sich für eine Variante entscheiden. Wenn Sie die feste Größe bevorzugen, sollten Sie eine Größe wählen, die auf den meisten Bildschirmen darstellbar ist, also 800 * 600 Pixel. Da der Browser noch eine Scrollleiste auf der rechten Seite besitzt und das Browserfenster noch eingerahmt ist, ist die Ihnen zur Verfügung stehende Breite sogar noch etwas kleiner, so dass Sie in der Breite maximal 780 Pixel haben sollten.
Struktur Sie haben es mit strukturierten Daten zu tun und müssen sich zunächst eine allgemeine Aufteilung überlegen. Joomla! benutzt normalerweise eine Struktur wie in Abbildung 6.1.
Abbildung 6.1:
Struktur
Teil 1 Bereich 1: Hier stehen Ihr Logo oder ein Bild und der Seitenname. Bereich 2: Hier befindet sich das Suchfeld. Bereich 3: Hier ist der verlinkte Navigationspfad (Breadcrumbs).
Teil 2 Bereich 4: In der linken Spalte werden die wichtigsten Menüs angezeigt. Bereich 5: Hier befindet sich der eigentliche Seiteninhalt. Bereich 6: Die rechte Spalte bietet Platz für zusätzliche Menüs.
231
Sandini Bib 6 Joomla!-Templates selbst schreiben
Teile 3 Bereich 7: Die Fußzeile
6.3.2
HTML-Umsetzung
Jetzt müssen Sie das Konzept in HTML umsetzen. Abhängig vom Bildbearbeitungsprogramm, mit dem Sie es erstellt haben, gibt es vielleicht eine Möglichkeit, das Bild automatisch in HTML-Code zu exportieren. Sie können die Umsetzung auch per Hand in einem Texteditor oder in einem HTML-Editor wie Macromedia Dreamweaver8 oder einem der zahlreichen freien HTML-Editoren9 erstellen. Im Folgenden sehen Sie den Quellcode der HTML-Umsetzung (Listing 6.1). Der Code ist bewusst einfach gehalten und entspricht im Kopfbereich noch nicht dem XHTMLStandard. Listing 6.1: HTML-Grundgerüst Untitled Document
Wenn Sie diesen Quellcode in einem Browser aufrufen, sehen Sie, dass die Struktur unserem Konzept schon ein wenig ähnelt (Abbildung 6.1). Diesen Quellcode müssen Sie in einer Datei mit dem Namen index.php abspeichern.
Abbildung 6.2: HTML-Grundgerüst im Browser Um die Aufteilung besser zu sehen, habe ich die Tabelle mit einem Rand zeichnen lassen (Attribut border="1"). Hier können Sie jetzt Ihren gestalterischen Fähigkeiten in Hinsicht auf Farben und Logos freien Lauf lassen.
6.3.3
Dateistruktur des Templates
Jetzt wird es Zeit, sich um gewisse Konventionen zu kümmern. Das Template muss in einer besonderen Verzeichnisstruktur abgelegt sein. Wenn Sie wollen, können Sie gleich in Ihrer lokalen Joomla!-Installation arbeiten. Wenn Ihnen das zu unübersichtlich ist, können Sie das Template auch an beliebiger Stelle Ihrer Festplatte abspeichern. Sie müssen die folgende Dateistruktur einhalten: /templates/[Name des Templates]/ /templates/[Name des Templates]/CSS/ /templates/[Name des Templates]/images/
233
Sandini Bib 6 Joomla!-Templates selbst schreiben
Der Name des Templates sollte keine Umlaute, Leerzeichen und sonstige Sonderzeichen enthalten. Aus diesem Namen muss der Template Installer später ein Verzeichnis anlegen. Abhängig vom Betriebssystem kann das bei exotischen Zeichenkombinationen zu Problemen führen. Außerdem sollte der Name aussagekräftig sein. Wenn Sie beispielsweise das Modul Template Chooser auf Ihrer Homepage anbieten, wird dieser Name in der Auswahlliste Ihren Besuchern als Auswahl angeboten. Ich nehme als Template-Namen joomla_buch. In den Template-Verzeichnissen müssen verschiedene Dateien mit bestimmten Namen vorhanden sein. Außer den Bilddateien Ihres Templates müssen bei allen anderen die Dateinamen exakt mit den Vorgaben übereinstimmen! /templates/joomla_buch/index.php
Das ist die HTML-Datei, die wir schon rudimentär erstellt haben. Sie muss die Endung .php haben, da die dynamischen Joomla!-Modulelemente, die wir noch einfügen werden, von PHP interpretiert werden müssen. /templates/joomla_buch/template_thumbnail.png
Ein Vorschaubild Ihres Templates für die Auswahl in der Joomla!-Administration und im Modul Template Chooser. Vorschaubilder haben das Format 227 * ca. 162 Pixel. /templates/joomla_buch/templateDetails.xml
Diese Datei stellt die Bauanleitung für den Template Installer dar. Hier beschreiben Sie, welche Dateien wohin kopiert werden sollen. Beim Hochladen liest PHP diese Datei aus und kopiert die Dateien an den richtigen Platz. Für das Beispiel-Template können Sie die Datei in Listing 6.2 benutzen und mit eigenen Daten versehen. Sie müssen jede Datei, die Sie im Template benutzen, mit einem öffnenden und einem schliessenden XML-Tag umgeben. … Dateiname einer Datei im TemplateRoot-Verzeichnis eingeben ... … für jede Datei einen filename-Container … Dateiname einer Grafik im images-Verzeichnis eingeben ... … für jede Datei einen filename-Container css/template_css.css (Name der CSS-Datei)
Die anderen Container der XML-Datei dienen der Beschreibung des Templates. Hier das komplette funktionsfähige Listing der XML-Datei:
Die CSS-Datei Ihres Templates. Die Gestaltung der CSS-Datei steht Ihnen frei. Es gibt jedoch Standardbezeichnungen für verschiedene Seitenelemente. Eine Tabelle dazu finden Sie im Anhang. Für Ihren ersten Versuch benötigen Sie nur eine leere CSSDatei mit dem oben angegebenen Namen. /templates/joomla_buch/images/[beliebige Bilddateien]
Hier können Sie beliebige Bilddateien, die in Ihrem Template auftauchen, abspeichern. Der Installer kopiert die Dateien dann in den images-Ordner.
6.3.4
Erster Probelauf
Wenn Sie alle Strukturen im Unterverzeichnis [PfadzuJoomla!]/templates/ nachvollzogen haben, können Sie bereits Ihr neues Template in der Joomla!-Administration sehen und zuordnen (Abbildung 6.3). Wenn Sie Ihre Homepage aufrufen, sehen Sie die Struktur wie in Abbildung 6.2. Leider werden noch keine Inhalte dargestellt. Da diese Inhalte dynamisch erzeugt werden, müssen Sie sie jetzt Stück für Stück in Ihr neues Template integrieren.
235
Sandini Bib 6 Joomla!-Templates selbst schreiben
Abbildung 6.3: Neues Template im Manager
6.3.5
Integration der Joomla!-Module
Die Integration der Joomla!-Module erfolgt über in den HTML-Code eingebettete PHP-Befehle. Wenn Sie im Kopfbereich der Datei index.php anstelle des title-Tags die folgende Zeile einfügen, so erscheinen bereits das Favicon und der Titel der Seite korrekt (Abbildung 6.4).
Abbildung 6.4: Favicon und Seitentitel Wenn Sie den Quellcode dieser Seite aufrufen, so stellen Sie fest, dass Joomla! die gesamten Metadaten, die Sie in der Administration eingegeben haben, in den HTMLCode geschrieben hat (Listing 6.3). Listing 6.3: Joomla!-Metadaten ... Joomla 1.0.0 - Home <meta name="description" content="Joomla - the dynamic portal engine and content management system, fdghhgd" /> <meta name="keywords" content="Joomla, joomla, test, test" /> <meta name="Generator" content="Joomla! - Copyright (C) 2005 Open Source Matters. All rights reserved." /> <meta name="robots" content="index, follow" />
236
Sandini Bib 6.3 Templates selbst erstellen
...
Nachdem das so gut funktioniert hat, kommen wir gleich zu den anderen relevanten PHP-Einschüben. Es handelt sich dabei immer um Funktionen. Die Funktion mosLoadModules() beispielsweise erwartet als Parameter den Ort des Moduls (right, left, user1, ...). Diesen Ort können Sie im Module Manager zuordnen. Die Funktion stellt dann alle Module mit dem entsprechenden Parameter dar. Den vollständigen Quellcode mit PHP-Einschüben in der Datei index.php sehen Sie in Listing 6.4. Listing 6.4: index.php mit Joomla!-Modulen
237
Sandini Bib 6 Joomla!-Templates selbst schreiben
Wenn Sie die Homepage mit dem geänderten HTML-Code auf dem lokalen Server aufrufen, sehen Sie bereits die dynamischen Inhalte. Ihr neues Template wurde mit allen Daten gefüllt. Sie arbeiten jetzt mit reinem HTML-Code und das Ergebnis sieht natürlich optisch noch verbesserungswürdig aus (Abbildung 6.5).
Abbildung 6.5: Template mit dynamischen Daten Um die Optik zu verfeinern, wollen wir noch einen kleinen Einstieg in die CSS-Formatierung wagen. Kopieren Sie sich den folgenden Code in Ihre template_css.cssDatei (Listing 6.5). Hier wird einfach festgelegt, dass die Standardschrift Arial sein soll, die Links nicht unterstrichen sein sollen, und wenn Sie mit der Maus über einen Link fahren, soll die Schrift eine andere Farbe erhalten und fett dargestellt werden.10 10 Mehr über CSS erfahren Sie auf http://de.selfhtml.org/css/.
Mit dieser Maßnahme sieht Ihr Template schon ein wenig attraktiver aus. Der Mauszeiger steht gerade über dem SUCHE-Link im Hauptmenü. Der Link wird fett und in einer anderen Farbe dargestellt (Abbildung 6.6).
Abbildung 6.6: Template mit CSS-Datei
6.3.6
Ein Template-Paket erstellen
Um Ihr Template weitergeben zu können, müssen Sie es in ein ZIP-Archiv verpacken. Bevor Sie das tun, erstellen Sie noch ein aktuelles Vorschaubild Ihres Templates (template_thumbnail.png ) und packen dann alle Dateien mit Unterverzeichnissen in ein ZIP-Archiv.
239
Sandini Bib 6 Joomla!-Templates selbst schreiben
Markieren Sie dazu alle Dateien und Ordner im Ordner [PfadzuJoomla!]/templates/joomla_buch/
und packen Sie den gesamten Inhalt in die Datei joomla_buch.zip. Sichern Sie den Ordner und die ZIP-Datei. Um nun die Installation zu testen, müssen Sie das Template aus dem Template Manager entfernen. Dazu legen Sie zunächst ein anderes Template als Standard fest (Template auswählen und auf Icon PUBLISH klicken). Dann wählen Sie das eben erstellte Template und löschen es über das Icon DELETE.
6.3.7
Installation mit dem Joomla!-Template Installer
Nachdem Sie alle Spuren der Entwicklung beseitigt haben, rufen Sie im Menü INSTALLERS –> TEMPLATE SITE auf, wählen die Datei Joomla!buch.zip aus und klicken auf UPLOAD FILE & INSTALL. Sie sehen den Success-Bildschirm des Template Installers. Hier wird die Beschreibung aus der XML-Datei angezeigt (Abbildung 6.7).
Abbildung 6.7: Upload des neuen Templates Wenn Sie auf den Link Continue klicken, wird Ihnen das eben erstellte Template im Template Manager mit Vorschaubild angezeigt (Abbildung 6.8).
Abbildung 6.8: Neues Template im Template Manager
240
Sandini Bib 6.4 Template mit der Dreamweaver-Extension erstellen
6.4
Template mit der Dreamweaver-Extension erstellen
Es gibt für den HTML-Editor Dreamweaver eine so genannte Extension, mit der Sie die Template-Erstellung komplett in Dreamweaver vornehmen können. Sie benötigen eine aktuelle Version von Dreamweaver (ab MX 2004) und können dort die Template Builder Extension installieren. Das Programm ist ursprünglich für Mambo 4.5.1 erstellt worden, arbeitet aber auch gut mit Joomla! 1.0 zusammen.
6.4.1
Installation
Laden Sie sich die Datei mambosolutionsDW_107.zip.11 Starten Sie Dreamweaver, klicken Sie auf BEFEHLE –> ERWEITERUNGEN VERWALTEN. Der Macromedia Extension Manager öffnet sich. Wählen Sie die Datei aus und klicken Sie auf INSTALLIEREN.
Abbildung 6.9: Dreamweaver-Extension installieren
6.4.2
Neue Template-Datei erstellen
Um die Erweiterung zu aktivieren, müssen Sie Dreamweaver neu starten. Öffnen Sie ein neues Dokument vom Typ dynamische Seite. Klicken Sie auf DATEI –> NEU –> DYNAMISCHE SEITE –> PHP (Abbildung 6.10).
11 Downloadmöglichkeit siehe Anhang.
241
Sandini Bib 6 Joomla!-Templates selbst schreiben
Abbildung 6.10: Dreamweaver-Dokument neu anlegen Nach dem Erstellen der Datei sehen Sie im oberen Bereich eine MamboOS-Palette. Hier gibt es verschiedene Buttons, mit denen Sie die Template-Elemente einfügen können (Abbildung 6.11).
Abbildung 6.11: Template-Palette in Dreamweaver
242
Sandini Bib 6.4 Template mit der Dreamweaver-Extension erstellen
Als Erstes müssen Sie im Quellcodefenster den von Dreamweaver erzeugten Kopfbereich der Seite löschen (Abbildung 6.12) und durch den Joomla!-spezifischen Bereich ersetzen.
Abbildung 6.12: Head-Bereich löschen Klicken Sie dazu nacheinander auf die Icons INSERT HEAD CODE, INSERT TITLE und INSERT CSS STYLESHEET einfügen (Abbildung 6.13, Abbildung 6.14, Abbildung 6.15).
Abbildung 6.13: Joomla! Head Code einfügen
Abbildung 6.14: Joomla! Title einfügen
Abbildung 6.15: Joomla! CSS StyleSheet einfügen Jetzt haben Sie genau den Quellcode in Ihrem Kopfbereich, den ein Joomla!-Template benötigt (Abbildung 6.16) und den wir vorhin manuell eintippen mussten.
243
Sandini Bib 6 Joomla!-Templates selbst schreiben
Abbildung 6.16: Benötigter Head-Code für Joomla!
6.4.3
Template-Struktur
Außer dem speziellen Head-Bereich benötigen Sie jetzt eine Struktur Ihrer Website. Sie können diese Struktur mit Hilfe einer Tabelle erstellen oder mit HTML-Div-Tags. Ich werde hier die Tabellenvariante beschreiben. Falls in Ihrem Dreamweaver der Layout-Modus noch aktiviert ist, beenden Sie ihn bitte. Erzeugen Sie eine Tabellenstruktur, wie es im vorherigen Beispiel beschrieben wurde. Durch einen Klick auf EINFÜGEN –> TABELLE können Sie Ihre gewünschte Struktur erzeugen. Mit Dreamweaver haben Sie sehr viele Möglichkeiten, komplexe Tabellenstrukturen zu erzeugen und Tabellen in sich zu schachteln. Ich zeige hier eine bewusst einfache Variante (Abbildung 6.17). Färben Sie die Tabelle nach Ihren Wünschen ein (Abbildung 6.18). Speichern Sie jetzt die Datei ab. Legen Sie sich unter [PfadzuJoomla!]/templates ein neues Unterverzeichnis mit dem Namen MeinTemplate an und speichern Sie die Datei darin unter dem Namen index.php ab. Legen Sie außerdem ein Verzeichnis css und ein Verzeichnis images an (Abbildung 6.19).
244
Sandini Bib 6.4 Template mit der Dreamweaver-Extension erstellen
Abbildung 6.17: Anlegen einer einfachen Tabelle
Abbildung 6.18: Tabellenstruktur Im images-Verzeichnis hinterlegen Sie bitte alle Bilder und Grafiken, die Sie in Ihrem Template benutzen werden. Die Grafiken können Sie mit einem handelsüblichen Grafikprogramm wie Photoshop12 oder einer Open Source-Lösung wie Gimp13 erstellen und mit den Mitteln von Dreamweaver in Ihrem Template platzieren.
Abbildung 6.19: Verzeichnisstruktur Ihres Templates Im css-Verzeichnis liegt, wie der Name schon sagt, die für das gesamte Template gültige CSS-Datei. Sie muss den Namen template_css.css haben. Sie können die Datei über Dreamweaver erstellen oder eine bereits vorhandene CSS-Datei aus einem anderen Joomla!-Template kopieren. Wenn Sie die Datei mit Dreamweaver erstellen, ändert Dreamweaver den Head-Bereich Ihres Templates, indem er dort einen Verweis zu der neu erstellten CSS-Datei einfügt.
Sie benötigen in Ihrem späteren Template innerhalb von Joomla! den absoluten Pfad und damit die Variante, die wir vorhin bereits eingefügt haben. Dreamweaver wertet die PHP-Tags in unserer Situation nicht aus. Die PHP-Variablen enthalten keinen Wert und so führt der von der Extension eingesetzte CSS-Verweis zunächst ins Leere. Benutzen Sie also zunächst den von Dreamweaver eingefügten Link und entfernen Sie ihn später wieder. Ich empfehle Ihnen, eine bereits vorhandene CSS-Datei zu nutzen, da dort die Joomla!spezifischen Klassen bereits definiert sind. Kopieren Sie also die CSS-Datei oder deren Inhalt aus dem rhuk_solarflare_ii-Template in Ihre frisch erstellte CSS-Datei.
Einfügen der Joomla!-Module Jetzt haben Sie die Basis für das Einfügen der Joomla!-Module. Bewegen Sie den Cursor an die Stelle Ihrer Tabelle, an der Sie beispielsweise das Suchfeld haben wollen, und klicken Sie in der Optionsleiste auf das Icon INSERT SEARCH (Abbildung 6.20).
246
Sandini Bib 6.4 Template mit der Dreamweaver-Extension erstellen
Abbildung 6.20: Suchfeld einfügen Im Designfenster sehen Sie jetzt ein Suchfeld und im Quellcode wurde jede Menge HTML- und JavaScript-Code hinzugefügt.
Abbildung 6.21: Suchfeld im Template Sie können nun nach und nach die dynamischen Elemente in die entsprechenden Tabellenfelder per Mausklick auf das entsprechende Icon einfügen (Abbildung 6.22).
Abbildung 6.22: Template mit Joomla!-Modulen
247
Sandini Bib 6 Joomla!-Templates selbst schreiben
6.4.4
Live-Seite
Um das Template in Ihrer Joomla!-Installation zu sehen, müssen Sie die XML-Datei mit dem Namen templateDetails.xml erstellen. Eine Minimalversion ohne Bilder sieht folgendermaßen aus: Listing 6.6: templateDetails.xml <mosinstall type="template" version="1.0.0"> MeinTemplate09/21/05Hagen GrafGNU/GPL[email protected]http://www.alternative-unternehmensberatung.de0.1 <description>... Beschreibung index.phptemplate_thumbnail.png...css/template_css.css
Für die allgemeine Veröffentlichung und die autarke Installation über den Joomla!Template Installer gelten auch hier die Beschreibungen aus Kapitel 6.3.6. Nachdem die XML-Datei existiert, können Sie in der Joomla!-Administration Ihr neues Template auswählen (Abbildung 6.23), als Standard festlegen und auf Ihrer Joomla!-Seite live ansehen (Abbildung 6.24).
Abbildung 6.23: Template Manager mit eigenem Template
248
Sandini Bib 6.4 Template mit der Dreamweaver-Extension erstellen
Abbildung 6.24: Ihre Website mit Ihrem Template Mit diesem Konstrukt können Sie jetzt in Dreamweaver arbeiten, den Designmodus und die vielen Features von Dreamweaver verwenden und nach dem Speichern sofort live das Ergebnis auf Ihrer Website überprüfen. Mit einem Grafikprogramm können Sie sich ein Logo und grafische Elemente erstellen und per Dreamweaver in den HTML-Code einfügen. Sie können Dreamweaver sogar so konfigurieren, dass Ihre gerade bearbeitete Template-Datei auf dem entfernten FTP- oder WebDAV-Server Ihres Providers automatisch aktualisiert wird. Richten Sie sich dazu eine Dreamweaver Site ein mit dem Root-Pfad zu Ihren Joomla!Dateien und den entsprechenden Zugangsdaten zu Ihrer Live-Seite (Abbildung 6.25).
Abbildung 6.25: Dreamweaver mit Site-Nutzung
249
Sandini Bib 6 Joomla!-Templates selbst schreiben
6.4.5
Templates und DIV-Tags
Momentan arbeitet Joomla! in Contentbereich mit HTML-Tabellendarstellungen. In den nächsten Versionen von Joomla! wird diese Vorgehensweise verändert werden, um den barrierefreien Anforderungen Genüge zu tun. In HTML gibt es als Ersatz und als Ergänzung für das
-Tag das
-Tag. Sie können damit mehrere HTML-Elemente wie Text und Grafiken in einen gemeinsamen Bereich einschließen. Dieser allgemeine Bereich bewirkt zunächst nichts weiter, als dass er in einer neuen Zeile des Fließtextes beginnt. Das
-Tag hat keine weiteren Eigenschaften. Der große Vorteil ergibt sich allerdings aus der Kombination von
-Tags mit CSS-Anweisungen. Sie sind für genau diesen Zweck erfunden worden, nämlich um mit Hilfe von CSS-Anweisungen formatiert zu werden. Diese Eigenschaften des
-Tags machen es interessant für die Erstellung von Templates, die über eine CSS-Datei gesteuert werden. Das mitgelieferte Template von Marc Hinse benutzt diese Technik. Es enthält keine Tabellen-Tags mehr, sondern bildet die gesamte »tabellarische« Struktur mittels des
-Tags ab. Schauen Sie sich den Originalquellcode dieses Templates an, um mit dieser Technik vertraut zu werden. Informationen über das
-Tag finden Sie auf selfhtml.14 Dreamweaver unterstützt diese Technik ebenfalls. Ich habe hier exemplarisch alle
-Tags aus dem Template extrahiert, um Ihnen einen Überblick über die Struktur zu geben (Listing 6.7). Die id-Attribute beziehen sich jeweils auf eine Klasse in der korrespondierenden CSS-Datei. Listing 6.7: Extrakt aus der Datei /templates/madeyourweb/index.php
14 http://de.selfhtml.org/html/text/bereiche.htm.
250
Sandini Bib 6.5 Barrierefreies Joomla!
Die entsprechenden Klassen in der CSS finden Sie in Listing 6.8 Listing 6.8: Ausschnitt aus der Datei /templates/madeyourweb/css/template_css.css … #header { height: 116px; width: 100%; } #top-top { height: 30px; width: 100%; background: transparent; } ...
Mit den Attributen height und width werden die Höhe und die Breite des zu formatierenden Bereichs angegeben. Das Attribut background bestimmt die Farbe des Hintergrundes. Durch die pixelgenaue Formatierung von Bereichen kann so die Tabellenstruktur überwunden und sogar um viele Funktionen (einblenden, ausblenden, verschieben, ...) erweitert werden.
6.5
Barrierefreies Joomla!
Barrierefreiheit beginnt im Kopf! In Deutschland ist es ein besonderes Thema, das inzwischen sogar gesetzlich geregelt ist. Im Gesetz zur Gleichstellung behinderter Menschen15 findet sich folgender Paragraph: § 11 Barrierefreie Informationstechnik (1) Träger öffentlicher Gewalt im Sinne des § 7 Abs. 1 Satz 1 gestalten ihre Internetauftritte und -angebote sowie die von ihnen zur Verfügung gestellten grafischen Programmoberflächen, die mit Mitteln der Informationstechnik dargestellt werden, [...] schrittweise technisch so, dass sie von behinderten Menschen grundsätzlich uneingeschränkt genutzt werden können. [...] 15 http://www.behindertenbeauftragter.de/gesetzgebung/behindertengleichstellungsgesetz/gesetzestext.
251
Sandini Bib 6 Joomla!-Templates selbst schreiben
2) Die Bundesregierung wirkt darauf hin, dass auch gewerbsmäßige Anbieter von Internetseiten sowie von grafischen Programmoberflächen, die mit Mitteln der Informationstechnik dargestellt werden, [...] ihre Produkte entsprechend den technischen Standards nach Absatz 1 gestalten. Eine völlige Barrierefreiheit und grundsätzliche Zugriffsmöglichkeit ist im Medium Internet schwer herzustellen, aber natürlich grundsätzlich nicht unmöglich. In diesem Zusammenhang fällt oft der Begriff der Zugänglichkeit. Wenn Behörden ihre Dienstleistungen im Internet feilbieten, müssen sie für eine möglichst große Anzahl Einwohner zugänglich sein. Was eine Rampe für Rollstuhlfahrer an einem Bus oder eine Ampel, die bei Grün vor sich hin knattert, um von Blinden wahrgenommen zu werden, ist in Bezug auf die Website der möglichst barrierefreie Zugang. Zugänglichkeit ist für eine Firma bzw. einen öffentlichen Dienstleistungsanbieter grundsätzlich von Vorteil. Jeder Websitebesucher ist auch ein potentieller Kunde. Das Thema geht heute weit über behinderte oder ältere Menschen hinaus und wird weltweit an Bedeutung gewinnen.
6.5.1
Kriterien für zugängliche Websites
Um Ihnen eine Vorstellung über die notwendigen Änderungen an Ihrer Website zu geben, hier ein paar Kriterien.
Übersichtlichkeit Jede Website sollte übersichtlich und schnell zu erfassen sein. Informationen sollten bevorzugt an den Stellen erscheinen, an denen sie vom Benutzer erwartet werden.
Browser-Kompatibilität Es gibt verschiedene Arten von Internetbrowsern. Vom textbasierten Lynx auf der Linux-Konsole über Browser auf Handys, PDAs und anderen mobilen Endgeräten bis hin zu verschiedenen Browsern auf verschiedenen Betriebssystemen (OSX, Linux, Unix, Windows, OS2). Alle diese Endgeräte haben verschiedene Auflösungen und sind in der Lage, Grafiken anzuzeigen oder nicht, JavaScript-Code auszuführen oder nicht, Flashfilme abzuspielen oder nicht etc. Denken Sie daran, dass es auch Vorleseprogramme und beispielsweise Brailletastaturen für Blinde gibt. Diese Programme sind auch Browser!
Valider Quellcode und logisch strukturierter Seitenaufbau Navigation, Layout und Inhalt sind die wichtigen Bereiche einer Website. Sie müssen sowohl inhaltlich logisch als auch semantisch korrekt aufgebaut werden. XHTML ist ein Standard. Der von Ihnen benutzte Quellcode sollte valide sein!
252
Sandini Bib 6.5 Barrierefreies Joomla!
Kontraste Eine kontrastreiche Darstellung der Inhalte der Website muss im Hinblick auf sehbehinderte Nutzer gewährleistet sein.
Grafiken und Bilder Viele Ausgabegeräte für behinderte Menschen können Grafiken nicht darstellen. Eine alternative Inhaltsangabe ist zwingend notwendig.
Schriftgrößen Die Schrift muss auch auf älteren und alternativen Systemen gut lesbar sein.
Weitere Kriterien und Informationen Um ein Gefühl für die echten Anforderungen zu bekommen, werfen Sie einen kurzen Blick in die Kriterien des BIENE Awards.16 BIENE steht für Barrierefreies Internet eröffnet neue Einsichten und ist ein Projekt, gefördert von der Aktion Mensch, das seit drei Jahren barrierefreie Internetauftritte prämiert. Eine gute Anlaufstelle für Informationen zum Thema ist die Website der Deutschen Behindertenhilfe – Aktion Mensch e.V. 17
6.5.2
Die Realität
Die Realität ist zunächst mal ein wenig erschreckend. Kaum eine Website hält sich an diese doch eigentlich einfachen und einleuchtenden Regeln. »Eye Candy«, Animationen und komplizierte Navigationen beherrschen die meisten Websites. Durch die zunehmende Verbreitung von Contentmanagementsystemen und nicht zuletzt durch die gesetzlichen Regelungen findet allerdings ein Umdenkungsprozess statt. Firmen, die ihre Waren im Internet anbieten, stellen langsam fest, dass zugängliche Websites auch gut für den Umsatz sind. Die Kunden finden sich einfach besser zurecht! Die Website der Postbank ist übrigens auch barrierefrei und bei den Kunden im Vergleich zu anderen Onlinebanking-Websites äußerst beliebt!18 Im realen Leben haben Sie es immer mit unterschiedlichen Benutzergruppen, mit unterschiedlichen Endgeräten und unterschiedlichen Anforderungen zu tun. Ihre Website wird daher auch immer ein Kompromiss sein! Hängen Sie Ihre Anforderungen nicht zu hoch und fangen Sie einfach an.
Um es kurz zu machen: nein. Gemäß der Joomla!-Roadmap soll in den nächsten Versionen von Joomla! sehr viel Wert auf dieses Thema gelegt und eine Zugänglichkeit der Website im oben genannten Sinne ermöglicht werden.
6.5.4
Gibt es Möglichkeiten, Joomla! barierrefrei zu gestalten?
Um es ebenso kurz zu sagen: ja!
Die Technik Standardmäßig verwendet Joomla! ein XHTML-Tabellenlayout. Tabellen-Tags sind für die barrierefreie Gestaltung unüberwindbar und dürfen nicht verwendet werden. Im Joomla!-System muss also der Teil, der für die Ausgabe zuständig ist, im Programmcode geändert werden. Angie Radtke stellt zu diesem Zweck einen Hack bereit, der als Komponente installierbar ist.19 Außer diesem Hack benötigen Sie noch einen read more-Mambot, der den READ MORE-Link in den Joomla!-Inhalten so ändert, dass er vorlesbar ist.20 Wenn Sie nun in Ihrem Template eine übersichtliche, tabellenfreie Struktur, valides XHTML, skalierbare Schriften, eine angemessene Farbwahl und ausreichende Kontraste
einbauen, dann sieht es mit der Zugänglichkeit schon ganz gut aus. Rein technisch sind Sie gut gerüstet für die Zukunft. Testen können Sie die Funktionalität mit verschiedenen Tools. Eine Übersicht über die gängigen Tools finden Sie unter anderem auf der Website von Jan Eric Hellbusch.21
Die Menschen Jetzt kommen die Menschen, die die Inhalte in die Website einstellen, die Redaktion. Hier müssen Sie Verantwortungsbewusstsein wecken. Dies ist beispielsweise eine valide und auch semantisch korrekte Eingabe für einen Text:
Was hier so einfach aussieht, ist schwer in die Hirne der Menschen zu bringen, die die Texte dann letztlich schreiben. Man könnte die Überschrift auch durch die Änderung der Schriftattribute wie eine Überschrift aussehen lassen. Die Anweisung <span class="ueberschrift">Überschrift erster Ordnung
erreicht eine ähnliche Wirkung, ist dann allerdings von der Bedeutung her keine Überschrift mehr! Die Anweisung
Überschrift erster Ordnung
wäre die korrekte Variante. Wie soll das ein Redakteur lernen? In der Textverarbeitungswelt gibt es mit OpenOffice.org und Microsoft Word zwei Programme, die mittlerweile den Standard in der Bearbeitung von Texten darstellen. Es ist absolut notwendig, dass ein ähnliches Tool mit ähnlichen Fähigkeiten die Eingabe von Texten auf Webseiten ermöglicht. Der von Joomla! verwendete WYSIWYGEditor ist da erst ein kleiner Anfang. Hier ein anderes Beispiel für die korrekte Formulierung einer Grafik mit dem titleund dem longdesc-Attribut.
Im longtext-Attribut wird auf eine gesonderte Beschreibung verwiesen. Viele solcher »Kleinigkeiten« müssen beachtet werden. Der in Joomla! eingebaute WYSIWYG-Editor ist nicht wirklich für diese Aufgaben zu gebrauchen. Um trotzdem eine komfortable Bearbeitung zu ermöglichen, können Sie Funktionen des Editors im Quellcode deaktivieren. Hierfür ist allerdings Detailwissen der Sprache JavaScript notwendig. Wichtig bei den Menschen, die Text schreiben, ist auch die korrekte Formulierung! In den Aufmachertexten muss eine kleine Zusammenfassung stehen, worum es im Artikel überhaupt geht. Die Sprache muss leicht verständlich und zielgruppengerecht sein. All das, was Sie einmal im Deutschunterricht oder der Journalistenschule gelernt haben, kommt plötzlich wieder ins Bewusstsein.
255
Sandini Bib 6 Joomla!-Templates selbst schreiben
Barrierefreie Seiten mit Joomla! Angie Radtke hat bereits mehrere barrierefreie Projekte mit Joomla! bzw. Mambo realisiert.22 Hier exemplarisch ein Bespiel einer barrierefreien Website für die Stiftung Welthungerhilfe (Abbildung 6.26).
Abbildung 6.26: Barrierefreie Website stiftung-deutsche-welthungerhilfe.de Weitere Beispiele für barrierefreie Seiten finden Sie auf der Website des BIENEProjekts.23
Sie wollen mit Joomla! ein Problem lösen, für das es noch keine fertige Komponente gibt? Sie sind beispielsweise Autohändler und benötigen eine über die Joomla!-Administration pflegbare Auflistung Ihrer Gebrauchtwagen auf Ihrer Website? Oder eine Liste Ihrer Niederlassungen? Erweitern Sie einfach den Funktionsumfang um neue Komponenten, Module und Mambots. Was auf den ersten Blick sehr kompliziert aussieht, ist auch mit PHP-Anfängerwissen machbar. Nach den Erfahrungen im Template-Bau können Sie sich bestimmt schon vorstellen, was auf Sie zukommt. Sie benötigen: eine neue Komponente bestehend aus einer Anzeige auf der Website, der Joomla!-
Administration und einer speziellen Tabelle in der Datenbank ein zusätzliches Modul zur Anzeige der Einträge auf der Website einen Such-Mambot, um Ihre neuen Inhalte durchsuchen zu können
Damit Sie eine Vorstellung bekommen, worauf ich hinauswill und wie die Liste auf der Website aussehen soll, hier das fertige Beispiel (Abbildung 7.1). Im Hauptmenü soll ein zusätzlicher Link eingefügt werden. Nach einem Klick auf diesen Link erscheint eine einfache Fahrzeugliste.
Abbildung 7.1:
Eigene Komponente auf der Website
Sandini Bib 7 Eigene Komponenten, Module und Mambots
Diese Liste enthält in unserem Fall Autotypen. Sie können das Beispiel auch mit anderen Daten füllen (Niederlassungen, Angebote etc). Für den Besucher der Website reicht es meistens aus, eine solche Liste zu sehen. Er muss die Einträge nicht bearbeiten können. Der Administrator dagegen muss die Liste verwalten. Verwalten bedeutet in diesem Zusammenhang: neue Einträge aufnehmen vorhandene Einträge ändern vorhandene Einträge löschen
Um das Beispiel nicht zu verkomplizieren, zeigen und bearbeiteten wir ein einziges Feld. Das Prinzip der Programmierung einer Komponente in Joomla! wird so deutlich und Sie können das Beispiel leicht um mehrere Felder erweitern. Die Verwaltungsoberfläche im Administrationsbereich soll aussehen wie in Abbildung 7.2. Es soll möglich sein, die oben genannten Funktionen auszuführen. Außerdem benötigen Sie natürlich eine spezielle Toolbar für die Listenanzeige und eine für den Editiermodus. Sie benötigen eine Möglichkeit, die Einträge zu veröffentlichen und zu sperren, und Sie wollen die Funktionen Veröffentlichen und Löschen natürlich auch in einer Mehrfachverarbeitung haben, so dass Sie die Checkboxen vor den Einträgen ankreuzen und dann beispielsweise mehrere Einträge auf einmal veröffentlichen können.
Abbildung 7.2: Eigene Komponente in der Joomla!-Administration
7.1
Beispielkomponente joomlabuch
Beginnen wir mit der Komponente. Ich nenne sie joomlabuch. Um die Ausführungen hier nachvollziehen zu können, können Sie sich das fertige Beispiel herunterladen1 1
Download siehe Anhang.
258
Sandini Bib 7.1 Beispielkomponente joomlabuch
und wie jede Komponente installieren. Sie können es allerdings auch per Hand nachbauen. Der Nachbau hat den Vorteil, dass Sie nach und nach die Strukturen durchschauen und vielleicht Lust auf mehr bekommen.
7.1.1
Die MySQL-Tabelle
Da Sie ganz am Anfang beginnen, benötigen Sie für Ihre Einträge eine neue Tabelle in MySQL. Um die gewünschte Tabelle anzulegen, gibt es viele Möglichkeiten. Sie könnten: ein PHP-Programm schreiben, das die Tabelle anlegt MySQL auf der Konsole bedienen MySQL über ein Tool wie phpMyAdmin steuern2
Bei Ihrer lokalen XAMPLITE-Installation und den meisten Webspace-Providern erhalten Sie zur Datenbankverwaltung das Tool phpMyAdmin. Mit diesem Programm, das ebenso wie Joomla! in PHP geschrieben ist, können Sie sehr einfach Ihre MySQL-Tabellen direkt bearbeiten. In XAMPLITE rufen Sie phpMyAdmin durch die Eingabe des folgenden URL in Ihrem Browser auf (Abbildung 7.3): http://localhost/phpmyadmin
Abbildung 7.3: phpMyAdmin Wählen Sie im linken Bereich Ihre Datenbank aus, die die Joomla!-Tabellen enthält. In meinem Fall ist das die Datenbank joomla100. Bei manchen Providern landen Sie beim Aufruf von phpMyAdmin direkt in Ihrer zugewiesenen Datenbank, wenn Sie nur 2
http://www.phpmyadmin.net/.
259
Sandini Bib 7 Eigene Komponenten, Module und Mambots
eine Datenbank in Ihrem Hostingpaket haben. Bei XAMPLITE können Sie beliebig viele Datenbanken einrichten und müssen daher die richtige Datenbank auswählen. Datenbanken wie MySQL werden mit SQL-Befehlen gesteuert. Die Structured Query Language3 ist eine Datenmanipulationssprache, die Ähnlichkeiten mit der in den 70er Jahren aufgekommenen Mengenlehre hat. In SQL gibt es wenige, aber sehr mächtige Befehle wie ändern, löschen, einfügen, erstellen. Sie arbeiten immer mit Datenmengen und versuchen, den entsprechenden Befehl auf eine Teilmenge von Daten anzuwenden. Im SQL-Vokabular heißen diese Befehle UPDATE, DELETE, INSERT und CREATE. Mit dem CREATE TABLE-Befehl legen Sie eine neue Tabelle an. Sie müssen die einzelnen Felder beschreiben (Name, Größe, Typ) und einen Index festlegen. Über diesen Index erhält jeder Datensatz eine eindeutige Nummer und kann später bei einer späteren Suche durch diese Nummer eindeutig adressiert werden. Mit der Funktion AUTO_INCREMENT stellen Sie sicher, dass die Nummer (der Schlüssel) automatisch beim Einfügen eines neuen Datensatzes um den Wert 1 hochgezählt wird. Mit dem INSERT-Befehl fügen Sie Datensätze ein. Sie ordnen hier Daten den einzelnen Feldern der Tabelle zu. Für das Komponentenbeispiel benötigen Sie die folgenden SQL-Befehle zur Erstellung der Tabelle und zum Einfügen der Daten (Listing 7.1:). Listing 7.1: SQL-Befehle für die Beispieltabelle -- Tabellenstruktur für Tabelle `mos_joomla_buch` CREATE TABLE `mos_joomla_buch` ( `id` INT NOT NULL AUTO_INCREMENT, `text` TEXT NOT NULL, `published` TINYINT(1) NOT NULL, PRIMARY KEY (`id`) ); -- Daten für Tabelle `mos_joomla_buch` INSERT INTO `mos_joomla_buch` VALUES ('BMW 1', 1); INSERT INTO `mos_joomla_buch` VALUES ('Renault Kangoo', 1); INSERT INTO `mos_joomla_buch` VALUES ('Audi A6', 1); INSERT INTO `mos_joomla_buch` VALUES ('VW Golf', 1); INSERT INTO `mos_joomla_buch` VALUES ('Mercedes G', 1);
Um diese SQL-Befehle an die Datenbank zu übermitteln, wählen Sie in phpMyAdmin Ihre Datenbank aus und klicken auf den Link SQL. Sie erhalten ein HTML-Formular, in dem Sie die SQL-Befehle einfügen und direkt an die Datenbank schicken können. Fügen Sie die Befehle in das Formular ein und klicken Sie auf OK (Abbildung 7.1).
3
http://www.little-idiot.de/mysql/. Hier finden Sie alles, was Sie zum Leben und Überleben mit MySQL und SQL benötigen.
260
Sandini Bib 7.1 Beispielkomponente joomlabuch
Abbildung 7.4: Einlesen der Tabellenstruktur phpMyAdmin legt die neue Tabelle jos_joomla_buch an und fügt fünf Datensätze ein. Durch einen Klick auf die neue Tabelle jos_joomla_buch und den Link ANZEIGEN sehen Sie das Ergebnis in übersichtlicher Form (Abbildung 7.5). Die Beschreibung steht im Feld text, das Feld published wird dazu benutzt, einen Veröffentlichungsstatus zu verwalten. Der Wert 1 bedeutet, dass der entsprechende Eintrag auf der Website veröffentlicht ist. Der Wert 0 verhindert eine Veröffentlichung.
Abbildung 7.5: Angelegte Tabelle mos_joomla_buch Jetzt haben wir die Tabelle angelegt und können phpMyAdmin bis auf weiteres verlassen. Das Erzeugen der Tabelle und das Einfügen der Werte in die Datenbank haben wir per Hand erledigt, weil unsere Komponente noch nicht fertig und dadurch nicht über den Component Installer installierbar ist. Diese Arbeit übernimmt bei der automati-
261
Sandini Bib 7 Eigene Komponenten, Module und Mambots
schen Installation in Joomla! später der Component Installer. Die notwendigen SQLBefehle zur korrekten Initialisierung Ihrer Komponenten müssen Sie in einer separaten XML-Konfigurationsdatei festlegen.
7.1.2
Das Frontend
Mit dem Frontend ist Ihre Website gemeint. Um die Vorfreude auf die fertige Komponente ein wenig zu steigern, wollen wir mit der Anzeige der Liste im Frontend beginnen. Wenn Sie mal einen Blick in Ihr Verzeichnis [PfadzuJoomla!]/components werfen, so stellen Sie fest, dass dort alle Verzeichnisse mit com_ beginnen. Danach folgt eine mehr oder weniger aussagekräftige Beschreibung (com_contact, com_content etc). In diesen Verzeichnissen befinden sich Ihre installierten Komponenten. Um eine Komponente auf Ihrer Website im Browser aufzurufen, geben Sie den Namen dieses Unterverzeichnisses als Wert für den Parameter option im URL an: http://localhost/joomla100/index.php?option=com_contact Für Ihre eigenen Komponenten legen Sie jetzt bitte ein neues Unterverzeichnis mit dem Namen [PfadzuJoomla!]/components/com_joomlabuch an. In diesem Unterverzeichnis erstellen Sie bitte zwei Dateien. 1. joomlabuch.php – In dieser Datei befindet sich die Logik der Komponente in reinem PHP-Code. Hier wird beispielsweise die Datenbank abgefragt und das Ergebnis an ein Array übertragen. 2. joomlabuch.html.php – In dieser Datei geht es um die Präsentation der Daten in dem Array. Auch hier wird PHP verwendet. Der Schwerpunkt der Befehle dieser Datei liegt allerdings auf HTML- und CSS-Code.
joomlabuch.php Die Datei besteht aus vier Bereichen und wenigen Zeilen (Listing 7.2). Im ersten Bereich wird sichergestellt, dass es nicht möglich ist, die Datei durch Eingabe des Dateinamens direkt aufzurufen. defined('_VALID_MOS') or die('Ein direkter Zugriff auf diese Datei ist verboten. );
Es soll lediglich die Möglichkeit bestehen, die Datei von einer anderen Datei aus aufzurufen. Diese Maßnahme dient der Sicherheit, denn die Komponente ist allein ohne das Joomla!-System nicht lauffähig. Außerdem wird hier der Quellcode der zweiten Datei (joomlabuch.html.php) eingebunden. Da dieses Einbinden der HTML-Oberfläche in jeder Komponente benötigt wird, gibt es dafür eine vordefinierte Methode mit dem Namen getPath(). Sie sucht im gleichen Verzeichnis nach der korrespondierenden Datenpräsentationsdatei und bindet sie ein. Der Name wird dabei dynamisch aus dem Namen des Verzeichnisses und der Endung .html.php erzeugt.
262
Sandini Bib 7.1 Beispielkomponente joomlabuch
require_once($mainframe->getPath('front_html'));
Im zweiten Bereich werden Parameter übergeben, hier der HTML-Titel der Seite. Er erscheint im blauen Titelbalken des Browserfensters. $mainframe->setPageTitle("Beispielkomponente Joomla! Buch");
Auch für diesen Zweck gibt es eine Methode – setPageTitle. Im dritten Bereich findet eine Fallunterscheidung statt. Sie könnten die Komponente mit verschiedenen Parametern aufrufen, die Sie dann hier auswerten. Beispielsweise könnte hier zwischen einer Tabellensicht und einer Einzelsicht auf die Datensätze unterschieden werden. Auf die Gebrauchtwagenliste bezogen könnte der Name des Eintrags als Link konstruiert und nach einem Klick auf diesen eine detailliertere Beschreibung des Fahrzeugs angezeigt werden. switch( $task ) { case 'frei': // mehr Anzeigemöglichkeiten break; default: listJoomlabuch(); break; }
Im vierten Bereich befindet sich die eigentliche Logik. Hier wird die Datenbank abgefragt, ein Ergebnis-Array erzeugt und die Methode showtable() in der Klasse HTML_joomlabuch aufgerufen. Diese Klasse befindet sich in der eingebundenen joomlabuch.html.php-Datei. Den kompletten Quelltext sehen Sie hier: Listing 7.2: Joomla!buch.php getPath( 'front_html' ) ); // Bereich 2 $mainframe->setPageTitle( "Beispielkomponente Joomla! Buch" ); // Bereich 3 switch( $task ) { case 'frei': // mehr Anzeigemöglichkeiten break; default:
263
Sandini Bib 7 Eigene Komponenten, Module und Mambots
listJoomlabuch(); break; } // Bereich 4 function listJoomlabuch( ) { global $database; /* SQL Abfrage für alle veröffentlichten Einträge */ $query = "SELECT * FROM #__joomla_buch WHERE published='1'"; $database->setQuery( $query ); $rows = $database->loadObjectList(); HTML_Joomlabuch::showtable( $rows ); } ?>
joomlabuch.html.php Die Datei joomlabuch.html.php (Listing 7.3) enthält die Klasse HTML_Joomlabuch. Eine Klasse können Sie sich als eine Art Bauplan mit vielen Methoden und Eigenschaften vorstellen. Wir hatten vorhin bereits zwei Methoden einer Klasse kennen gelernt (getPath(), setPageTitle()). Waren diese Methoden bereits in Joomla! vordefiniert, so müssen wir jetzt Klasse und Methode selbst schreiben. Unsere kleine Klasse enthält »nur« die Methode showTable(). Der Methode showTable() wird ein Array als Parameter übergeben ($rows). Das Array ist das Ergebnis der Datenbankabfrage und enthält die Liste aller eingetragenen Datensätze. Diese Liste soll in einer Tabelle dargestellt werden. Um diesen Effekt zu erreichen, läuft eine foreach-Schleife so lange durch das Array, bis keine Elemente mehr vorhanden sind. ... foreach ($rows as $row) { ...
Bei jedem Durchlauf wird ein unterschiedlicher Wert für die Variable $k erzeugt. Dieser Wert in $k steuert die Auswahl der CSS-Klasse zur Formatierung einer Tabellenzeile (class="sectiontableentry
Hier handelt es sich um eine statische Klasse (HTML_Joomlabuch), deren Methode (showtable($rows)) direkt aufgerufen werden kann. Klassenname und Methodenname werden durch zwei Doppelpunkte getrennt.
264
Sandini Bib 7.1 Beispielkomponente joomlabuch
Listing 7.3: joomlabuch.html.php
text; ?>
7.1.3
Integration in das Hauptmenü
Da wir an dieser Stelle die Komponente noch nicht »vernünftig« installiert haben, weiß Joomla! auch nicht, dass sie überhaupt vorhanden ist. Sie können sie aber bereits aufrufen, und zwar über den URL: http://localhost/joomla100/index.php?option=com_joomlabuch Sie können die Komponenten in diesem Entwicklungsstadium nur über die Option Link-Url in das Hauptmenü einbinden. Klicken Sie in der Joomla!-Administration auf den Menüeintrag MENU –> MAINMENU und dann auf das Icon NEW. Wählen Sie unten rechts LINK-URL und klicken Sie in der Toolbar auf das Icon NEXT. Hier können Sie eine Bezeichnung und den oben angegebenen Link eintragen (Abbildung 7.6).
265
Sandini Bib 7 Eigene Komponenten, Module und Mambots
Abbildung 7.6: Menüeintrag per URL Wenn Sie nun Ihre Website aufrufen, sollten Sie den Menülink GEBRAUCHTWAGEN und nach Klick auf diesen die Gebrauchtwagentabelle sehen (Abbildung 7.1). Sie sehen, dass sich die Tabelle automatisch an das Template anpasst und die ganze Sache doch gar nicht so schwer war, oder? Durchaus ein Argument, sich einmal ernsthaft mit objektorientierter Programmierung und der Syntax von PHP, HTML und CSS zu befassen.
7.1.4
Die Joomla!-Administration
War das reine Anzeigen der Daten auf der Website noch verhältnismäßig einfach, so ist das Verwalten der Daten naturgemäß ein wenig aufwendiger. Hier müssen Sie die Daten als Administrator anzeigen, ändern, neu einfügen, löschen und veröffentlichen können. Also erheblich mehr Funktionalität als in der einfachen Liste auf der Website.
Die Komponenten-Tabelle Joomla! verwaltet die Menüeinträge aller Komponenten in der Tabelle jos_components. Da Sie keinen Component Installer benutzt haben und alles per Hand bauen, benötigen Sie in dieser Tabelle zwei neue Menüeinträge. Der eine Menüeintrag sorgt dafür, dass Ihre neue Komponente im Komponentenmenü angezeigt wird, und der zweite Eintrag definiert den Unterpunkt (EINTRAEGE BEARBEITEN). Rufen Sie wieder phpMyAdmin auf, wählen Sie die Tabelle jos_components aus, klicken Sie auf den Link SQL, fügen Sie die beiden SQL-Befehle ein (Listing 7.4) und bestätigen Sie dann mit OK. Ich habe die ID-Nr. 80 vorgegeben. Der zweite Eintrag bezieht sich auf den ersten Eintrag. Deswegen ist es wichtig, dass die ID-Nummern übereinstimmen. Momentan dürften höchstens 32 Einträge in der Tabelle sein, so dass dieser Weg funktionieren sollte.
Durch den Eintrag dieser beiden Datensätze erweitern Sie das Menü COMPONENTS um einen Haupteintrag (joomlabuch) und einen Untermenüeintrag (Einträge bearbeiten) (Abbildung 7.7). Außerdem legen Sie fest, was der jeweilige Menüeintrag aufrufen soll (option=com_joomlabuch&act=all'), und geben noch eine Grafik an, die links neben dem Menü erscheinen soll ('js/ThemeOffice/component.png'). Die Grafiken finden Sie im Ordner [PfadzuJoomla!]/includes/js/ThemeOffice.
Abbildung 7.7: Neue Komponente im Menü Components Um die Administrationskomponente zu erstellen, benötigen Sie nicht nur zwei, sondern fünf Dateien. Im Verzeichnis [PfadzuJoomla!]/administraton/components/ müssen Sie zunächst ein Unterverzeichnis mit dem Namen com_joomlabuch anlegen. In diesem Unterverzeichnis erstellen Sie sich bitte die folgenden fünf Dateien: 1. admin.joomlabuch.php 2. joomlabuch.class.php 3. admin.joomlabuch.html.php
267
Sandini Bib 7 Eigene Komponenten, Module und Mambots
admin.joomlabuch.php Diese Datei enthält wieder die Logik Ihrer Komponente. Hier gehen wir noch einen Schritt weiter als im Frontend und lagern die Datenbankabfragen teilweise in die Datei joomlabuch.class.php aus. Grundsätzlich ist der Aufbau wie bereits in der Frontend-Logik beschrieben. Die Datei ist umfangreicher, da nun mehrere Fälle möglich sind, die mit jeweils einer Funktion implementiert werden müssen. Außerdem werden am Beginn noch die Zugriffsberechtigungen geprüft, da wir uns ja in der Joomla!-Administration befinden. Listing 7.5: admin.Joomla!buch.php acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' ) | $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'com_joomlabuch' ))) { mosRedirect( 'index2.php', _NOT_AUTH ); } // Laden der Datenbank Klasse und der HTML Klasse require_once( $mainframe->getPath( 'admin_html' ) ); require_once( $mainframe->getPath( 'class' ) ); $task = mosGetParam( $_REQUEST, 'task', array(0) ); // Fallunterscheidung switch ($task) { case "publish": publishJoomlabuch( $id, 1, $option ); break; case "unpublish": publishJoomlabuch( $id, 0, $option ); break; case "new": editJoomlabuch( 0, $option ); break; case "edit": editJoomlabuch( $id[0], $option ); break; case "remove": removeJoomlabuch( $id, $option ); break; case "save":
268
Sandini Bib 7.1 Beispielkomponente joomlabuch
saveJoomlabuch( $option ); break; case "cancel": cancelJoomlabuch( $option ); break; default: showJoomlabuch( $option ); break; } // Veröffentlichung der Eintraege function publishJoomlabuch( $cid, $publish, $option ) { global $database; if (count( $cid ) < 1) { $action = $publish ? 'publish' : 'unpublish'; echo "<script> alert('Select a item to ".$action."'); window.history. go(-1);\n"; exit; } $cids = implode( ',', $cid ); $database->setQuery( "UPDATE #__joomla_buch SET published=($publish) WHERE id IN ($cids)"); if (!$database->query()) { echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); \n"; exit(); } if (count( $cid ) == 1) { $row = new mosJoomlabuch( $database ); $row->checkin( $cid[0] ); } mosRedirect( "index2.php?option=$option" ); } // Neuen Eintrag erstellen (id = 0) // oder Eintrag mit id = n ändern function editJoomlabuch( $cid, $option ) { global $database; $row = new mosJoomlabuch( $database ); $row->load( $cid ); HTML_Joomlabuch::editJoomlabuch( $row, $option ); } // Löschen von Eintraegen function removeJoomlabuch( $cid, $option ) { global $database; if (!is_array( $cid ) || count( $cid ) < 1) { echo "<script> alert('Bitte einen Eintrag zum Loeschen auswaehlen'); window.history.go(-1);\n"; exit; } $cids = implode( ',', $cid );
269
Sandini Bib 7 Eigene Komponenten, Module und Mambots
$database->setQuery( "DELETE FROM #__joomla_buch WHERE id IN ($cids)" ); if (!$database->query()) { echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); \n"; } mosRedirect( "index2.php?option=$option" ); } // Eintrag speichern function saveJoomlabuch( $option ) { global $database; $row = new mosJoomlabuch( $database ); if (!$row->bind( $_POST )) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); \n"; exit(); } if (!$row->store()) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); \n"; exit(); } mosRedirect( "index2.php?option=$option" ); } // Abbrechen der momentanen Aktion function cancelJoomlabuch( $option ) { global $database; $row = new mosJoomlabuch( $database ); $row->bind( $_POST ); $row->checkin(); mosRedirect( "index2.php?option=$option" ); } // Auflistung der Eintraege function showJoomlabuch($option) { global $database, $mainframe; $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', 10 ); $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); // Eintraege zaehlen $database->setQuery( "SELECT count(*) FROM #__joomla_buch" ); $total = $database->loadResult(); echo $database->getErrorMsg(); require_once("includes/pageNavigation.php"); $pageNav = new mosPageNav( $total, $limitstart, $limit ); # Abfrage der Datenbank $database->setQuery( "SELECT * FROM #__joomla_buch ORDER BY id LIMIT $pageNav->limitstart,$pageNav->limit" ); $rows = $database->loadObjectList(); if ($database->getErrorNum()) { echo $database->stderr();
joomlabuch.class.php Hier ist die Auslagerung der Datensatzstruktur in eine eigene Klasse, die von der Klasse mosDBTable abgeleitet wird. MosDBTable ist eine Klasse in der Datei /includes/database.php und stellt grundsätzliche Methoden zum Datenbankzugriff zur Verfügung. Listing 7.6: Joomla!buch.class.php mosDBTable( '#__joomla_buch', 'id', $db ); } } ?>
admin.joomlabuch.html.php Hier befindet sich, wie bereits in der Frontend-Komponente beschrieben, die Klasse HTML_joomlabuch, die sich auf die Präsentation der Daten bezieht. Hier werden die HTML- und CSS-Strukturen auf der Basis der durch das Array $row übergebenen Daten aus admin.joomlabuch.php erzeugt.
271
Sandini Bib 7 Eigene Komponenten, Module und Mambots
Listing 7.7: admin.joomlabuch.html.php <script language="javascript" type="text/javascript"> function submitbutton(pressbutton) { var form = document.adminForm; if (pressbutton == "cancel") { submitform( pressbutton ); return; } // Überprüfunge des Feldinhaltes if (form.text.value == '') { alert( "Bitte tragen Sie etwas in das Feld ein." ); } else { submitform( pressbutton ); } }
273
Sandini Bib 7 Eigene Komponenten, Module und Mambots
toolbar.joomlabuch.php Diese Datei ruft abhängig von der ausgewählten Funktion die verschiedenen Toolbar-Symbole auf und stellt damit die Logik der Toolbar dar. Die Datei toolbar.joomlabuch.html.php mit den Präsentationsinformationen wird eingebunden. Listing 7.8: toolbar.joomlabuch.php getPath( 'toolbar_html' ) ); switch($task) { case "new": case "edit": menuJoomlabuch::MENU_Edit(); break; default: menuJoomlabuch::MENU_Default(); break; } ?>
toolbar.joomlabuch.html.php Hier werden die verschiedenen Werkzeugleisten vordefiniert (Listing 7.9). Aufgerufen werden Methoden der statischen Klasse mosMenu, einmal für die Listenansicht und einmal für die Editieransicht (Abbildung 7.8 und Abbildung 7.9).
Abbildung 7.8: Werkzeugleiste im Listmodus
Abbildung 7.9: Werkzeugleiste im Editiermodus
274
Sandini Bib 7.1 Beispielkomponente joomlabuch
Listing 7.9: toolbar.joomlabuch.html.php
Test Nachdem Sie alle Dateien erstellt haben, können Sie die Komponente testen und die Datensätze komplett über die Joomla!-Administration verwalten. Sie können neue Texte anlegen, vorhandene löschen, ändern und veröffentlichen. Durch ein vorheriges Ankreuzen der Einträge können Sie beim Veröffentlichen und beim Löschen mehrere Einträge auf einmal bearbeiten.
7.1.5
Installationspaket erstellen
Um ein Installationspaket für Ihre neue Komponente zu schnüren, benötigen Sie außer diesen Programmdateien noch zwei Dateien mit dem Installations- (Listing 7.10) und mit dem Deinstallationstext (Listing 7.11) sowie die Anweisungsdatei für den Component Installer als XML-Datei (Listing 7.12).
275
Sandini Bib 7 Eigene Komponenten, Module und Mambots
uninstall.joomlabuch.php Listing 7.11: uninstall.joomlabuch.php function com_uninstall() { echo "Vielen Dank für die Benutzung. Die Komponente wurde nun deinstalliert. Bei Fragen oder Anmerkungen wenden Sie sich bitte an hagen@aubkunden.de."; }?>
joomlabuch.xml Hier beschreiben Sie Ihre neue Komponente gegenüber dem Component Installer. Sie müssen alle Informationen wie Metadaten, alle Dateinamen und die benötigten SQLBefehle (Query) in XML-Tags einschließen. Der Component Installer liest diese Datei aus, erzeugt je nach Typ (Komponente, Modul, Template oder Mambot) neue Unterverzeichnisse, kopiert die Dateien, die in der XML-Datei beschrieben werden, an den richtigen Platz und legt die benötigten Datenbanktabellen an. Also alles das, was Sie vorhin mühselig von Hand eingetragen haben. Listing 7.12: joomlabuch.xml <mosinstall type="component"> joomlabuch22.09.2005Hagen GrafGNU/GPL[email protected]www.alternative.unternehmensberatung.de1.0joomlabuch.phpjoomlabuch.html.phpDROP TABLE IF EXISTS `jos_joomla_buch`;
276
Sandini Bib 7.1 Beispielkomponente joomlabuch
CREATE TABLE `jos_joomla_buch` ( `id` INT NOT NULL AUTO_INCREMENT, `text` TEXT NOT NULL, `published` TINYINT(1) NOT NULL, PRIMARY KEY (`id`) ) DROP TABLE IF EXISTS `jos_joomla_buch`;install.joomlabuch.phpuninstall.joomlabuch.php <menu>Joomla! Buch <submenu> <menu act="all">Eintraege bearbeiten admin.joomlabuch.phpadmin.joomlabuch.html.phpjoomlabuch.class.phptoolbar.joomlabuch.phptoolbar.joomlabuch.html.php
Um das Installationspaket zu erzeugen, müssen Sie alle erstellten Dateien in ein Verzeichnis kopieren und dieses Verzeichnis zu einem ZIP-Paket mit dem Namen der Komponente, in unserem Fall com_joomlabuch.zip, verpacken (Abbildung 7.10).
Abbildung 7.10: Dateien der Komponente Joomla!buch
277
Sandini Bib 7 Eigene Komponenten, Module und Mambots
Die ZIP-Datei können Sie jetzt mit dem Component Installer wie gewohnt installieren und, wenn Sie wollen, zum Download für andere Anwender bereitstellen. Bevor Sie das tun, sollten Sie die per Hand erstellte Variante über den Component Installer deinstallieren.
7.2
Module
Ein Modul ist von der Idee her sehr viel einfacher. Module haben keine echte Administrationsoberfläche. Es geht immer um die Darstellung auf Ihrer Website und die Einbindung in Ihr Template. Module setzen meist auf vorhandenen Komponenten auf. Sie können also davon ausgehen, dass bestimmte Tabellen und Ihre Inhalte bereits vorhanden sind und gepflegt werden können. Sie benötigen zwei Dateien: eine Datei für die Logik und die Darstellung und die XML-Datei für den Module Installer. Beide Dateien beginnen mit der Kennzeichnung mod_.
7.2.1
Quellcode
mod_joomlabuch.php Im Vergleich zur Komponente ist diese Datei sehr einfach aufgebaut. Es findet eine Datenbankabfrage und die Darstellung der Ergebnisse in einer foreach-Schleife statt. Listing 7.13: mod_joomlabuch.php setQuery("SELECT * FROM #__joomla_buch LIMIT 5"); $rows = $database->loadObjectList(); echo "
\n"; if ($rows) { foreach ($rows as $row) { echo "
" . $row->text . "
\n"; } echo "
\n"; } ?>
mod_joomlabuch.xml Auch hier müssen Sie wie bei der Komponente alle für den Module Installer relevanten Daten in XML-Tags verpacken.
278
Sandini Bib 7.2 Module
Listing 7.14: mod_joomlabuch.xml <mosinstall type="module" version="4.5.2"> JoomlabuchHagen Graf22.09.2005GNU/GPL[email protected]www.alternative-unternehmensberatung.de1.0 <description> Mit diesem Modul werden 5 Eintraege aus der Testkomponente Joomlabuch angezeigt.
Verpacken Sie die beiden Dateien in einem ZIP-Paket mit dem Namen mod_joomlabuch.zip und installieren Sie es mit dem Module Installer (Abbildung 7.11).
Abbildung 7.11: Installationsmeldung des Moduls joomlabuch Aktivieren Sie das Modul im Site Module Manager.
279
Sandini Bib 7 Eigene Komponenten, Module und Mambots
7.2.3
Ansicht auf der Website
Auf der Website sehen Sie jetzt die Einträge im linken Modulbereich (Abbildung 7.12).
Abbildung 7.12: Modul Joomlabuch auf der Website
7.3
Mambots
Um die Liste durchsuchbar zu machen, benötigen Sie einen Mambot. Auch hier erstellen Sie, wie bei dem Modul, die PHP-Datei mit der Logik (Listing 7.15) und die XML-Datei mit der Beschreibung (Listing 7.16). Verpacken Sie beide Dateien in einem ZIP-Paket bot_joomlabuch.zip und installieren Sie das Paket per Mambot Installer (Abbildung 7.13). Listing 7.15: joomlabuch.searchbot,php registerFunction('onSearch', 'botSearchSections'); /** * Sections Search method * The sql must return the following fields that are used in a common display * routine: href, title, section, created, text, browsernav * @param string Target search string * @param string mathcing option, exact|any|all * @param string ordering option, newest|oldest|popular|alpha|category */ function botSearchSections($text, $phrase='', $ordering=''){ global $database, $my; $text = trim( $text ); if ($text == '') { return array(); } switch ( $ordering ) { case 'alpha': $order = 'a.name ASC'; break; case 'category': case 'popular': case 'newest': case 'oldest':
280
Sandini Bib 7.3 Mambots
default: $order = 'a.name DESC'; } $query = "SELECT * FROM #__joomla_buch" . "\n WHERE ( text LIKE '%$text%' )" . "\n AND published = '1'" . "\n ORDER BY $text"; $database->setQuery( $query ); $rows = $database->loadObjectList(); $count = count( $rows ); for ($i = 0; $i < $count; $i++){ $rows[$i]->href = 'index.php?option=com_joomlabuch&task=frei&id='. $rows[$i]->secid .'&Itemid='. $rows[$i]->menuid; $rows[$i]->section = 'Joomlabuch Liste'; } return $rows; }?>
Abbildung 7.13: Installationsmeldung des joomlabuch-Mambots
281
Sandini Bib 7 Eigene Komponenten, Module und Mambots
Wenn Sie nun den Mambot im Menü MAMBOTS –> SITE MAMBOTS noch aktivieren, ist Ihre Liste über das Suchfeld auf der Website durchsuchbar. Nach Eingabe eines Suchbegriffs wird das Feld text in der Datenbank durchsucht und die Ergebnisse werden in der allgemeinen Suchmaske angezeigt (Abbildung 7.14). Der Searchbot ist bewusst einfach gehalten. An der Fundstelle in den Suchergebnissen sollte natürlich ein Link zur Einzelansicht des Listenelements platziert werden, damit der Suchende jetzt dorthin weitergehen kann. Da wir aber in unserer Komponente keine Einzelansicht vorgesehen haben, können wir hier natürlich keinen Link angeben.
Abbildung 7.14: Der Searchbot joomlabuch im Einsatz
7.4
Schlussbemerkung
Dieses Kapitel sollte Ihnen eine Übersicht über die Erstellung von Komponenten, Modulen und Mambots geben. Weitergehende Entwicklungen lassen sich gut aus vergleichbaren Komponenten ableiten. Beispielsweise hat unsere Komponente Joomlabuch nur eine Tabellenansicht. Suchen Sie sich eine Komponente mit Einzelansicht wie beispielsweise com_contact und erweitern Sie Joomlabuch um diese Funktionalität. Ebenso verhält es sich mit den Parameterangaben bei Modulen. Suchen Sie sich eine Vorlage und erstellen Sie Ihr eigenes Modul. Was auf den ersten Blick kompliziert aussieht, entpuppt sich bei näherem Hinsehen als durchaus durchschaubar. Ich wünsche Ihnen viel Spaß beim Ausprobieren!
282
Sandini Bib
A Anhang A.1
Online-Ressourcen
Joomla! ist ein Open Source-Projekt, das die Ideen und Erfahrungen hunderttausender Menschen sammelt, bündelt, weiterentwickelt und online zur Verfügung stellt. Online finden Sie immer die neuesten Informationen. Im deutschsprachigen Internet haben sich bis jetzt (Oktober 2005) zwei Anlaufstellen gebildet: http://www.joomla.de/ http://www.joomlamagazin.de/ In der Englisch sprechenden Welt gibt es momentan als Anlaufadresse in erster Linie die Joomla.org-Website. http://www.joomla.org/ Sie ist weiter aufgeteilt in die Bereiche: http://help.joomla.org http://forum.joomla.org http://developer.joomla.org Hier finden Sie wirklich alles, was Sie zu einem erfolgreichen Einsatz von Joomla! benötigen.
A.2
Downloads
Sie können die benötigten Softwarepakete von der beiliegenden Buch-CD, von den jeweiligen Projektseiten oder aus einer Zusammenfassung auf unserer Website http://www.alternative-unternehmensberatung.de/ downloaden. Für eine lokale Installation sind die hier angebotenen Dateipakete gut geeignet, da sich dann die Erklärungen im Buch gut nachvollziehen lassen. Um Ihnen das Laden der Software-Pakete von der Buch-CD zu erleichtern, habe ich die Dateien in einer dem Buch entsprechenden Kapitelstruktur abgelegt (siehe Tabelle A.1). Denken Sie aber daran, dass es mit Sicherheit aktuellere Versionen auf den jeweiligen Seiten im Internet gibt.
Sandini Bib A Anhang
A.2.1
Betriebssystemunabhängig
Kapitel
Datei
Beschreibung
2
Joomla_Stable_1.0.0.tar.gz
Joomla-Quellcode Version 1.0.0
Joomla_1.8.3-Stable-Full_Package.zip
Joomla-Quellcode Version 1.0.3
xampplite-win32-1.4.15.zip
Entwicklungsumgebung XAMPPLITE
Dreamweaver MX 2004 installieren.exe
Dreamweaver MX 2004-Trial (30 Tage)
4
jos100germani.zip jos100germanf.zip
Deutsche Sprachdateien (Sie- und Du-Anrede)
5
Simpleboard-1.1.0-Stable.zip
Forumskomponente
SB1.1_stable_deutsch.zip
Deutsche Sprachdatei für die Forumskomponente
Mod_simpleboard5.zip
Forumsmodul
Com_events-1.2.zip
Kalenderkomponente
Mod_events_cal-1.1-beta.zip
Kalendermodul
bot_events_search-1.1.zip
Kalender-Mambot
Com_zoom_25b3.zip
Bildergaleriekomponente
Com_akocomment20.zip
Kommentarkomponente
cb_akocommentbot.zip
Mambot für Kommentarkomponente
docmanV13_RC_1.zip
Dokumentenmanagement-Komponente
JOOMLA_com_docman_german_ 1.3_RC1_joomlaGTT.zip
Deutsche Sprachdatei für DOCMan
Mod_mostdownV10_RC_1.zip
Modul für DOCMan
bot_searchV10_RC_2.zip
Mambot für DOCMan
mambo-phpShop_1.2_stablepl3_COMPLETE_PACKAGE.zip
Shopkomponente – Komplettpaket mit Modulen
MambelFish_1.5.zip
Mambelfish-Komponente
Mbf_module.zip
Mambelfish-Modul
Mbf_searchbot.zip
Mambelfish-Such-Mambot
mambosolutionsDW_107.mxp
Dreamweaver-Extension zur TemplateErstellung
Joomlabuch.zip
Eigenes Template
Com_joomlabuch.zip
Eigene Komponente
Mod_joomlabuch.zip
Eigenes Modul
bot_joomlabuch.zip
Eigener Mambot
6
7
Tabelle A.1: Downloads Das Programm Filzip können Sie unter www.filzip.com herunterladen.
284
Sandini Bib A.3 Template-Strukturen
A.3
Template-Strukturen
Templates bestehen aus vielen Elementen. Die wichtigsten sind die CSS-Bereiche und die eingebetteten PHP-Befehle.
A.3.1
CSS
Es haben sich in den Joomla!-Templates bestimmte Bezeichnungen für bestimmte Bereiche eingebürgert. Diese Bereiche werden in CSS auch Klassen genannt. Ich möchte Ihnen exemplarisch vier Beispiele zeigen. Wenn eine Klasse aufgerufen wird, die nicht in der CSS-Datei existiert, ändert sich an der Anzeige nichts. Durch die Vielzahl von Versionen und Erweiterungen ist es immer gut, wenn Sie in den HTML-Code schauen und versuchen, einen Überblick über die benutzten Klassen zu erhalten.
Kopfbereich Nachfolgend sehen Sie die CSS-Befehle (Listing A.1) im Kopfbereich und die entsprechenden Stellen auf der Website (Abbildung A.1). Der CSS-Code soll als Beispiel dienen. Es sind nicht alle Stellen mit CSS-Beispielen versehen. Schauen Sie sich CSS-Dateien der vordefinierten Templates an, um weitere Beispiele zu finden. Listing A.1: CSS-Befehle im Kopfbereich .title { font-family: sans-serif; font-size: 20px; font-weight: bold; color : #000000; margin-left: 10px; } .button { font-family : Verdana, Arial, Helvetica, sans-serif; font-style : normal; font-size : 10px; font-weight : bold; background-color : #F0F0F0; color : #000000; border : 1px solid #CCCCCC; }
News-Übersicht Hier sehen Sie die CSS-Befehle in der NEWS-Übersicht und die entsprechenden Stellen auf der Website (Abbildung A.4). Listing A.4: CSS-Befehle News-Übersicht .sectiontableheader { background-color : #CCCCCC; color : #333333; font-weight : bold;
Tabelle A.2: PHP-Einschübe in der index.php eines Templates
289
Sandini Bib A Anhang
PHP-Code
Wirkung
Setzen der CSS-Datei
BODY
Der Pfad der Seite
mosLoadModules ( '[ort]', [, $style])
Laden des Moduls an der Position [ort]. $style ist: 0: Modul wird in einer Tabellenspalte dargestellt (
...
) 1: Modul wird horizontal in einer Zelle dargestellt –1: Modul wird ohne umgebende Tabelle dargestellt –2: Modul wird im barrierefreien xJoomla!-Format dargestellt (
...
)
mosCountModules( '[ort]' )
Zählen der Module an der Position [ort]
Inhaltsbereich
Fußzeile
Tabelle A.2: PHP-Einschübe in der index.php eines Templates (Forts.)
A.3.3
Wie tausche ich ein Bild (Logo) im Template aus?
Um ein Logo auszutauschen, müssen Sie sich zunächst den Quellcode des entsprechenden Templates ansehen. Grafiken und Bilder können in der HTML- und in der CSS-Struktur definiert werden. Grafiken haben meist eine auf das Template abgestimmte Größe. Wenn Sie nun Bilder tauschen wollen, so können Sie das über mehrere Methoden realisieren.
Variante 1 1. Erstellen Sie sich von der Auflösung und der Dateigröße her passende Grafiken. 2. Laden Sie die Grafiken in den Media Manager von Joomla!. 3. Klicken Sie auf die Grafik, um den Link zur Grafik zu erhalten. 4. Ändern Sie im Quellcode Ihres Templates den entsprechenden -Tag auf das neue Bild.
290
Sandini Bib A.4 Joomla! API
Variante 2 1. Erstellen Sie die neuen Grafiken unter demselben Namen wie die Grafiken in Ihrem Template. 2. Überschreiben Sie einfach die alten Grafiken mit den neuen.
A.4
Joomla! API
Die API (Application Program Interface) beschreibt, an welcher Stelle welche Funktionen/Methoden im Quellcode vorhanden sind und was sie tun. Sie besteht aus Beschreibungen, die mit Hilfe eines Dokumentationsprogramms, automatisch aus den Quellcodes extrahiert werden. Zusätzlich zu diesen Beschreibungen wird jeweils ein Anwendungsbeispiel beschrieben. Das Joomla!-Team stellt diese Informationen in englischer Sprache auf dem Help-Server unter http://help.joomla.org/content/section/12/125/ zur Verfügung. Hier ein Beispiel für die Methode mosHTML::integerSelectList (Abbildung A.5):
Abbildung A.5: Joomla!-Beschreibung für mosHTML::integerSelectList
291
Sandini Bib A Anhang
A.5
Admin-Passwort vergessen
Wenn Sie Ihr Admin-Passwort vergessen haben, können Sie es in der Datenbank direkt ändern. Dazu benötigen Sie ein Tool wie phpMyAdmin. In der XAMPPLITEUmgebung rufen Sie es über den URL http://localhost/phpmyadmin in Ihrem Browser auf. Wählen Sie dort die von Ihnen benutzte Datenbank aus. In dieser Datenbank befindet sich eine Tabelle mos_users. Suchen Sie in dieser Tabelle den Benutzer admin. Das Passwort ist mit dem MD5-Verfahren verschlüsselt.1 Sie können es ändern, indem Sie in der Optionsliste links neben dem Feld den Eintrag MD5 auswählen und das Passwort im Klartext eingeben (Abbildung A.6).
Abbildung A.6: Admin-Passwort ändern Viele Provider bieten Ihnen ebenfalls phpMyAdmin zur Pflege Ihrer Datenbank an.
A.6
Migration von Mambo zu Joomla!
Viele von Ihnen haben vielleicht schon eine Mambo-Website und wollen jetzt auf Joomla! umsteigen.Grundsätzlich haben Sie es nun mit mehreren Problemen zu tun: 1. Die gesamte Website muss gesichert werden. 2. Die allgemeinen Quellcode-Dateien müssen aktualisiert werden. 3. Zusätzliche Komponenten, Module und Mambots müssen aktualisiert werden. 4. Eventuelle eigene Programmänderungen müssen aktualisiert werden. 5. Ihre Inhalte müssen das Update ohne Schaden überdauern.
1
http://de.wikipedia.org/wiki/MD5.
292
Sandini Bib A.6 Migration von Mambo zu Joomla!
Sie sehen anhand der Auflistung, dass ein Update umso einfacher ist, je mehr Sie mit den Standardkomponenten arbeiten, und umso schwieriger, je individualisierter Ihre Website ist. Es gibt momentan keine allgemeingültigen Regeln für die Updates, so dass Sie zunächst Informationen sammeln und einen individuellen Update-Plan für Ihre Seite erstellen müssen.
A.6.1
Daten sichern
Benutzen Sie das entsprechende Tool Ihres Providers, um einen MySQL-Dump zu erzeugen. In den meisten Fällen wird dies das Programm phpMyAdmin sein, das auch in der XAMPPLITE-Umgebung genutzt wird. Klicken Sie auf den Reiter Exportieren, markieren Sie alle Tabellen und kreuzen Sie in der Checkbox STRUKTUR alle Felder an. Wählen Sie bei der Checkbox DATEN vollständige Inserts aus. Im unteren Bereich müssen Sie die Checkbox SENDEN und das gewünschte Format ankreuzen. Wenn es der Provider ermöglicht, sollten Sie hier die gezippte Variante vorziehen. Komprimierte Dateien im Datenbankbereich können durchaus 95 % kleiner als die normale Datenbank sein! Bestätigen Sie Ihre Auswahl durch einen Klick auf den Button OK (Abbildung A.7).
Abbildung A.7: Datenbank sichern mit phpMyAdmin
293
Sandini Bib A Anhang
Die Inhalte der Datenbank werden nun extrahiert und Ihnen zum Download angeboten. Die Datei enthält alle SQL-Befehle, um die Tabellen in einer anderen Datenbank mit Ihren Inhalten zu erzeugen. Sie stellt also eine optimale Art der Sicherung der Dateien dar (Abbildung A.8).
Abbildung A.8: Download der DB-Sicherung Über phpMyAdmin können Sie die Daten wieder einlesen. Klicken Sie auf den Link SQL, wählen Sie die Datei mit den gesicherten Daten aus und klicken Sie auf den Button OK. Alle SQL-Befehle, die in der Datei stehen, werden nun ausgeführt und Ihre Daten werden wieder rekonstruiert (Abbildung A.9).
Abbildung A.9: Einlesen der gesicherten Daten
294
Sandini Bib A.6 Migration von Mambo zu Joomla!
A.6.2
Dateien sichern
Außer den Daten in der Datenbank sollten Sie natürlich auch die Quellcode-Dateien sichern. Benutzen Sie ein FTP-Programm Ihrer Wahl und kopieren Sie den gesamten Joomla!-Ordner.
A.6.3
Die Quellcode-Dateien müssen aktualisiert werden
Hier findet das eigentliche Update statt. Die wohl beste Erklärung dazu finden Sie auf der joomla.org-Seite.2 Erstellen Sie sich einen neuen Ordner und kopieren Sie alle neuen Joomla!-Dateien in diesen Ordner. Versuchen Sie NICHT bei einem Update, Joomla! per Webinstaller zu installieren! Der Installer würde neue, leere Tabellen anlegen und im schlimmsten Fall Ihre Datenbanktabellen überschreiben. Um das Update zu organisieren, darf es kein Installationsverzeichnis geben. Sie sollten es langfristig löschen. Momentan benennen Sie es einfach um (install_alt), da wir noch eine Datei aus diesem Verzeichnis benötigen. Kopieren Sie Ihre Mambo-Datei configuration.php in das neue Joomla!-Verzeichnis. Ändern Sie im Code der Datei die Variablen $mosConfig_absolute_path and $mosConfig_live_site auf den neuen Joomla!-Ordner. Kopieren Sie alle ZUSÄTZLICHEN Templates, Komponenten, Module, Mambots und Sprachdateien von Ihrem alten Mambo-Verzeichnis in Ihr neues Joomla!-Verzeichnis. Hier ist eine Liste der standardmäßigen Ordner, die Sie NICHT KOPIEREN dürfen. Diese Ordner stellen den Kern von Joomla! dar. Kopieren Sie KEINE Ordner, die sich außerhalb dieser angegebenen Ordner befinden. Kopieren Sie nur zusätzliche von Ihnen über die Installer installierte Ordner, die Sie in den angegebenen Ordnern finden und die nicht auf der folgenden Liste stehen! Templates: /administrator/templates/mambo_admin /administrator/templates/mambo_admin_blue /templates/rhuk_solarflare_ii
Wenn Sie nun die Website im neuen Verzeichnis aufrufen, sollte sie grundsätzlich funktionieren.
A.6.4
Datenbank-Update
In der Joomla!-Distribution finden Sie im Ordner /installation/sql/migrate_Mambo4523_to_Joomla_100.sql
eine Datei mit SQL-Anweisungen für das Datenbank-Update. Laden Sie diese Datei, wie oben beschrieben, mit phpMyAdmin in Ihre alte Mambo-Datenbank. Die Änderungen, die das Update vornimmt, können Sie nachvollziehen, indem Sie sich einfach den Inhalt der Datei ansehen. In unserem Fall werden Änderungen am Administrator-Template und bei den Modulen vorgenommen. Nach dieser Aktion können Sie das Installationsverzeichnis löschen! Für weitere Versionen von Joomla! (1.0.x) werden entsprechende SQL-Dateien beigelegt werden.
A.6.5
Zusätzliche Komponenten, Module und Mambots müssen aktualisiert werden
Wenn Sie nach dem oben angegebenen Prinzip vorgegangen sind, müssten alle von Ihnen installierten zusätzlichen Komponenten, Module und Mambots aktualisiert sein!
A.6.6
Eventuelle eigene Programmänderungen müssen aktualisiert werden
Nur Sie wissen, was Sie verändert haben! Versuchen Sie die Änderungen nachzuvollziehen.
298
Sandini Bib A.6 Migration von Mambo zu Joomla!
A.6.7
Ihre Inhalte müssen das Update ohne Schaden überdauern
Wenn bis hierher alles funktioniert hat, sollten auch Ihre Inhalte unter Joomla! zu sehen sein.
A.6.8
Sicherheit ohne globale Variablen
Mambo und Joomla! verlangen standardmäßig eine PHP-Einstellung mit dem Namen register_globals = on. Bei diesem Schalter geht es um die Sichtbarkeit globaler Variablen, die unter anderem von außen per Formular oder Get-String in die Programme gelangen können. Diese Einstellung birgt grundsätzliche Sicherheitsprobleme und es ist besser, wenn man die Einstellung register_globals = off verwendet. Obwohl dieser Schalter Sie natürlich nicht vor allen Problemen beschützt, hilft er doch schon ungemein, die Sicherheit zu erhöhen. Um Joomla! entsprechend vorzubereiten, benennen Sie die Datei [PfadzuJoomla!]/globals.php um in [PfadzuJoomla!]/globals.php-on und die Datei [PfadzuJoomla!]/globals.php-off um in [PfadzuJoomla!]/globals.php.
Der Kern von Joomla! wird sicher funktionieren. Probieren Sie aus, ob alle Ihre Komponenten ebenfalls noch funktionieren. Sollten Sie Probleme haben, ändern Sie die Einstellungen zunächst zurück auf globals off und achten auf Aktualisierungen der entsprechenden Komponente.
299
Sandini Bib
Sandini Bib
Danke In der Einleitung habe ich Ihnen erzählt, dass ich oft unterwegs bin. Eben sitze ich in einem Bus auf der Autobahn und möchte mich bei Ihnen bedanken, dass Sie bis hierhin vorgestoßen sind. Ich hoffe, Sie hatten Erfolg und Spass beim Durcharbeiten des Buches. Melden Sie sich mal und schreiben Sie mir, ob und – wenn ja – wie es Ihnen gefallen hat. Weder Mambo noch Joomla! sind aus dem Nichts entstanden, sondern wurden und werden von vielen Menschen zu dem gemacht, was sie heute sind – die beiden wohl am weitesten verbreiteten Content Management-Systeme der Welt. Ich möchte mich bei all den Menschen bedanken, die diese Entwicklung möglich gemacht haben und die mit diesem Buch für die weitere Verbreitung sorgen. Meiner Traumfrau Christine und der Verlagskorrektorin Marita Boehm danke ich für ihre Mithilfe beim Korrekturlesen. Bei Alex Kempkens1, Core Development Team Member von Joomla!, Autor der Mambelfish-Komponente und Fachlektor bei diesem Buchprojekt, bedanke ich mich für viele Tipps und das geduldige Lesen des Manuskripts. Vielen Dank an Angie Radtke2 für ihre Tipps zum Thema Barrierefreiheit und einen besonderen Dank an Boris Karnikowski, der als Lektor des Buchprojekts für den sehr gut funktionierenden organisatorischen Background sorgte und immer mit Ideen, Rat und Tat zur Seite stand. Oktober 2005 Hagen Graf – [email protected]
Control Panel 71 Corporate Behaviour 227 Corporate Communication 227 Corporate Design 227 Corporate Identity 227 Corporate Image 227 CRM 17 CSS 228, 285 Customizing 63 D Dateien-Browser 170 Debian 39 Debug-Modus 76 DMS 17 Dokumentenverwaltung 161 Dokumentenverzeichnis 37 E E-Cards 194 ECMS 17 Editor 95 eingecheckt 159 Email Cloaking 156 ERP 17 Event-Mambot 184 Events 176 Extended Markup Language siehe XML F Favicon 78 Firefox 139 Forum 161 Freedom Law Center 21 Frontend 22, 51 Frontpage 55, 113, 120 Frontpage Manager 120
Sandini Bib Stichwortverzeichnis
G Geschichte 18 GeSHi 156 Global Check-in 159 Global Configuration 75 GNU/GPL 19 H HRM 17 HTML 228 I Inbox 158 Infobar 71 Install 122 Installation 33 Installationspaket 275 Installers 157 J Java Applet 188 Java Script 70 Joomla! Versionen 25 Joomla!-Administration 70 Joomla!-Webinstaller 44 K Kalender 161, 176 Kategorie 103 Kommentare 195 Komponente 161 Komponenten 23, 122, 257 L LAMP 19 Language Editor 65 Language Manager 65, 87 Latest News 150 Legacy Joomla!t 155 Lightbox 194 Linkliste 139 Links 103 Linux 37 Live Bookmarks 138 Live Site 83 Load Module 156 Login 57 Form 145 Logo 290 lokale Installation 41
304
M Mambelfish 220 Mambo CMS 21 Mambo Foundation 21 Mambo Open Source 21 Mambots 116, 154, 280 Manager 96 Mass Mail 131 Media Manager 88 Mehrsprachigkeit 161, 220 Menu 97 Menü Help 73 Menü Site 74 Messages 158 Metadaten 84 Migration 292 Miro 20 Modul kopieren 152 Module 140 MOS Image 155 MOS Pagebreak 157 MOS Pagination 157 MOS Rating 156 MosDBTable 271 MySQL 19 Dump 293 N Newsfeeds 132 Newsflash 150 Nummerierungssystem 25 O Online-Ressourcen 283 Online-Shop 161 openSUSE 38 P PDF 80 PHP 19 phpBB 20 phpMyAdmin 20 Polls 134, 148 Popular 151 Position 142 Preview 89 Publish 101 Publisher 95
Sandini Bib Stichwortverzeichnis
R Random Image 149 Registered 95 Roadmap 26 S Schlagwörter 84 Search Engine Optimization 86 Search Mambots 157 Section 103 Section Manager 120 SEF 156 SEO 86 Separator 104 Serverumgebung 34 Simpleboard 162 Site Modules 141 Site Templates 91 Sprachdatei 64 Static Content Manager 113 Statistikdaten 90 Statistikfunktionen 86 suchmaschinenfreundliche URLs 86 Super Administrator 96 SUSE 10.x 38 Syndicate 135, 146 System 158 T Tables 103 Templates 23, 230 Chooser 143 Dateistruktur 233 Dreamweaver Extension 241 live bearbeiten 248 Manager 91 Modulintegration 236 Paket 239 selber schreiben 227, 230 und DIV Tags 250 Third-Party-Entwickler 22
TinyMCE 77 Toolbar 71 Trash Manager 93 U Ubuntu 39 Umfragen 57, 134 Uninstall 122 Unpublish 101 Update 293 User Manager 94 V virtuemart 208 W WCMS 17 Weblinks 139 Werkzeugleiste 71 Who's Online 149 Wiki 54 Workflow 23 Workspace 71 World Wide Web Konsortium 228 Wrapper 104, 147 WYSIWYG-Editor 77 X XAMPP 34 XHTML 228 XML 136, 228, 230 Y YaST 38 Z Zeitleiste 26 Zoom Media Gallery 185 Zugriffsrechte 23
305
Sandini Bib
Sandini Bib
Copyright Daten, Texte, Design und Grafiken dieses eBooks, sowie die eventuell angebotenen eBook-Zusatzdaten sind urheberrechtlich geschützt. Dieses eBook stellen wir lediglich als persönliche Einzelplatz-Lizenz zur Verfügung! Jede andere Verwendung dieses eBooks oder zugehöriger Materialien und Informationen, einschliesslich •
der Reproduktion,
•
der Weitergabe,
•
des Weitervertriebs,
•
der Platzierung im Internet, in Intranets, in Extranets,
•
der Veränderung,
•
des Weiterverkaufs
•
und der Veröffentlichung
bedarf der schriftlichen Genehmigung des Verlags. Insbesondere ist die Entfernung oder Änderung des vom Verlag vergebenen Passwortschutzes ausdrücklich untersagt! Bei Fragen zu diesem Thema wenden Sie sich bitte an: [email protected] Zusatzdaten Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die Zurverfügungstellung dieser Daten auf unseren Websites ist eine freiwillige Leistung des Verlags. Der Rechtsweg ist ausgeschlossen. Hinweis Dieses und viele weitere eBooks können Sie rund um die Uhr und legal auf unserer Website