130 45
German Pages 345 [339] Year 2005
Die Reihe Xpert.press vermittelt Professionals in den Bereichen Softwareentwicklung, Internettechnologie und IT-Management aktuell und kompetent relevantes Fachwissen über Technologien und Produkte zur Entwicklung und Anwendung moderner Informationstechnologien.
Robert Deutz
Mambo Installation, Administration, Anwendung und Entwicklung
Mit 146 Abbildungen
123
Robert Deutz Robert Deutz Business Solution Brüsseler Ring 67 52074 Aachen www.rdbs.de [email protected] Website zum Buch: www.rdbs.de/mambobuch.html
Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.
ISSN 1439-5428 ISBN-10 3-540-22158-1 Springer Berlin Heidelberg New York ISBN-13 978-3-540-22158-6 Springer Berlin Heidelberg New York
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. Springer ist ein Unternehmen von Springer Science+Business Media springer.de © Springer-Verlag Berlin Heidelberg 2005 Printed in The Netherlands Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutzgesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Text und Abbildungen wurden mit größter Sorgfalt erarbeitet. Verlag und Autor können jedoch für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Satz: Druckfertige Daten des Autors Herstellung: LE-TeX Jelonek, Schmidt & Vöckler GbR, Leipzig Umschlaggestaltung: KünkelLopka Werbeagentur, Heidelberg Gedruckt auf säurefreiem Papier 33/3142/YL - 5 4 3 2 1 0
Für Silvia
Vorwort
Ein Buch über eine Open Source Software zu schreiben ist eine interessante Aufgabe und vor – allem – spannend. Was heute richtig und gut ist, kann morgen schon wieder vollkommen veraltet sein. In den letzten Monaten hat sich die Release-Politik im Mambo-Projekt allerdings geändert. Die aktuellen Versionen bleiben jetzt inhaltlich und von den Funktionalitäten über eine längere Zeit unverändert. Es findet zwar eine Fehlerbehebung statt, aber es gibt keine strukturellen Änderungen zwischen den Hauptversionen. Dieses Buch dürfte also eine lange Zeit für Mambo-Interessierte hilfreich sein. Ein Buch ist auch immer die Leistung mehrerer. An erster Stelle ist meine Freundin Silvia Rensonnet zu nennen, die immer die erste Version eines Kapitels zur Korrektur vorgelegt bekam. Die Fehler und merkwürdigen Sätze, die sie verbessert hat, reichen aus um noch zwei weitere Bücher mit Fehlern auszustatten. Ihr danke ich ganz besonders! Dann gilt mein Dank den Kollegen von „Mambers.com“: Antonio Cambule, Ulrich Eichenseer, Nils Feberwee, Christian Hent und Thomas Kahl für ihre fachlichen Korrekturen und Hinweise. Ich danke außerdem Angie Radtke, für ihre Unterstützung und den Beitrag zur Barrierefreiheit, dem Springer-Verlag und insbesondere Herrn Hermann Engesser, der dieses Projekt von Anfang an unterstützt hat. Last but not least gilt mein Dank Susanne Neugebauer, die dem Buch den letzten Schliff verpasst hat. Ich hoffe, dass Sie das Buch hilfreich und nützlich finden. Über konstruktive Kritik und natürlich auch Lob freue ich mich sehr, schicken Sie diese Nachrichten bitte an: [email protected]. Aachen, Januar 2005 Robert Deutz
Inhaltsverzeichnis
1 Einleitung..................................................................... 1 1.1 Über dieses Buch...................................................................2
2 Grundlagen.................................................................. 5 2.1 Die Wurzeln des World Wide Web ......................................5 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5
Wie schreibt man einen Aufsatz? .................................. 5 Generic Coding und Markup-Sprachen......................... 6 Hypertext........................................................................ 7 HTML und WWW......................................................... 7 Dem Medium angepasst ausgeben ................................ 8
2.2 Websprachen .........................................................................9 2.2.1 2.2.2 2.2.3 2.2.4
XML............................................................................... 9 HTML-Aufbau eines Dokuments................................ 10 CSS............................................................................... 12 CSS-Praxis ................................................................... 14
2.3 Cross Browser .....................................................................19 2.4 Barrierefreiheit – Internet verbindet ...................................19 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5
Übersichtlichkeit .......................................................... 20 Kontraste ...................................................................... 20 Grafiken........................................................................ 21 Schriftgrößen................................................................ 21 Sauberer Code und logische Strukturen ...................... 21
3 Installation................................................................. 23 3.1 Voraussetzungen..................................................................23 3.2 Installation MySql-Datenbank ............................................24 3.2.1 Installation unter Unix ................................................. 24 3.2.2 Installation unter Windows.......................................... 25
3.3 Installation Apache..............................................................26 3.3.1 Installation unter Unix ................................................. 26 3.3.2 Installation unter Windows.......................................... 28
3.4 Installation PHP .................................................................. 28 3.4.1 Installation unter Unix..................................................28 3.4.2 Installation unter Windows ..........................................30
3.5 3.6 3.7 3.8
Konfiguration...................................................................... 30 PhpMyAdmin ..................................................................... 30 XAMPP............................................................................... 31 Mambo-Installation ............................................................ 31 3.8.1 Vorbereitung.................................................................31 3.8.2 Webinstaller..................................................................31 3.8.3 Manuelle Installation ....................................................35
3.9 MSAS – Mambo Stand Alone Server................................ 37
4 Die erste Website .......................................................41 4.1 4.2 4.3 4.4
Aufgabenstellung................................................................ 41 Anmelden als Administrator .............................................. 41 Der Adminbereich: Ein Überblick ..................................... 42 Realisierung ........................................................................ 43 4.4.1 4.4.2 4.4.3 4.4.4
Einrichten der Informationsbereiche............................43 Menüs bearbeiten..........................................................50 Einrichten von Web-Links ...........................................54 Konfiguration der Frontpage........................................56
5 Mambo Basics ............................................................63 5.1 Mambo erweitern................................................................ 63 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5
5.2 5.3 5.4 5.5
Templates......................................................................63 Mambots .......................................................................65 Modules ........................................................................66 Components ..................................................................66 Sonstiges .......................................................................67
Gruppen und Berechtigungen............................................. 67 Section und Categories ....................................................... 70 Static Content vs. All Content............................................ 71 Inhalte bearbeiten................................................................ 71 5.5.1 Unterschiede im Frontend ............................................78
5.6 Gemeinsames Arbeiten....................................................... 79
X
■ ■ ■
6 Templates erstellen ................................................... 81 6.1 6.2 6.3 6.4
Templatedateien und Struktur.............................................81 Entwurf ohne Tabellen ........................................................82 Entwurf mit Tabellen.........................................................100 Mambo-HTML-Codes ......................................................105 6.4.1 Anpassung durch den Styleparameter ....................... 105 6.4.2 Mambo-Standards ermitteln ...................................... 107 6.4.3 Mambo Standard-CSS ............................................... 109
6.5 Template packen................................................................112
7 Perfekte Website ..................................................... 115 7.1 Internet-Shop .....................................................................115 7.1.1 Installation.................................................................. 116 7.1.2 Bestellen..................................................................... 117 7.1.3 Bearbeiten der Bestellung.......................................... 120
7.2 DOCMan ...........................................................................121 7.2.1 Installation und Administration ................................. 121 7.2.2 Frontend ..................................................................... 124
7.3 Kommentierung von News und Artikeln..........................125 7.4 Newsletter..........................................................................127 7.5 Search Engine Friendly URL............................................130
8 Entwickeln für Mambo .......................................... 133 8.1 Mambo-Parametersystem..................................................133 8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 8.1.7
Parametertyp „text“.................................................... 135 Parametertyp „textarea“............................................. 136 Parametertyp „radio“ ................................................. 136 Parametertyp „list“..................................................... 136 Parametertyp „imagelist“........................................... 137 Parametertyp „spacer“ ............................................... 137 Parametertypen „mos_menu“, „mos_section”, „mos_category”.......................................................... 137 8.1.8 Ermittlung der Parameter........................................... 137
8.2 Mambots ............................................................................138 8.3 Modules .............................................................................145 8.4 Components .......................................................................148 8.4.1 Installation.................................................................. 148 8.4.2 Backend-Konfigurationsoberfläche........................... 152 8.4.3 Component-Frontend ................................................. 158
■ ■ ■
XI
9 Referenz Administration ........................................163 9.1 9.2 9.3 9.4 9.5
Überblick........................................................................... 163 Toolbar.............................................................................. 164 Infobar............................................................................... 164 Workspace ........................................................................ 164 Menubar ............................................................................ 164 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.5.6 9.5.7 9.5.8 9.5.9 9.5.10
Home...........................................................................164 Site ..............................................................................165 Menu ...........................................................................185 Content........................................................................189 Components ................................................................199 Modules ......................................................................220 Mambots .....................................................................235 Messages.....................................................................239 System.........................................................................240 Help.............................................................................241
9.6 Menütypen ........................................................................ 241 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 9.6.6 9.6.7 9.6.8 9.6.9 9.6.10 9.6.11 9.6.12 9.6.13 9.6.14 9.6.15 9.6.16 9.6.17 9.6.18
Blog Content Category...............................................242 Blog Content Category Archive.................................244 Blog Content Section..................................................247 Blog Content Section Archive ...................................249 Component..................................................................252 Link Component Item ................................................259 Link Contact Item.......................................................260 Link Content Item.......................................................260 Link News Feeds ........................................................260 Link Static Content.....................................................261 Link URL....................................................................261 List Content Section ...................................................261 Separator / Placeholder...............................................263 Table Contact Category..............................................263 Table Content Category..............................................264 Table News Feed Category ........................................266 Table Weblink Category ............................................267 Wrapper ......................................................................267
10 Wo geht die Reise hin?............................................269
XII
■ ■ ■
11 Anhang..................................................................... 271 11.1 Websites/Linkverzeichnis .................................................271 11.1.1 Internationale Sites..................................................... 271 11.1.2 Deutschsprachige Sites .............................................. 273 11.1.3 Sonstige Sites ............................................................. 273
11.2 Mambo Templates.............................................................274 11.2.1 Ohne Tabellen ............................................................ 274 11.2.2 Mit Tabellen............................................................... 282
11.3 Entwicklungen...................................................................300 11.3.1 Mambot ...................................................................... 300 11.3.2 Module ....................................................................... 304 11.3.3 Component ................................................................. 306
11.4 Begriffe und Formales.......................................................321 11.5 Abbildungen ......................................................................322
Index .............................................................................. 327
■ ■ ■
XIII
1 Einleitung
Wenn Sie dieses Buch gekauft haben, werden Sie sich die Frage „Warum ein Content Management System (CMS) einsetzen?“ vielleicht gar nicht mehr stellen. Für die einen kann diese Einleitung eine Bestätigung ihrer Entscheidung sein. Für die anderen, unentschlossenen, bleibt es spannend. Den meisten CMS sagt man nach, dass sie sehr kompliziert sind, man mehrere Schulungen benötigt um einen einfachen Text einzugeben und Designer in ihrer Freiheit sehr eingeschränkt werden. Wer z.B. schon mal versucht hat eine Site mit typo3 aufzusetzen, wird einige der Aussagen bestätigt sehen. Zur Entschuldigung von typo3 − wir wollen ja nicht sofort mit Schelte anfangen − muss man erwähnen, was der Ansatz bzw. das Konzept bei typo3 ist: typo3 ist eine Boeing, um diese vom Boden zu bekommen, muss man eben zunächst einiges lernen. Im Gegensatz dazu ist Mambo ein Fahrrad, man kommt schnell vom Fleck, aber Mambo kann man zum Flugzeug ausbauen, somit lernt Mambo mit Ihnen fliegen! Der Spruch „Mambo – Power in simplicity“ kommt nicht von ungefähr. Das Core-Team (die Programmierer der Basisanwendung) legt großen Wert darauf, dass Mambo auch in Zukunft eines der am einfachsten zu bedienenden CMS ist. Nach dem Ausflug in die Welt der Fortbewegungsmittel kommen wir wieder zur Ausgangsfrage zurück. Warum sollte man ein CMS einsetzen? Zunächst mal aus dem einfachen Grund: Es ist hip. Möchten Sie in einer Gruppe stehen und als einziger noch eine Webpräsenz basierend auf statischen HTML-Seiten betreiben? Aber im Ernst, das ist momentan Stand der Technik, und weil sehr viele auf ein CMS umsteigen, kann es nicht so kompliziert sein, wie ihm nachgesagt wird. Neben den Gründen der sozialen Integration gibt es auch, ganz nüchtern betrachtet, gute Gründe umzusteigen. Ein CMS bietet Ihnen die Trennung von Inhalt und Darstellung. Die von Ihnen eingegebenen Texte können Sie auch an anderer Stelle verwenden und das Design kann geändert werden ohne alle Texte zu überarbeiten. Ein CMS enthält zum Teil sehr umfangreiche Tools
1.1 Über dieses Buch
■ ■ ■
1
und Funktionen, z.B. Kontaktformulare, Weblink-Verzeichnisse, Möglichkeiten, die Inhalte zu durchsuchen, um nur einige Beispiele zu nennen. Diese Funktionen müssten ansonsten extra eingebunden und ggf. programmiert werden. Sie erhalten mit einem CMS also standardmäßig schon viel, was für eine Website sinnvoll und notwendig ist. Mit Mambo als Auswahl stehen neben den von Hause aus eingebundenen Funktionen noch Hunderte von Erweiterungen zur Verfügung um Ihre Website genau so ins Netz zu stellen, wie Sie es wollen. Allein auf mamboforge.net finden Sie aktuell über 600 Projekte, die Erweiterungen für Mambo beinhalten. Daneben gibt es noch viele kommerzielle Erweiterungen. Sie haben die Qual der Wahl.
1.1 Über dieses Buch Im Folgenden finden Sie eine kurze Übersicht darüber, was die einzelnen Kapitel zu bieten haben.. Einleitung:
Darin lesen Sie gerade. Grundlagen:
Sie erfahren etwas über die Geschichte des WWW, HTML und CSS. Abschließend finden Sie einige Bemerkungen zur Gestaltung von barrierefreien Websites. Installation:
Wie installieren Sie Mambo und was ist der „Mambo Stand Alone Server“. Die erste Website:
Auf 21 Seiten lernen Sie die Grundzüge von Mambo kennen, nebenbei erstellen wir Ihre erste Website mit Mambo. Mambo Basics:
Welche Ideen stecken hinter dem, was Sie bisher von Mambo kennen. Wir erläutern die Hintergründe.
2
■ ■ ■
1 Einleitung
Template-Erstellung:
Die eigene Website braucht ein individuelles Design; gemeinsam verfolgen wir zwei Strategien zur Erstellung eines Templates. Perfekte Website:
Hehre Ziele verfolgen wir in diesem Kapitel; wir erweitern die Website um einige Bestandteile und erläutern die Konfiguration. Entwickeln für Mambo:
Wir erläutern das Parametersystem von Mambo und entwickeln einen Mambot, ein Modul und eine Komponente. Administrationsbereich:
Eine vollständige Referenz der Mambo-Administration incl. Erläuterung der Standardkomponenten, Module und Mambots. Wohin die Reise geht:
Ein Ausblick in die nähere Mambozukunft. Anhang:
Alle Listings, Templates, Literaturhinweise, Index.
1.1 Über dieses Buch
■ ■ ■
3
2 Grundlagen
Leider geht nichts ohne einige Grundlagen. Der folgende Abschnitt ist für die Leserinnen und Leser gedacht, die mit den Begriffen HTML, XML und CSS nicht viel anfangen können. Es werden Konzepte, Begriffe und Vorgehensweisen erläutert. Eine umfangreiche Aufarbeitung der Themen wäre an dieser Stelle allerdings unangebracht, mehr als ein Anreißen und Einordnen der Themen würde dem Ziel des Buches nicht gerecht werden. Wir wollen schließlich Mambo kennen lernen.
2.1 Die Wurzeln des World Wide Web 2.1.1 Wie schreibt man einen Aufsatz? Einige werden sich vielleicht noch erinnern. Aufsätze bestehen im Wesentlichen aus drei Teilen. Im ersten Teil führt man den Leser an das Thema heran, im zweiten Teil behandelt man das Thema und im dritten Teil fasst man zusammen und bewertet abschließend. Ein Aufsatz, wie jedes andere Dokument auch, folgt einer gewissen Struktur, diese ist vom Inhalt unabhängig. Ein Dokument besteht also aus zwei Teilen, der Struktur und dem Inhalt. Diese grundlegende Erkenntnis führte in den späten 60er Jahren zur Entwicklung der GML (Generalized Markup Language). Die GML bildet Dokumente in einer verschachtelten Struktur ab und führt das Konzept des Dokumententyps ein. Angewandt auf unser Beispiel wäre der Dokumententyp „Aufsatz“ und als Strukturelemente würden wir Einleitung, Hauptteil und Ende festlegen. Diese Einteilung ist natürlich sehr grob, mit GML kann eine Struktur wesentlich feiner beschrieben werden.
2.1 Die Wurzeln des World Wide Web
■ ■ ■
5
2.1.2 Generic Coding und Markup-Sprachen Im letzten Abschnitt haben wir schon die Markup-Sprache GML erwähnt. Die Weiterentwicklung ist durch das ISO (International Organization for Standardization) als ISO-Standard 8879 „Standard Generalized Markup Language“ SGML im Jahre 1985 veröffentlicht worden. Das Konzept sieht vor, durch Auszeichnungen im Text, die Struktur des Dokuments abzubilden. Ist ein Dokument in seiner Struktur beschrieben, erreicht man die schon beschriebene Trennung des Inhalts von der Struktur. Damit einher geht ebenfalls eine Trennung von Inhalt und Darstellung. Auf den ersten Blick erscheint dies kein Vorteil zu sein. Riskieren wir einen zweiten Blick. Dieser Abschnitt hat eine Überschrift, diese ist linksbündig ausgerichtet, die Schrift ist serifenlos, fett gesetzt und etwas größer als der normale Text. Für die Darstellung in diesem Buch ist dies eine gute Wahl, für jeden ist visuell zu erkennen, dass es sich hier um eine Überschrift handelt. Was wäre aber nun, wenn wir den Inhalt des Buches als Sprache ausgeben möchten. In elektronischer Form liegt der Text natürlich vor, das Format ist aber darauf ausgerichtet den Text auszudrucken, es finden sich also Anweisungen, die Schriftgröße, Schriftart und Ähnliches festlegen. Ob der Text aber eine Überschrift ist oder ob es sich nur um größeren, fett gesetzten Text handelt, ist nicht ermittelbar. Die optischen Attribute auszuwerten wird sicherlich nicht sonderlich gut funktionieren. Für die Ausgabe über ein anderes Medium wäre eine Kennzeichnung der Überschrift als Überschrift besser. Das „generic coding“ (generic, englisch: artmäßig) setzt an dieser Stelle an, ein bestimmter markierter Text wird nach seiner Art gekennzeichnet. Überschriften werden als solche gekennzeichnet; wie dieser Text in einem späteren Schritt wieder ausgegeben wird, ist bei diesem Verfahren zunächst nicht wichtig. Für die verschiedenen Medien gibt es getrennte Beschreibungen, wie mit den markierten Stellen zu verfahren ist. Dies eröffnet eine sehr große Flexibilität, der gleiche Text kann ausgedruckt, am Bildschirm angezeigt oder auch als Sprache ausgegeben werden. Man muss nur dafür sorgen, dass die markierten Textteile dem Medium angemessen ausgegeben werden.
6
■ ■ ■
2 Grundlagen
2.1.3 Hypertext Die Entwicklung des Hypertextes ist ebenfalls eine alte Geschichte; das Konzept, Inhalte miteinander zu verbinden, das heute im World Wide Web genutzt wird, hat seinen Ursprung in Schriften aus dem 17. Jahrhundert. Schon dort wurden durch Querverweise Textstellen miteinander verknüpft. In unserem Jahrhundert muss man Vannevar Bush mit seinem fiktiven System Memex und Douglas Engelbart mit seinen Veröffentlichungen zum Augument-Projekt erwähnen. Der Urvater des Begriffs Hypertext ist jedoch Ted Nelson, 1965 veröffentlichte er seine Ideen und Visionen im Projekt Xanadu. Die Ansätze von Nelson gehen über die heutige Realität des Hypertextes jedoch hinaus. Er selbst formuliert es sogar so: „Einige meinen, Xanadu wäre das Bestreben gewesen etwas wie das World Wide Web aufzubauen. Im Gegenteil: das World Wide Web war genau das was wir verhindern wollten“. Das Recht Entwicklungen kritisch zu sehen können Visionäre in Anspruch nehmen. Fakt ist, das World Wide Web, das wir heute haben, ist das beste (und einzige) was wir haben.
2.1.4 HTML und WWW Die Verbindung der beiden Aspekte „Generic Markup“ und Hypertext ist die Hyper Text Markup Language. Diese ist für die Beschreibung von Inhalten und deren Verknüpfung entwickelt worden. Die Grundlagen für HTML und auch für das World Wide Web (WWW) wurden im europäischen Labor für Teilchenphysik – dem CERN – in Genf von Tim Berners-Lee gelegt. Weihnachten 1990 stellte Berners-Lee die erste Website ins Netz, das WWW war geboren. Das Konzept für das WWW steht seitdem auf drei Säulen: ■
Das HTTP (Hypertext Transfer Protokoll) regelt die Kommunikationen zwischen Webserver und Browser.
■
Die Adressierung der Ressourcen im Netz erfolgt über die URI (Uniform Resource Identifier)
■
HTML ist die Auszeichnungssprache für die Seiten.
Das WWW und HTML haben sich in der letzten 14 Jahren rasant entwickelt, die Weiterentwicklung der Sprache wird von dem W3C (W3-Konsortium) überwacht und gesteuert. HTML war und ist eine einfach zu erlernende Sprache zur Strukturierung von Inhalten. Der Inhalt wird durch Auszeichnungen in spitzen Klammern ergänzt,
2.1 Die Wurzeln des World Wide Web
■ ■ ■
7
z.B. kennzeichnet „“ eine Überschrift 1. Ordnung. Einen Bereich kann man aber nur dann kennzeichnen, wenn man Anfang und Ende festlegt. Daher gibt es einen Start-Tag, hinter dem der Bereich anfängt, und einen End-Tag, vor dem der Bereich endet. Zu unterscheiden sind die Tags durch einen „/“. Zur Verdeutlichung ein Beispiel: Das ist eine Überschrift
Bei einigen Tags ist es erlaubt einen kombinierten Start-/End-Tag zu verwenden. Beispiele dafür sind der Image-Tag und der Break-Tag (Zeilenumbruch).
Der HTML-Code legt nicht fest, wie eine Überschrift letztlich ausgegeben wird.
2.1.5 Dem Medium angepasst ausgeben In der frühen Geschichte des WWW sind durch die fehlende Standardisierung viele Stilblüten entstanden; der blinkende Text ist einer dieser Vertreter. Firmen wie Netscape und Microsoft haben versucht ihre Marktposition auszunutzen und HTML mit eigenen Erweiterungen anzureichern. Durch die Gründung des W3-Konsortium und den Beitritt von namhaften Firmen konnte ein weithin akzeptierter Standard geschaffen werden. Heute unterstützen die meisten Browser den HTML-Standard und die Formatierungssprache Cascading Style Sheets (CSS) relativ gut. Aktuell, verabschiedet und durch Browser unterstützt sind die Cascading Style Sheets, Level 2 vom 12.05.1998. Dieser Standard definiert eine Formatierungssprache, mit der Autoren die Darstellung der Inhalte mediengerecht aufbereiten können. Die möglichen Ausgabegeräte können z.B. visuelle Browser, Drucker, akustische Geräte, Braille-Geräte und Handhelds sein. Mit CSS kann man für HTML-Sprachelemente die Ausgabe für bestimmte Medien definieren. So lässt sich für die Ausgabe einer Überschrift erster Ordnung „“ festlegen, dass diese auf dem Bildschirm in Blau und in einem Ausdruck fett und größer ausgegeben wird.
8
■ ■ ■
2 Grundlagen
2.2 Websprachen Im letzten Abschnitt haben wir uns dem WWW von der historischen Seite genähert. In diesem Abschnitt werfen wir nun einen eher technischen Blick auf die Säulen und die Zusammenhänge des WWW.
2.2.1 XML Die Abkürzung XML steht für „eXtensible Markup Language“. Die folgende Abbildung leistet einen Beitrag zur vollkommenen Verwirrung des Lesers, diese ist aber hoffentlich nur von kurzer Dauer. Nach dem Bild folgt die Erklärung. Abb. 2.1 Übersicht Markup-Sprachen
Die Basis für XML und HTML ist jeweils SGML. Der Unterschied besteht darin, dass XML eine Teilmenge von SGML ist und somit für die Formulierung von weiteren Sprachen geeignet ist. HTML hingegen ist eine nicht erweiterbare Sprache, die aus einer festgelegten Anzahl von Elementen (h1 und p zum Beispiel) besteht. Zur Beschreibung der Sprache wird jeweils die DSSSL „Document Style Semantics and Specification Language“ verwendet. Aus XML wiederum entsteht durch Transformierung mittels XSLT „Extensible Stylesheet Language Transformations“ XHTML. Für XML, XHTML und HTML gibt es eine DTD „Document Type Definitions“, diese kennzeichnet das Document. Die DTD findet man am Anfang des Dokuments, für HTML gibt es z.B. die Varianten „Strict“, „Transitional“ und „Frameset“. Aus HTML und XHTML kann mit Hilfe von Cascading Style Sheets (CSS) eine Ausgabe generiert werden. Mit XML ist aber noch mehr möglich, durch geeignete Transformation bzw. Formatierung kann man aus XML auch PDF und viele andere Formate generieren. Darüber hinaus kann man XML zum Datenaustausch verwenden, die RSS-Feeds basieren auf XML. In den folgenden Abschnitten beschäftigen wir uns genauer mit HTML
2.2 Websprachen
■ ■ ■
9
und CSS, die Erläuterung zu XML diente nur der Klärung des Gesamtzusammenhangs.
2.2.2 HTML-Aufbau eines Dokuments Ein einfaches HTML-Dokument besteht aus folgenden Bestandteilen: ■
Dokumenttyp-Angabe
■
Header
■
Body
Text des Titels
2.2.2.1 Dokumententyp Der Aufbau eines HTML-Dokuments beginnt immer mit der Dokumententypangabe, mit der die gewählte (X)HTML-Version angegeben wird. Die Version legt fest, welche Elemente und Attribute in einem Dokument vorkommen dürfen. Nur wenn man sich an diese Vorgabe hält, wird das Dokument valide (ist also im Sinne des Dokumententyps gültig). In diesem Beispiel ist XHTML Transitional gewählt. Die unterschiedlichen Dokumententypen scheinen im ersten Augenblick verwirrend, aber eigentlich ist das Festlegen von Standards ein großer Fortschritt, denn so ist es möglich, dass unterschiedliche Ausgabegeräte die Informationen standardisiert verarbeiten können.
10
■ ■ ■
2 Grundlagen
2.2.2.2 Header Im Kopf eines HTML-Dokuments findet man Angaben zum Titel der Seite; dieser wird von den Browsern dann in der Titelleiste des Browserfensters ausgegeben, er wird beim Speichern der Bookmarks verwendet, ist aber auch ein wichtiger Parameter für die gängigen Suchmaschinen, denn viele Suchmaschinen lesen zuerst die URL, anschließend den Titel und dann erst den eigentlichen Inhalt. Häufig wird er innerhalb der Suchmaschine als anklickbarer Link dargestellt. Deshalb ist es besonders wichtig einen aussagekräftigen Titel für jede Seite zu wählen. Des Weiteren werden im Header die Metatags vereinbart. In den Metatags kann man hilfreiche Angaben für den Webserver, die Browser und die Suchmaschinen unterbringen. Eine metaAnweisung beginnt immer mit meta und hat mindestens zwei Attribute. Name="mein Name" und content="mein Inhalt". Alternativ zu Name kann auch http-equiv angegeben werden, was direkt vom Webserver ausgelesen wird. Es gibt eine Vielzahl dieser Anweisungen, so dass hier nur die wichtigsten beschrieben werden. Angaben zum Autor
Angaben zu Zeichensatz
Angaben zur verwendeten Sprache
Angabe für die Suchmaschinen
Wann soll eine Suchmaschine wieder vorbei kommen
Weiterleitung
2.2 Websprachen
■ ■ ■
11
Darüber hinaus werden im Header die Stylesheets eingebunden. Es gibt mehrere Möglichkeiten Styles einzubinden: Die Styles können direkt im Seitenkopf, innerhalb der Tags im body oder über eine zentrale Datei eingebunden werden. 2.2.2.3 body Im body eines HTML-Dokumentes findet man die eigentlichen Inhalte. HTML verwendet sogenannte Tags. Der Inhalt steht immer zwischen einem einleitenden und einem schließenden Tag. Überschrift der 1.Ordnung
Ein Absatz
Mit einem Zeilenumbruch
Ein anderer Absatz
Der rote Absatz
-Befehls – aus: p { font-family:arial; color:red; font-weight:bold; }
Damit definieren Sie für die p-Tag auf Ihrer Seite standardmäßig die Schriftart Arial, die Farbe Rot und dass die Schrift fett dargestellt werden soll. Sollen Ihre Anweisungen für mehrere Selektoren gelten, können Sie diese durch Kommata getrennt in dieser Form aufzählen: h1, h2, h3, h4 { color:green }
Um möglichst flexibel zu sein, kann man allen Elementen im body eine bestimmte class zuweisen, die auf unterschiedliche Elemente angewendet werden kann.
14
■ ■ ■
2 Grundlagen
Als Style wird Folgendes definiert: .rot {color:#cc0000}
In der HTML-Datei nutzt man dieses Style dann so:
mein roter Ansatz
meine rote Überschrift definieren, gerade noch lesbar. Kommt allerdings innerhalb dieses p-tags ein Bereich vor, der ebenfalls die class „small“ hat, ist die Schrift nur noch schwer bis gar nicht mehr zu entziffern. Bei dem ersten small waren wir schon bei 9 Punkten, das zweite reduziert die Schrift noch mal um 25 %, dann liegen wir bei ca. 7 Punkten, diese Schrift ist nur sehr schlecht auf einem Bildschirm lesbar. Obwohl relative Angaben zum Problem werden können, sind diese immer eine gute Wahl. Sie legen damit die Verhältnisse der Elemente zueinander fest. Diese sollten auch Gültigkeit besitzen, wenn die Basisschriftgröße verändert wird. Achtung, es werden nicht alle Eigenschaften vererbt. Die Eigenschaft „margin“, also der Außenabstand, wird z.B. nicht vererbt. 2.2.4.3 Boxmodel Im CSS werden alle Elemente als rechteckige Boxen behandelt, zu unterscheiden sind Block- und Inline-Elemente. Ein Block-Element beginnt immer in einer neuen Zeile, hat man die Eigenschaften nicht anders definiert, wird teilweise (je nach Browser) ein Abstand eingefügt. Ein Block-Element kann Inline-Elemente oder andere BlockElemente beinhalten, nicht aber umgekehrt. Jede Box hat einen Inhaltsbereich, einen Abstand nach innen (padding), einen Abstand nach außen (margin) und einen Rahmen (border). Wenn Sie die Breite eines Blocks angeben, ist immer der innere Bereich gemeint. Die nachfolgende Grafik zeigt den Zusammenhang:
16
■ ■ ■
2 Grundlagen
Abb. 2.2 Boxmodell
An dieser Stelle ein Hinweis auf einen Fehler im Internet Explorer: Der IE interpretiert die Angabe „width“ so, als ob in dieser Angabe das padding, margin und die border mit enthalten wären. Das führt dann dazu, dass Bereiche im IE entweder zu klein sind oder dass Bereiche in anderen Browsern zu breit sind. Inline-Elemente verbleiben im Textfluss und bilden keinen Absatz, ein Beispiel ist der em-Tag, der eine Textpassage betont ausgibt. 2.2.4.4 Positionierung Mit der Eigenschaft Position können Sie Elemente auf der Webseite positionieren. Es werden folgende Positionierungsarten unterschieden: static: Die entsprechende Box wird in den normalen Dokumentenfluss integriert
relative: Die Box wird relativ zu ihrer statischen Position verschoben. Ein Element div zum Beispiel, das mit div { position: relative; top: 10px left: 10px; }
positioniert wurde, wird 10px weiter unten und 10px weiter rechts positioniert, als wenn es nicht relativ positioniert werden würde. Nachfolgende Elemente erkennen dies jedoch nicht, so dass es zu Überschneidungen kommen kann.
2.2 Websprachen
■ ■ ■
17
absolute: Die Box wird relativ zu ihrem Elternelement positioniert. Dabei gilt es, Folgendes zu beachten: Der umschließende Block für eine absolut positionierte Box wird durch das nächste positionierte Elternelement oder, falls es kein solches gibt, durch den body gebildet. Ein durch die Regel img { position: absolute; top: 10px; right: 10px; }
positioniertes Bild wird also mit 10px Abstand nach oben und rechts von der oberen rechten Ecke des Elternelementes aus positioniert. Der Block wird dabei aus dem gewöhnlichen Elementfluss herausgenommen, nachfolgende Elemente er-kennen ihn nicht. fixed: Die Box wird absolut positioniert und bleibt beim Scrollen der Seite stehen.
2.2.4.5 Gefloatete Elemente Eigentlich kann jedes Element floaten, was so viel wie schwimmen oder fließen bedeutet. Sobald man einem Element die Eigenschaft float zugeordnet hat, wird es automatisch zu einem Block-Element. Man sollte dem Element immer eine bestimmte Breite zuordnen, weil das Element sonst immer so groß wie das Elternelement oder wie der Inhalt wird. Gefloatete Elemente sind aus dem normalen Textfluss herausgenommen, haben aber den Vorteil, dass sie direkt nach dem vorherigen Block-Element angeordnet werden. Die Elemente können entweder die Eigenschaft float:left; float:right oder float:none bekommen. Wenn ein Elternelement ein gefloatetes Kind enthält, „weiß“ es nichts über seine Ausmaße und ist nur so groß wie der Inhalt ohne das gefloatete Element, weil das gefloatete Element ja eigentlich aus dem normalen Dokumentenfluss herausgenommen ist, auch wenn es im Quelltext nicht so scheint. Um dies zu verhindern, benötigt das Elternelement die Eigenschaft clear:both, clear:left oder clear:right.
18
■ ■ ■
2 Grundlagen
2.3 Cross Browser Das größte Problem ist die Kodierung der Website mit HTML und CSS, so dass die Site auf unterschiedlichen Browsern gleich aussieht. Man sollte zwar meinen, dass durch die Verwendung der Standards Webbrowser den HTML-Code immer gleich interpretieren; dass dies nicht so ist, können Sie sich schon denken. Ein Grund ist, dass ein Browser ein Stück Software ist und Software ist nie fehlerfrei. So kommt es neben der Tatsache, dass Browser nicht alle Standards vollständig unterstützen, auch noch zu Fehlinterpretationen. Je nach Dokumententyp verhalten sich die Browser unterschiedlich. Es kann also quasi als die hohe Kunst der WebsiteErstellung angesehen werden eine Site browserübergreifend „ordentlich“ hinzubekommen. Die sicher nicht vollständige Liste für die Erstellung von Websites (nicht nur im Hinblick auf Cross Browser) kann Ihnen dabei helfen: ■
Bauen Sie Ihre HTML-Seiten logisch strukturiert auf.
■
Geben Sie immer den Dokumententyp an.
■
Verwenden Sie CSS.
■
Vermeiden Sie, wenn möglich, Tabellen um Elemente zu positionieren.
■
Wenn Sie Tabellen nutzen, schachteln Sie nicht zu viele ineinander, Ihre Website wird dadurch langsamer.
■
Vermeiden Sie exotische CSS-Eigenschaften (z.B. font-stretch).
■
Entwickeln Sie Ihre Site zunächst mit nur einem Browser.
■
Informieren Sie sich über die Fehler der einzelnen Browser und wenden Sie die entsprechenden „Hacks“ an.
■
Lassen Sie sich nicht zu schnell entmutigen, aller Anfang ist schwer.
2.4 Barrierefreiheit – Internet verbindet Doch leider profitieren davon nicht alle. Behinderte Menschen scheitern oft an Barrieren, die ihnen das Navigieren auf Websites unmöglich machen. Damit möglichst alle Menschen von der Verbindung Internet profitieren können, sollten Websites möglichst barrierearm sein.
2.3 Cross Browser
■ ■ ■
19
Sicher denken Sie bei Barrierefreiheit zunächst an eine Person im Rollstuhl, welche vor einer Treppe im Kaufhaus steht. Tatsächlich ist es so ähnlich. Denn das Web ermöglicht den Behinderten Zugang zu Informationen, die ihnen sonst verschlossen bleiben. Ein blinder Mensch hat nicht die Möglichkeit, morgens die Zeitung aufzuschlagen um an die News des Tages zu kommen, auch kann er nicht im Telefonbuch nach einer benötigten Nummer suchen. Dinge, die für uns selbstverständlich und alltäglich sind, bleiben Behinderten verschlossen. Das hat sich mit der Nutzung des Internets zum Glück geändert. Es ist unsere Aufgabe, Websites so zu erstellen, dass Informationen allen Menschen zugänglich sind, dabei sollte man aber auf jede Art von Dogmatismus verzichten und immer wieder darauf hinweisen, dass man Kompromisse machen muss, um eine größtmögliche Zielgruppe zu erreichen. Was kann man aber konkret tun um Barrieren im Web abzubauen? Zunächst sollte man auf einen validen Code achten und auf Tabellen zum Layout verzichten. Darüber hinaus sollten die Seiten semantisch korrekt aufgebaut sein, eine Überschrift 1. Ordnung kommt vor einer Überschrift 2. Ordnung, ein p-Tag liegt nicht in einem spanBereich usw. Es ist gar nicht so schwer, wenn Sie einen Brief schreiben, bauen Sie diesen auch nach gewissen formalen Kriterien und in einer bestimmten Reihenfolge auf. Warum also nicht auch im Web? In den folgenden Abschnitten finden Sie einige weitere Hinweise, die man bei der Entwicklung beachten sollte.
2.4.1 Übersichtlichkeit Das Layout Ihrer Website sollte generell eine einfache und schnelle Aufnahme aller Informationen gewährleisten. Das hat nichts mit behinderten Menschen explizit zu tun, sondern gehört zum Standard einer guten Website.
2.4.2 Kontraste Wichtig ist eine ausreichend kontrastreiche Darstellung der gesamten Präsentation. Die Kombination von Hintergrund- und Schriftfarbe sollte so ausgewählt werden, dass zwischen ihnen ein deutlicher
20
■ ■ ■
2 Grundlagen
Kontrast entsteht. Andernfalls ist es möglich, dass Menschen mit Sehbehinderung oder auch Farbfehlsichtige die Informationen einer Website nur eingeschränkt sehen oder überhaupt nicht wahrnehmen können.
2.4.3 Grafiken Blinde Internetsurfer brauchen eine alternative Informationsquelle zu den Inhalten von Bildern. Deshalb werden Bilder im Quelltext mit einem alternativen Text erklärt. Bilder in der Navigation sind überflüssig.
2.4.4 Schriftgrößen Sehbehinderte Menschen nutzen für die Arbeit am Computer so genannte Großbildsysteme, die das Computerbild pixelweise vergrößern. Oder sie passen die System-Schriftgröße mittels Betriebssystem an ihre individuellen Bedürfnisse an. Auch ein Kontrast-Modus steht für verschiedene Schriftgrößen zur Verfügung. Damit Sehbehinderte diese Funktionen nutzen können, sollte die Schriftgröße skalierbar sein und nicht mit festen Pixelgrößen angegeben werden.
2.4.5 Sauberer Code und logische Strukturen Die saubere Trennung des Inhalts eines Dokuments von seiner Formatierung ermöglicht den barrierefreien Zugang für Menschen mit unterschiedlicher Wahrnehmung und unterschiedlicher technischer Ausstattung. Cascading Stylesheets bieten HTML-ergänzend die Möglichkeit Dokumente zu formatieren. Mit CSS können Webdesigner HTMLDokumente mit Dokumentvorlagen (Stylesheets) verbinden, die typografische und gestalterische Informationen zum Aussehen der Seite beinhalten. HTML gibt den Aufbau der semantisch logischen Strukturen wieder. Der Kern einer jeden Website ist ihre Navigation, die logisch aufgebaut und für jeden zugänglich sein sollte. Eine Darstellung als Liste ist eine gute Wahl. Eine logische Struktur, z.B. von Überschriften der unterschiedlichen Ordnungen, ermöglicht vor allem den Nutzern von Screenrea-
2.4 Barrierefreiheit – Internet verbindet
■ ■ ■
21
dern (zuständig für Sprachausgabe der Inhalte) einen leichteren Zugang zu den Informationen, weil sie die Möglichkeiten bietet, von Überschrift zu Überschrift zu springen. Auch für Sehende nicht sichtbare Sprungmarken können gerade blinden Menschen den Zugang zu Ihrem Dokument erleichtern. Sehenden ist es freigestellt, ob sie erst den Inhalt lesen oder direkt weiternavigieren. Nicht grafische Ausgabegeräte lesen linear von oben nach unten. Mit sinnvoll platzierten Sprungmarken können Sie diese Linearität für Blinde durchbrechen. Es ist z.B. bei einer Seite sehr störend die Navigation immer und immer wieder vorgelesen zu bekommen. Darüber hinaus sollten natürlich auch korrekte Sprachauszeichnung, Verwendung des Labels „Attributes“ in Formularen, Erreichbarkeit über die Tastatur, valide Umsetzung Beachtung finden.
Buchtip:
Wenn Sie mehr über CSS wissen möchten: CSS-Praxis von Kai Laborenz erschienen im Verlag Galileo Computing ISBN 3-89842-441-3
22
■ ■ ■
2 Grundlagen
3 Installation
Bei der Installation der unterschiedlichen Komponenten kann viel falsch gemacht werden. Da das Gesamtsystem erst dann funktioniert, wenn auch alle einzelnen Teile (Webserver, Datenbank, PHP, Mambo) funktionieren, ist eine besonnene Vorgehensweise der beste Tipp, den man geben kann. Wenn Sie wenig Erfahrungen haben, nehmen Sie sich ausreichend Zeit, lesen Sie einige Tutorials und nutzen Sie die im Internet reichlich vorhandenen Informationen. Entsprechende Hinweise auf Informationsquellen finden Sie im Anhang. Überprüfen Sie immer den Erfolg der einzelnen Schritte. Sie können so sicher sein, dass ein Problem, auf welches Sie stoßen, nicht ein Folgefehler ist und Sie an der richtigen Stelle nach einer Lösung suchen. Die Installation der Anwendungen ist natürlich Grundlage für den Betrieb von Mambo, aber es ist im Rahmen des Buches kaum möglich und auch nicht sinnvoll, die Installation bis ins Kleinste zu erläutern. Im Linkverzeichnis im Anhang und auf der Website zum Buch finden Sie umfangreiche Ansatzpunkte für die Suche nach weiteren Informationen.
3.1 Voraussetzungen Die Ansprüche, die Mambo an Server und Umgebung stellt, sind nicht sonderlich umfangreich. Die Minimalanforderungen sind ein Apache-Webserver mit PHP-Interpreter und eine MySql-Datenbank. Eine genaue Aufstellung zeigt die folgende Tabelle: Apache
ab Version 1.13.19 mit XML und Zlib-Support, sinnvoll ist noch das Modul mod_rewrite
PHP
ab Version 4.2.x
MySql
ab Version 3.23.x
3.1 Voraussetzungen
■ ■ ■
23
Bei der Auswahl eines Hosting-Angebots sollte man darauf achten, dass der Provider den PHP-Parameter „Safe_mode“ auf Off stehen hat, da Sie ansonsten Probleme bei der Installation bekommen.
3.2 Installation MySql-Datenbank Zur Datenspeicherung verwendet Mambo eine MySQL-Datenbank. Informieren Sie sich vor der Installation über die Voraussetzung für eine erfolgreiche Installation auf Ihrem System.
3.2.1 Installation unter Unix Das Vorgehen zur Installation ist je nach Distribution unterschiedlich. Sie müssen sich für die Installation als Systemverwalter „root“ an Ihrem System anmelden. Folgen Sie dann den für Ihre Distribution passenden Erläuterungen. 3.2.1.1 SUSE Das Installationstool bei der Distribution von Suse heißt „YaST“. Starten Sie YaST an der Konsole und wählen Sie „Software installieren oder löschen“ und Sie erhalten eine Übersicht über die installierte Software. Suchen Sie nach dem Begriff „mysql“ (mit ALT+S kommen Sie in den Suchdialog). Ob eine Software installiert ist, können Sie an dem „i“ in der ersten Spalte erkennen. Um Software zur Installation vorzumerken, betätigen Sie die Leertaste, wenn sich der Balken auf dem Softwarepaket befindet. Bitte wählen Sie mindestens mysql ab einer Version 3.23. Nachdem Sie die entsprechenden Softwarepakete ausgewählt haben, springen Sie mit Tab auf „Übernehmen“ und die Installation beginnt. Gegebenenfalls werden Ihnen noch weitere Fragen zur Konfiguration gestellt. Sollten für den Betrieb noch weitere Softwarepakete notwendig sein, erhalten Sie einen Hinweis und können diese notwendigen Pakete ebenfalls auswählen. Für YaST gibt es ebenfalls eine grafische Oberfläche, die der Textversion sehr ähnlich ist. 3.2.1.2 Debian Die Debian-Distribution bringt eines der leistungsfähigsten Installationswerkzeuge mit: Das „Advanced Package Tool“ (APT). Dieses
24
■ ■ ■
3 Installation
stellt nicht nur sicher, dass ein Softwarepaket installiert wird, sondern sorgt auch dafür, dass Abhängigkeiten erfüllt werden und Konflikte nicht auftreten. Dabei ist die Anwendung des APT äußerst einfach. Zur Installation von MySQL sind auf einem Debian-Server zwei Befehle notwendig: apt-get update Mit diesem Befehl werden die Paketinformationen auf den neuesten Stand gebracht. apt-get install mysql Installiert den Datenbankserver. Im Anschluss an die Installation wird die Konfiguration des Datenbankservers durchgeführt. Für APT gibt es ebenfalls Oberflächen, die eine Installation von Paketen oder Paketgruppen ermöglichen. Sie müssen selbst entscheiden, welcher Weg für Sie der richtige ist, aber kann eine Installation einfacher sein als die Eingabe von zwei Befehlen? 3.2.1.3 RedHat Das Installationstool bei RedHat ist der RedHat Package Manager (rpm). Dieses Tool überprüft ebenfalls, ob die Voraussetzungen für die Installation eines Paketes vorliegen. Im Gegensatz zu APT werden Probleme aber nicht automatisch aufgelöst und ggf. fehlende Pakete installiert. Die Voraussetzungen müssen im Vorfeld vom Anwender geschaffen werden. Darüber hinaus müssen die zu installierenden Pakete vor der Installation heruntergeladen werden. Sind alle notwendigen Pakete geladen und installiert und damit die Voraussetzungen für die Installation gegeben, kann auch MySQL installiert werden. Dazu ist folgender Befehl notwendig: rpm –i mysql
3.2.2 Installation unter Windows Bitte informieren Sie sich vor einer Installation auf der Website des MySQL-Datenbankservers über die Voraussetzungen zur Installation. Sie ersparen sich so unnötigen Ärger und Misserfolge. Die In-
3.2 Installation MySql-Datenbank
■ ■ ■
25
stallation an sich läuft wie 99% aller anderen Installationen ab. Starten Sie setup.exe und folgen Sie den Anweisungen.
3.3 Installation Apache Die Installation des Webservers Apache ist in vielen Tutorials beschrieben. Eine gute Anlaufstelle für Fragen ist die Website http://httpd.apache.org .
3.3.1 Installation unter Unix Für alle größeren am Markt befindlichen Distributionen ist der Apache-Webserver verfügbar. Der Webserver gehört quasi zum Standard und ist meistens schon installiert. Es gibt viele Möglichkeiten zu überprüfen, ob auf Ihrem System ein Webserver läuft. Ein paar finden Sie hier: ■
Starten Sie einen Webbrowser und geben in der Adresszeile http://myserver ein (Sie müssen myserver durch den Namen Ihres Servers ersetzten). Sie sollten nun die Standardseite sehen.
■
Nutzen Sie das Installationstool Ihrer Distribution und überprüfen Sie, ob das Paket Apache installiert ist.
■
Werfen Sie einen Blick in das Verzeichnis „/etc/init.d“, gibt es dort eine Datei apache oder httpd?
Darüber hinaus bringen die Distributionen alle leistungsfähige Installationswerkzeuge mit. Sollte der unwahrscheinliche Fall vorliegen, dass kein Webserver installiert ist, ist die Installation von der verwendeten Distribution bzw. dem Installationstool abhängig. Sie müssen sich für die Installation als Systemverwalter „root“ an Ihrem System anmelden. Folgen Sie dann den für Ihre Distribution passenden Erläuterungen. 3.3.1.1 SUSE Das Installationstool bei der Distribution von Suse heißt „YaST“. Starten Sie YaST an der Konsole und wählen Sie „Software installieren oder löschen“ und Sie erhalten eine Übersicht über die installierte Software. Suchen Sie nach dem Begriff „apache“ (mit ALT+S kommen Sie in den Suchdialog). Ob eine Software installiert ist,
26
■ ■ ■
3 Installation
können Sie an dem „i“ in der ersten Spalte erkennen. Um Software zur Installation vorzumerken, betätigen Sie die Leertaste, wenn sich der Balken auf dem Softwarepaket befindet. Bitte wählen Sie mindestens das Paket Apache ab einer Version 1.13.19. Nachdem Sie die entsprechenden Softwarepakete ausgewählt haben, springen Sie mit Tab auf „Übernehmen“ und die Installation beginnt. Gegebenenfalls werden Ihnen noch weitere Fragen zur Konfiguration gestellt. Sollten für den Betrieb noch weitere Softwarepakete notwendig sein, erhalten Sie einen Hinweis und können diese notwendigen Pakete ebenfalls auswählen. Für YaST gibt es auch eine grafische Oberfläche, die der Textversion sehr ähnlich ist. 3.3.1.2 Debian Die Debian-Distribution bringt eines der leistungsfähigsten Installationswerkzeuge mit: Das „Advanced Package Tool“ (APT). Dieses stellt nicht nur sicher, dass ein Softwarepaket installiert wird, sondern sorgt auch dafür, dass Abhängigkeiten erfüllt werden und Konflikte nicht auftreten. Dabei ist die Anwendung des APT äußerst einfach. Zur Installation des Apache sind auf einem Debian-Server zwei Befehle notwendig: apt-get update Mit diesem Befehl werden die Paketinformationen auf den neuesten Stand gebracht. apt-get install apache Installiert den Webserver. Im Anschluss an die Installation wird die Konfiguration des Webservers durchgeführt. Für APT gibt es ebenfalls Oberflächen die eine Installation von Paketen oder Paketgruppen ermöglichen. Sie müssen selbst entscheiden, welcher Weg für Sie der Richtige ist, aber kann eine Installation einfacher sein als die Eingabe von zwei Befehlen? 3.3.1.3 RedHat Das Installationstool bei RedHat ist der RedHat Package Manager (rpm). Dieses Tool überprüft ebenfalls, ob die Voraussetzungen für die Installation eines Paketes vorliegen. Im Gegensatz zu APT werden Probleme aber nicht automatisch aufgelöst und ggf. fehlende Pakete installiert. Die Voraussetzungen müssen im Vorfeld vom
3.3 Installation Apache
■ ■ ■
27
Anwender geschaffen werden. Darüber hinaus müssen die zu installierenden Pakete vor der Installation heruntergeladen werden. Sind alle notwendigen Pakete geladen und installiert und damit die Voraussetzungen für die Installation gegeben, kann auch der Apache installiert werden. Dazu ist folgender Befehl notwendig: rpm –i apache
3.3.2 Installation unter Windows Bitte informieren Sie sich vor einer Installation auf der Website des Apache-Webservers über die Voraussetzungen zur Installation. Sie ersparen sich so unnötigen Ärger und Misserfolge. Die Installation an sich läuft wie 99% aller anderen Installationen ab. Starten Sie setup.exe und folgen Sie den Anweisungen. Sie benötigen für die Installation ggf. Administratorrechte auf dem Rechner.
3.4 Installation PHP Es gibt zwei Möglichkeiten PHP zu installieren. Die erste Möglichkeit ist die Installation für den Betrieb via CGI (Common Gateway Interface). Diese Methode wird hier nicht beschrieben. Als zweite Möglichkeit steht die Installation als Apache-Modul zur Verfügung. Die Methoden haben jeweils ihre Vor- und Nachteile, eine genaue Abwägung und Entscheidung, welche Methode die bessere ist, kann erst bei Kenntnis weiterer Systemparameter erfolgen. Wir haben uns für die Installation als Modul entschieden, da diese einfacher ist.
3.4.1 Installation unter Unix 3.4.1.1 SUSE Das Installationstool bei der Distribution von Suse heißt „YaST“. Starten Sie YaST an der Konsole und wählen Sie „Software installieren oder löschen“ und Sie erhalten eine Übersicht über die installierte Software. Suchen Sie nach dem Begriff „php“ (mit ALT+S kommen Sie in den Suchdialog). Ob eine Software installiert ist, können Sie an dem „i“ in der ersten Spalte erkennen. Um Software
28
■ ■ ■
3 Installation
zur Installation vorzumerken betätigen Sie die Leertaste, wenn sich der Balken auf dem Softwarepaket befindet. Bitte wählen Sie mindestens das Paket mod_php4_core ab einer Version 4.2 und je nach eingesetzter Webserverversion entweder apache2-mod_php4 oder mod_php4 (für Apache 1.3). Nachdem Sie die entsprechenden Softwarepakete ausgewählt haben, springen Sie mit Tab auf „Übernehmen“ und die Installation beginnt. Gegebenenfalls werden Ihnen noch weitere Fragen zur Konfiguration gestellt. Sollten für den Betrieb noch weitere Softwarepakete notwendig sein, erhalten Sie einen Hinweis und können diese notwendigen Pakete ebenfalls auswählen. Für YaST gibt es auch eine grafische Oberfläche, die der Textversion sehr ähnlich ist. 3.4.1.2 Debian Die Debian-Distribution bringt eines der leistungsfähigsten Installationswerkzeuge mit: Das „Advanced Package Tool“ (APT). Dieses stellt nicht nur sicher, dass ein Softwarepaket installiert wird, sondern sorgt auch dafür, dass Abhängigkeiten erfüllt werden und Konflikte nicht auftreten. Dabei ist die Anwendung des APT äußerst einfach. Zur Installation von PHP sind auf einem Debian-Server zwei Befehle notwendig: apt-get update Mit diesem Befehl werden die Paketinformationen auf den neuesten Stand gebracht. apt-get install php4 (php4-gd2) Installiert PHP. Im Anschluss an die Installation wird die Konfiguration des Webservers durchgeführt. Für APT gibt es ebenfalls Oberflächen, die eine Installation von Paketen oder Paketgruppen ermöglichen. Sie müssen selbst entscheiden, welcher Weg für Sie der Richtige ist, aber kann eine Installation einfacher sein als die Eingabe von zwei Befehlen? 3.4.1.3 RedHat Das Installationstool bei RedHat ist der RedHat Package Manager (rpm). Dieses Tool überprüft ebenfalls, ob die Voraussetzungen für die Installation eines Paketes vorliegen. Im Gegensatz zu APT werden Probleme aber nicht automatisch aufgelöst und ggf. fehlende
3.4 Installation PHP
■ ■ ■
29
Pakete installiert. Die Voraussetzungen müssen im Vorfeld vom Anwender geschaffen werden. Darüber hinaus müssen die zu installierenden Pakete vor der Installation heruntergeladen werden. Sind alle notwendigen Pakete geladen und installiert und damit die Voraussetzungen für die Installation gegeben, kann auch PHP installiert werden. Dazu ist folgender Befehl notwendig: rpm –i php
3.4.2 Installation unter Windows Zur Installation unter Windows verwenden Sie bitte das PHP 4.2.x zip package bzw. eine spätere Version. Wichtig ist, dass Sie das „zip-package“ verwenden, dieses enthält auch das Apache-Modul. Entpacken Sie das Archiv in ein Verzeichnis (z.B. C:\php) und folgen Sie dann den Anweisungen in install.txt (Manual Installation Steps).
3.5 Konfiguration Die Standardwerte der einzelnen Softwarepakete sind normalerweise für den Betrieb mit Mambo gut geeignet. Achten sollten Sie auf den Parameter „safe_mode“. Dieser sollte auf jeden Fall auf „off“ stehen. Bisher ist das der Standardwert, das kann sich aber ändern.
3.6 PhpMyAdmin Das Tool PhpMyAdmin erleichtert die Administration von MySQLDatenbanken erheblich. Sollten Sie also kein Profi im Umgang mit MySQL sein, installieren Sie noch dieses Paket. Für die einzelnen LINUX-Distributionen gibt es wieder Pakete, die Sie nur noch installieren müssen und für Windows können Sie ein Archiv von http://www.phpmyadmin.net/ laden. Sie müssen dieses Archiv dann noch in ein Verzeichnis unterhalb des Document-Root’s Ihres Webservers entpacken.
30
■ ■ ■
3 Installation
3.7 XAMPP Eine weitere Möglichkeit, die notwendigen Anwendungen zu installieren, ist XAMPP. Dabei handelt es sich um ein Paket, das Apache, MySQL, PHP und noch einige weitere Anwendungen enthält. Die Installation ist sehr einfach, genauere Informationen erhält man auf der Website http://www.apachefriends.org. Das Paket ist für unterschiedliche Linux-Distributionen und Windows verfügbar.
3.8 Mambo-Installation Wie die Installation durchgeführt werden muss, hängt von den Servereinstellungen ab. Steht in der Apache/PHP-Konfiguration der Parameter „safe_mode“ auf „off“, dann kann der Webinstaller verwendet werden. Steht „safe_mode“ auf „on“, bleibt nur die manuelle Installation. Beide Wege werden im Folgenden beschrieben.
3.8.1 Vorbereitung Vor der Installation von Mambo müssen Sie eine Datenbank und ggf. auch einen Datenbankuser anlegen. Bei diesen Arbeiten hilft das Tool PhpMyAdmin, wenn Sie den Hinweisen und Vorschlägen gefolgt sind, haben Sie dieses Tool schon installiert. Wir gehen im Folgenden davon aus, dass Sie eine Datenbank angelegt haben und es einen Datenbankuser gibt. In den Beispielen werden als Daten verwendet: ■
Datenbank: mtest
■
Datenbankuser: usermambo
■
Passwort des Datenbankusers: mambo
3.8.2 Webinstaller Der erste Schritt ist, dass Sie sich die Mambo-Software besorgen. Besuchen Sie die Website „mamboforge.net“ und laden die aktuellste – „stable“ – Version auf Ihren Server.
3.7 XAMPP
■ ■ ■
31
Legen Sie dann im Documentroot des Webservers ein Verzeichnis „test“ an und entpacken Sie Mambo in dieses Verzeichnis. Starten Sie nun einen Webbrowser und geben in der Adresszeile http://myserver/test ein (ersetzen Sie myserver durch den Namen Ihres Servers). Sie kommen dann zum „pre-installation-check“. Abb. 3.1 Pre-InstallationCheck
Wenn bei den Überprüfungen keine Probleme festgestellt worden sind, werden die Werte in grün angezeigt. Dabei ist eine rote Anzeige bei configuration.php unproblematisch. Am Ende der Installation werden Ihnen dann die Inhalte angezeigt, diese müssen Sie in eine lokale Datei configuration.php einfügen und die Datei auf Ihrem Server hochladen. Um mit der Installation fortzufahren, klicken Sie auf den Button „Next“ oben rechts. Im nächsten Fenster müssen Sie die Lizenzbestimmungen akzeptieren, klicken Sie dazu die Checkbox und dann „Next“ an.
32
■ ■ ■
3 Installation
Abb. 3.2 License
Sie kommen dann zum ersten Schritt der Installation; zunächst geben Sie die Informationen zur Datenbank ein. Bitte wählen Sie hier zusätzlich Install Sample Data aus. Abb. 3.3 Install Step 1
Nachdem Sie wiederum auf den Next-Button geklickt haben, kommt noch eine Sicherheitsnachfrage, ob Sie ganz sicher sind die richtigen Angaben gemacht zu haben. Mit OK geht’s weiter. Abb. 3.4 Bestätigung
3.8 Mambo-Installation
■ ■ ■
33
Waren alle Angaben korrekt, öffnet sich die nächste Seite. Auf dieser vergeben Sie für Ihre Mambo-Site einen Namen. Abb. 3.5 Install Step 2
Mit „Next“ kommen Sie nun zum dritten Schritt. Zu Ihrer Information sehen Sie dort die URL und den Path. Tragen Sie hier noch Ihre Email-Adresse und ein Passwort ein. Ein letztes „Next“ und die Installation ist fertig. Abb. 3.6 Install Step 3
Sie sehen nun noch ein letztes Mal das von Ihnen eingegebene Passwort, eine gute Gelegenheit das Passwort zu notieren. Zum Abschluss der Installation müssen Sie nun noch aus Sicherheitsgründen das Verzeichnis installation löschen. Abb. 3.7 Install Step 4
34
■ ■ ■
3 Installation
Haben Sie das auch erledigt, können Sie auf „View Site“ klicken und Sie kommen auf Ihre neue Mambo-Site. Herzlichen Glückwunsch! Abb. 3.8 Site nach Installation
Je nach der von Ihnen installierten Version kann die erste Seite etwas anders aussehen.
3.8.3 Manuelle Installation Diesen Weg der Installation müssen Sie dann wählen, wenn der Parameter „safe_mode“ auf „on“ steht. Besorgen Sie sich zunächst die aktuelle Mambo-Version und laden diese lokal auf Ihren Rechner. Entpacken Sie die Datei in ein Verzeichnis. Mambo kommt als gezipptes tararchiv, zum Entpacken können Sie z.B. Winzip oder IZarc verwenden.
3.8 Mambo-Installation
■ ■ ■
35
Auch bei dieser Installationsvariante gehen wir von einer vorhandenen PhpMyAdmin-Installation aus. Zunächst müssen Sie die Datei mambo.sql im Verzeichnis installation/sql bearbeiten. Öffnen Sie die Datei mit einem Editor und gehen Sie zum Ende der Datei. Dort finden Sie sechs Zeilen, die mit # INSERT INTO `#__users`
beginnen. Löschen Sie das ‘#’ am Anfang der Zeilen. Durch diese Maßnahme werden später zwei Benutzer angelegt, einmal admin mit dem Passwort „admin“ und einmal editor mit dem Passwort „editor“. Melden Sie sich dann mittels PhpMyAdmin an der Datenbank an und führen die o.g. SQL-Datei (vorher das Speichern nicht vergessen) aus. Unter Umständen müssen Sie vorher die richtige Datenbank auswählen, wählen dann den SQL-Reiter und über „Durchsuchen“ die Datei aus. Wiederholen Sie diesen Schritt ggf. für die Beispieldaten in sample.sql. Kopieren Sie dann die Datei configuration-dist.php nach configuration.php. Sie müssen nun die Parameter an Ihrer Umgebung anpassen. Wichtig sind vor allem: $mosConfig_host = 'localhost'; $mosConfig_user = 'usermambo'; $mosConfig_password = 'mambo'; $mosConfig_db = 'mtest';
$mosConfig_absolute_path ='/server/mambo'; $mosConfig_live_site = 'http://inetserver.com/mambo';
Die meisten Probleme sind auf falsche Angaben bei $mosConfig_absolute_path zurückzuführen. Sie müssen an dieser Stelle den vollständigen Pfad angeben. Bei der Ermittlung dieses Wertes kann Ihnen auch PhpMyAdmin helfen. Wählen Sie auf der Startseite von PhpMyAdmin „PHP-Informationen anzeigen“ und suchen Sie in der folgenden Seite nach der Zeichenfolge „DOCUMENT_ROOT“; das was bei „Value“ steht, ist der gesuchte Wert.
36
■ ■ ■
3 Installation
Im nächsten Schritt kopieren Sie nun alle lokalen Dateien, bis auf das Verzeichnis installation, auf den Server. Ändern Sie dann noch die Datei- und Verzeichnisrechte (das sollte Ihr FTPProgramm können, denken Sie daran, dass die Rechte rekursiv geändert werden müssen, also auch für die Unterverzeichnisse) wie folgt: (707) (707) (707) (707) (707) (707) (707) (707) (707) (644)
rwx---rwx images rwx---rwx media rwx---rwx uploadfiles rwx---rwx components rwx---rwx language rwx---rwx modules rwx---rwx templates rwx---rwx administrator/backups rwx---rwx administrator/components rw-r—r-- configuration.php
Sie können sich nun anmelden: Geben Sie in der Adresszeile des Browsers http://inetserver.com/mambo ein (ersetzen Sie inetserver.com durch den Servernamen Ihrer Domain bzw. Ihres Providers). Zunächst sollten Sie sich als admin im Backend anmelden (wählen Sie einfach den Administrator-Link) und das Passwort und die Emailadresse (Site-> User Manager -> Add/Edit Users) des Administrators ändern. Sie haben Mambo installiert!
3.9 MSAS – Mambo Stand Alone Server Der MSAS ist eine sehr einfache Möglichkeit, Mambo lokal zu verwenden; eine „richtige“ Installation ist nicht notwendig. MSAS ist ein gezipptes Archiv, welches einfach ausgepackt und auf der lokalen Festplatte abgespeichert wird. Im Verzeichnis MSAS451a+ (ggf. ist eine andere Version zur Zeit aktuell) findet man die Datei msas.exe, ein Doppelklick startet den MSAS. Es wird dann ein neues Laufwerk W: bereit gestellt, auf diesem befinden sich die gesamten zum Betrieb notwendigen Dateien. Ein Problem besteht dort, wo das Laufwerk W: schon verwendet wird. Hier muss man die Laufwerkszuordnung ändern und die Verbindung zu Laufwerk W: lösen. Leider bietet MSAS keine Möglichkeit die Laufwerkszuordnung zu ändern. Zur Steuerung der Installation liefert MSAS ein Panel mit, das die Konfiguration der einzelnen Programme erlaubt.
3.9 MSAS – Mambo Stand Alone Server
■ ■ ■
37
Abb. 3.9 MSAS Control Panel
Über das Contol Panel können Sie alle Funktionen steuern. Im Einzelnen haben Sie die folgenden Möglichkeiten: Start Mambo: Die Mambo-Frontpage wird aufgerufen.
Mambo Admin Panel: Die Login-Seite für das Backend wird aufgerufen
browse: Auf der Festplatte nach Dateien suchen.
docs: Die Dokumentation zum MSAS wird angezeigt.
news: Neuste Informationen von Mambosolutions.
home: Startseite des MSAS anzeigen.
PHP My Admin: PhpMyAdmin wird angezeigt.
Apache Log Files: Das Apache Logfile wird angezeigt.
PHP Environment: Sie erhalten Informationen zur PHP-Umgebung, diese ist die Ausgabe der phpinfo-Funktion.
CGI Environment: Sie erhalten Informationen zur CGI-Umgebung.
Server Config: Sie können die Serverkonfiguration ändern, wenn Sie mal ausprobieren wollen, wie ein Server bei safe_mode=on reagiert, hier haben Sie auch diese Möglichkeit.
Start MySql: Starten des MySql-Servers.
Stop MySql: Stoppen des MySql-Servers.
38
■ ■ ■
3 Installation
Restart MySql: Stoppen und Starten des MySql-Servers.
Restart Apache: Stoppen und Starten des Apache-Webservers.
Der MSAS bietet alles was man zum Ausprobieren von Mambo benötigt. Die Installation ist zwar nur für einen lokalen Testbetrieb geeignet, wenn die Ansprüche aber nicht sonderlich hoch sind, kann der MSAS auch im lokalen Netz als Server verwendet werden.
3.9 MSAS – Mambo Stand Alone Server
■ ■ ■
39
4 Die erste Website
In diesem Kapitel erstellen wir unsere erste Website mit Mambo. Quasi nebenbei lernen Sie Funktionen und Konzepte von Mambo kennen. Wir beginnen dabei mit einer einfachen Aufgabe.
4.1 Aufgabenstellung In unserem Beispiel geht es um die Firma Karl Meier, diese vertreibt Gläser, Tassen und andere Gefäße. In dieser alt eingesessenen Firma werden alle Informationen per Papier und Rundschreiben verbreitet. Das soll in Zukunft anders werden. Die Aufgabe besteht also darin, die bisher vorhandene Lösung zur Unternehmenskommunikation durch ein Intranet zu ersetzen. Informationen kommen aus drei Bereichen: ■
Geschäftsleitung
■
Vertrieb
■
Produktion
Darüber hinaus soll es für die Mitarbeiter ein geordnetes Verzeichnis für Links geben.
4.2 Anmelden als Administrator Bevor wir zur Realisierung kommen, starten wir eine Erkundungsreise durch den Administrationsbereich von Mambo. Starten Sie Ihren Webbrowser und geben als URL (Uniform Resource Locator) den Namen Ihres Servers an und hängen „/administrator“ an die Adresse oder klicken Sie auf der Startseite auf Administrator. Sie bekommen dann die Möglichkeit zum Login.
4.1 Aufgabenstellung
■ ■ ■
41
Abb. 4.1 Login
Tragen Sie bei Username „admin“ und bei Password das bereits bei der Installation vergebene Passwort ein. Seit der Version 4.5.1 kann man das Erscheinungsbild für den Administrationsbereich selber festlegen. Alle weiteren Erläuterungen beziehen sich auf das Admin Template „Mambo Admin Blue“. Bei den Bezeichnungen wird immer das englische Original verwendet.
4.3 Der Adminbereich: Ein Überblick
Abb. 4.2 Backend (Administrationsoberfläche)
42
■ ■ ■
Für den Administrationsbereich wird auch der Begriff Backend verwendet. Als Unterscheidung ist dieser Begriff sehr gut geeignet. Der Gegenpart ist das Frontend. So kann man immer entscheiden, in welcher Umgebung man sich befindet bzw. welchen Zugang man zu dem System verwendet. Im weiteren Text wird Backend verwendet, wenn der Adminzugang – nicht die Anmeldung als Admin – gemeint ist.
4 Die erste Website
Die Backend-Oberfläche besteht aus vier Bereichen: Menubar, Toolbar, Infobar und dem Workspace. Eine detaillierte Erläuterung der einzelnen Menüpunkte und Bereiche finden Sie im Referenzteil des Buches, hier nur eine grobe Beschreibung. Erläuterung der Bereiche: Menubar: In der Menubar sind alle Menüs untergebracht
Toolbar: Die Toolbar enthält je nach angewähltem Bereich unterschiedliche Buttons
Infobar: Die Infobar zeigt, welcher Bereich momentan ausgewählt ist.
Workspace: Mit dem Begriff Workspace wird der Bereich bezeichnet, in dem die Bearbeitungsdialoge dargestellt werden.
Seit der Version 4.5.1 gibt es das „Control Panel“. Sie finden hier die wichtigsten Funktionen auf einer Seite vereint. Um die gestellte Aufgabe zu lösen, kommen wir mit den hier angebotenen Funktionen fast aus.
4.4 Realisierung 4.4.1 Einrichten der Informationsbereiche In der Aufgabenstellung ist angegeben, dass die Informationen aus drei Bereichen kommen: Geschäftsleitung, Vertrieb und Produktion. Wir richten nun diese Bereiche ein. Für jeden Bereich legen wir zunächst eine Section mit dem Section Manager an. Klicken Sie das entsprechende Symbol im Control Panel an. Sie sehen nun die schon vorhandenen Sections: Abb. 4.3 Section Manager
4.4 Realisierung
■ ■ ■
43
Die einzelnen Spalten haben folgende Bedeutung: Section Name: Ist die Bezeichnung einer Section.
Published: Ein Haken bedeutet, dass diese Section auch im Frontend verfügbar ist.
Reorder: Sie können mit den Pfeilen die Reihenfolge der Sections festlegen.
Access: Hier sehen Sie, wer Zugriff auf das Modul hat. Mögliche Werte sind „Public“ (alle), „Registered“ (nur angemeldete Benutzer, setzt Registrierung voraus) und „Special“ (nur bestimmte Gruppen).
Section ID: Ist der Datenbankschlüssel für die Section.
# Categories: Anzahl der Categories in der Section.
# Active: Anzahl der veröffentlichten Beiträge in der Section.
# Trash: Anzahl der Beiträge aus der Section, die im Mülleimer gelandet sind.
Checked Out: Wenn jemand eine Section zur Bearbeitung geöffnet hat und daran noch arbeitet, sehen Sie in dieser Spalte, wer an der Section arbeitet. Eine Anzeige unter Checked Out bekommen Sie auch dann, wenn Sie bei der Bearbeitung einer Section einfach den Webbrowser schließen oder auf einen anderen Menüpunkt klicken. Benutzen Sie bitte immer den Cancel- oder Save-Button. Mit der Funktion Global Checkin im Menu System können Sie alle ausgecheckten Einträge wieder einchecken.
Die Toolbar hat sich ebenfalls verändert. Sie haben nun dort mehrere Möglichkeiten, unter anderen auch die, eine neue Section anzulegen. Abb. 4.4 Toolbar Section Manager
Wir legen nun eine neue Section an, klicken Sie dazu auf den Button „New“.
44
■ ■ ■
4 Die erste Website
Abb. 4.5 Add/New Section
Geben Sie die Daten, wie in der Abbildung angegeben, ein. Nachdem Sie die Daten eingegeben haben, wählen sie auf der Toolbar den Button „Save“. Sie haben nun Ihre erste Section angelegt. Die Informationen sollen in der Section noch unterteilt werden, dafür nutzen wir die Categories in Mambo. Wählen Sie nun auf dem Control Panel den Category Manager. Wenn Sie in der Menubar „Home“ auswählen, kommen Sie immer zum Control Panel zurück. Legen Sie eine neue Category an:
Abb. 4.6 Add Category
Geben Sie die Daten, wie in dem obigen Bild gezeigt, ein und speichern Sie die neue Category ab. Im Anschluss legen Sie bitte noch einige weitere Sections und Categories an. Bei der Bezeichnung der einzelnen Sections und Categories können Sie Ihrer Phantasie freien
4.4 Realisierung
■ ■ ■
45
Raum lassen oder einfach die in der folgenden Tabelle dargestellte Struktur übernehmen. Section GF-Infos
Versand Vertrieb
Category Mitarbeiter Nachrichten Verfahrensweisen Zahlen/ Fakten Zahlen/ Fakten Neue Produkte Zahlen/ Fakten
Damit sollte auch der Unterschied zwischen Section und Category deutlich geworden sein. Eine Section ist ein Oberbegriff, der durch Categories unterteilt werden kann. Jede Section benötigt mindestens eine Category. Wir haben also jetzt eine Möglichkeit geschaffen die Informationen zu ordnen. Jetzt fehlen nur noch die Informationen. Wählen Sie auf dem Control Panel nun „All Content Items“. Abb. 4.7 All Content Items
In der Filterzeile können Sie die Einträge einschränken, indem Sie einen Begriff eingeben. Nachdem Sie Return gedrückt haben, werden nur noch die Einträge angezeigt, die den eingegebenen Begriff enthalten. Sie können aber auch nur Einträge anzeigen, die einer bestimmten Section oder Category entsprechen. Die einzelnen Filter werden logisch mit UND verknüpft, z.B. zeigt der Filter „item 1“ und Category „Latest News“ nur noch den Eintrag „Example News Item 1“. Bei der Anwendung eines Filters wird Groß/Kleinschreibung nicht beachtet. Die einzelnen Spalten haben folgende Bedeutung: Title: Ist die Bezeichnung des Beitrages (Content Items)
46
■ ■ ■
4 Die erste Website
Published:
Der Beitrag ist veröffentlicht, aber das Gültigkeitsdatum ist noch nicht erreicht Der Beitrag ist veröffentlicht und gültig
Der Beitrag ist veröffentlicht, aber der Zeitraum für die Gültigkeit ist abgelaufen Der Beitrag ist nicht veröffentlicht.
Front Page:
Der Beitrag wird auf der Front Page angezeigt.
Der Beitrag wird auf der Front Page nicht angezeigt.
Reorder: Sie können mit den Pfeilen die Reihenfolge der Beiträge festlegen.
Access: Sie sehen hier, wer Zugriff auf das Modul hat. Mögliche Werte sind „Public“ (alle), „Registered“ (nur angemeldete Benutzer, setzt Registrierung voraus) und „Special“ (nur bestimmte Gruppen).
ID: Ist der Datenbankschlüssel für den Beitrag (nur für Programmierer von Komponenten und Modulen interessant)
Section: Der Beitrag gehört zur Section.
Category: Der Beitrag gehört zur Category.
Checked Out: Wenn jemand einen Beitrag zur Bearbeitung geöffnet hat und daran noch arbeitet, sehen Sie in dieser Spalte, wer an dem Beitrag arbeitet.
4.4 Realisierung
■ ■ ■
47
Erstellen Sie nun einen neuen Beitrag. Klicken Sie dazu auf den Button “New ”. Abb. 4.8 Adding content in Section
Sie müssen hier einen Title eingeben, eine Section und Category auswählen. Beim Text ist wieder Ihre Phantasie gefragt (oder Sie gehen auf die Website zum Buch und klicken dort auf Bildtexte). Für die Gestaltung des Textes haben Sie die Möglichkeit einen einführenden Text und einen Haupttext einzugeben. Dies bedeutet, dass zunächst nur der einführende Text mit einem „read more“-Link
48
■ ■ ■
4 Die erste Website
angezeigt wird. Nach Auswahl des Links wird der gesamte Text angezeigt. Den Editor, mit dem Sie den Text bearbeiten, können Sie frei auswählen. Im hier gezeigten Beispiel wird der „Tiny MCE“ verwendet. Ein Beitrag ist normalerweise direkt veröffentlicht, „published“. Auf dem „Publishing“-Info-Panel können Sie noch einige weitere Einstellungen vornehmen. Abb. 4.9 Publishing Info
Wählen Sie nun noch „Show on Frontpage“ aus und speichern Sie den Beitrag. Eine Erläuterung der einzelnen Einstellungsmöglichkeiten finden Sie im Referenzteil des Buches. An dieser Stelle beschränken wir uns auf die Lösung unserer Aufgabe. Wir schauen uns nun das Ergebnis unserer Bemühungen an – wählen Sie dazu aus dem Menu „Site“ den Punkt „Preview“ und „In new Window“.
4.4 Realisierung
■ ■ ■
49
Abb. 4.10 Site Preview
Sie erhalten nun ein neues Fenster mit der Front Page Ihrer Site, dort finden Sie nun auch Ihren gerade erstellten Beitrag. Abb. 4.11 Neuer Beitrag
Geben Sie nun noch einige weitere Beiträge ein und weisen diese den unterschiedlichen Sections / Categories zu.
4.4.2 Menüs bearbeiten Im vorherigen Abschnitt haben wir gesehen, wie man Inhalte eingibt und diese auf der Front Page sichtbar macht. Es ist aber nicht immer gewollt, dass alle Beiträge auf der Front Page auftauchen. Darüber hinaus haben wir die Beiträge nach Kriterien geordnet und möchten diese Ordnung auch nutzen. Wir legen nun für die einzelnen Sections Einträge im Menü an. Wählen Sie nun im „Control Panel“ den „Menu Manager“ und dann bei Menu Type „main menu“.
50
■ ■ ■
4 Die erste Website
Abb. 4.12 Menu Manager Übersicht
In der Grundkonfiguration enthält das Menü schon einige Einträge, wir wählen nun die z.Zt. nicht notwendigen Einträge ab. Selektieren Sie alle Punkte außer Home und wählen dann „unpublish“. Bevor wir nun einen neuen Eintrag anlegen, klären wir die Bedeutung der einzelnen Spalten im Menu Manager. In Abb. 4.12 ist der Menu Manager im Übersichtsmodus zu sehen: Menu Name: Ist die Bezeichnung des Menüs, diese Namen finden Sie z.B. im Modul Manager.
Menu Type: Der Typ des Menus, dieser muss immer eindeutig sein.
Module ID: Ist der Datenbankschlüssel für das Menü (nur für Programmierer von Komponenten und Modulen interessant).
Items: Ist die Bezeichnung des Beitrags (Content Items).
Haben Sie einen Menu Type ausgewählt, sind weitere Spalten verfügbar: Abb. 4.13 Menu Manager mainmenu
Menu Item: Ist die Bezeichnung des Eintrags.
4.4 Realisierung
■ ■ ■
51
Published: Ein Haken bedeutet, dass dieser Menüeintrag auch im Frontend verfügbar ist.
Reorder: Sie können mit den Pfeilen die Reihenfolge der Menueinträge festlegen.
Access: Sie sehen hier, wer Zugriff auf das Modul hat. Mögliche Werte sind „Public“ (alle), „Registered“ (nur angemeldete Benutzer, setzt Registrierung voraus) und „Special“ (nur bestimmte Gruppen).
Type: Hier sehen Sie den Typ des Menueintrags. Eine Liste der möglichen Werte finden Sie im Referenzteil des Buches.
Checked Out: Wenn jemand einen Beitrag zur Bearbeitung geöffnet hat und daran noch arbeitet, sehen Sie in dieser Spalte, wer an dem Eintrag arbeitet.
Falls noch nicht geschehen, wählen sie nun bei Menu Type das „mainmenu“ aus und legen einen neuen Eintrag an. Auf der nächsten Seite können Sie den Type des Menüeintrages auswählen, selektieren Sie „List-Content Section“ und bestätigen die Auswahl mit „Next“. Sie kommen dann zum folgenden Dialog. Abb. 4.14 Add Menu Item
Sie müssen nun einen Titel für den Menüeintrag vergeben und die passende „Section“ auswählen. Bestätigen Sie Ihre Eingaben und wiederholen Sie diesen Vorgang für die beiden andern Sections. Das Resultat Ihrer Bemühungen ist, dass Sie auf die einzelnen Bereiche über das Menü zugreifen können. Ein wenig störend sind noch die Einträge aus dem “Other Menu”, setzen Sie deshalb alle Einträge auf „unpublished“. Das Top Menu können wir in der jetzigen Form auch nicht brauchen. Wählen Sie das Top Menu aus und verschieben Sie den Menüpunkt „Links“ in
52
■ ■ ■
4 Die erste Website
das Main Menu. Dazu müssen Sie zunächst „Links“ auswählen und dann den „Move-Button“ betätigen. Abb. 4.15 Move Menu
Es öffnet sich dann ein Fenster, in dem Sie das Ziel für die Verschiebeaktion auswählen können. Abb. 4.16 Bestätigung Move Menu
Wählen Sie hier „mainmenu“ aus und bestätigen Sie Ihre Auswahl nochmals mit dem „Move-Button“. Der Menüpunkt “Links” ist nun in das „Main Menu“ verschoben. Die restlichen Menüpunkte setzen Sie auf „unpublished“ und das „Top Menu“ ist verschwunden. Den ersten Teil unserer Aufgabe haben wir gelöst. Die Seite sollte jetzt ungefähr aussehen wie in der folgenden Abbildung gezeigt.
4.4 Realisierung
■ ■ ■
53
Abb. 4.17 Website nach dem ersten Schritt
4.4.3 Einrichten von Web-Links Der zweite Teil der Aufgabe besteht darin, ein Linkverzeichnis für das gesamte Unternehmen aufzubauen. Wir starten mit den folgenden Kategorien: ■
Allgemeine Informationen
■
Lieferanten
■
Partner
Wählen Sie auf dem Control Panel „Weblink Categories“. Abb. 4.18 Control Panel – Web Link Categories
54
■ ■ ■
4 Die erste Website
Die nächste Seite wird Ihnen höchstwahrscheinlich bekannt vorkommen, wir werden die einzelnen Spalten und deren Bedeutung dennoch erläutern. Abb. 4.19 Web Links Categories
Category Name: Ist die Bezeichnung der Category.
Published: Ein Haken bedeutet, dass diese Category auch im Frontend verfügbar ist.
Reorder: Sie können mit den Pfeilen die Reihenfolge festlegen.
Access: Sie sehen hier, wer Zugriff auf das Modul hat. Mögliche Werte sind „Public“ (alle), „Registered“ (nur angemeldete Benutzer, setzt Registrierung voraus) und „Special“ (nur bestimmte Gruppen).
# Active: Die Anzahl der veröffentlichten Links in dieser Category.
Checked Out: Wenn jemand eine Category zur Bearbeitung geöffnet hat und daran noch arbeitet, sehen Sie in dieser Spalte, wer an dem Eintrag arbeitet.
Legen Sie nun die oben beschriebenen Categories an. Dazu wählen Sie den Button „New“ und füllen das Formular aus. Nachdem Sie das erledigt haben, legen wir neue Weblinks an. Wählen Sie nun im Control Panel „Weblink Items“ und dann erneut den Button „New“.
Abb. 4.20 Add Weblink
Das einzig Neue an diesem Formular ist die Möglichkeit, bei einem Link „Approved“ auf „Yes“ oder „No“ zu setzen. Der Gedanke dabei ist, neben der Veröffentlichung eines Link die Gültigkeit abzu-
4.4 Realisierung
■ ■ ■
55
bilden. Diese Möglichkeit wird aber erst dann interessant, wenn es eine Funktion gibt, die Gültigkeit von Links automatisch prüft. Aktuell ist dies ein manueller Vorgang. Damit ein Link in der Linksliste erscheint, müssen sowohl „Published“ als auch „Approved“ auf „Yes“ gesetzt sein. Legen Sie noch mindestens einen Link pro Category an. In der Übersicht sehen Sie eine Category nur dann, wenn schon ein Link veröffentlicht ist. Leere Categories werden standardmäßig nicht angezeigt. Abb. 4.21 Linkverzeichnis
4.4.4 Konfiguration der Frontpage Die Front Page enthält zur Zeit noch einige Bereiche, die wir momentan nicht benötigen (hier grau hinterlegt). Abb. 4.22 Frontpage
Die Einstellung, welche Bereiche sichtbar bzw. welche Funktionen verfügbar sind, finden wir im Menü „Modules/ Site Modules“.
56
■ ■ ■
4 Die erste Website
Abb. 4.23 Site Module Manager
Zu den einzelnen Spalten ist Folgendes anzumerken: Module Name: Ist die Bezeichnung des Moduls.
Published: Ein Haken bedeutet, dass dieses Modul auch im Frontend verfügbar ist.
Reorder: Mit den Pfeilen können Sie die Reihenfolge innerhalb einer Position festlegen.
Access: Sie sehen hier, wer Zugriff auf das Modul hat. Mögliche Werte sind „Public“ (alle), „Registered“ (nur angemeldete Benutzer, setzt Registrierung voraus) und „Special“ (nur bestimmte Gruppen).
Position: Sie können hier erkennen, an welcher Position das Modul auf der Website platziert wird. Eine Übersicht, welche Positionen für Sie verfügbar sind, erhalten Sie, wenn Sie im Menu Site den Punkt „Preview“ und „Inline with Positions“ auswählen. Sie erhalten dann die in der folgenden Abbildung dargestellte Ansicht.
4.4 Realisierung
■ ■ ■
57
Abb. 4.24 Preview inline with Positions
Pages: Sie haben bei den Modulen die Möglichkeit festzulegen, wann diese verfügbar sind. Dabei ist mit „Pages“ ein Menüpunkt gemeint, ggf. auch unter diesem Menüpunkt weitere wählbare Links. Sollte es bei der Bestimmung, ob eine Anzeige erfolgen soll oder nicht, zu mehrere einander widersprechenden Möglichkeiten kommen, wird die Definition bei dem Menüpunkt verwendet, der die kleinste Menu-ID hat. In der Spalte sind folgende Werte möglich: ■
None: Das Modul wird nie angezeigt
■
Varies: Das Modul wird bei bestimmten Menüpunkten angezeigt.
■
All: Das Modul wird immer angezeigt.
ID: Ist der Datenbankschlüssel für das Modul (nur für Programmierer von Komponenten und Modulen interessant).
Type: Eindeutige Bezeichnung des Moduls, da der „Module Name“ änderbar ist, können Sie an dieser Bezeichnung erkennen, um was für ein Modul es sich handelt.
Checked Out: Wenn jemand ein Modul zur Bearbeitung geöffnet hat und daran noch arbeitet, sehen Sie in dieser Spalte, wer an dem Eintrag arbeitet.
58
■ ■ ■
4 Die erste Website
Ob ein Modul angezeigt wird, hängt von mehreren Faktoren ab: 1. Ist das Modul „published“? 2. Gehört der Anwender einer Gruppe an, die aufgrund der Rechte Zugriff auf das Modul hat? 3. Ist diese Position auf dieser Website verfügbar? 4. Ist das Modul für den aktuellen Menüpunkt verfügbar bzw. gibt es einen alternativen Menüpunkt, der eine Anzeige zulässt? Es gibt also mehrere Möglichkeiten ein Modul nicht anzuzeigen; wir wählen die übliche und setzen nicht benötigte Module auf „unpublished“. In der folgenden Tabelle sind die Module aufgeführt, die wir zunächst nicht mehr benötigen: Module Banner
Funktion/Anmerkung Zeigt administrierte Banner (Webgrafiken) in einer zufälligen Reihenfolge an.
Other Menu
In diesem Menü ist zwar kein Eintrag mehr „published“ und somit ist dieses Menü auch nicht sichtbar, wir setzen es dennoch komplett auf „unpublished“.
Syndicate
Stellt Buttons bereit, mit denen man den RSSFeed der Site abfragen kann.
Polls
Mit diesem Modul haben Sie die Möglichkeit Umfragen auf der Website durchzuführen.
Random Image
Zeigt in einer zufälligen Reihenfolge Bilder aus einem Verzeichnis an.
Newsflash
Das Newsflash-Modul zeigt in zufälliger Reihenfolge Beiträge aus der Section/Category Newsflashes/Newsflash.
Topmenu
In diesem Menü ist zwar kein Eintrag mehr „published“ und somit ist dieses Menü auch nicht sichtbar, wir setzen es dennoch komplett auf „unpublished“.
4.4 Realisierung
■ ■ ■
59
Ein Modul werden wir noch verschieben, z.Zt. ist „Who’s Online“ auf der Position „right“. Selektieren Sie das Modul und wählen Sie den Button „Edit“. Sie befinden sich nun im Bearbeitungsmodus für das Modul, hier können Sie u.a. auch die Position auswählen. Wählen Sie die Position „Top“. Abb. 4.25 Module Position
Zusätzlich wählen Sie noch auf der rechten Seite unter „Location(s)“ „All“ aus. Speichern Sie Ihre Änderungen ab. Nach diesen Änderungen sind folgende Module aktiv: Module Main Menu
Funktion/Anmerkung Das Modul zeigt das Hauptmenü an.
Login Form
Stellt die Anmeldemöglichkeit am Frontend zur Verfügung.
User Menu
Stellt ein Menü für angemeldete User zur Verfügung.
Who’s Online
Zeigt an, wie viele User momentan online sind.
Latest News
Hier wird eine Liste der neusten News angezeigt.
Popular
Die Beiträge, die am meisten aufgerufen werden, sind hier gelistet.
Search
Stellt ein Formular bereit, mit dem die Website nach einem bestimmten Begriff durchsucht werden kann.
Wenn Sie sich die Website nun noch mal anschauen, werden Sie feststellen, dass einige Bereiche nicht mehr angezeigt werden (die rechte Spalte ist z.B. nicht mehr vorhanden). Bisher haben wir alle Arbeiten im Backend durchgeführt, das Backend ist in erster Linie für die Administratoren gedacht. Für den
60
■ ■ ■
4 Die erste Website
„normalen“ Anwender besteht die Möglichkeit, dass dieser sich im Frontend anmeldet. Natürlich hat der Admin ebenfalls die Möglichkeit sich im Frontend anzumelden. Geben Sie also im „Login-Form“ bei Username „admin“ und bei Password das AdminPasswort ein. Sie sind nun im Frontend angemeldet und haben zusätzlich zu dem Hauptmenu ein „User-Menu“ zur Verfügung. Abb. 4.26 Frontend
Über das Menü hinaus kann man noch drei weitere Veränderungen bemerken. Das „Login-Form“ ist verändert und bietet nun die Möglichkeit des Abmeldens, in dem „Who’s Online“-Modul wird angezeigt, ob und welches Mitglied online ist. Neben den Beiträgen steht ein kleiner Button und in der Klammer wird angezeigt, wer Zugriff auf den Beitrag hat. Wählen Sie nun den Menüpunkt Geschäftsleitung und dann einen der Unterpunkte, klicken Sie dort „New ...“ an. Geben Sie dann einen Text ein, wählen Sie eine Category aus und speichern Sie den Beitrag ab. Abb. 4.27 Neuer Beitrag
Je nach Gruppenzugehörigkeit kann zwar ein Artikel geschrieben, aber nicht veröffentlicht werden; als Administrator können Sie Beiträge auch direkt auf „published“ setzen. Öffnen Sie den Beitrag
4.4 Realisierung
■ ■ ■
61
noch mal: unten auf der Seite finden Sie drei Panels, auf dem Publishing-Panel können Sie den Beitrag auf „published“ setzen. Damit ist dieser Beitrag nun verfügbar. Die gestellte Aufgabe ist damit gelöst, herzlichen Glückwunsch, Sie haben Ihre erste Mambo-Website erstellt.
62
■ ■ ■
4 Die erste Website
5 Mambo Basics
In den folgenden Abschnitten erläutern wir grundlegende Funktionen von Mambo.
5.1 Mambo erweitern Eine der großen Stärken von Mambo sind die Erweiterungsmöglichkeiten. Eine große Anzahl von Designern, Entwicklern und Programmierern stellt immer wieder neue Erweiterungen vor. Die Vielfalt der unterschiedlichen Lösungen für unterschiedliche, aber auch für die gleichen Probleme führt dazu, dass man meistens für sein Problem mehrere Lösungen zur Auswahl hat. Dabei kann man oft zwischen kostenpflichtigen und kostenlosen Lösungen wählen. Wir unterscheiden in den folgenden Abschnitten fünf Typen von Erweiterungen.
5.1.1 Templates Mit Templates legt man das Erscheinungsbild einer Website fest. Ein Mambo-Template besteht aus HTML-Code, bestimmten von den Mambo-Programmiern festgelegten PHP-Befehlen und einem Cascading Stylesheet (CSS). Der HTML-Code und die PHP-Befehle sind in der Datei index.php und das CSS in der Datei template_css.css gespeichert. Für das Verständnis, warum eine Website so oder so aussieht und was man wo anpassen kann, ist es wichtig, die Aufgaben der einzelnen Bestandteile und das Zusammenspiel zu verstehen. Dazu ein Beispiel: Abb. 5.1 Pathway
5.1 Mambo erweitern
■ ■ ■
63
Sie sehen in der Abbildung den Pathway einer Website. Der Pathway erlaubt dem Besucher sich auf einer Website zu orientieren und damit schnell zu erkennen, in welchem Bereich er sich befindet. In diesem Fall ist der Besucher in einer Ebene, die sich direkt unter Home befindet. Der Pathway besteht hier aus einem Link, der zur Startseite führt und einem Text, der den aktuellen Bereich beschreibt. In der Datei index.php sind für den Bereich die folgenden drei Zeilen zuständig: Ausschnitt aus der index.php
Ein eröffnet einen Block in einer HTML-Seite, in diesem Fall hat der Block eine id. Neben der Zuweisung einer id gibt es noch die Alternative class. Der Unterschied ist, dass eine id nur einmal im HTML-Code vorkommen darf und eine class auch mehrfach vorkommen darf. Dieser id wird in der CSS-Datei template_css.css ein Format zugeordnet. Hier die dazu gehörenden Zeilen: Ausschnitt aus der template_css.css #pathway { float: left; padding: 4px 3px 3px 5px; }
Die Anweisung float: left legt fest, dass der Bereich immer möglichst weit links stehen soll und über padding werden die Abstände innerhalb des -Blocks festgelegt. Damit sind die Einstellungen für den Bereich definiert. In der index.php erzeugt die Anweisung den pathway an sich. Der eigentliche Befehl ist das „mosPathWay()“. Der Rest weist den Webserver an, den Befehl als php-code zu interpretieren. Durch die Verarbeitung auf dem Webserver erzeugt die Funktion mosPathWay eine zur aktuellen Situation passende Ausgabe:
64
■ ■ ■
5 Mambo Basics
Home
Geschäftsleitung
Hier erkennt man, dass der Bereich zunächst mit einem span der Klasse pathway eingeleitet wird. Innerhalb dieses Tags befindet sich der Link zur Startseite, eine Grafik und der Text „Geschäftsleitung“. Es werden für die Darstellung also noch weitere Styles verwendet. Sucht man diese nun in der Datei template_css.css, so sind sie dort nicht zu finden. Es ist auch nicht unbedingt notwendig einen Style zu definieren, obwohl man nur jedem raten kann, dies zur besseren Übersicht zu tun. Wie im Abschnitt über CSS schon erläutert, werden Attribute an enthaltene Bereiche vererbt. In diesem Fall hat der „a“-Tag die Attribute von dem allg. definierten „a“-Tag geerbt. Das span erbt die Attribute von einem übergeordneten Bereich, in diesem Fall vom „body“-Tag. Die Strategien zur Template-Erstellung, Beispiele und eine genaue Erläuterung der einzelnen PHP-Anweisungen finden Sie in den folgenden Kapiteln.
5.1.2 Mambots Seit der Version 4.5.1 gibt es vier verschiedene Typen von Mambots: ■
Search Mambot
Ein Searchbot klinkt sich in die Suchfunktion von Mambo ein. Entwickler können so eigene Inhalte in die Suche einbeziehen. Es gibt z.B. für die Gästebuch-Erweiterung „AkoBook“ auch einen Searchbot, der die Einträge im Gästebuch durchsucht. Ein Searchbot wird immer dann notwendig, wenn eine Erweiterung zur Speicherung der Daten eigene Strukturen nutzt. ■
Editor Mambot
Mit einem Editorbot wird der Editor für die Inhalte der Website bereitgestellt. Sie können so mehrere Editoren installieren, es kann aber immer nur eine Version auf der Site genutzt werden.
5.1 Mambo erweitern
■ ■ ■
65
■
Editor Extension Mambot
Mit Editorbot xtd werden, während Inhalte mit dem Editor bearbeitet werden, Erweiterungen zur Verfügung gestellt. Die Buttons für {mosimage} und {mospagebreak} gehören zu diesem MambotTyp. ■
Content Mambot
Dies ist der älteste Bot-Typ, mit ihm kann man die angezeigten Inhalte, bevor diese ausgegeben werden, verändern. So konvertiert der Mambot MOSantispamemail Emailadressen in einem Beitrag automatisch in javascript und verbirgt diese vor Emailsuchmaschinen. MOSantispamemail trägt damit zur Reduzierung der Spam-Emails bei.
5.1.3 Modules Bei Modulen handelt es sich um eher kleinere Erweiterungen, die eine bestimmte Ausgabe oder Funktion bereitstellen. Es gibt Module die das Wetter in einer bestimmten Region anzeigen, die einen Countdown anzeigen oder mit denen man direkt in der freien Enzyklopädie Wikipedia suchen kann. Die Ausgabe der Module erfolgt immer an einer bestimmten Position, die im Modulmanager wählbar ist. Oft sind Module auch für den Einsatz mit einer Component vorgesehen und zeigen Daten aus dieser an. Das Modul „Best Bookmarks“ zeigt beispielsweise die am meisten ausgewählten und am besten bewerteten Links der Weblinks-Component an.
5.1.4 Components Components oder in Deutsch Komponenten bieten zusätzliche Funktionen in einem größeren Umfang an. Meistens hat eine Komponente einen Administrationsbereich, in dem diese konfiguriert werden kann. Die Komponete „Yanc“ bietet z.B. eine Verwaltungsoberfläche für Newsletter an. Anwender können sich in einen Newsletter eintragen und der Admin kann mit wenigen Handgriffen Newsletter verschicken.
66
■ ■ ■
5 Mambo Basics
Abb. 5.2 YANC Component Menu
Die Einteilung in Erweiterungen, die Funktionen im größeren und kleineren Umfang anbieten, ist natürlich subjektiv. Leider gibt es aber auch kein besseres Unterscheidungskriterium, da es immer eine Ausnahme zur Regel gibt. In Zukunft wird diese Grenze aber sowieso fallen und es wird nur noch Elements geben. Zurzeit muss man aber bei der Installation beachten, was man installieren will und dann den richtigen Bereich dazu auswählen.
5.1.5 Sonstiges Unter die sonstigen Erweiterungen fallen die Core-Patches. Hier handelt es sich um Funktionen, die nicht mehr mit den Möglichkeiten auskommen, die bei der Programmierung von Components und Modules gegeben sind. Es ist notwendig, in den mit einer MamboVersion gelieferten Programmcode einzugreifen. Ein bekannter Vertreter ist Mambelfish. Mit Mambelfish wird Mambo um die Möglichkeit der Mehrsprachigkeit ergänzt, dabei übersetzt Mambelfish nicht automatisch, sondern bietet die Möglichkeit einen Beitrag in verschiedenen Sprachen zu speichern. Mit Core-Patches sollte man nicht leichtfertig umgehen und sich den Einsatz sehr gut überlegen. Da diese Pakete sehr umfangreich sein können und eine Anpassung an eine neue Mamboversion nicht sonderlich einfach ist, kann es einige Zeit dauern, bis der Programmierer Zeit findet die Anpassungen vorzunehmen. Zusätzlich ist der Weg zurück – also der Betrieb der Site ohne den Core-Patch – ohne sehr gute Kenntnisse der Interna fast nicht möglich.
5.2 Gruppen und Berechtigungen Mambo verfügt über eine Benutzerverwaltung. Der Umfang und die Möglichkeiten werden schon seit langem einstimmig als nicht aus-
5.2 Gruppen und Berechtigungen
■ ■ ■
67
reichend beschrieben. Mit der nächsten Version (5.0) soll dieses Problem beseitigt sein, vielleicht haben Sie ja Glück und die neue Version ist schon verfügbar. Schauen Sie in diesem Fall auf der Website zum Buch nach, dort werden Sie Informationen zu den Änderungen finden. Dass sich in diesem Bereich etwas ändert, entbindet nicht von der Pflicht, die Rechte-/Gruppenverwaltung hier zu erläutern. Darüber hinaus ist es aber jetzt auch schon abzusehen, dass die „neue“ Rechteverwaltung eine Ergänzung der vorhandenen sein wird. Denn die jetzt schon verwendeten Strukturen sind schon auf Erweiterung ausgelegt bzw. bieten alles, was man für eine ausgewachsene Rechteverwaltung benötigt. Mambo kennt insgesamt 9 Gruppen, zwei (Public Frontend und Public Backend) sind jedoch nur zur Strukturierung interessant. Es bleiben also 7 unterschiedliche Gruppen übrig. Die Gemeinsamkeit aller Gruppen ist die Möglichkeit sich im Frontend anzumelden, es ist aber nur drei Gruppen möglich sich im Backend anzumelden. Die standardmäßig implementierten Gruppen sind: Public Frontend | – Registered | | - Author | | - Editor | | - Publisher | – Public Backend | | - Manager | | - Administrator | | - Super Administrator Grundsätzlich gilt, dass Gruppen die Rechte der Elterngruppe erben. Damit hat die Gruppe Author alle Rechte, die auch die Gruppe Registered, hat und die zusätzlichen Rechte der Gruppe Author. Die folgende Tabelle gibt Aufschluss über die Rechte der einzelnen Gruppen.
68
■ ■ ■
Gruppe Public Frontend
Rechte Am Frontend anmelden und Weblinks einreichen. Diese Gruppe dient der Strukturierung.
Registered
Keine zusätzlichen.
Author
Beiträge verfassen und eigene bearbeiten.
Editor Publisher
Alle Beiträge bearbeiten. Beiträge veröffentlichen.
5 Mambo Basics
Public Backend
Keine zusätzlichen, die Gruppe kann sich am Frontend anmelden und Weblinks einreichen. Die Gruppenmitglieder können sich nicht am Backend anmelden. Dies ist eine Gruppe, die nur der Strukturierung dient.
Manager
Kann sich am Backend anmelden, kann Beiträge im Backend und im Frontend erstellen, kann Beiträge von allen bearbeiten, kann Sections und Categories erstellen, bearbeiten und die vorhandenen Menüs administrieren. Darüber hinaus können die Gruppenmitglieder Static Content erstellen und bearbeiten, den Frontpage, Archive und Trash Manager verwenden. Über den Media Manager können Bilder und andere Dateien auf den Server geladen werden und der Manager kann die Statistiken einsehen. Die Funktion Preview ist ebenfalls verfügbar.
Administrator
Die Gruppenmitglieder können Components, Modules und Mambots installieren, konfigurieren und löschen. Sie können neue Module erstellen und die Benutzerverwaltung nutzen.
Super Administrator
Zusätzlich können diese Benutzer die Global Configuration ändern, Sprachen und Templates installieren, löschen und administrieren, Modulpositionen erstellen und Massenmails verschicken. Des Weiteren Menüs anlegen, die Konfiguration des Private Messaging Systems verändern, Systeminformationen abfragen und den Global Checkin durchführen.
Man sollte es vermeiden, Benutzer den Gruppen „Public Frontend“ bzw. „Public Backend“ zuzuordnen. Diese Gruppen dienen nur der Strukturierung. Neben der beschriebenen Berechtigungsstruktur gibt es noch eine weitere Möglichkeit, bestimmte Berechtigungen zu vergeben: den Access-Level. Bei Modulen, Menüpunkten, Mambots und Beiträgen können Sie in den Übersichtslisten bei Access die drei Stufen Public, Registered und Special auswählen. Folgende Zuordnung gilt:
5.2 Gruppen und Berechtigungen
■ ■ ■
69
Stufe Public
Gruppen mit Zugriff Alle Gruppen und ebenfalls jeder nicht angemeldete Besucher
Registered
Alle Gruppen
Special
Author, Editor, Publisher, Super Administrator
Diese Funktion ist gut geeignet um Benutzern, die Inhalte bearbeiten können, ein anderes Menü anzuzeigen als den „nur“ registrierten Benutzern. Diese dürfen z.B. keine Beiträge verfassen, daher benötigen sie auch den Menüpunkt „Submit News“ im User Menu nicht.
5.3 Section und Categories Die Sections und vor allem die Categories begegnen einem immer wieder, wenn man mit Mambo arbeitet. Das Konzept dahinter ist einfach, es handelt sich um eine zweistufige Hierarchie. Sections sind die Oberbegriffe und Categories unterteilen einen Begriff im Weiteren. Vielleicht möchten Sie auf Ihrer Site Reiseberichte veröffentlichen; als Section legen Sie Reiseberichte an und darin die Categories Europa, Asien, Afrika, Australien und Amerika. Später erweitern Sie Ihr Angebot um Hotelbeschreibung, Reiserouten, Sehenswürdigkeiten u.v.a.m. Jetzt wäre es vielleicht besser, Sie hätten Europa, Asien, Afrika, Australien und Amerika als Sections angelegt und darin die Categories Reiseberichte, Hotelbeschreibung, Reiserouten und Sehenswürdigkeiten. Wie Sie es machen, ist letztlich von Ihren persönlichen Vorlieben anhängig; Sie haben immer die Möglichkeit die Zuordnung zu einer Section und Category zu ändern. Nicht ändern können Sie die Anzahl der Hierarchiestufen, da sind Sie auf genau zwei festgelegt. Für News Feeds, Weblinks und Contacts muss man auch Categories einrichten. Es besteht hier aber nicht die Möglichkeit eine Section zu vergeben – das liegt daran, dass die Section intern schon für die Zuordnung der Category zu News Feeds, Weblinks oder Contacts genutzt wird. Es bleibt also nur eine Stufe zur Einordnung. Das ganze Konzept ist zwar sehr einfach, aber auch sehr statisch. Für einige Bereiche würde eine mehr als zweistufige Hierarchie sicher sinnvoller sein, gerade bei den Weblinks ist eine Stufe doch sehr wenig.
70
■ ■ ■
5 Mambo Basics
5.4 Static Content vs. All Content Schaut man sich die Begriffe an, könnte man meinen, dass „All Content“ den „Static Content“ mit abdeckt, dem ist aber nicht so. Mit „All Content“ sind die Inhalte gemeint, die in Sections und Categories eingeordnet sind. Der Static Content wird keiner Section und Category zugeordnet. Die Unterschiede der beiden ContentTypen zeigt die folgende Gegenüberstellung: Static Content Besteht aus einem Text
All Content Besteht aus Intro- und MainText
Kann nicht auf der Frontpage Kann auch auf der Frontpage angezeigt werden angezeigt werden Wird nicht in Sections und Cate- Muss in einer Section und Categories eingeordnet gory eingeordnet werden Beiträge können nicht archiviert Beiträge können archiviert werwerden den Die Reihenfolge „Order“ kann Man kann die Reihenfolge der nicht festgelegt werden Beiträge innerhalb der Category festlegen.
Ansonsten haben die beiden Typen identische Einstellungsmöglichkeiten.
5.5 Inhalte bearbeiten Für die Bearbeitung der Beiträge, egal ob es sich um „Static Content“ oder „All Content“ handelt, steht Ihnen standardmäßig der TinyMCE WYSIWYG Editor zur Verfügung. Darüber hinaus können Sie auch auf einen Editor verzichten und den Text und den HTMLCode in einem Textfeld eingeben. Neben diesen beiden mitgelieferten Möglichkeiten gibt es noch einige weitere kostenlose Editoren, die sich mehr oder weniger nahtlos in Mambo einfügen. Wenn Sie viele Autoren auf Ihrer Seite haben, sollten Sie über die Anschaffung einer professionellen Lösung nachdenken. Eine gute Wahl ist der HTMLArea3 XTD-C Pro, dieser bietet z.B. Benutzerprofile auf
5.4 Static Content vs. All Content
■ ■ ■
71
Gruppenbasis, Rechtschreibkorrektur, Datei-, Linkmanager und viele andere nützliche Funktionen. Im Folgenden finden Sie eine kurze Einführung, wie Sie mit dem TinyMCE bzw. in Mambo Texte bearbeiten. Sie müssen sich zunächst entscheiden, ob Sie die Basis- oder die Advanced-Version einsetzen möchten. Die Einstellung finden Sie im Backend unter Site Mambots, wählen Sie dort „TinyMCE WYSIWYG Editor“. Bei dem Parameter „Functionality“ können Sie Ihre Wahl treffen. Hier zeigen wir die Advanced-Version, da die Basis-Version eine Teilmenge dieser Version ist. Die folgende Abbildung zeigt den Editor. Abb. 5.3 TinyMCE Editor
Den Text gibt man in das weiße Feld ein und die Buttons zur Formatierung des Textes befinden sich in den drei Zeilen unterhalb des Eingabefensters. Obwohl die meisten Symbole sicher bekannt und fast selbsterklärend sind, hier die dahinter liegenden Funktionen:
Das „B“ steht für Bold, also Fett, es folgen Buttons für Kursiv (Italic), Unterstrichen und Durchgestrichen. Mit den nächsten vier Buttons wird die Textausrichtung festgelegt: Links, Mitte, Rechts und Blocksatz. In dem Auswahlfeld „Styles“ kann man (bzw. der Admin) eigene Styles einbinden. Im nächsten Auswahlfeld sind einige Standard-Tags (p, address, pre, h1- h6) verfügbar.
Diese Zeile beginnt mit einem Button für eine Liste, dann folgt eine nummerierte Liste, Textblock nach links rücken und Textblock nach
72
■ ■ ■
5 Mambo Basics
rechts einrücken, Aktion Rückgängig und Wiederherstellen, das nächste Symbol öffnet ein weiteres Fenster:
In diesem können Sie einen Link auf eine andere Seite eingeben und bestimmen, wo dieser Link geöffnet werden soll. Der folgende Button entfernt einen Link. Auch der nächste Button „Anker“ öffnet ein Fenster, in dem Sie den Namen für einen Anker innerhalb der Seite eingeben können. Es folgt ein Symbol um Bilder einzufügen, hier öffnet sich ebenfalls ein Fenster.
Hier können Sie die wesentlichen Informationen für ein Bild eingeben; denken Sie auch immer an eine Beschreibung (Image description). Jetzt kommt ein Button, der den HTML-Code aufräumt: Gerade wenn Sie Texte aus anderen Anwendungen – z.B. Word einfügen – wird sehr viel überflüssiger HTML-Code mit eingefügt. Bedienungshinweise verstecken sich hinter dem nächsten Button. Zum Abschluss das Symbol zur Anzeige des HTML-Codes, es öffnet sich ein Fenster, in dem Sie den HTML-Code anschauen können.
Mit dem ersten Button fügen Sie eine Tabelle ein, die notwendigen Informationen geben Sie dabei in dem sich öffnenden Fenster an.
5.5 Inhalte bearbeiten
■ ■ ■
73
Befinden Sie sich in einer Tabelle, können Sie mit den folgenden Buttons eine neue Zeile vor der Cursorposition, nach der Cursorposition und eine Zeile löschen. Die nächsten drei Buttons bieten das gleiche für Spalten. Mit dem nächsten fügen Sie eine horizontale Linie ein, dann folgt ein Button um Formatierungen zu entfernen. Mit dem nächsten Symbol können Sie die nicht sichtbaren Linien einer Tabelle ein- und ausblenden. Es folgen dann noch Buttons für tiefund hochgestellten Text. Mit dem letzten Button können Sie Sonderzeichen einfügen. Damit kennen Sie nun die Funktionen des Editors. Der Text ist aber nur ein Teil der Möglichkeiten bei der Erstellung von Beiträgen. Unter dem Tiny-Fenster sind noch zwei weitere Buttons.
Mit diesen fügen Sie in den Text Platzhalter ein, der rechte fügt ein {mosimage} und der linke ein {mospagebreak} in den Text ein. Der Platzhalter mosimage steht im Zusammenhang mit dem Reiter „Images“. Abb. 5.4 Image-Reiter
74
■ ■ ■
5 Mambo Basics
Jeder Platzhalter wird durch ein Bild aus dem Feld „Content Images“ ersetzt. Sie können die für einen Artikel benötigten Bilder in der richtigen Reihenfolge in das Feld einfügen, und im Text fügen Sie an den richtigen Stellen den Platzhalter ein. Den Rest erledigt Mambo für Sie. Es gibt noch einen weiteren Vorteil: Sie können bei Artikelübersichten steuern, ob die Bilder angezeigt werden oder nicht. Kommen wir nun zu mospagebreak. Wenn Sie diesen Platzhalter einfügen, erzeugt Mambo einen Artikel mit mehreren Seiten. Sie haben dann bei einem umfangreichen Artikel keine so lange Seite, bei der sehr viel gescrollt werden muss, sondern der Artikel ist auf mehreren Seiten verteilt. Auf den Seiten zeigt Mambo automatisch eine Übersicht an, über die auf alle Seiten direkt zugegriffen werden kann. Wir haben bereits den Reiter „Images“ kennen gelernt, nun wenden wir uns den weiteren Reitern zu. Auf dem Reiter „Publishing“ stellen Sie die Daten für die Veröffentlichung ein. Abb. 5.5 Publishing-Reiter
Show on Frontpage: Bei diesem Beitrag können Sie einstellen, ob dieser auf der Frontpage erscheinen soll. Es handelt sich also um einen Beitrag, den Sie in eine Section und Category einordnen müssen.
Published: Ein Haken bedeutet, dass dieser Beitrag veröffentlicht ist.
Access Level: Sie stellen hier ein, wer Zugriff auf den Beitrag hat. Mögliche Werte sind Public (alle), Registered (nur angemel-
5.5 Inhalte bearbeiten
■ ■ ■
75
dete Benutzer, setzt Registrierung voraus) und Special (nur bestimmte Gruppen). Author Alias: Sie können an dieser Stelle einen beliebigen Autorennamen eingeben.
Change Creator: Verändern Sie die Informationen über denjenigen, der den Beitrag erstellt hat.
Ordering: Neue Beiträge kommen immer an den Anfang. Bei einem vorhandenen Beitrag können Sie hier die Position des Beitrags verändern. Der Beitrag wird dann immer hinter den ausgewählten Beitrag gesetzt.
Override Created Date: Anstatt des aktuellen Datums wird das „Override Created Date“ als das Erstellungsdatum verwendet.
Start Publishing: Ab diesem Datum ist der Beitrag verfügbar, normalerweise sind Beiträge immer sofort verfügbar. Sie können aber bestimmen, dass ein Beitrag erst ab einem vorher definierten Datum verfügbar ist.
Finish Publishing: Sie können ebenfalls festlegen, bis wann ein Beitrag verfügbar sein soll.
State: Mögliche Werte sind Published, der Beitrag ist veröffentlicht, und Draft Unpublished, der Beitrag ist nicht veröffentlicht.
Hits: Anzeige, wie oft der Beitrag schon gelesen wurde, hier können Sie den Counter auch wieder auf null setzen.
Revised: Zeigt an, wie oft der Beitrag überarbeitet wurde.
Created / by: Wer hat den Beitrag erstellt und wann.
Modified / by: Wer hat den Beitrag verändert und wann.
Der Reiter „Parameter“ bietet für jeden Beitrag umfangreiche Einstellungsmöglichkeiten. Diese gelten dann immer nur für den aktuellen Beitrag, es ist sinnvoller die Einstellung für die gesamte Site so zu wählen, dass Einstellungen bei den einzelnen Beiträgen nicht notwendig sind. Dennoch kann es Umstände geben, in denen Sie die Einstellungen verändern möchten. Page Class Suffix: Der Parameter-Wert von Page Class Suffix wird an die verwendeten Klassen angehängt.
Back Button: Legen Sie hier fest, ob der Back-Button bei diesem Beitrag angezeigt werden soll.
76
■ ■ ■
5 Mambo Basics
Page Title (Hide/Show): Bestimmen Sie an dieser Stelle, ob ein Titel angezeigt wird.
Linked Titles: Der angezeigte Titel ist als Link verfügbar.
Intro Text: Soll der Intro Text angezeigt werden, wenn jemand den Beitrag ausgewählt hat?
Section Name: Der Section Name wird bei jedem Beitrag angezeigt.
Section Name Linkable: Der angezeigte Section Name ist als Link verfügbar.
Category Name: Der Name der Category wird bei jedem Beitrag angezeigt.
Category Name Linkable: Der angezeigte Name ist als Link verfügbar.
Item Rating: Legen Sie hier individuell fest, ob die Bewertung für diesen Beitrag angezeigt werden soll.
Author Names: Legen Sie hier individuell fest, ob der Name des Autors angezeigt werden soll.
Created Date and Time: Legen Sie hier individuell fest, ob das Erstellungsdatum des Beitrags angezeigt werden soll.
Modified Date and Time: Legen Sie hier individuell fest, ob das letzte Änderungsdatum des Beitrags angezeigt werden soll.
PDF Icon: Legen Sie hier individuell fest, ob das PDF Icon angezeigt werden soll.
Print Icon: Legen Sie hier individuell fest, ob das Print Icon angezeigt werden soll.
Email Icon: Legen Sie hier individuell fest, ob das Email Icon angezeigt werden soll.
Der Reiter „Meta Info“ gibt Ihnen die Möglichkeit, für jeden Beitrag eine Beschreibung (Description) und Schlüsselwörter (Keywords) abzuspeichern. Diese Informationen werden dann im Kopf (Header) der HTML-Datei ausgegeben, wenn jemand den Beitrag auswählt. Auf dem Reiter „Link to Menu“ finden Sie Informationen, über welches Menü dieser Beitrag direkt verfügbar ist, und Sie können einen Menüpunkt an dieser Stelle erstellen. Ein hier erstellter Menüpunkt ist sofort verfügbar, die von Ihnen aktuell durchgeführten Änderungen an dem Beitrag werden nicht gespeichert. Die Reiter sind damit ebenfalls abgearbeitet, bleiben noch die folgenden Felder übrig:
5.5 Inhalte bearbeiten
■ ■ ■
77
Title: Geben Sie hier einen Titel für Ihren Beitrag an.
Title Alias: Dieser Alias wird nicht angezeigt, es gibt Komponenten, die diese Informationen nutzen, z.B. kann SEF Advance (Komponente zur Optimierung der Links für Suchmaschinen) den Title Alias zur Erzeugung der Links nutzen.
Section: Dieses Auswahlfeld steht bei Static Content nicht zur Verfügung, wählen Sie hier ansonsten die Section aus, in die der Beitrag gehört.
Category: Dieses Auswahlfeld steht bei Static Content nicht zur Verfügung, wählen Sie hier ansonsten die Category aus, in die der Beitrag gehört.
Bitte achten Sie bei der Bearbeitung eines Beitrags immer darauf, dass Sie den Bearbeitungsmodus mit den Buttons „Save“ oder „Cancel“ abschließen. Ansonsten bleibt Ihr Beitrag ausgecheckt und wird nicht angezeigt.
5.5.1 Unterschiede im Frontend Bei den bisherigen Beschreibungen erfolgte die Bearbeitung des Beitrags immer im Backend. Es besteht aber auch die Möglichkeit, Inhalte im Frontend zu bearbeiten. Die Bearbeitung bzw. Einstellungsmöglichkeiten sind dabei jedoch eingeschränkt. Im Standard können Sie direkt nur Beiträge für die Section „News“ neu erstellen, möchten Sie für eine andere Section Beiträge verfassen, benötigen Sie einen Menüpunkt (Typ: List - Content Section), der die gewünschte Section anbietet. Beiträge vom Typ „Static Content“ können Sie nur bearbeiten. Darüber hinaus fehlt bei der Bearbeitung im Frontend die Möglichkeit Beiträge in das Menü einzubinden. Sie können keine Parameter für den einzelnen Beitrag verändern und haben auch keinen Zugriff auf den „Title Alias“. Die Einschränkungen sind alle nicht so umfangreich, dass die Bearbeitung von Beiträgen im Frontend nicht sinnvoll wäre; im Gegenteil, für Personen, die nur Inhalte liefern und bearbeiten, ist der Funktionsumfang vollkommen ausreichend.
78
■ ■ ■
5 Mambo Basics
5.6 Gemeinsames Arbeiten Content-Management-Systeme sind darauf ausgelegt, dass mehrere Personen an den Inhalten arbeiten. Auch bei Mambo ist das nicht anders, wenn auch die Benutzerverwaltung nicht so umfangreich und ausgeklügelt ist, wie sich das viele wünschen. Arbeiten mehrere Personen an ein und derselben Sache, kann es zu Überschneidungen kommen und ein Redakteur überschreibt die Änderungen eines anderen. Um dies zu verhindern, werden Artikel, die jemand zur Bearbeitung öffnet, als „Checked Out“ markiert, dabei wird das Datum, an dem der Artikel ausgecheckt wurde, und der Benutzer, der den Artikel ausgecheckt hat, gespeichert. Wird der Beitrag nun abgespeichert oder die Bearbeitung per Cancel beendet, wird die Markierung „Checked Out“ wieder entfernt. Dieser ganze Vorgang läuft im Hintergrund ab und erfordert keine Aktion durch den Benutzer. Ein ausgecheckter Beitrag kann von keinem anderen Benutzer zusätzlich geöffnet werden. Es ist immer sichtbar, welcher Beitrag momentan verändert und von wem dieser verändert wird. Problematisch ist diese Lösung, wenn jemand bei der Bearbeitung eines Beitrags nicht den Button „Save“ oder „Cancel“ verwendet oder wenn während der Bearbeitung der Webbrowser oder Rechner abstürzt. Der Beitrag bleibt dann zunächst ausgecheckt. Es gibt drei Möglichkeiten dieses Problem zu beseitigen. Der Benutzer, der den Beitrag zu Bearbeitung geöffnet hatte, kann den Beitrag weiterhin aufrufen. Betätigt dieser dann den Button „Save“ oder „Cancel“, ist der Beitrag wieder eingecheckt. Zusätzlich hat der Benutzer die Möglichkeit, alle von ihm ausgecheckten Beiträge einzuchecken. Dazu hat jeder angemeldete Benutzer im Frontend den Menüpunkt „Check-In My Items“. Die letzte Methode kann nur der Super Administrator durchführen, dieser hat im Backend den Menüpunkt „System/ Global Checkin“. Damit werden alle von allen Benutzern ausgecheckten Beiträge eingecheckt. Zu dieser Methode sollte man nur dann greifen, wenn die anderen Möglichkeiten nicht angewendet werden können.
5.6 Gemeinsames Arbeiten
■ ■ ■
79
6 Templates erstellen
In diesem Kapitel treffen mehrere Welten aufeinander. Die Erstellung eines Templates hat einiges mit technischem Verständnis, aber auch mit Design und Usability zu tun. Glücklicherweise hat Mambo ein sehr einfaches Templatesystem. Wenn man in der Lage ist, eine Website mit HTML aufzubauen, ist der Weg zum Mambotemplate nicht mehr weit. Wir werden hier zwei Entwurfsmuster für ein Template entwickeln. Dabei werden wir in einem Entwurf auf Tabellen zur Gestaltung der Seite verzichten und damit einen Schritt in Richtung Barrierefreiheit gehen. Der zweite Entwurf wird auf nicht sichtbaren Tabellen aufbauen. Jede Methode hat seine Vor- und Nachteile. Der Aufbau von Websites mit Tabellen ist der klassische Weg. Eine lange Zeit war es fast nicht möglich, ansprechende Seiten ohne Tabellen aufzubauen. Durch die bessere Unterstützung des CSS-Standards und dem quasi Aussterben des Netscapes in der 4er-Version, ist es heute möglich Websites, die auf den meisten Browsern gleich aussehen, ohne Tabellen zu erstellen. Möchte man eine Seite Menschen mit Behinderungen zugänglich machen, sind Tabellen als Gestaltungselement verboten.
6.1 Templatedateien und Struktur Ein Mambotemplate besteht mindestens aus einer index.php und einer Beschreibungsdatei templateDetails.xml. Mit diesen beiden Dateien ist ein Template unter Mambo nutzbar. Im Laufe der Zeit hat sich eine Struktur bzw. Einteilung durchgesetzt. Dabei werden alle Dateien unterhalb eines Verzeichnisses, das den Namen des Templates erhält, abgespeichert. Innerhalb des Verzeichnisses gibt es zwei weitere Verzeichnisse css und images, in dem ersten liegt die Datei template_css.css und im zweiten werden alle Grafiken abgespeichert. Direkt unterhalb des Verzeichnisses liegen die Dateien index.php, templateDetails.xml,index.html
6.1 Templatedateien und Struktur
■ ■ ■
81
(leere Datei, die den direkten Zugriff auf das Verzeichnis unterbindet) und die template_thumbnail.png. Diese enthält einen Screenshot des Templates. Abb. 6.1 Verzeichnisstruktur Template
6.2 Entwurf ohne Tabellen Bei dem Entwurf einer Seite muss man zunächst entscheiden, ob die Site sich an die Größe des Browserfensters anpasst oder ob die Site eine bestimmte festgelegte Größe hat. Wir entscheiden uns in diesem Fall für eine feste Größe. Der Grund ist, dass ein variables Layout mit Div’s zwar möglich, aber sehr kompliziert bzw. aufwändig ist. Das liegt daran, dass die einzelnen Blöcke „floated“ werden. Ein Float left platziert beispielsweise den Block so weit links, wie der zur Verfügung stehende Platz dies möglich macht. Für diese Entscheidung muss der Browser die Breite des Blocks kennen und das kann bei einem variablen Layout nur über Prozentangaben erfolgen. Will man jetzt das Layout bzgl. Spaltenanzahl einigermaßen flexibel gestalten, wird es richtig unübersichtlich. Da dies unser erstes Template ist, sollten wir mit einem einfachen Beispiel anfangen.
82
■ ■ ■
6 Templates erstellen
Wir greifen hier wieder unser Beispiel aus dem Kapitel „Die erste Website“ auf und erstellen für die Firma Karl Meier ein Template. Dieses soll drei Spalten und ein zur Firma passendes Design bekommen. Den ersten Entwurf zeigt die folgende Abbildung. Abb. 6.2 Erster Entwurf Karl Meier
Der Entwurf ist ganz bewusst sehr schlicht gehalten. Ein wenig aufpeppen können wir ihn, wenn das Grundgerüst steht, immer noch. Analysieren wir zunächst den Entwurf und erstellen eine logische Struktur. Im oberen Bereich sieht man links das Logo der „Karl Meier-Glasmanufaktur“, rechts ist ein Feld für die Suchenfunktion. Darunter sind drei Spalten; der Inhalt der Beiträge ist momentan nicht so wichtig, links ist das Menü, in der Mitte stehen die Beiträge und rechts sind momentan die Module „Latest News“ und „Popular News“ sichtbar. Im unteren Bereich ist aktuell nichts zu sehen, aber dort ist noch Platz um z.B. ein Menü oder Ähnliches zu ergänzen. Die folgende Abbildung verdeutlicht noch einmal den Aufbau und die Verschachtelung der Bereiche.
6.2 Entwurf ohne Tabellen
■ ■ ■
83
Abb. 6.3 Aufbau Entwurf ohne Tabellen
6HLWH %HUHLFKREHQ /RJR
6XFKHQ
%HUHLFKPLWWH /LQNV 0LWWH 5HFKWV
%HUHLFKXQWHQ
Zur eindeutigen Bezeichnung verwenden wir im Entwurf id und referenzieren im CSS auf diesen Bereichsnamen. Wir konzentrieren uns zunächst auf einen HTML-Entwurf und erstellen dazu eine statische HTML-Seite, damit wir aber später nicht zuviel ändern müssen, legen wir die übliche Struktur an. Im zweiten Schritt ergänzen wir dann die mambotypischen Befehle und machen aus der statischen HTML-Seite eine dynamische Seite. Bitte fügen Sie in die Bereiche immer etwas Text ein. Teilweise ist das nötig, damit ein Bereich dargestellt wird. Außerdem behalten Sie so einen besseren Überblick. Die HTML-Seite enthält zunächst eine Dokumententypdefinition, im Kopfbereich den Verweis auf das Stylesheet und den eigentlichen HTML-Code.
84
■ ■ ■
6 Templates erstellen
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
Wie schon erwähnt, besteht unser Design aus drei Bereichen (oben, mitte, unten). Wir arbeiten die Bereiche nun von oben nach unten ab und erläutern die notwendigen Einstellungen im CSS. Zunächst aber noch den Style für „body“. body { font-family: Verdana, Arial, Helvetica, sansserif; font-size: 101%; background-color: #660000; color: black; }
Erläutern muss man hier die Angabe zur „font-size“. Mit dem Wert 101% erreicht man eine browserübergreifende richtige und gut lesbare Darstellung der Schriftgröße.
6.2 Entwurf ohne Tabellen
■ ■ ■
85
#oben { width: 800px; height: 68px; padding-left:620px; padding-top:48px; background-image: url(../images/km-logo.png); background-repeat: no-repeat; background-position: top left; /* Box-Model-Hack */ voice-family: "\"}\""; voice-family:inherit; width: 180px;height: 20px; }
html>body #oben { width: 180px;height: 20px; /* Box-Model-Hack Ende */ }
Wir legen für den oberen Bereich die Breite auf 800px fest und binden das Logo als Hintergrundbild ein. Den Inhalt lassen wir mit einem Abstand von 620px beginnen, dies entspricht der Breite der linken und rechten Spalte zusammen. Wegen der unterschiedlichen Interpretation des CSS-BoxModells müssen wir für die browserübergreifende Darstellung zu einem Trick greifen. Wir definieren zunächst die Breite so, wie der IE diese interpretiert, danach sorgen wir dafür, dass der IE die Verarbeitung des CSS abbricht, und definieren anschließend die Breite richtig. Für den mittleren Bereich definieren wir den folgenden Style: #mitte { width: 800px; float: left; background-image: url(../images/bgmitte.png); background-repeat: repeat-y; background-position: top left; }
Den Hintergrund müssen wir hier als Image einbinden, die Definition der einzelnen Spalten über die Hintergrundfarbe funktioniert nicht zufriedenstellend. Die Hintergrundfarbe eines Blocks gilt nur im Block. Die drei Spalten, die wir im mittleren Bereich darstellen wollen, sind aber unterschiedlich hoch und es entsteht dann unterhalb der Spalten eine Lücke. Solange es sich um die linke Spalte handelt, würde das nicht auffallen, bei der rechten aber sofort. Die Definition der drei Spalten unterscheidet, sich im Wesentlichen nur
86
■ ■ ■
6 Templates erstellen
in der Breite. Wir verwenden auch hier den „Box-Model-Hack“, da wir in den Spalten rechts und links jeweils einen Innenabstand von 5px eingefügt haben. #spaltelinks { width: 180px; float: left; padding-left:5px; padding-right:5px;/* Box-Model-Hack */ voice-family: "\"}\""; voice-family:inherit; width: 170px; } html>body #spaltelinks { width: 170px; /* Box-Model-Hack Ende */ }
#spaltemitte { width: 440px; float: left; padding-left:5px; padding-right:5px;/* Box-Model-Hack */ voice-family: "\"}\""; voice-family:inherit; width: 430px; } html>body #spaltemitte { width: 430px;/* Box-Model-Hack Ende */ }
#spalterechts { width: 180px; float: left; padding-left:5px; padding-right:5px;/* Box-Model-Hack */ voice-family: "\"}\""; voice-family:inherit; width: 170px; } html>body #spalterechts { width: 170px; /* Box-Model-Hack Ende */ }
Damit wären wir mit dem Grunddesign schon fast fertig, wir müssten nur noch für den Bereich „unten“ den Style festlegen. Hier versuchen wir uns direkt mal an einer anderen Hintergrundfarbe, damit die Seite einen schönen Abschluss erhält. Den gleichen Balken könnten wir auch zwischen dem Bereich „oben“ und „mitte“ verwenden, dadurch wirkt die Seite symmetrischer. In diesem Bereich stellen wir später den Pathway dar.
6.2 Entwurf ohne Tabellen
■ ■ ■
87
Die Seite ist momentan noch am linken Rand ausgerichtet, wir platzieren jetzt alle Inhalte in der Mitte des Browserfensters. Dazu müssen wir wieder etwas tricksen. Im Grunde sollte es ausreichen den Außenabstand im „body“ auf auto zu setzen, das funktioniert auch, solange man nicht den IE einsetzt. Im IE wird der Inhalt erst dann in der Mitte dargestellt, wenn man „text-algin: center;“ im body setzt. Durch die Vererbung sind dann aber alle Inhalte zentriert. Daher muss man den Inhalt in ein „div“ einschließen. Hier noch mal der Seitencode komplett:
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
TEXT TEXT
Es fehlen noch die Styleangaben für „unten“, „pathway“ und „seite“, außerdem müssten wir den Style für den „body“ wegen der Zentrie-
88
■ ■ ■
6 Templates erstellen
rung ändern. Alle fehlenden Angaben finden Sie im folgenden Kasten: body { font-family: Verdana, Arial, Helvetica, sansserif; font-size: 101%; background-color: #660000; color: black; text-align:center; }
#seite { text-align:left; margin:0px auto; width: 800px; }
#pathway { width: 800px; height: 20px float: left; background-color: #993333; }
#unten { width: 800px; height: 20px float: left; background-color: #993333; }
Der komplette HTML- (richtiger wäre hier XHTML, wie wir im Documenttype angegeben haben) und CSS-Code der Seite ist noch mal im Anhang dokumentiert. Wir haben nun den ersten Schritt zum eigenen Design erledigt, die HTML-Seite steht, im nächsten Schritt ergänzen wir die spezifischen Mamboerweiterungen bzw. PHP-Funktionsaufrufe. Als erste Maßnahme kopieren wir unsere index.html und vergeben für die Kopie den Dateinamen index.php. Der Webserver erkennt an der Dateiendung, um was für einen Dateitypen es sich handelt und was mit dieser Datei zu tun ist. Dateien mit der Endung „php“ werden durch den PHP-Interpreter analysiert und die enthaltenen PHP-Anweisungen werden ausgeführt. Innerhalb der Datei erkennt man PHP-Code daran, dass die Bereiche durch ein „“ abgeschlossen werden. Alles zwischen diesen Zeichenfolgen ist als PHP-Code zu interpretieren. Be-
6.2 Entwurf ohne Tabellen
■ ■ ■
89
reiche, die nicht innerhalb der Zeichenfolgen liegen, werden einfach ausgegeben. Beginnen wir mit der Erläuterung der Ergänzungen:
Dieser Code dient der Sicherheit. Es wird dafür gesorgt, dass die Datei nur dann ausgeführt wird, wenn eine gültige Mamboumgebung vorliegt.
Das kennen Sie schon, der Doctype und der xml-Namensraum wird angegeben. In einigen Anleitungen findet man noch den XMLProlog (