Xpert.press
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.
Markus Gossmer · Michael Schumacher · Andreas Schauperl · Michael Nagy
Das PostNuke Kompendium Internet-, Intranet- und Extranet-Portale erstellen und verwalten Mit 24 Abbildungen
123
Markus Gossmer Hintere Gasse 54 70794 Filderstadt Michael Schumacher Wilhelm-Leuschner-Str. 16 73732 Esslingen Andreas Schauperl Oderstr. 1-1 71083 Herrenberg Michael Nagy Rastatter Weg 1 71686 Remseck
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-21942-0 Springer Berlin Heidelberg New York ISBN-13 978-3-540-21942-0 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 der Autoren 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
Vorwort
Content Management Systeme zur optimierten Verwaltung großer Sites erfreuen sich wachsender Beliebtheit, nicht zuletzt durch das immer größer werdende Angebot an freien CM-Systemen. PostNuke ist – auch dank einer sehr aktiven deutschen Community – in diesem Segment bereits eine gesetzte Größe. Dieses Buch setzt sich in knapper und präziser Darstellung mit allen Aspekten dieses leistungsfähigen Portal-Systems auseinander, von der Installation über Nutzung des Berechtigungssystems bis hin zur Programmierung eigener Module. Es ist ein Buch für alle, die
irgendwann an der selbst programmierten Homepage verzweifelt sind und schon lange mit einem CMS und all seinen dynamischen Features liebäugeln,
ihren Internet- oder Intranet-Auftritt direkt auf einem weit verbreiteten Open Source CMS aufsetzen wollen und
sich mit PostNuke beschäftigt haben und mehr über das System wissen wollen.
Das Buch gliedert sich in drei große Teile: Praxis, Konzepte und Programmierung. Praxis: Im ersten, grundlagenorientierten Teil bis einschließlich Kapitel 4 vermitteln wir einen Eindruck von der Leistungsfähigkeit von PostNuke und helfen Ihnen bei der Einrichtung einer ServerUmgebung auf Basis eines Apache Webservers, PHP und einer MySQL-Datenbank. Anschließend werden Sie durch den PostNukeInstallationsprozess geführt. In einer Art Crash-Kurs werden Sie dann mit allen Basis-Funktionen des CMS vertraut gemacht. Neben
Vorwort
V
der ersten Content-Pflege mit dem integrierten WYSIWYG-Editor legen Sie neue Benutzer und spezielle Gruppen an, vergeben Berechtigungen, installieren weitere Blöcke und Module im System usw. Nach diesen Kapiteln sind Sie bereits in der Lage, PostNuke fundiert zu verwenden. Konzepte: Der zweite große Teil des Buches – bis Kapitel 17 – besitzt mehr den Charakter eines Nachschlagewerkes. So werden Sie tiefer in die Feinheiten des umfangreichen Berechtigungssystems eingeführt. Die mitgelieferten Blöcke und Module werden ebenso detailliert beschrieben wie die Erstellung eigener Xanthia-Themes (was technisches Verständnis im Bereich HTML oder CSS voraussetzt). Nach den Verzeichnisstrukturen, den PostNuke-DatenbankTabellen und der Einrichtung von Multisites leiten wir über zu Rettungs-Tools wie PSAK und zur Sicherung und Wiederherstellung von PostNuke-Daten und Dateien. Mit pnmini bauen Sie ein hochoptimiertes Mini-PostNuke, anschließend wird Performance & Tuning diskutiert. Nach der Anleitung für den direkten Zugriff auf die aktuellsten PostNuke-Sourcecode-Dateien (CVS), die Beschreibung der Sprachcodes und den Bezug von Sprachpaketen wird dieser Teil mit gesammelten Tipps & Tricks zu PostNuke abgeschlossen. Programmierung: Die letzten Kapitel richten sich dann an alle PHP-Programmierer. Neben der Erläuterung, wie man eigene Module entwickelt, geben wir Ihnen eine umfangreiche deutsche Beschreibung der PostNuke-API und der wichtigsten Smarty-Tags an die Hand. Kenntnisse in PHP und SQL werden vorausgesetzt. Eine kurze Abhandlung der Unterschiede zwischen 0.750 und 0.760, ein Glossar und eine Link-Liste schließen das Kompendium ab. Wir empfehlen das sequentielle Durcharbeiten des Buches, da die späteren Kapitel auf den Inhalten der früheren Kapitel aufbauen. Wir setzen PostNuke bereits seit Jahren in verschiedenen Projekten im kommerziellen Umfeld ein, egal ob als einfaches Basis-CMS, im komplexen Extranet-Verbund, in der Programmierung oder integrativ mit anderen Software-Systemen. Dort hat es seine Erweiterbarkeit, Flexibilität und Stabilität eindrucksvoll unter Beweis stellen können.
VI
Vorwort
Die Erstellung des Kompendiums wäre in dieser Form niemals ohne die Hilfe Anderer möglich gewesen. Wir danken daher folgenden Personen für ihre konstruktive Kritik, ihre Vorschläge und Mithilfe an diesem Buch:
Bianca Bohne
Gudrun Rau
Wolfgang Staiger
Naim Steimer
Roland Mack
Robin Richter
Ihr Autoren-Team: Markus Gossmer, Michael Nagy, Andreas Schauperl und Michael Schumacher
Stuttgart, im März 2005
Vorwort
VII
Inhaltsverzeichnis
Teil 1: Praxis 1
Was ist PostNuke? ....................................................................1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
2
Was ist ein CMS? ...............................................................1 Beispielhaftes Anforderungsprofil .....................................2 Die PostNuke-Historie........................................................2 Leistungsfähigkeit des PostNuke-CMS .............................3 Produktdetails und Voraussetzungen .................................5 Unternehmenskriterien .......................................................6 Zusammenfassung ..............................................................8 Ausblick ..............................................................................8
Installation einer Webserver-Umgebung...............................9 2.1 Aufsetzen einer Server-Umgebung mit XAMPP ..............9 2.2 Zusammenfassung ............................................................11 2.3 Ausblick ............................................................................12
3
Die PostNuke-Installation ......................................................13 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9
4
Download von PostNuke..................................................13 Installation mit install.php ................................................13 Alternative: manuelle Installation ....................................16 Installation absichern ........................................................16 Die config.php...................................................................17 Deutsches Sprachpaket installieren ..................................18 Grundkonfiguration ..........................................................19 Zusammenfassung ............................................................23 Ausblick ............................................................................23
Umgang mit PostNuke............................................................25 4.1 Die Startseite und ihre Funktionen...................................25
Inhaltsverzeichnis
IX
4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15
Anmelden am System (Login)....................................... 27 Benutzerspezifische Konfiguration ............................... 27 Benutzer-Verwaltung..................................................... 28 Gruppen.......................................................................... 30 Blöcke und Module........................................................ 31 WYSIWYG HTML-Editor „Type Tool“ ...................... 38 Content-Pflege: Den ersten Artikel erstellen................. 39 Einrichtung einer echten Autoren-Gruppe .................... 43 Topics ............................................................................. 45 Kategorien ...................................................................... 46 Wiki................................................................................ 47 Hooks ............................................................................. 48 Zusammenfassung ......................................................... 50 Ausblick ......................................................................... 50
Teil 2: Konzepte 5
Sicherheit................................................................................. 51 5.1 5.2 5.3 5.4 5.5 5.6 5.7
PHP................................................................................... 51 Apache.............................................................................. 53 SSL ................................................................................... 54 Berechtigungen und Zugriffsrechte in PostNuke............ 55 Allgemeine PostNuke Sicherheitstipps ........................... 61 Zusammenfassung............................................................ 62 Ausblick ........................................................................... 62
6
Blöcke ...................................................................................... 63
7
Module..................................................................................... 79
8
Xanthia-Themes ................................................................... 135 8.1 8.2 8.3 8.4 8.5 8.6 8.7
9
Einführung...................................................................... 135 Themes administrieren................................................... 138 Xanthia konfigurieren .................................................... 141 Theme erstellen .............................................................. 144 pnRender ........................................................................ 155 Zusammenfassung.......................................................... 156 Ausblick ......................................................................... 156
Die PostNuke-Verzeichnisstruktur .................................... 157 9.1 Das PostNuke-Verzeichnis ............................................ 157
X
Inhaltsverzeichnis
9.2 Beispiel: language, modules und themes .......................160 9.3 Zusammenfassung ..........................................................162 9.4 Ausblick ..........................................................................162 10
Datenbank-Tabellen einer PostNuke-Installation ............163
11
Multisites................................................................................167 11.1 11.2 11.3 11.4 11.5
12
Troubleshooting, Backup und Recovery............................177 12.1 12.2 12.3 12.4 12.5
13
Das PostNuke Swiss Army Knife (PSAK) ..................177 Backup ..........................................................................178 Recovery .......................................................................180 Zusammenfassung ........................................................180 Ausblick ........................................................................180
pnmini.....................................................................................181 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10
14
Einrichtung des Webservers.........................................168 Einrichtung unterschiedlicher Themes.........................170 Einrichtung unterschiedlichen Contents ......................172 Zusammenfassung ........................................................174 Ausblick ........................................................................175
Vorbereitung ...............................................................181 Notwendige Module ...................................................182 Verzeichnisse löschen.................................................182 Notwendige Blöcke ....................................................183 Blöcke löschen............................................................183 Dateien löschen...........................................................184 Notwendige Datenbank-Tabellen...............................185 Ergebnis ......................................................................186 Zusammenfassung ......................................................186 Ausblick ......................................................................186
Performance & Tuning ........................................................187 14.1 14.2 14.3 14.4 14.5 14.6 14.7
Tools zur Performance-Messung .................................187 Anzahl Seitenabrufe in Abhängigkeit von Bandbreite 188 Hardware.......................................................................190 Software ........................................................................191 PostNuke-Bordmittel nutzen ........................................194 Zusammenfassung ........................................................194 Ausblick ........................................................................194
Inhaltsverzeichnis
XI
15
Das PostNuke-CVS .............................................................. 195 15.1 15.2 15.3 15.4 15.5
16
CVS-Module ................................................................ 195 Die Zugangsdaten ........................................................ 196 Bauen einer PostNuke-Umgebung aus dem CVS....... 197 Zusammenfassung ....................................................... 200 Ausblick ....................................................................... 200
Sprachpakete und Sprachentabelle ................................... 201 16.1 Sprachpakete beziehen................................................. 201 16.2 Sprachen, ihre Kürzel und Fundort ............................. 202
17
Tipps & Tricks zu PostNuke............................................... 205 17.1 17.2 17.3 17.4 17.5
Allgemein..................................................................... 205 Benutzer / Sessions ...................................................... 207 Blöcke und Module...................................................... 209 Themes ......................................................................... 210 Ausblick ....................................................................... 212
Teil 3: Programmierung 18
Die PostNuke-Programmierung......................................... 213 18.1 18.2 18.3 18.4 18.5 18.6
Programmierung von autarken Blöcken...................... 213 Sicherheit: die 12 goldenen Regeln der Entwicklung. 217 Grundlagen zur Modulentwicklung............................. 218 Entwicklung des Moduls „Rooms“ ............................. 224 Zusammenfassung ....................................................... 257 Ausblick ....................................................................... 258
19
Smarty ................................................................................... 259
20
Die PostNuke-API ................................................................ 265
21
PostNuke 0.760 ..................................................................... 335
22
Begriffe .................................................................................. 337
23
Links ...................................................................................... 349
Index............................................................................................... 351
XII
Inhaltsverzeichnis
1 Was ist PostNuke?
In diesem Kapitel lernen Sie, was das weit verbreitete Open Source Content Management System (CMS) „PostNuke“ in der Version „0.750 Gold“ leistet. Die in Details modifizierte Version „0.760“ ist angekündigt bzw. zur Drucklegung des Buches schon erschienen. Die Unterschiede zwischen beiden Versionen werden im Anhang erläutert.
1.1 Was ist ein CMS? Content Management Systeme (CMS) erstellen Internet-Seiten auf Basis eines vorgefertigten Layouts (Templates), in welches Inhalte (Content) aus einer Datenbank dynamisch eingefügt werden. Das Look and Feel bleibt so auf allen Seiten der Internet-Präsenz einheitlich. Ein CM-System kann natürlich auch im Intranet oder zur Realisierung von Extranets eingesetzt werden. Bei Content kann es sich um Artikel und jegliche Art von Dateien wie Dokumente und Bilder handeln. Redakteure und Autoren können tagesaktuell und weltweit diese Inhalte bearbeiten, ohne sich mit HTML-Details oder Programmierung befassen zu müssen. Dazu bieten CM-Systeme wie PostNuke grafische Editoren oder andere vergleichbare Tools. Darüber hinaus lässt sich ein CM-System wie PostNuke an beinahe jede Anforderung an Darstellung oder Funktionalität anpassen.
1.1 Was ist ein CMS?
1
1.2 Beispielhaftes Anforderungsprofil Das folgende Anforderungsprofil einer fiktiven Firma wird in diesem Buch als Veranschaulichungsbeispiel zur Umsetzung verschiedener Funktionalitäten herangezogen. Stellen Sie sich vor, Sie haben die Aufgabe erhalten, den InternetAuftritt ihrer Firma mit einem kostenlosen CMS zu gestalten. Das öffentliche Portal soll vor allem durch die MarketingAbteilung gepflegt werden können – ohne HTML- oder Programmierkenntnisse. Das Layout des Portals selbst darf durch die Mitarbeiter nicht geändert werden – oder nur im Rahmen enger Vorgaben. Eine Kontrollinstanz soll alle Texte vor ihrem Erscheinen prüfen und nach erfolgreicher Prüfung freigeben. Ihr Chef wünscht sich zudem einen Intranet-Auftritt, der an die Internet-Präsenz optisch angelehnt ist, jedoch mehr Funktionalitäten bietet. Zu einem späteren Zeitpunkt soll es möglich sein, auf Kunden und Partner zugeschnittene Bereiche – so genannte Extranets – anzubieten, in denen spezifische Inhalte hinterlegt werden können. Nur die Mitarbeiter der Partnerfirmen dürfen Zugang zu diesen Seiten bekommen. Das Layout orientiert sich diesmal aber an der Corporate Identity des Partners. Eine weitere Forderung: der Internet-, Intranet- und ExtranetAuftritt soll mit einem einzigen über das Internet erreichbaren Server umgesetzt werden, möglichst ohne Anschaffungskosten für die CMS-Software – auf alle Fälle aber erweiterbar und damit zukunftssicher. All diesen Anforderungen wird das kostenlose Content Management System PostNuke gerecht.
1.3 Die PostNuke-Historie Hervorgegangen ist PostNuke aus dem von F. Burzi entwickelten CMS PHPNuke. Dabei setzt sich der Name PostNuke aus post[lat.] (nach) und Nuke (Spitzname von F. Burzi) zusammen. Mittlerweile hat sich die Entwicklung von PostNuke und PHPNuke entkoppelt. Zusätzlich gibt es noch einige Nuke-Derivate (oft Forks genannt), die auf PostNuke aufsetzen. Dabei sind beispielsweise die CMS Xa-
2
1 Was ist PostNuke?
raya und eNvolution aus dem Streit über die Art und Form der Einführung einer neuen Layout-Engine in PostNuke entstanden. Die PostNuke-Historie ist vielschichtig und lang und begann mit der Version 0.51. Die Versionen 0.720 bis 0.726 bilden bereits die Basis für eine Vielzahl an Präsenzen. Das Buch beschreibt die Version 0.750 Gold (mit Ausblick auf 0.760 und teilweise 0.8). PHPSplash |- Thatware |- PHPNuke |- ... |- PostNuke |- Envolution | |- maxdev | |- MDPro |- Nuke on Jboss |- Xaraya |- ... Von PHPNuke leiten sich noch andere Nuke-Systeme wie CpgNuke, MyPHP-Nuke (und davon OPN), NSN Nuke, OpenPHPNuke, tis, diverse VKPs (vorkonfigurierte Pakete), XOOPS und 2fvkp ab. PostNuke ist extrem beliebt. Eine Suche in Google nach dem Begriff PostNuke liefert bereits über vier Millionen Treffer, davon knapp 600.000 aus deutschen Landen.
1.4 Leistungsfähigkeit des PostNuke-CMS PostNuke ist im Quelltext verfügbar und darf frei verwendet werden. Das System selbst ist hochmodular und kann durch das Hinzufügen von Modulen um jede erdenkliche Funktionalität erweitert werden. Viele Module sind dabei ebenfalls kostenlos erhältlich. Sollte doch einmal eine Funktionalität fehlen, bietet es Programmierern durch die PostNuke-API die Möglichkeit, eigene Blöcke (einfache Oberflächen-Bausteine ohne umfangreiche oder tiefere Funktionalität) und Module zu entwickeln. Da der Programmcode öffentlich zugänglich ist, kann auch
1.4 Leistungsfähigkeit des PostNuke-CMS
PostNuke ist Open Source Software und unterliegt der GPL-Lizenz. Eine deutsche Übersetzung der GPL findet sich auf www.gnu.de/ gpl-ger.html.
3
der PostNuke-Kernel, das Herzstück von PostNuke, an individuelle Bedürfnisse angepasst werden. Für PostNuke ist der Betrieb eines Webservers Voraussetzung, beispielsweise eines Apache oder Internet Information Server (IIS). Siehe dazu das Kapitel Sicherheit
Neben der einfachen Artikel-Verwaltung und der davon vollständig losgelösten Layoutgestaltung legen die PostNuke-Entwickler einen weiteren Schwerpunkt auf die Benutzerverwaltung. Durch ein ausgeklügeltes Rechtesystem lassen sich komplexe ZugriffsSzenarien realisieren. So lassen sich Kontrollinstanzen für ContentFreigabe umsetzen; Autoren verfassen Texte, die durch Redakteure freigegeben werden können; Extranet-Benutzer sehen andere Inhalte und haben andere Funktionen als Intranet-Benutzer usw.
Siehe dazu das Kapitel XanthiaThemes
Das Layout einer PostNuke-Seite wird über ein so genanntes “Theme” realisiert. Dieses kann man sich als eine Art Maske vorstellen, die das Aussehen in Grundzügen vorgibt, und in die der jeweilige Content eingefügt wird.
Siehe dazu das Kapitel Sprachpakete und Sprachentabelle
PostNuke ist sprachenunabhängig und kann um jede beliebige Sprache mittels Sprachpaketen erweitert werden. Die Sprachpakete bestehen aus einer Reihe von Textdateien, welche die jeweiligen Übersetzungen der PostNuke-Oberfläche beinhalten. Sprachpakete können damit von Ihnen selbst erstellt und bearbeitet werden.
Siehe dazu das Kapitel Module
Module realisieren Funktionen wie zum Beispiel eine umfangreiche Download-Bibliothek, automatische Konvertierung der eigenen Seite zur Darstellung auf PDAs und Mobiles, automatische Verlinkung von Inhalten usw. PostNuke verfügt darüber hinaus über eine systemweite, datenbankbasierte Such-Funktion. Die Konfigurationseinstellungen von PostNuke sowie dessen Content werden bis auf wenige Ausnahmen wie Dateien in einer SQL-Datenbank abgelegt. Damit stehen dem Administrator sämtliche Möglichkeiten zur weiteren Content-Verarbeitung sowie Anbindung von PostNuke über SQL und ODBC an Fremdsysteme zur Verfügung. In der Version „0.750 Gold“ ist PostNuke so konzipiert, dass es nur die frei verfügbare MySQL-Datenbank verwendet. PostNukeVersionen ab 0.8 werden weitere Datenbankserver wie beispielsweise Oracle oder MS SQL unterstützen.
4
1 Was ist PostNuke?
1.5 Produktdetails und Voraussetzungen Die nachfolgende Übersicht ist in ihrer Struktur an die gängigen Ausschreibungen und an die Auflistung der Produktinformationen unter http://www.contentmanager.de angelehnt.
Unterstützte Betriebssysteme: plattformunabhängig; jedes, auf dem ein PHP-fähiger Webserver ausgeführt werden kann. Windows ab Version NT 4, Linux, UNIX oder FreeBSD empfohlen.
Unterstützte Webserver: jeder PHP-fähige Webserver, z.B. Abyss, Apache, IIS, Netscape, OmniHTTPd, usw.
Unterstützte Datenbanken: in PostNuke Version 0.750 Gold nur MySQL; in PostNuke ab Version 0.8 zusätzlich PostgreSQL, Oracle und MS SQL.
Unterstützte Scriptsprachen: PHP > Version 4.1
Weitere Software für Betrieb notwendig: Nein
Hardware-Voraussetzungen: 150 MB freier Festplattenspeicher, davon 10 MB für PostNuke, Prozessor ab 266 MHz, 512 MB Hauptspeicher.
Performance: Ist Performance gefordert, sollte man besonderen Wert auf schnelle Festplatten und viel Hauptspeicher legen – hauptsächlich ein Tribut an den relationalen Datenbank-Server.
Lizenz/Kosten: GPL/kostenlos
Zielgruppe: Mittelstand (KMU); Vereine; Privatanwender
Existiert eine Media-Datenbank: Ja, über zusätzliche DrittModule wie z.B. „Photoshare“.
Verwendung von Templates: PostNuke bietet mit dem Xanthia-Modul eine auf Smarty aufsetzende Templating-Engine (siehe Kapitel Xanthia-Themes) ohne proprietäre Skriptsprache.
Scriptsprachen in Templates einsetzbar: Ja, über Smarty oder PHP.
Content-Revisionssicherheit: Über zusätzliche Module wie z.B. „Pagesetter“ realisierbar.
Content-Pflege: Direkt im Browser im WYSIWYG-Editor oder über Schnittstellen wie XMLRPC.
Einbindung externer Content, Content Syndication: Zum Beispiel über RSS-Feeds.
Existiert eine API: Ja (pnAPI)
1.5 Produktdetails und Voraussetzungen
Anforderungen laut Ausschreibungen
5
Erweiterbarkeit: Über Module und Blöcke, meist kostenlos erhältlich.
Skalierbarkeit: Nur beschränkt durch die Server-Performance.
Caching: Caching-Verhalten ist über das Xanthia-Modul frei wählbar. ADODB-Caching in Vorbereitung.
Kategorisierung von Inhalten möglich: Ja
Benutzer-Profile und Profilmanagement möglich: Ja
Personalisierte Webseiten möglich: Ja (über Berechtigungssystem)
Erkennung von Benutzern: Über Anmeldung im Browser (Cookies für PHP Session-Management).
Administration: Vollständig im Browser.
Sicherheit: Über Benutzer, Gruppen und Zugriffsrechte; komplett frei definierbar; drei Gruppen vordefiniert (anonyme Besucher, Benutzer, Admins).
Benachrichtigung: Mailing innerhalb des PostNuke-Systems möglich.
1.6 Unternehmenskriterien Unternehmen beurteilen die Leistungsfähigkeit eines CMS meist nach folgenden Kriterien.
1.6.1 Bedienung PostNuke ist auf allen Berechtigungs-Ebenen und in allen Modulen ausschließlich über den Browser bedienbar. Das Standard-System ist für Benutzer effizient und einfach zu handhaben. Installiert der Administrator Drittmodule, kann sich natürlich die Bedienung der neuen Komponenten von denen der Standard-Komponenten unterscheiden. Je nach Anforderung können die verschiedensten WYSIWYGEditoren integriert werden.
6
1 Was ist PostNuke?
1.6.2 Funktionalität Bereits die Standard-Installation ist umfangreich ausgestattet, meist kommt man schon mit einem kleineren Funktionsumfang aus. PostNuke wächst mit den Anforderungen. Sollte eine Funktion nicht vorhanden sein, kann man aus über 200 weiteren Modulen und Blöcken auswählen. Alternativ können eigene Module und Blöcke über die PostNuke-API mit PHP erstellt werden.
1.6.3 Benutzerverwaltung PostNuke verfügt über ein sehr umfangreiches Rechtesystem. Fast jedes Modul und nahezu jeder Bereich der Präsenz lässt sich sicherheitstechnisch auf die unterschiedlichsten Bedürfnisse hin anpassen. Beispiele:
Die Struktur der Redakteure und die Anforderung des Unternehmens ist abbildbar.
Jeder Bereich kann über eigene Autoren verfügen (Presse, Service, Produkt etc.)
Definition beliebiger Benutzer und Gruppen ist möglich
Berechtigungen können sowohl für Benutzer als auch Gruppen gesetzt werden
Freigabefunktion ist vorhanden
Dies ist bei größeren Projekten mit vielen Benutzern im Unternehmensumfeld ein entscheidender Vorteil.
1.6.4 Technische Leistungsfähigkeit Das Open Source CMS setzt auf klassische Webserver-Umgebungen auf. Das Betriebssystem ist frei wählbar, der Einsatz eines Apacheoder IIS-Webservers ist empfohlen, eine SQL-Datenbank und PHP sind ein Muss.
1.6 Unternehmenskriterien
7
1.6.5 Erweiterbarkeit PostNuke ist hochmodular und wird mit einer ganzen Reihe von Modulen geliefert. PostNuke ist darüber hinaus frei programmierbar. Es verfügt über eine eigene API, mit der sich Blöcke und Module mit User- und Administrations-Bereich erstellen lassen. Durch den Einsatz von Standard-Software wie dem MySQL-Datenbankserver lässt sich ein einfacher Datenaustausch mit anderen Systemen realisieren.
1.6.6 Investitionssicherheit PostNuke erfreut sich wachsender Beliebtheit und besitzt eine umfangreiche Entwicklergemeinde. Viele Firmen bieten zudem Dienstleistungen in Installation, Entwicklung und Betreuung von PostNuke-basierten Seiten an.
1.7 Zusammenfassung Dieses Kapitel gab Ihnen einen Einblick in die Leistungsfähigkeit des CMS PostNuke. Zusätzlich wurden Entscheidungskriterien für Unternehmen diskutiert und Hardware- sowie Software-Voraussetzungen erläutert. Das in diesem Kapitel erwähnte Anforderungsprofil einer fiktiven Firma dient als Grundlage für alle Beispiele der folgenden Kapitel.
1.8 Ausblick Das nächste Kapitel beschäftigt sich mit der Installation einer Server-Umgebung, die für den Betrieb eines PostNuke-CMS notwendig ist.
8
1 Was ist PostNuke?
2 Installation einer WebserverUmgebung
Dieses Kapitel richtet sich an alle, die eine eigene Server-Umgebung bestehend aus Webserver, Datenbank-Server und PHP aufsetzen möchten oder müssen, die für den Betrieb eines PostNuke-Portals notwendig ist. Wenn Sie bereits einen Server mit dieser Software einsetzen (z.B. bei Ihrem Internet-Provider), dann können Sie dieses Kapitel überspringen. Für alle, die dieses Kapitel lesen, sei angemerkt, dass aus Gründen der Einfachheit das vorkonfigurierte XAMPP-Paket für Windows beschrieben wird, welches die von PostNuke benötigten Anwendungen wie Webserver, SQL-Datenbank und PHP in einem einfach zu installierenden Komplett-Paket beinhaltet. Das XAMPP-Paket ist allerdings nur eine von vielen Möglichkeiten, eine Webserver-Umgebung aufzusetzen. Bei Fragen – auch zu den verschiedenen Linux-Varianten – kann Ihnen auch Ihr InternetProvider weiterhelfen.
XAMPP steht als Abkürzung für die Anfangsbuchstaben der Komponenten Apache, MySQL, Perl und PHP. Das X ist ein Platzhalter für ein beliebiges Betriebssystem.
2.1 Aufsetzen einer Server-Umgebung mit XAMPP (Windows) „So mancher wird schon die Erfahrung gemacht haben: Ein Apache-Webserver installiert sich nicht so leicht. Noch schwieriger wird es, wenn weitere Pakete wie MySQL, PHP oder Perl dazukommen. XAMPP ist eine Distribution von Apache, MySQL, PHP und Perl, die es ermöglicht diese Programme auf sehr einfache Weise zu installieren.“ [Zitat XAMPP-Homepage unter http://www.apachefriends.org] Gerade für wenig erfahrene Anwender und/oder bei Testsystemen bietet sich diese Art der Installation gegenüber der Einzelinstallation
2.1 Aufsetzen einer Server-Umgebung mit XAMPP (Windows)
9
der Anwendungen als Einstieg an. Mit zunehmender Erfahrung und wachsenden Anforderungen kann das System problemlos mithalten, die Flexibilität der verwendeten Software-Produkte hat unter der Vereinigung nicht gelitten. Die in XAMPP enthaltenen Anwendungen unterscheiden sich nicht von den jeweiligen „Stand Alone“-Versionen. Alle Handbücher, Anleitungen und Tipps aus Webforen und Newsgroups lassen sich so auch auf die Programme im XAMPP-Paket anwenden.
2.1.1 XAMPP-Varianten Von XAMPP gibt es zahlreiche Varianten. Welche man benötigt, hängt zunächst von der verwendeten Betriebssystem-Plattform ab. Linux-Anwender benötigen XAMPP für Linux (früher auch als LAMPP bekannt), Windows-Anwender dementsprechend XAMPP für Windows (analog als WAMPP bezeichnet). XAMPP für Windows ist zur Drucklegung des Buches in den zwei Ausprägungen „XAMPP“ und „XAMPP Lite“ erhältlich.
In der kleineren Version „XAMPP Lite“ sind neben den namensgebenden Bestandteilen Apache, MySQL, PHP, und Perl noch ADODB, SQL Lite und phpMyAdmin enthalten. Für den Betrieb von PostNuke ist diese Variante mehr als ausreichend. Wer zusätzlich SSL, einen FTP- und einen Mailserver benötigt, sollte zum vollständigen XAMPP-Paket greifen. Beide Alternativen sind als gepacktes Archiv und selbstextrahierende Datei verfügbar.
2.1.2 Installation von XAMPP Lite unter Windows 1. Laden Sie die „XAMPP Lite“-Variante als EXE-Datei von http://www.apachefriends.org herunter. 2. Führen Sie die EXE-Datei aus. Geben Sie als Installationspfad beispielsweise c:\programme an. Die EXE-Datei wird darin automatisch einen xampplite-Unterordner anlegen (im folgenden einfach als XAMPP-Verzeichnis bezeichnet). 3. Führen Sie die setup_xampp.bat aus dem XAMPPVerzeichnis aus. Damit werden einige Pfade in Konfigurationsdateien angepasst. 4. Die Installation ist damit abgeschlossen. Die heruntergeladene EXE-Datei kann gelöscht werden.
10
2 Installation einer Webserver-Umgebung
5. Um Probleme mit Zeichensätzen und Umlauten (Stichwort: UTF8) o.ä. von vornherein auszuschließen, öffnen Sie aus dem XAMPP-Verzeichnis die Datei mysql\bin\my.cnf (wird unter Windows nur als „my“-Zielwahl dargestellt) und suchen Sie nach einer Zeile der Art set-variable = defaultcharacter-set=utf8. Löschen Sie diese Zeile.
2.1.3 Start, Test und Stopp der XAMPP-Umgebung unter Windows 1. Wechseln Sie direkt ins XAMPP-Verzeichnis und starten Sie die Datei xampp_start.exe. Damit wird der Apache Webserver und der MySQL-Datenbankserver gestartet. Erlauben Sie bei installierter Firewall die Netzwerkkommunikation des Apache HTTP und MySQL-Datenbankservers. Das erscheinende DOS-Fenster muss geöffnet bleiben. 2. Sie können mit dem Windows Taskmanager im Tab „Prozesse“ überprüfen, ob mindestens zwei Apache.exe und ein mysqld.exe gestartet wurden. 3. Starten Sie ihren Webbrowser und greifen Sie auf http://localhost zu. Sollten Sie von einer anderen Maschine auf Ihre Installation zugreifen wollen, verwenden Sie http://maschinenname oder http://IP-Adresse. Erscheint hier ein XAMPP-Startbildschirm, so läuft das XAMPP-System und der anschließenden Installation von PostNuke steht nichts mehr im Wege. 4. Sie stoppen XAMPP, in dem Sie aus dem XAMPPVerzeichnis die Datei xampp_stop.exe ausführen.
2.2 Zusammenfassung Das Kapitel richtete sich an alle, die keine funktionsfähige ServerUmgebung, bestehend aus Webserver, Datenbankserver und PHP besitzen. Mit XAMPP Lite wurde solch eine Umgebung exemplarisch unter Windows eingerichtet.
2.2 Zusammenfassung
11
2.3 Ausblick Das folgende Kapitel wird sich mit der Installation des PostNuke Content Management Systems 0.750 Gold/0.760 befassen. Zudem werden Sie erste Grundkonfigurationen vornehmen, weitere Benutzer einrichten und Content pflegen und managen.
12
2 Installation einer Webserver-Umgebung
3 Die PostNuke-Installation
Nachdem die Server-Umgebung auf einem öffentlichen InternetServer bei Ihrem Provider oder bei Ihnen im Haus eingerichtet ist, können Sie mit der Installation von PostNuke beginnen. Anschließend werden Sie das System in den wichtigsten Einstellungen konfigurieren.
3.1 Download von PostNuke 1. Falls der Web- und/oder Datenbankserver nicht gestartet ist, starten Sie diese bitte, z.B. Ihre XAMPP-Installation. 2. Laden Sie „PostNuke 0.750 Gold“ im Original von http://www.postnuke.com oder dem deutschsprachigen PostNuke-Portal unter http://www.post-nuke.net herunter. Das Paket enthält noch keine deutsche Sprachdateien – das holen wir später in diesem Kapitel nach. 3. Extrahieren Sie die Datei in die Document Root Ihres WebServers. Im Fall von XAMPP findet sich dieses unter xampplite\htdocs. Dies dauert unter Umständen einige Minuten. 4. Benennen Sie anschließend das dort neu entstandene Verzeichnis PostNuke-0.750 in postnuke um.
3.2 Installation mit install.php 1. Starten Sie Ihren Webbrowser und rufen Sie das Installationsskript von PostNuke auf, indem Sie folgende URL eingeben: http://localhost/postnuke/html/install.php
3.1 Download von PostNuke
13
2. Wählen Sie am besten die deutsche Installationssprache. Dies hat Auswirkungen auf die Sprache der Installationsdialoge sowie die Sprache der Oberfläche, mit der PostNuke später startet. 3. Nach einigen Dialogen wie Lizenzbedingungen usw. werden Sie zur Eingabe von folgenden Daten aufgefordert:
Alternativ können Sie die PostNukeDatenbank z.B. mit phpMyAdmin anlegen.
14
Datenbank-Host: befindet sich die PostNuke-Installation und der MySQL-Datenbankserver auf dem gleichen Rechner (bei der Installation von XAMPP die Regel), geben Sie einfach „localhost“ ein, ansonsten den DNS-Namen oder die IP-Adresse des MySQL-Servers. Beachten Sie bei der Installation auf dem Rechner eines Internet-Providers, dass dieser den Zugriff des Webservers auf den MySQL-Server erlaubt.
Datenbank-Benutzername: im Fall einer Standard-XAMPPInstallation root, ansonsten ein entsprechender MySQLBenutzer.
Datenbank-Passwort: im Fall einer Standard-XAMPPInstallation brauchen Sie kein Passwort angeben, ansonsten das Passwort des entsprechenden MySQL-Benutzers.
Datenbank-Name: wenn Sie die Rechte haben, eine eigene Datenbank zu erzeugen, geben Sie beispielsweise phoenix ein, ansonsten wird hier der Ihnen (vom Provider) zugewiesene Datenbankname eingetragen. Wichtig ist, dass der Datenbankname mit einem Buchstaben beginnt.
Datenbank-Tabellen-Typ: wählen Sie hier vorzugsweise MyISAM aus; der schnellere Tabellentyp INNODB befindet sich noch im Entwicklungsstadium.
Alle anderen Einstellungen wie Tabellenpräfix, IntranetBenutzung o.ä. können so übernommen werden.
4. Nächster Dialog: wählen Sie im Falle einer Neuinstallation von PostNuke den Button Neue Installation. Existiert bereits eine ältere PostNuke-Installation, wählen Sie Upgrade. 5. Nächster Dialog: Wählen Sie die Checkbox neue Datenbank anlegen im Neuinstallations-Dialog an, wenn die MySQL-Datenbank (z.B. phoenix) vor der Installation von PostNuke noch nicht existieren sollte. Im Beispiel einer lokalen Installation mit XAMPP müssen Sie die Checkbox also anhaken.
3 Die PostNuke-Installation
6. Die folgenden Dialoge müssen von Ihnen sinnvoll ergänzt und können einfach bis zum Abschluss der Installation bestätigt werden. 7. Sie können ihr Portal nun über http://localhost/postnuke/html/index.php oder über den Link im letzten Installationsdialog zur neu eingerichteten PostNuke-Seite aufrufen.
Wenn Sie die Zugangsdaten des Administrators bei der Installation nicht geändert haben, lauten diese „Admin“ mit Passwort „Password“.
Abb. 3.1: Die PostNukeStartseite mit ExtraLite-Theme
3.2 Installation mit install.php
15
3.3 Alternative: manuelle Installation Die Benutzeroberfläche ist nach der manuellen Installation komplett in englisch gehalten.
1. Legen Sie eine neue Datenbank an, z.B. mit phpMyAdmin, Datenbankname: postnuke. 2. Importieren Sie die Datei Phoenix-0.7.5.0.sql aus dem Ordner postnuke/phoenix-sql in Ihre neue Datenbank. 3. Die Tabellen werden angelegt und gefüllt, das Präfix für die Tabellen lautet pn. 4. Öffnen Sie die Datei config.php aus dem Ordner postnuke/html.
Session initialisation failed? Überprüfen Sie die prefixEinstellung in der config.php oder leeren Sie Ihre SessionTabelle.
5. Passen Sie folgende Zeilen an: $pnconfig['dbhost'] = 'IP oder DNS-Name Ihres Datenbank-Servers'; $pnconfig['dbuname'] = 'Datenbank-Benutzername'; $pnconfig['dbpass'] = 'Passwort des Datenbank-Benutzers'; $pnconfig['dbname'] = 'postnuke'; $pnconfig['prefix'] = 'pn'; $pnconfig['encoded'] = '0'; Sie können ihr Portal nun über http://localhost/postnuke/html/index.php aufrufen und sich mit dem Benutzer „Admin“, Passwort „Password“ einloggen.
3.4 Installation absichern Um die Installation abzusichern, wechseln Sie bitte in das Installationsverzeichnis von PostNuke (im Falle von XAMPP ist dies das Verzeichnis xampplite/htdocs/postnuke/html) und löschen Sie die Datei install.php sowie das installVerzeichnis. Damit verhindern Sie, dass Dritte durch eine Neuinstallation administrativen Zugriff auf Ihr PostNuke-System erhalten oder Ihr Portal überschreiben und damit zerstören können.
16
3 Die PostNuke-Installation
Seit der Version 0.750 Gold müssen Sie diese Dateien sogar löschen, da Ihnen ansonsten die Administration des Systems mit einem Hinweis auf noch vorhandene Installationsroutinen verwehrt wird.
3.5 Die config.php Die Installationsroutine von PostNuke legt die Zugangsdaten zur MySQL-Datenbank in der Datei config.php direkt im PostNukeHauptverzeichnis ab. Sollten Probleme mit der Installation, speziell mit dem Zugang zur Datenbank auftreten, hilft ein Blick in diese Datei. Die config.php ist folgendermaßen aufgebaut:
$pnconfig['dbtype'] = 'mysql'; Der Datenbank-Typ. Theoretisch jedes von ADODB unterstützte Datenbanksystem, in PostNuke 0.750 Gold nur MySQL
$pnconfig['dbtabletype'] = 'myisam'; Der Tabellen-Typ. Theoretisch jeder Tabellentyp, der von dem verwendeten Datenbanksystem unterstützt wird. Bei MySQL „myisam“ oder „innodb“.
$pnconfig['dbhost'] = ‚localhost'; Der Name des Rechners, auf dem Ihr Datenbank-Server läuft. Sind wie im Falle von XAMPP Datenbank- und Webserver auf der gleichen Maschine installiert, genügt die Angabe „localhost“.
$pnconfig['dbuname'] = 'RDyxcfTGWE465674pc=='; Der Benutzername zum Zugriff auf die Datenbank. Verschlüsselt, wenn encoded auf 1 gesetzt wurde, ansonsten im Klartext gespeichert.
$pnconfig['dbpass'] = 'TgEZgd4566b='; Das zum Benutzernamen gehörende Passwort. Verschlüsselt, wenn encoded auf 1 gesetzt wurde, ansonsten im Klartext gespeichert.
$pnconfig['encoded'] = '1'; Gibt an, ob die Zugangsdaten zur Datenbank verschlüsselt in der config.php abgelegt sind. Sollten Sie jemals den Benutzernamen oder das Passwort zum Zugriff auf die Datenbank ändern müssen, dann setzen Sie diese Variable auf 0 und tragen Benutzername und Passwort bei $pnconfig['dbuname'] und $pnconfig['dbpass'] im Klartext ein, oder verwenden das PostNuke Swiss Army Knife (siehe das Kapitel Troubleshooting, Backup und Recovery), um die Datenbank-Zugangsdaten verschlüsselt erzeugen zu können.
3.5 Die config.php
„Problem in Database Connection“? Eventuell hilft ein Editieren der Datei config.php.
17
$pnconfig['dbname'] = 'phoenix'; Der Name der Datenbank, in dem PostNuke Informationen speichern und abrufen darf.
$pnconfig['prefix'] = 'nuke'; Der Präfix aller Tabellennamen in der PostNuke-Datenbank. Wichtig, wenn für mehrere PostNuke-Installationen nur eine Datenbank zur Verfügung steht. In diesem Fall würden Sie dann für jede Installation einen anderen Präfix verwenden (Stichwort: Multisites).
$pnconfig['system'] = '0'; Die verwendete BetriebssystemPlattform für PostNuke. „0“ für Unix, Linux und sonstige UNIX-Plattformen, „1“ für Microsoft Windows-Plattformen.
$pndebug['debug'] = '0'; Wird diese Variable auf „1“ gesetzt, so öffnet sich beim Zugriff auf eine beliebige Seite des PostNuke-Systems ein neues Browserfenster und Debug-Informationen mit der Angabe der Zeit, die für die Erstellung der Ausgabe benötigt wurde sowie der Anzahl der durchgeführten SQLAbfragen. Das Debug-Modul nennt sich nach dem Namen des Autors „Lens Debug“ und findet sich unter html\includes\classes\lensdebug.
$pndebug['debug_sql'] = '0'; Wird diese Variable auf „1“ gesetzt, so werden wie oben SQL-Abfragen in einem separaten Fenster dokumentiert.
3.6 Deutsches Sprachpaket installieren 1. Laden Sie das „deutsche Sprachpaket 0.750“ von http://www.post-nuke.net herunter. Sie können Ihre Server-Umgebung und PostNuke ohne Probleme nebenbei weiter betreiben. Sie können in der PostNukeOberfläche über den „Sprachen“Block beliebig zwischen deutsch und englisch wechseln.
18
2. Entpacken Sie die ZIP-Datei direkt in das PostNukeVerzeichnis (im Falle von XAMPP in das Verzeichnis xampplite/htdocs/postnuke) und überschreiben Sie alle eventuell vorhandenen Dateien. 3. Rufen Sie Ihr Portal unter http://localhost/ postnuke/html auf. Ihr Portal verfügt nun über eine englische und deutsche Benutzeroberfläche.
3 Die PostNuke-Installation
Für andere Sprachpakete wie beispielsweise französisch gilt das Vorgehen analog. Im Kapitel Sprachpakete und Sprachentabelle wird beschrieben, wo Sie die Sprachpakete beziehen können.
3.7 Grundkonfiguration Nach der Installation sollten Sie einen Blick auf die allgemeinen Einstellungen Ihres PostNuke-Systems werfen. Dort ändern Sie die wichtigsten Angaben wie den Slogan Ihrer Seite, die StandardSprache oder die Zeitzone Ihres Systems. Zusätzlich können wir die selbständige Benutzerregistrierung deaktivieren.
3.7.1 Allgemeine Einstellungen 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. Abb. 3.2: Die Icons in der admin.php
3.7 Grundkonfiguration
19
3. Klicken Sie auf das Icon Einstellungen. Beachten Sie: die Administrations-Icons sind alphabetisch sortiert, allerdings nur nach deren englischsprachiger Bezeichnung.
20
Name: bei einer kommerziellen Seite meist der Firmenname.
Logo (Druckansicht): muss zunächst nicht geändert werden. Bezeichnet das Logo, welches oben links in der Druckansicht angezeigt wird. Sie finden das voreingestellte logo.gif im Verzeichnis postnuke/html/images.
Slogan: bei kommerziellen Seiten meist das Motto oder der Werbeslogan der Firma. Name und Slogan ergeben den Gesamttitel der Seite in der Art „Name :: Slogan“, der in der Titelzeile des Browsers angezeigt wird.
Meta Keywords: Feldinhalt kann gelöscht werden, da MetaKeywords von Suchmaschinen nicht mehr interpretiert werden.
Meta-Keywords dynamisch erzeugen: nein (nicht notwendig, kostet nur Rechenzeit).
Standard-Theme: legt fest, mit welchem Theme PostNuke startet.
Lokales Zeitformat: abhängig vom Server-Standort; wenn der Server in Deutschland steht, sollten Sie hier de_DE eintragen.
Zeitzone: wieder standort-abhängig. Hier gilt für Deutschland GMT +1:00.
Startseite: bezeichnet das Modul, dessen Inhalte angezeigt werden, wenn nur http://servername/postnuke (ohne Angabe von weiteren Parametern) aufgerufen wird.
pnAntiCracker aktivieren: wenn diese Option aktiviert ist, kann in einem Artikel kein Scriptcode (JavaScript, VBScript) eingefügt werden. Wird dies dennoch versucht, wird der Administrator durch pnAntiCracker über diesen Vorgang ausführlichst per Mail informiert.
Sprache der Website: wählen Sie hier [deu] aus (deutsches Sprachpaket vorausgesetzt).
Eingabefeld für die Fußzeile: hier können Sie beispielsweise Kontaktinformationen (auch im HTML-Code) hinterlegen, die auf jeder Seite am Ende einer PostNuke-Oberfläche angezeigt werden.
Backend-Titel: geben Sie hier noch einmal z.B. Ihren Firmennamen an. Diese Einstellung wird später u.a. von RSS-Feeds verwendet.
3 Die PostNuke-Installation
Backend-Sprache: wählen Sie wieder [de-de] aus. Auch das ist wieder nur für Funktionen wie RSS-Feeds interessant, die im Hintergrund der PostNuke-Seite aktiv sind (deswegen auch der Begriff „Backend“).
In Beiträgen erlaubte HTML-Tags: schalten Sie die Tags frei, die Sie Ihren Autoren zur Erstellung von Artikeln zur Verfügung stellen wollen. So können Sie die Einhaltung Ihres Corporate Identity steuern oder Tags abschalten, die die Sicherheit Ihres Internet- oder Intranet-Auftrittes gefährden.
Eingebette HTML-Entitäten in normale Zeichen wandeln: ist diese Option aktiviert, werden Sonderzeichen wie zum Beispiel ein „>“ in die entsprechende HTML-Darstellung „>“ umgewandelt. Sollte aktiviert bleiben.
Klicken Sie auf Änderungen speichern. Abb. 3.3: Die EinstellungsSeite unter Administration – Einstellungen
Alle anderen Einstellungen brauchen nicht geändert werden.
3.7 Grundkonfiguration
21
3.7.2 Benutzer-Einstellungen Standardmäßig sind nach der Installation der Administrator und ein anonymer Benutzer angelegt.
Wenn Sie verhindern wollen, dass sich Benutzer in Ihrem Portal autark registrieren können und damit einen Benutzer-Account erhalten, müssen Sie dieses Verhalten abschalten. Standard-Benutzer dürften zum Beispiel Artikel hinzufügen, die aber nur von Administratoren freigegeben werden können. Um die eigenständige Benutzer-Registrierung abzuschalten, gehen Sie wie folgt vor: 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 3. Klicken Sie auf das Icon Benutzer-Administration. 4. Klicken Sie auf Konfiguration trierung.
Benutzerregis-
5. Das Verhalten schalten Sie über die Option Benutzerregistrierung ermöglichen ab. Überprüfen Sie auch gleich die übrigen Einstellungen und passen Sie diese notfalls an Ihre Bedürfnisse an. Davon sind die wichtigsten Optionen:
22
optionale Felder anzeigen: Sollen zusätzlich definierte (dynamische) Benutzerdaten in den persönlichen Benutzereinstellungen unter Benutzerprofil ändern angezeigt werden? Festgelegt werden diese Felder unter dem Menüpunkt Dynamische Benutzerdaten hier in der Benutzeradministration.
Kennwort vom System erzeugen lassen: Das System legt ein gültiges Passwort fest. Diese Option sollten Sie aus Sicherheitsgründen immer einschalten.
IDN-Domains: Erlauben von Umlaut-Adressen bei E-Mail und URL.
3 Die PostNuke-Installation
3.8 Zusammenfassung Das PostNuke-System wurde aufgesetzt, abgesichert und erste Konfigurationen vorgenommen. Das Portal ist damit voll funktionsfähig und einsatzbereit.
3.9 Ausblick Im nächsten Kapitel üben Sie den Umgang mit dem Portal, erstellen die ersten Artikel als Administrator/Benutzer, verwenden die Freigabefunktion, ändern das Layout Ihrer Seite usw.
3.8 Zusammenfassung
23
4 Umgang mit PostNuke
Nach der Installation präsentiert sich die Startseite von PostNuke unter http://servername/postnuke/html in einem spartanischen Look & Feel, welches durch das Theme „ExtraLite“ definiert wird. An dieser Stelle wird noch nicht tiefer auf Themes und deren Techniken eingegangen; es genügt zunächst zu wissen, dass ein Theme die Optik und das Verhalten einer Seite festlegt. Jedes Theme kann dies unterschiedlich realisieren. Alle folgenden Beschreibungen beziehen sich daher auf das Theme „ExtraLite“. Falls noch nicht geschehen, starten Sie Ihre Server-Umgebung (z.B. XAMPP), um Ihre PostNuke-Installation nutzen zu können.
4.1 Die Startseite und ihre Funktionen Jeder Benutzer des Systems kann sich aus den vom Administrator installierten Themes sein eigenes aktivieren – falls vom Admin erlaubt – und damit „seine“ PostNuke-Seite individuell gestalten. Im allgemeinen bietet jedes Theme folgende Bereiche: Abb. 4.1: Die StandardAufteilung eines Themes
Header (Banner, Site-Logos, Suche)
linke Blöcke
Content-Fenster (mittlere Blöcke + Modul-Inhalte)
rechte Blöcke
Footer (Impressum, Kontakt, Banner, RSS usw.)
4.1 Die Startseite und ihre Funktionen
25
Welches Modul bei Aufruf der Startseite seine Ausgaben an den ContentBlock schicken soll, wird in den allgemeinen Einstellungen unter „Startseite“ eingestellt.
Seitenkopf / Header: Hier befindet sich meist ein Logo, in der Regel auch ein Suchfeld. Auch eine Menüleiste lässt sich hier gut unterbringen.
Seitenfuß / Footer: Hier werden üblicherweise Kontaktinformationen hinterlegt, etwa die Adresse, Links zum Impressum, Kontaktformulare oder ähnliches. Die Informationen stammen aus den allgemeinen Einstellungen.
Dreispaltiges Layout: Die linke und rechte Spalte werden meist ausschließlich mit Blöcken – den sogenannten Sideblocks – belegt. Im mittleren Bereich, dem Content-Fenster, befinden sich Blöcke und der eigentliche Inhalt einer PostNuke-Seite.
4.1.1 Linke Spalte
Ein Menü-Block, der das Hauptmenü enthält.
Ein Block, der anzeigt, wie viele Besucher und Mitglieder sich momentan im System befinden.
Ein Block zur Sprachauswahl für die Oberfläche. Zeigt alle installierten Sprachen an, in unserer Beispielinstallation also Deutsch und Englisch.
4.1.2 Mittlere Spalte / Content-Fenster
Ein Block für eine Nachricht von Administratoren
Die neuesten Beiträge (dies ist ausnahmsweise kein Block, sondern die Ausgabe eines Moduls, in diesem Fall des StoryModuls).
4.1.3 Rechte Spalte
26
Ein Block namens „weitere Beiträge“, der Links auf andere Artikel enthält.
Ein Umfrage-Block.
Ein Block, der auf den meist gelesenen (bzw. aufgerufenen) Beitrag hinweist.
4 Umgang mit PostNuke
Der Anmelde-Block, mit dem sich Benutzer am System anmelden können.
Je nach Gestaltung der Inhalte im CMS wird PostNuke hier weitere Blöcke kontext-sensitiv anzeigen.
4.2 Anmelden am System (Login) Wie bereits erwähnt findet sich meist ein Block namens Anmeldung auf der PostNuke-Startseite. Es genügt, Ihren PostNukeBenutzernamen (z.B. Admin) und das entsprechende Passwort in die Felder einzugeben. Der Block kann noch weitere Funktionen wie Selbst-Registrierung von Benutzern anbieten. Durch den LoginVorgang wird eine so genannte Session (zu deutsch etwa „Sitzung“) erzeugt. Diese gilt so lange, bis Sie sich wieder abmelden oder vom System automatisch abgemeldet werden, je nach Konfiguration in den allgemeinen PostNuke-Einstellungen, die durch den Administrator vorgenommen werden kann. Mit http://servername/postnuke/html/user.php rufen Sie in jedem PostNuke-System Funktionen wie Anmeldung, Registrierung oder vergessenes Passwort anfordern auf. Dies ist zum Beispiel nützlich, falls kein dafür zuständiger Block vorhanden sein sollte. Abb 4.2: Die user.php – einmal im ausgeloggten, dann im eingeloggten Zustand
4.3 Benutzerspezifische Konfiguration Unter dem Link Einstellungen im Hauptmenü können PostNuke-Benutzer sich ihr System zu einem gewissen Grad individuell anpassen. Die wichtigsten Einstellungen sind:
4.2 Anmelden am System (Login)
27
Startseite einstellen: Anzahl der anzuzeigenden Artikel auf der Startseite plus Angabe eines persönlichen Menüs (z.B. sinnvoll für einen persönlichen ToDo-Zettel). Der Inhalt dieses Menüs ist frei definierbar und kann auch HTML-Code enthalten.
Theme-Auswahl: Ist die Einstellung dürfen Benutzer Theme individuell einstellen im Bereich Administration - Einstellungen gesetzt, so dürfen Benutzer hier ihr favorisiertes Theme aussuchen.
Kommentar-Konfiguration: Hier lassen sich Ansicht, Sortierung und Länge von Kommentaren einstellen. Darüber hinaus kann hier angegeben werden, ob Wertungen angezeigt werden sollen. Auch im Falle der Wertungsunterdrückung werden Wertungen weiter angewendet, jedoch nicht mehr angezeigt.
4.4 Benutzer-Verwaltung In 0.750 Gold: Um Benutzer editieren oder löschen zu können, müssen Sie deren Benutzernamen eingeben, da es keine Auswahlliste für bestehende Benutzer gibt.
Das Anlegen, Editieren und Löschen von Benutzern erfolgt unter Administration - Benutzer-Administration.
4.4.1 Benutzer anlegen Um später als „normaler“ Benutzer einen Artikel im System einreichen zu können, legen Sie zum Test einen Benutzer mueller an, der im Laufe des Kapitels noch eine Rolle spielen wird. Gehen Sie dazu wie folgt vor: 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 3. Klicken Sie auf das Icon Benutzer-Administration. 4. Legen Sie unter Neuen Benutzer hinzufügen einen neuen Benutzer an, beispielsweise mit Namen mueller. Der neue Benutzer (der automatisch Standard-Benutzerrechte zugewiesen bekommen hat) darf später
28
4 Umgang mit PostNuke
das Portal und alle Module verwenden (hat mindestens lesenden Zugriff auf alle Bereiche)
Artikel und anderen Content wie Downloads oder Link-Listen erstellen (aber nicht freigeben)
Content kommentieren oder bewerten
hat aber keine Rechte, um das Gesamtsystem PostNuke zu administrieren.
4.4.2 Kennwort vom System zurücksetzen lassen/neues Kennwort anfordern Als Benutzer haben Sie die Möglichkeit, sich ein neues Passwort von PostNuke zusenden zu lassen, wenn Sie Ihr altes Passwort vergessen haben sollten. Diese Funktion wird nicht direkt im LoginBlock angeboten. Gehen Sie dazu wie folgt vor: 1. Nutzen Sie im ausgeloggten Zustand den Link Vergessenes Kennwort anfordern direkt über den Aufruf der nachfolgenden URL: http://<servername>/postnuke/html/user.php. 2. Geben Sie zunächst nur Ihren Benutzernamen und Ihre im System eingetragene E-Mail-Adresse an. Sie erhalten eine EMail mit einem Bestätigungscode (wenn Ihre ServerUmgebung für den Versand von E-Mail eingerichtet ist). 3. Diesen Code geben Sie nach Klick auf den Zurück-Link im gleichen Formular zusätzlich mit an. Im Anschluss wird Ihnen eine zweite E-Mail zugestellt, die Ihr neu zugeteiltes Passwort enthält.
4.4.3 Passwort eines Benutzers zurücksetzen 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 3. Klicken Sie auf das Icon Benutzer-Administration.
4.4 Benutzer-Verwaltung
29
4. Geben Sie den Namen des Benutzers ein, dessen Passwort geändert werden soll, wählen Sie modifizieren aus und klicken Sie auf Ok. 5. Im folgenden Dialog können Sie das neue Passwort vergeben.
4.4.4 Dynamische Benutzerdaten Unter Benutzer-Administration – dynamische Benutzerdaten können weitere, eigene Attribute zu Benutzerdaten definiert werden, falls Ihnen die Standard-Attribute bei der Benutzerpflege nicht ausreichen.
4.5 Gruppen Unter Administration - Gruppen können Sie einzelne Benutzer in beliebigen Gruppen zusammenfassen. Das sollten Sie immer dann machen, wenn mehrere Benutzer dieselben Aufgaben durchführen sollen oder Sie nicht jedem Benutzer Zugriffsrechte separat vergeben möchten. Die Vorteile liegen auf der Hand:
potentielle Minimierung des Verwaltungsaufwands
die Rechtevergabe für Gruppen ist sicherer, logischer und ist weniger fehleranfällig als die Rechtevergabe an einzelne Benutzer
schneller Wechsel der Gruppenzugehörigkeit ist möglich
Rechte können durch Zugehörigkeit von Benutzern in mehreren Gruppen kumuliert werden.
Standardmäßig sind die Gruppen Admins und Users vorhanden. Alle ausgeloggten Benutzer gehören automatisch zur Gruppe „unregistrierte (Gruppe)“. Die unregistrierte Gruppe ist nur ein logisches Konstrukt und kann daher im Gruppenmodul nicht administriert werden. Im Berechtigungsmodul können den „Unregistrierten“ aber durchaus Rechte zugewiesen werden – genau so wie der Gruppe „alle Gruppen“, die ebenfalls nur ein logisches Konstrukt darstellt.
30
4 Umgang mit PostNuke
Wird ein Benutzer oder eine Gruppe gelöscht, werden auch alle zugehörigen Zugriffsrechte gelöscht. Löschen Sie eine Gruppe, der noch Benutzer zugeordnet sind, so bleiben die Benutzer erhalten. Die Benutzer haben dann im schlimmsten Fall keine Gruppenzugehörigkeit mehr, und gehören auch nicht zur Gruppe der unregistrierten Benutzer! Nimmt man den Benutzern im eingeloggten Zustand die Gruppenzugehörigkeit weg, haben diese sofort keine Berechtigungen mehr auf das System, können sich also auch nicht mehr ausloggen. Um dann noch lesenden Zugriff auf das Portal zu bekommen, müssen diese sich manuell über den Aufruf der URL http://servername/postnuke/ html/user.php?module=NS-User&op=logout abmelden – oder einfach die lokalen Cookies löschen.
Löschen von Benutzern und Gruppen
Der eigentliche Sinn von Benutzern und Gruppen liegt in der Zuweisung von Berechtigungen, was in diesem Kapitel noch kurz erläutert werden wird. Genauere Details zu Berechtigungen finden sich dann im gesonderten Kapitel Sicherheit.
4.6 Blöcke und Module 4.6.1 Grundlagen Blöcke und Module machen die Funktion, das Verhalten und letztlich auch das Aussehen einer PostNuke-Seite aus. Das CMS wird bereits in der Grundinstallation mit einer für den Anfänger unübersichtlichen Zahl von Blöcken und Modulen ausgeliefert. Darüber hinaus gibt es im Internet hunderte weitere kostenlose oder kostenpflichtige Funktionsbausteine zum Download. Ein Modul ist ein eigenständiges Programm innerhalb von PostNuke, zuständig für eine ganz bestimmte, mehr oder minder komplexe Aufgabe, z.B. zur Verwaltung einer Adress-Datenbank oder einer Download-Sektion. Die Dateien zu Modulen finden sich im Dateisystem von PostNuke unterhalb von postnuke/html/modules. Blöcke sind die kleinste, frei positionierbare Informationseinheit, die das CMS PostNuke darstellen kann. Blöcke können links, mittig
4.6 Blöcke und Module
31
oder rechts positioniert werden. Letztlich ist es Sache eines Themes, ob es diese drei Einstellmöglichkeiten überhaupt umsetzt. Die meisten Themes arbeiten jedoch mit der klassischen Seitenaufteilung „linke Blöcke – Content Fenster in der Mitte – rechte Blöcke“. Es gibt zwei verschiedene Blockarten:
Autarke Blöcke mit überschaubarem eigenen Funktionsumfang. Diese werden im postnuke/html/includes/blocksVerzeichnis abgelegt und dadurch dem Modul „Core“ (dem PostNuke-Kernel) zugeordnet.
Modulblöcke, die nur in Verbindung mit einem Modul arbeiten. Ein Modul legt seine Blockdateien im jeweiligen Modulverzeichnis unterhalb von postnuke/html/modules/ <modulname>/pnblocks ab.
Ältere Module haben in der Vergangenheit ihre Blockdateien ebenfalls in postnuke/html/includes/blocks abgelegt. Daher sind einige Blöcke dem Core zugeordnet, die eigentlich einem Modul angehören. Darüber hinaus gibt es Module ohne Blöcke und ohne direkte Ausgabe im Content-Fenster. Solche Module dienen zum Beispiel der Anbindung externer Editoren an PostNuke. Die Funktionen und Eigenschaften aller Core-Blöcke werden im Kapitel Blöcke erläutert. Die Modulblöcke werden zusammen mit ihrem jeweiligen Modul im Kapitel Module erläutert. Beachten Sie: Je mehr Blöcke oder Module auf der Seite aktiv sind, desto langsamer wird der Gesamtdurchsatz des Systems. Darüber hinaus steigt die Gefahr, sein System durch Sicherheitslöcher verwundbar zu machen. Installieren und aktivieren Sie also nur Blöcke und Module, die Sie wirklich brauchen. Alle restlichen sollten Sie deaktivieren und löschen. Welche Module minimal für ein CMS benötigt werden, ist z.B. im Kapitel pnmini ersichtlich. Anhand eines Beispiels soll die Installation von Blöcken und Modulen gezeigt werden. Interessante Module und Blöcke anderer Hersteller finden sich im ersten Anlauf auf der Homepage von PostNuke (http://www.postnuke.com) oder dem deutschen PostNuke-Portal (http://www.post-nuke.net).
32
4 Umgang mit PostNuke
Angenommen, die fiktive Firma benötigt für ihre Marketingabteilung einen kleinen Newsticker. Solch eine Funktion findet sich im Standard-PostNuke-Paket nicht, weder als Block noch als Modul. Mit einer Suche nach „Newsticker“ auf postnuke.com wird man aber schnell fündig (oder direkt vom Autor unter http://www.bytebros.cc). Laden Sie das Newsticker-Modul einmal in der neuesten Version herunter. Zur Installation des Moduls und seiner Blöcke gehen Sie vor wie im folgenden beschrieben.
4.6.2 Modul installieren 1. Entpacken Sie das ZIP-Archiv des Newsticker-Moduls. 2. Verschieben Sie alle extrahierten Dateien so ins postnuke/html/modules-Verzeichnis, dass sich dort der Ordner newsTicker findet, der die Dateien aus dem ZIP-Archiv enthält. In dem Ordner postnuke/html/modules/ newsticker müssen sich dann direkt Dateien wie pnadminapi.php, pnadmin.php usw. finden. Das Modul bringt eigene Blöcke mit, was man am Unterordner pnblocks erkennen kann.
Die Installationsbeschreibung ist unabhängig vom verwendeten Modul.
3. Wechseln Sie als Administrator in Ihr PostNuke-System. 4. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 5. Klicken Sie auf das Icon Module. 6. Durch Klick auf anzeigen werden alle bereits installierten Module aufgelistet. Hier taucht unser frisch eingefügtes Newsticker-Modul nicht auf, da die momentan angezeigte Liste aus der Datenbank geladen wird. Klicken Sie also auf erneut erzeugen, damit auch das langsamere Dateisystem nach Modulen durchsucht und damit die Liste aktualisiert wird. 7. Klicken Sie in der Modulauflistung beim Newsticker-Modul auf initialisieren. 8. Klicken Sie anschließend in der Modulauflistung beim Newsticker-Modul auf aktivieren. Das Modul ist installiert und wartet auf seinen Einsatz. Der Hauptmenü-Block enthält jetzt automatisch einen neuen Eintrag „newsTicker“, der auf die Benutzer-Oberfläche des Newsticker-Moduls ver-
4.6 Blöcke und Module
33
weist. Der Link funktioniert nur deshalb nicht, da dieses Modul keine Oberfläche für Standard-Benutzer anbietet. Abb. 4.3: Auszug einer ModulAuflistung unter Administration – Module
Die Administration des Moduls wird – wie bei allen Modulen – in der Administrations-Oberfläche von PostNuke vorgenommen (im linken Bereich der Seite – dem Hauptmenü-Block – über den Link Administration).
4.6.3 Modul administrieren Das Modul kann jetzt über ein eigenes Icon direkt in der Administrationsoberfläche von PostNuke konfiguriert werden. Legen Sie hier einige neue News-Einträge an, die später in einem Block auf der Oberfläche durchscrollen sollen. Wir werden nachher einen Block anlegen, der die News-Einträge auch auf der Oberfläche scrollbar anzeigt.
4.6.4 Aufruf von Modulen pnAPI-konforme Module (= newStyle-Module)
34
Module können neben der Nutzung von Icons in der Administration oder Links in der Oberfläche auf zwei direktere Arten aufgerufen werden, abhängig davon, ob man deren Administrations- oder die Benutzeroberfläche angezeigt bekommen möchte. Man muss nur die URLs dazu kennen, die folgendermaßen lauten:
Administrationsoberfläche des Moduls aufrufen: index.php?module=ModulName&type=admin[&func=Funktion]
Benutzeroberfläche des Moduls aufrufen: index.php?module=ModulName[&type=user][&func=Funktion]
4 Umgang mit PostNuke
Die Parameter bedeuten:
module=ModulName: weist die index.php an, das Modul mit dem angegebenen Namen zu laden, z.B. index.php?module=newsTicker
type=admin/user: legt fest, welche Benutzeroberfläche aufgerufen werden soll. Wird diese Angabe weggelassen, geht PostNuke standardmäßig davon aus, dass man die Benutzeroberfläche (= „user“) des Moduls laden möchte.
func=Funktion: Wird „func=Funktion“ angegeben, wird PostNuke versuchen, die angegebene Funktion im Modul auszuführen. Wird dieser Teil weggelassen, versucht PostNuke, das Hauptprogramm im Modul aufzurufen (die so genannte MainFunktion). Damit gelangt man auf die jeweilige Startseite des Moduls. Wird die Funktion nicht gefunden oder ist keine Main-Routine implementiert, erscheint die Fehlermeldung Failed to load module <ModulName> (at function: „
“).
Diese Art von URLs gilt nur für Module, die nach neueren Standards entwickelt wurden. Diese Module werden als „pnAPIkonform“ bezeichnet. Einige der Core-Module, die zu PostNuke mitgeliefert werden, stammen allerdings noch historisch aus Thatware- und PHPNuke-Zeiten und werden deshalb noch nach einem alten Standard aufgerufen. Dies wird sich in kommenden Versionen von PostNuke ändern. Der Vollständigkeit halber sei auch die alte Art und Weise des Aufrufs erläutert: ad-
Administrationsoberfläche des Moduls aufrufen: min.php[?module=ModulName][&op=Funktion]
Benutzeroberfläche des Moduls aufrufen: modules.php[?op=Funktion][&name=ModulName][&file=Datei]
Wird „op=Funktion“ nicht angegeben, ergänzt PostNuke dies automatisch zu „modload“, welche dann die unter „file=Datei“ angegebene PHP-Datei lädt. Ist „file“ nicht angegeben, wird nach einer index.php im angegebenen Modul gesucht. Wird der Parameter „name=ModulName“ für den Aufruf von Admin-Funktionen weggelassen, geht PostNuke dann ins Pleistozän der Nuke-Systeme zurück und versucht das Modul „PastNuke“ zu laden.
4.6 Blöcke und Module
old-StyleModule
Hinweis: „op“ kennt sogar nur den Parameter „modload“.
35
4.6.5 Modul deinstallieren Bevor Sie ein Modul deinstallieren wollen, löschen Sie über die Block-Administration erst dessen zugehörige Blöcke, falls Sie davon welche auf Ihrer Site einsetzen. Anschließend können Sie problemlos das Modul in der Modul-Administration deinstallieren und sogar aus dem Verzeichnissystem löschen.
4.6.6 Blöcke administrieren Über Administration – Blöcke erhalten Sie eine Liste mit allen installierten bzw. den auf Ihrer Seite aktiven Blöcken. Die wichtigsten Eigenschaften im Überblick:
36
Reihenfolge: Die Block-Liste ist gruppiert nach Blöcken, die zentriert, links und rechts angezeigt werden.
Position: Zeigt an, ob der Block links, mittig oder rechts angezeigt werden soll. Inhalte mittig positionierter Blöcke werden im Content-Fenster über der Ausgabe der Module angezeigt – jedoch ist das abhängig vom verwendeten Theme.
Titel: Der auf der CMS-Oberfläche angezeigte Titel des Blocks. Dieser wird auch verwendet, um für Blöcke Berechtigungen zu vergeben (siehe Kapitel Sicherheit). Wird der Titel bei der Erstellung des Blockes nicht angegeben, setzen die meisten Blöcke einen eigenen, vordefinierten Titel.
Modul: Gibt an, zu welchem Modul der Block gehört. Wird das zugehörige Modul entfernt, ohne den Block zu entfernen, erhält man im Block eine Fehlermeldung Block type not found. Der Block muss dann gelöscht und neu angelegt werden, da er auch nach einer Neuinstallation des Moduls nicht mehr funktionieren wird.
Name: Bezeichnet eigentlich den Typ des Blocks.
Sprache: Für welche ausgewählte Sprache soll der Block angezeigt werden? Hinweis: in der Liste gibt es zwei „Alle“Einträge. Wenn Sie einen Block immer anzeigen lassen wollen, egal welche Sprache über die Oberfläche ausgewählt wurde, müssen Sie immer den ersten „Alle“-Eintrag aus der Liste auswählen.
4 Umgang mit PostNuke
Optionen: Hier ist das Aktivieren/Deaktivieren, Editieren und Löschen von Blöcken möglich. Editieren ermöglicht das Ändern von Einstellungen im Block. Für jeden Block lässt sich hier immer der Titel, dessen Position, die Sprache und die Aktualisierungshäufigkeit für externe Inhalte einstellen (sollte der Block Inhalte externer Systeme einbeziehen, wird hier die Zeit angegeben, in welchen Intervallen die externen Quellen angezapft werden dürfen. In der Zwischenzeit wird sich der Block aus seinem Cache bedienen. Bei stark frequentierten PostNukeSeiten empfehlen wir das längste Refresh-Intervall, das Sie gerade noch verkraften können, um den Traffic auf die externen Server einzuschränken). Weitere Einstellungsmöglichkeiten sind vom Block abhängig.
Die Option Symbole zur Block-Verkleinerung unter Administration – Blöcke – konfigurieren sorgt dafür, dass Blöcke vom Benutzer eingeklappt/minimiert werden können. PostNuke merkt sich die Einstellungen auch nach der Abmeldung des Benutzers. Möchten Sie dafür andere Icons einsetzen, können Sie die Dateien upb.gif und downb.gif im Verzeichnis postnuke/html/images/global/upb.gif ersetzen.
Sollte ein Block keine Ausgabe erzeugen, wird er innerhalb der PostNukeOberfläche in der Regel ausgeblendet.
Hinweis: Wenn Sie bei einer mehrsprachigen Seite sprachabhängige Blocktitel einsetzen möchten (z.B. „Hauptmenü“ und „Main Menu“), müssen Sie für jede Sprache jeweils einen Block vom gleichen Typ anlegen und ihn in der Landessprache benennen. Ein englischer Block bekommt einen englischen Titel, gilt nur für die englische Sprache, wird sonst aber gleich konfiguriert wie ein deutscher Block. Das Sie so für ein und dieselbe Aufgabe mehrere Blöcke vom gleichen Typ administrieren müssen, ist nicht elegant. Sind für diese Blöcke Zugriffsregeln definiert, können diese entsprechend komplexer ausfallen. PostNuke verwaltet die Liste und die Eigenschaften der anzuzeigenden Blöcke übrigens in der Datenbank-Tabelle blocks.
4.6.7 Block hinzufügen Um einen Block aus dem Newsticker-Modul hinzuzufügen, gehen Sie wie folgt vor:
4.6 Blöcke und Module
37
1. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 2. Klicken Sie auf das Icon Blöcke. 3. Wählen Sie neuer Block – Titel: Marketing-News – Block: newsTicker/Scrolling News Ticker – Position: links – Sprache: alle (der erste Eintrag in der Liste) – Übernehmen – Übernehmen. Da das Newsticker-Modul die Festlegung weiterer BlockEigenschaften ausnahmsweise in die Modul-Administration verlegt, müssen hier keine weitere Blockeigenschaften festgelegt werden. Abb. 4.4: Der NewstickerBlock
4.6.8 Hauptmenü-Block dynamisieren Editieren Sie den Block Hauptmenü und
schalten Sie die Anzeige von „Modulen“ und „zu prüfen“ ein.
löschen Sie aus dem Inhalts-Bereich alle Zeilen nach „Logout“ (oder verwenden Sie diese Zeilen für eigene Menüpunkte).
Damit wird der Menü-Block hochdynamisch und passt sich dem Umfang der Installation automatisch an.
4.7 WYSIWYG HTML-Editor „Type Tool“ Wenn Sie im Stories-Modul mit Type Tool arbeiten, verwenden Sie als Formatierungstyp „HTML vorformatiert“.
In der zum Redaktionsschluss vorliegenden Version wird der z.B. im Stories-Modul eingebundene WYSIWYG HTML-Editor Type Tool in der Version 8.0 verwendet. Der Editor „Type Tool“ erlaubt die Formatierung von Texten ohne Programmier- und HTMLKenntnisse wie aus den meisten Office-Programmen gewohnt. Nach dem Abspeichern ist der Artikel genau so wieder abrufbar, wie er vom Benutzer eingegeben und formatiert wurde.
Abb. 4.5: Symbolleisten des Type ToolEditors
38
4 Umgang mit PostNuke
Type Tool aktiviert man über Administration – typetool – Type Tool aktivieren. Der Editor wird allerdings erst bei einem Klick in ein Text-Eingabefeld aktiviert – und auch erst nach Bestätigung der erscheinenden Abfrage. Wenn Sie TypeTool das erste Mal für die Erstellung eines Artikels einsetzen und beispielsweise andere Schriftgrößen oder Schriftauszeichnungen wie Fettdruck verwenden, funktioniert das im Editor ohne Probleme. Spätestens bei Abruf des Artikel über die Startseite werden Sie enttäuscht sein: einige Formatierungen werden einfach als HTML-Code ausgegeben statt korrekt interpretiert zu werden. Die Lösung ist einfach: nicht alle HTML-Tags sind nach der Standard-Installation freigeschaltet. Sie müssen Formatierungs-Tags wie oder erst explizit erlauben. Klicken Sie dazu im linken Bereich der Seite – dem Hauptmenü-Block – auf den Link Administration und anschließend auf das Icon Einstellungen.
4.8 Content-Pflege: Den ersten Artikel erstellen Dieser Abschnitt beschreibt die Pflege von Artikeln im CMS. PostNuke behandelt dabei Administratoren und Standard-Benutzer unterschiedlich. Von Standard-Benutzern erstellte Artikel sind nie sofort im System abrufbar, sondern müssen von Administratoren erst kategorisiert und freigegeben werden. Da PostNuke nach einer Neuinstallation nur einen Benutzer – den Administrator – kennt, zeigen wir die Erstellung eines Artikels zunächst aus Sicht eines Administrators. Im anschließenden Unterkapitel legen wir einen Standard-Benutzer mit weniger Rechten an, dessen erstellten Artikel ein Administrator anschließend freigeben soll. Dies ist der Standard-Workflow bei Einsatz eines Content Management Systems.
Im CMS-Umfeld weit verbreitet: Benutzer/ Autoren erstellen Artikel, Administratoren/Redakteure geben diese frei.
4.8.1 Als Administrator In unserem Beispiel erstellen Sie nun als Administrator einen Artikel. Wenn Sie Ihre PostNuke-Seite aufgerufen haben, sehen Sie auf
4.8 Content-Pflege: Den ersten Artikel erstellen
39
der rechten Seite einen Login-Block. Loggen Sie sich mit dem in der Installation konfigurierten Admin-Account ein (Benutzername: Admin, Passwort: das bei der Installation vergebene Admin-Passwort). Um Ihren ersten eigenen Artikel zu erstellen, gehen Sie bitte folgendermaßen vor: 1. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 2. Klicken Sie auf das Icon Beitrag hinzufügen. 3. Lassen Sie uns der Welt in einem Artikel mitteilen, dass wir eine neue PostNuke-Seite aufgesetzt haben. Geben Sie dem Artikel einen aussagekräftigen Titel wie Unsere neue Webseite auf Basis von PostNuke ist online. 4. Wählen Sie einen so genannten Topic aus. Eine frische PostNuke-Installation kennt nur die beiden Topics PostNuke und Linux. Wählen Sie zunächst das PostNuke-Topic aus. Wir werden in einem der nächsten Abschnitte genauer erläutern, was es mit den Topics auf sich hat. 5. Wählen Sie die zur Zeit einzig mögliche Kategorie Beiträge aus. Auch hier wird einer der nächsten Abschnitte Aufschluss über diese Einstellmöglichkeit geben. 6. Möchten Sie den Artikel direkt auf Ihrer Startseite angezeigt bekommen? Dann wählen Sie auf der Startseite – ja. 7. Wenn es Besuchern Ihrer Seite erlaubt sein soll, Kommentare zu diesem Artikel zu verfassen, wählen Sie Kommentare erlauben – ja. 8. Wenn Ihre PostNuke-Installation mehrere Sprachen unterstützt und Ihr Artikel unter jeder ausgewählten Sprache angezeigt werden soll, wählen Sie Sprache – Alle. Für diesen ersten Artikel soll diese Einstellung genügen. 9. Verfassen Sie unter Beitrag Text einen kurzen Einleitungstext. Hier sollte erwähnt werden, worum es in dem folgenden Artikel geht und warum es sich lohnt, ihn zu lesen. Wenn Sie HTML-Kenntnisse haben, können Sie hier HTMLCode verwenden. Den WYSIWYG-Editor werden wir später in diesem Kapitel hinzuschalten.
40
4 Umgang mit PostNuke
Formatierungstyp – HTML vorformatiert: Zeilenumbrüche müssen hier ausschließlich über den HTML-Tag
vorgenommen werden. Diesen Formatierungstyp sollten Sie auch immer dann verwenden, wenn Sie über den WYSIWYG-Editor Artikel erstellen.
Formatierungstyp – Text (mit erlaubtem HTML): Hier führt jeder manuelle Zeilenumbruch mittels Return-Taste UND ein
zu einem Zeilenumbruch in der Anzeige des Artikels.
Bei Verwendung des WYSIWYGEditors sollte immer der Formatierungstyp „HTML vorformatiert“ verwendet werden.
10. Das Eingabefeld erweiterter Text beinhaltet den eigentlichen Artikel. Auch hier kann wieder HTML verwendet werden. Für die Formatierungstypen gilt dasselbe wie zuvor beschrieben. 11. Um ein Gefühl für die Aufteilung in Beitrag Text und erweiterter Text zu bekommen, schauen Sie sich die Seite http://www.spiegel.de an. Auch hier unterteilen sich sämtliche Artikel in eine Kurzeinleitung (Beitrag Text) und dem eigentlichen Inhalt des Artikels (erweiterter Text), welcher erst durch klicken auf den mehr...-Link sichtbar wird. 12. Der Inhalt des Feldes Anmerkung wird bei der Anzeige unter dem Artikel kursiv dargestellt. Das Feld kann zum Beispiel für Quellangaben genutzt werden. 13. Wenn Sie den Artikel zu einem gewissen Zeitpunkt auf der Homepage erscheinen lassen wollen, programmieren Sie den Erscheinungszeitpunkt. Sinnvoll ist solch eine Funktion beispielsweise für Artikel, die zu Weihnachten oder Silvester erscheinen sollen. Eine andere Anwendung findet sich im Bereich Investor Relations einer Firma. Hier ist es sehr wichtig, bestimmte Nachrichten genau ab einem bestimmten Zeitpunkt erscheinen zu lassen, z.B. zum Termin einer Hauptversammlung. Als Administrator haben Sie jetzt die Möglichkeit, Ihren erstellten Artikel vor dem Erscheinen auf der Homepage noch einmal anzuschauen oder diesen sogar sofort freizugeben. Wir nutzen unser Admin-Privileg und geben unseren Artikel sofort frei. Nach dem Wechsel auf die Startseite sehen wir unseren ersten eigenen Artikel. Wenn wir zur Ansicht des Artikels wechseln (durch Klick auf weiterlesen...), dürfen wir diesen auch wie-
4.8 Content-Pflege: Den ersten Artikel erstellen
41
der editieren oder sogar löschen. Sobald die Änderungen gespeichert sind, sind diese den Besuchern Ihrer Seite verfügbar.
4.8.2 Als Benutzer Autoren sind Benutzer mit erweiterten Rechten zur Artikel-Erstellung
Um als Autor einen Artikel zu erstellen, gehen Sie dazu wie folgt vor: 1. Loggen Sie sich als Benutzer im System ein, z.B. mit dem eben erstellten Benutzer mueller. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – unter dem Unterabschnitt Modules auf den Link Beiträge einreichen. 3. Als Benutzer darf man „nur“ Artikel-Attribute wie Titel, Topic, Sprache, Text und erweiterter Text pflegen. 4. Der Artikel kann erst nach einer Vorschau zur Freigabe versendet werden. Der Artikel ist damit noch nicht im Portal verfügbar, auch nicht über die Suchmaschine des CMS. Dazu muss der Administrator ihn erst freigeben.
4.8.3 Freigabe von Artikeln Um von Benutzern erstellte Artikel freizugeben, gehen Sie wie folgt vor: Abb. 4.6: Der Wartend-Block: Hier wartet Content auf Freigabe
1. Loggen Sie sich als Administrator im System ein. 2. Sind nicht freigegebene Artikel im System vorhanden, erscheint auf der linken Seite ein Block namens wartend, über den Sie zum Freigabe-Dialog gelangen. 3. Der Artikel kann hier vom Administrator noch einmal nachbearbeitet und anschließend freigegeben werden.
42
4 Umgang mit PostNuke
4.9 Einrichtung einer echten Autoren-Gruppe Die Anforderung unserer fiktiven Firma verlangt, dass unterschiedliche Berechtigungen für Administratoren, für Autoren und „normale“ Benutzer des Systems festgelegt werden sollen.
Besucher der Internet-Seite
Benutzer: Benutzer dürfen nur lesend auf das Portal zugreifen, also keinen Content erstellen. Diese Gruppe wird z.B. für Praktikanten verwendet.
Autoren: Autoren besitzen zusätzlich das Recht, Artikel zu erstellen und zu bearbeiten, dürfen diese aber nicht freigeben oder löschen und haben darüber hinaus keine administrativen Aufgaben zu erfüllen. Unser Benutzer mueller wird also in die Gruppe der Autoren wechseln.
Administratoren: diese sollen nach wie vor PostNuke in vollem Umfang administrieren dürfen.
Um diese Anforderungen umzusetzen, müssen Sie als Admin zunächst eine neue Gruppe Autoren erzeugen, zu der Sie den Benutzer mueller zuordnen müssen. Der Benutzer gehört damit zur Users- und zur Autoren-Gruppe. Beide Vorgänge – das Erzeugen der Gruppe als auch die Benutzer-Zuordnung – führen Sie im Modul Gruppen durch, welches sich unter Administration – Gruppen findet. Wechseln Sie nun in die Administration des Moduls Zugriffsrechte (im linken Bereich der Seite – dem Hauptmenü-Block – unter dem Link Administration - Zugriffsrechte). Der Gruppe Users muss jetzt das Recht genommen werden, Inhalte dem Portal hinzufügen zu dürfen. Dazu müssen Sie die dritte Berechtigungs-Regel Gruppe: Komponente: Instanz: Berechtigung:
Die Verwendung der Begriffe „Stories-Modul“ und „NewsModul“ ist synonym und bezeichnet immer das „News“Modul. Das Modul „AddStory“ ist für Admins, „Submit News“ für Benutzer gedacht.
Users .* .* kommentieren
abändern auf Gruppe:
Users
4.9 Einrichtung einer echten Autoren-Gruppe
43
Komponente: .* Instanz: .* Berechtigung: lesen Die Berechtigung „kommentieren“ reicht aus, um Inhalte erzeugen zu dürfen. Das Recht „lesen“ verhindert dies. Damit können jetzt Praktikanten problemlos der Gruppe Users hinzugefügt werden. Im Anschluss daran erzeugen Sie eine neue Gruppenberechtigung für die Gruppe der Autoren, die folgendermaßen aussieht: Gruppe: Komponente: Instanz: Berechtigung:
Autoren (Stories::.*)|(Submit news::) .* editieren
Diese Regel erteilt allen Benutzern der Autoren-Gruppe im Stories- oder Submit-News-Modul Editieren-Rechte. Mit dem Recht „Editieren“ kann ein Autor auch Kategorien editieren.
(Stories::.*)|(Submit news::) Recht gilt für alle Bereiche aus dem Stories-Modul oder für das gesamte Submit News-Modul
.* Recht gilt für alle konkreten Objekte dieser Module, also z.B. für alle Artikel oder Kategorien.
Achten Sie darauf, dass die neu erzeugte Berechtigung, die jetzt am Ende der Liste erscheint, unbedingt VOR dem Eintrag Users|.*|.*|lesen angeordnet wird. Abb. 4.7: Die Gruppenrechte unter Administration – Zugriffsrechte
Grund: In PostNuke werden Rechte von oben nach unten abgearbeitet Trifft eine Regel für einen Bereich zu, wird für diesen Bereich keine weitere Regel ausgewertet. Sollen also die Autoren für einen
44
4 Umgang mit PostNuke
Bereich andere Rechte als die Gruppe Users erhalten, müssen die Rechte erst den Autoren gewährt und dann den Users entzogen werden. Das Zugriffsrechte-Konzept ist sehr mächtig. Für Details sei daher auf das Kapitel Sicherheit verwiesen.
4.10 Topics Topics (zu deutsch „Themen“) bieten die Möglichkeit, Artikel in Themenbereichen zusammenzufassen. Nach einer Installation sind nur die beiden Topics „PostNuke“ und „Linux“ vorhanden. Für eine Webseite mit Artikeln über Linux und den Betrieb von PostNuke mag das ausreichen, im Falle unserer fiktiven Firma jedoch nicht. Nehmen wir daher an, dass Besucher Ihrer Seite zielgerichteter auf interessante Informationen geleitet werden sollen: ein Topic „Presse“ soll eingerichtet werden. Andere Topics wären „Service“, „Jobs“, „Produkte“, „Über uns“, „Investor Relations“ u.a. Gehen Sie wie folgt vor: 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration. 3. Klicken Sie auf das Icon Topics. 4. Im Bereich neues Topic hinzufügen müssen nun die gewünschten Werte eingegeben werden:
Topic Name: Der Topic-Name wird intern verwendet, beispielsweise bei der Rechtevergabe. Prinzipiell kann er beliebig gewählt werden, im Interesse der Übersichtlichkeit sollte er aber dem Topic-Text angepasst sein. Hier wird zwischen Groß- und Kleinschreibung unterschieden, geben Sie daher am besten presse ein.
Topic-Text: Der Topic-Text ist für die Besucher an mehreren Stellen sichtbar, beispielsweise im Titel eines Artikels oder auf der Suchseite. Er sollte daher aussagekräftig und selbstbeschreibend sein. Geben Sie hier Presse ein.
4.10 Topics
45
Topic Bild: Optional können Sie ein Bild angeben, das je nach Theme zusätzlich zum Artikel angezeigt wird (jedoch nicht im ExtraLite-Theme).
5. Ein Klick auf Topic hinzufügen und Sie sind fertig. Jetzt können Artikel auch in diesen Themenbereichen erzeugt werden.
4.11 Kategorien Topics gelten systemweit auch in anderen Modulen, Kategorien gelten nur im StoriesModul.
Kategorien stellen im Stories-Modul eine zusätzliche Strukturierung von Artikeln dar und ermöglichen es dem Administrator, Artikel nach anderen Gesichtspunkten als nach Topics zu gruppieren. Kategorien wären beispielsweise „Artikel“, „Exklusiv-Bericht“, „Frisch eingetroffen“, „2005“, „wichtig“ o.ä., Bereiche also, die in jedem Topic verwendet werden könnten. Im weitesten Sinne dienen Themen der vertikalen, Kategorien der horizontalen Gruppierung von Artikeln. Um Kategorien zu definieren, gehen Sie wie folgt vor: 1. Loggen Sie sich als Administrator im System ein. 2. Klicken Sie im linken Bereich der Seite – dem HauptmenüBlock – auf den Link Administration.
Wird eine Kategorie gelöscht, können auch alle der Kategorie zugehörigen Artikel gelöscht oder in eine andere Kategorie verschoben werden.
3. Klicken Sie auf das Icon Beitrag hinzufügen. 4. Neben der Dropdown-Listbox Kategorie befinden sich die Links zur Kategorie-Administration. Wählen Sie hinzufügen. Folgende Informationen müssen Sie nun angeben:
Kategorie-Name: beispielsweise „2005“.
Theme überlagern: Ggf. ein Theme, das für diese Kategorie genutzt werden soll. Wählen Sie hier zunächst „Theme nicht überlagern“. Damit erscheint der Beitrag im standardmäßig eingestellten Theme „ExtraLite“.
5. Über sichern legen Sie die Kategorie an.
46
4 Umgang mit PostNuke
4.12 Wiki Eine alternative Möglichkeit, Texte mit Textauszeichnungen zu versehen, ist die Verwendung von Wiki-Syntax (wiki = hawaiianisch für „einfach“). Hier werden Textstellen mittels einfacher Regeln – meist durch das Einschließen in bestimmte Zeichenfolgen – später bei der Ausgabe kursiv oder fett gedruckt. Sie geben die sogenannten Wiki-Codes einfach mit dem Text ein. Die Vorschau-Funktion eines Artikels zeigt bereits das endgültige Erscheinungsbild.
4.12.1 Aktivierung von Wiki Hierzu müssen Sie unter Administration - Module in der Liste der vorhandenen Module auf den Link editieren des News-Moduls klicken und dort die Checkbox Aktiviere Wiki für dieses Modul selektieren (Stichwort: Hooks; diese werden gleich erläutert). Für jedes andere Modul gilt dieser Mechanismus analog.
Die Aktivierung von Wiki macht nur bei Modulen Sinn, in denen Sie Texte pflegen können.
4.12.2 Grundlegende Formatierungen (Wiki-Syntax) Erstellen Sie einfach einen neuen Artikel und geben Sie beispielsweise ___Hallo___ ein. Dabei ist es unerheblich, ob Sie TypeTool verwenden oder nicht. Auch der Formatierungstyp spielt keine Rolle. PostNuke sollte den Begriff Hallo nach der Speicherung des Artikels fett gedruckt darstellen. Weitere Formatierungsmöglichkeiten sind: Zeilenumbruch: Trennlinie: Kursiv: Fett: Fett-kursiv:
%%% ---__kursiv__ ___fett___ _____fkursiv_____
3 x Prozent 4 x Bindestrich 2 x Unterstrich 3 x Unterstrich 5 x Unterstrich
Auch beim Einfügen von Links ist die Wiki-Systax hilfreich. Eingeschlossen in eckige Klammern wird beispielsweise bei der Eingabe von [http://www.postnuke.de] oder [Postnuke.de|http:// www.postnuke.de] ein Link zu dieser Seite erzeugt, im zweiten Fall
4.12 Wiki
47
wird dazu der Text „Postnuke.de“ verlinkt. Links zu Bilddateien führen dazu, dass dieses Bild in den Text eingefügt wird. Mit [http://www.google.de/logos/Logo_60wht.gif] binden Sie beispielsweise das Google-Suchmaschinen-Logo in Ihren Artikel ein.
4.13 Hooks Eine StandardInstallation bietet Hooks der Module AutoLinks, Ratings und Wiki.
Hooks (= englisch für „Haken/einhaken“) sind Modul-Funktionen, die auf Ereignisse (Events) in anderen Modulen reagieren. Sie sind demnach Routinen, die automatisch aufgerufen werden, wenn bestimmte Ereignisse im System wie die Speicherung oder Löschung von Content o.ä. stattfinden. Das News-Modul kann beispielsweise vor der Ausgabe eines Artikels den PostNuke-Kernel um den Aufruf aller Hooks bitten, die für das News-Modul aktiviert wurden. Nehmen wir an, AutoLinks hat einen Umformungs-Hook implementiert, und AutoLinks sind für das News-Modul aktiviert. Die Hook-Routine des AutoLinks-Moduls wartet darauf, Content anderer Module entgegenzunehmen und Text gegen Links zu ersetzen, den Content also umzuformen (Transform-Hook).
Abb. 4.8: Ablauf eines HookCalls
News-Modul (Content-Anzeige)
Hook-Tabelle: News + AutoLinks
AutoLinks-Modul (Content-Transform)
PostNuke-Kernel (pnMod)
Call von Hooks mittels pnModCallHooks()
Rückgabe an Kernel
Aufruf, Weitergabe der Content-URL
Weder weiß das News-Modul, welche nachfolgenden Module per Hook-Aufruf seinen Content weiterverarbeiten, noch weiß das AutoLinks-Modul irgendetwas über das News-Modul (außer die Adresse zu dem Content, den es von diesem geliefert bekommt). Der PostNuke-Kernel kümmert sich im richtigen Moment um das Zusammenschalten und die Koordination. Damit sind Hooks eine sehr elegante und flexible Möglichkeit, Module miteinander zu verheiraten.
48
4 Umgang mit PostNuke
Mit dieser auch im Windows-Umfeld weit verbreiteten Technologie wird eine Zusammenarbeit zwischen Modulen ermöglicht, ohne dass sich die Module explizit untereinander kennen oder für einander entwickelt sein müssen. Nicht alle Module nutzen Hooks bei allen Ereignissen, und nicht alle Module stellen Hooks für alle Ereignisse zur Verfügung. Es ist immer Sache des Modul-Entwicklers, Funktionen seines Moduls per Hook auch anderen Modulen zur Verfügung zu stellen. Dagegen gehört es zum guten Stil der PostNuke-Modulprogrammierung, an entsprechenden Stellen im eigenen Modulcode die passenden Hooks im System aufzurufen. Wann genau welcher Hook aufgerufen wird, ob zum Beispiel sofort nach dem Auslesen aus der Datenbank oder erst kurz vor der Darstellung eines Artikels, ist Sache des Modulentwicklers. Die Hook-Konfiguration findet sich in der Administration der Module. Ist unter Administration – Module – News – editieren der Hook für AutoLinks aktiviert, wird jeder NewsArtikel nach dessen Generierung und vor dessen Ausgabe durch das AutoLinks-Modul manipuliert. Sie können dies testen, in dem Sie den AutoLinks-Hook für das News-Modul aktivieren, im AutoLinks-Modul einige Schlagwörter mit Verlinkung anlegen und anschließend einen News-Artikel mit diesen Schlagwörtern erstellen. Gehen Sie dazu wie folgt vor: 1. Autolinks aktivieren: Klicken Sie im linken Bereich der Seite – dem Hauptmenü-Block – auf den Link Administration. 2. Klicken Sie auf das Icon Module. 3. Klicken Sie beim Modul News auf den Link editieren. 4. Aktivieren Sie die Checkbox Aktiviere für dieses Modul.
AutoLinks
AutoLinks sind nicht casesensitiv (nicht abhängig von Groß/Kleinschreibung)
5. Autolinks anlegen: Klicken Sie im linken Bereich der Seite – dem Hauptmenü-Block – auf den Link Administration. 6. Klicken Sie auf das Icon AutoLinks, dann auf AutoLink hinzufügen. 7. Erstellen Sie einen Eintrag mit dem Schlüsselwort „PostNuke“, dem Titel „zur PostNuke Homepage“ und der URL „http://www.postnuke.com“. 8. Erstellen Sie einen neuen News-Artikel, der den Begriff „PostNuke“ enthält.
4.13 Hooks
49
9. Sobald der Artikel freigegeben ist, wird das Wörtchen „PostNuke“ vor der Anzeige automatisch mit einem AutoLink ersetzt. Für weitere Details zu Hooks sei auf das Kapitel Die PostNukeProgrammierung verwiesen.
4.14 Zusammenfassung Sie haben einen Gesamtüberblick über PostNuke erhalten und sind mit allen relevanten Teilen in der Bedienung und Administration in Berührung gekommen. Jetzt sind Sie in der Lage, PostNuke auf eigene Faust weiter zu erkunden.
4.15 Ausblick Als nächstes werden Sie mit der Absicherung Ihres Systems vertraut gemacht. Das beinhaltet die Konfiguration Ihrer Server-Umgebung und geht bis zur Einrichtung von Berechtigungen im PostNukeSystem.
50
4 Umgang mit PostNuke
5 Sicherheit
Die Absicherung eines PostNuke-Systems beginnt wie immer an der Basis – bei Hardware und Betriebssystem. Eine PostNukeInstallation kann nur so sicher wie die dahinter liegende Infrastruktur sein. Als Grundvoraussetzung für alle hier vorgestellten Schritte gilt, dass unberechtigte Dritte keinerlei Zugriff auf die vorgestellten System- oder Konfigurationsdateien erhalten dürfen. Für unberechtigte Benutzer sollen diese weder schreibbar noch lesbar sein.
5.1 PHP Die Absicherung von PHP erfolgt hauptsächlich über die Konfigurationsdatei php.ini und wird in der Regel vom Provider durchgeführt. Wichtige Einstellungen sind:
register_globals = On, Off: Legt fest, ob an ein PHP-Skript übergebene Variablen global verfügbar sein sollen. Wenn Sie diese Option einschalten, geben Sie einem böswilligen Benutzer die Gelegenheit, beliebige Variablen mit beliebigen Werten zu definieren. Dazu werden nicht einmal spezielle Werkzeuge benötigt, ein normaler Webbrowser reicht. Empfehlung: unbedingt deaktivieren.
display_errors = On, Off: Legt fest, ob Fehlermeldungen im Webbrowser angezeigt werden. Für die Entwicklung von PostNuke-Komponenten ist diese Funktion sinnvoll, im produktiven Einsatz eher störend. Empfehlung: deaktivieren.
log_errors = On, Off: Legt fest, ob Fehler in Logdateien des Webservers eingetragen werden. Vor allem im Zusammenspiel mit der vorhergehenden Option sinnvoll, damit auftretende Fehler nachvollziehbar bleiben. Empfehlung: aktivieren.
5.1 PHP
51
Um Probleme von vornherein zu vermeiden, sollten post_max_size und upload_max_filesize auf den gleichen Wert gesetzt werden.
post_max_size = Megabyte: Maximalgröße einer POSTAnfrage. Wird dieser Wert überschritten, erfolgt ein Abbruch der Verbindung. Auf diese Weise lassen sich Denial of Service (DoS)-Angriffe einschränken.
file_uploads = On, Off: Legt fest, ob Dateien bei POSTAnfragen übertragen werden können.
upload_max_filesize = Megabyte: Maximalgröße einer Datei in einer POST-Anfrage. Wird dieser Wert überschritten, erfolgt ein Abbruch der Verbindung.
Die nächsthöhere Stufe der Absicherung ist der sogenannte „Safe Mode“ von PHP. Dieser zeichnet sich vor allem durch eine strengere Prüfung von Dateisystemberechtigungen aus. Beispielsweise wird der Zugriff auf Dateien verweigert, die anderen Benutzern als demjenigen gehören, der PHP ausführt. So ist z.B. die Manipulation durch das Ersetzen von Dateien wesentlich erschwert. Konfiguriert wird der Safe Mode über einige Optionen in der php.ini:
safe_mode = On, Off: Legt fest, ob der Safe Mode aktiv ist oder nicht. Empfehlung: aktivieren.
safe_mode_gid = 0, 1: Wenn die Option aktiviert (= 1) ist, wird bei Zugriffen auf das Dateisystem nur die Gruppenzugehörigkeit des Benutzers, der das PHP-Skript ausführt, geprüft.
safe_mode_include_dir = Verzeichnis: Innerhalb des angegebenen Verzeichnisses inkl. Unterverzeichnisse werden bei include() und require()-Befehlen die Benutzer- und Gruppenzugehörigkeit von Dateien nicht mehr geprüft.
safe_mode_exec_dir = Verzeichnis: Ist diese Option gesetzt, können mit Funktionen wie system() oder exec() nur noch Programme im angegebenen Verzeichnis ausgeführt werden.
open_basedir = Verzeichnis: Diese Einstellung wird mit zum Safe Mode gerechnet, wirkt sich aber auch aus, wenn dieser abgeschaltet ist. Ist ein Verzeichnis angegeben, dann können mit Funktionen wie fopen() nur noch dort und in Verzeichnissen unterhalb davon Dateien geöffnet werden.
Eine weiteres Sicherheitsrisiko stellen Umgebungsvariablen dar, über die man beispielsweise die Ausführung von Systemfunktionen
52
5 Sicherheit
beeinflussen kann. Mit folgenden Einstellungen kann der Zugriff darauf kontrolliert werden:
safe_mode_allowed_env_vars = beliebige Umgebungsvariablen bzw. deren Präfixe, durch Komma getrennt: Legt fest, welche Umgebungsvariablen geändert werden dürfen. Wird z.B. PHP_ angegeben, dann dürfen nur Variablen geändert werden, deren Name mit PHP_ beginnt.
safe_mode_protected_env_vars = beliebige Umgebungsvariablen, durch Komma getrennt: Das Gegenteil zu safe_mode_allowed_env_vars. Hier aufgeführte Variablen dürfen nicht geändert werden. Diese Einstellung hat Vorrang gegenüber safe_mode_allowed_env_vars.
disable_functions = beliebige PHP-Funktionen, durch Komma getrennt: Verhindert den Einsatz der angegebenen PHP-Funktionen, egal ob der Safe Mode aktiv ist.
Im praktischen Einsatz kommt man oft bei Internet-Providern und Web-Hostern mit dem PHP Safe-Mode in Kontakt. Wenn Probleme beim Betrieb eines PostNuke-CMS auf PHP-Ebene auftauchen, dann meist weniger mit dem Safe Mode, sondern mehr mit Dateiund Verzeichnisberechtigungen.
5.2 Apache Dateien, die zum Webserver gehören, sowie dessen Konfiguration dürfen durch Dritte nicht veränderbar sein. Beim Zugriff per HTTP dürfen nur Daten ausgeliefert werden, die dafür auch wirklich vorgesehen sind. Für die Absicherung von Apache Webserver gegen Angriffe auf Dateisystemebene ist es wichtig zu wissen, welche Dateien im normalen Betrieb geschrieben und gelesen werden. Zunächst sind das die ausführbaren Dateien, die Apache-Programmdatei, die einzelnen Apache-Module und die Hauptkonfigurationsdatei httpd.conf. Diese Dateien sollten sich an Orten befinden, auf die nur Administratoren oder Benutzer mit entsprechenden Rechten Zugriff haben – dies ist üblicherweise nach einer Standardinstallation auf Serverplattformen der Fall.
5.2 Apache
53
Bei der Vergabe von Zugriffsrechten muss sichergestellt werden, dass alle betreffenden Verzeichnisse und Dateien mit korrekten Zugriffsbeschränkungen ausgestattet werden.
Außerdem kann in jedem Verzeichnis unterhalb der Document Root eine sogenannte .htaccess-Datei liegen, die meist Direktiven zur Absicherung von Dateien und Verzeichnissen enthält. Es sei nur ein kleines Beispiel gezeigt. Für weitergehende Dokumentation schauen Sie sich die Dokumentation zum Apache Webserver an. Mit einem Eintrag in einer .htaccess wie Order deny,allow Deny from all Allow from 213.178.172 wird festgelegt, dass die Datei postnuke/html/admin.php nur von Maschinen zugreifbar ist, die eine IP-Adresse aus dem Bereich 213.178.172 besitzen. Damit kann die Administrationsoberfläche von PostNuke nur von bestimmten physikalischen Maschinen aufgerufen werden. Zusätzlich zur Kontrolle über IP-Bereiche (oder als Alternative, falls dies nicht praktikabel ist) kann als Bestandteil von HTTP auch eine Zugangskontrolle auf der Basis von Benutzernamen und Passwörtern erfolgen (eine so genannte HTTP-Authentifizierung).
5.3 SSL Wer schon einmal ein Netzwerk-Überwachungstool (so genannte „Sniffer“) ausprobiert hat, weiß, dass vertrauliche Daten wie Benutzername oder Passwörter mit HTTP im Klartext übertragen werden. SSL (Secure Socket Layer) verschlüsselt die Datenübertragung zwischen Webbrowser und Webserver durch eine Verschlüsselung names RSA. Die Stärke der Verschlüsselung ist variabel und beträgt heutzutage meist mindestens 128 Bit. Wenn Sie einen PostNuke-Webserver betreiben möchten, der SSL beherrscht, benötigen Sie ein SSL-Zertifikat, welches von Firmen wie VeriSign ausgestellt werden kann. Da dies mit nicht unwesentlichen Kosten verbunden ist, haben Sie auch die Möglichkeit, mit Tools wie openssl eigene Zertifikate zu erzeugen. Die selbsterzeugten Zertifikate haben allerdings den Nachteil, dass diese von
54
5 Sicherheit
Browsern standardmäßig als nicht vertrauenswürdig eingestuft werden. Verwechseln Sie eine abhörsichere SSL-Verbindung zwischen Browser und PostNuke-Server nicht mit Techniken wie IPSec oder PGP. IPSec wird meist als Richtlinien-Protokoll in VPN-Umgebungen verwendet, um exklusive Tunnel über unsichere InternetVerbindungen zu realisieren. VPN-Techniken würde man einsetzen, um einen im privaten Firmennetz angesiedelten PostNuke IntranetServer über das Internet erreichen zu können. Die Kommunikation ist dabei immer verschlüsselt und nur von bestimmten Benutzern nutzbar. PGP ist ein Standard u.a. zur Verschlüsselung von E-Mails und kommt im PostNuke-Umfeld daher nicht zum Einsatz.
Informationen zu SSL und zur Zertifikatserzeugung finden Sie auf openssl.org
Durch die verwendete leistungsfähige Standard-Softwarebasis wie Webserver, Netzwerk-Betriebssysteme, Datenbankserver o.ä. werden natürlich auch Sicherheitskonzepte wie geschützter Zugang per VPN, Failover durch Hot- und Cold-Standby, Clustering und weitere Techniken unterstützt. Generell gilt: je leistungsfähiger Ihre Sicherheits-Infrastruktur, desto besser für PostNuke – es kann davon nur profitieren.
5.4 Berechtigungen und Zugriffsrechte in PostNuke Zurück zu PostNuke. Über Administration – Zugriffsrechte gelangen Sie in die Administration der Berechtigungen für Benutzer und Gruppen. Jeder Block und jedes Modul veröffentlicht seine individuellen Berechtigungen im Zugriffsrechte-Modul – da jedes Modul natürlich andere Aufgaben wahrnimmt. Im Rechte-Modul werden diese Berechtigungen mit Benutzern und Gruppen verknüpft. Gleichzeitig gibt man an, welche Art von Zugriff – von keinem Recht bis zum Administrations-Recht – für die erstellten Berechtigungen gefordert ist. Damit entstehen Zugriffsregeln. Es ist dann wieder Sache des betroffenen Blocks oder Moduls, die Regeln zu interpretieren und korrekt umzusetzen.
5.4 Berechtigungen und Zugriffsrechte in PostNuke
55
Letzten Endes bedeutet das: es ist Sache des Programmierers, in „seinem“ Modul/Block auf Berechtigungen zu prüfen. Daher ist jedes Modul unterschiedlich „sicher“ und bietet unterschiedliche Ebenen der Zugriffssteuerung. Mit den Modulen im Standard-Paket können Berechtigungen jedoch effektiv genutzt werden.
5.4.1 Grundlagen Anhand des News-Moduls werden einige notwendige Begriffe aus dem Zugriffsrechte-Modul erläutert. Eine Berechtigung bzw. eine Regel besteht immer aus vier Teilen: 1. Für welche Gruppe oder Benutzer gilt diese Regel? 2. Für welches Modul oder für welchen Block gilt diese Regel? Man kann sogar Unterbereiche in einem Modul oder Block verwenden. Diesen Teil der Regel nennt man Komponente. 3. Für welche konkreten Inhalte im Modul oder Block gilt diese Regel? Diesen Teil der Regel nennt man Instanz. 4. Welche Art des Zugriffs ist erlaubt? Für die Angabe von Komponenten und Instanzen lassen sich reguläre Ausdrücke verwenden. Ein Ausdruck der Art (Stories::.*)|(Submit news::) definiert zwei Gruppen von Komponenten, die mit booleschem ODER verknüpft sind. Das Wildcard .* dient als Platzhalter für beliebigen Text, womit in diesem Fall alle Bereiche im News-Modul gemeint sind. Die Angaben, welches Modul welche Komponenten und Instanzen anbietet, finden sich als tabellarische Auflistung in einem PopUp-Fenster, erreichbar im Zugriffsrechte-Modul bei Klick auf die Links Komponente bzw. Instanz. Ein initialisiertes Modul – egal, ob aktiviert oder deaktiviert – bietet alle Komponenten und Instanzen für sich und seine Blöcke
56
5 Sicherheit
dem Zugriffsrechte-Modul an. Ein nicht initialisiertes Modul veröffentlicht dagegen keine Block-Komponenten/Instanzen.
5.4.2 Benutzer vs. Gruppen Benutzerberechtigungen werden separat von Gruppenberechtigungen gepflegt und gespeichert. Beachten Sie, dass Benutzerberechtigungen die der Gruppen überschreiben. Beispiel: Gruppe 1 hat auf Bereich A keinen Zugriff, Benutzer mueller aus Gruppe 1 wird aber per Benutzerrecht der Zugriff gewährt, so hat der Benutzer mueller Zugriff auf Bereich A. Nutzen Sie Benutzerberechtigungen nur, wenn Sie mit Gruppenberechtigungen nicht auskommen.
5.4.3 Zugriffsarten/Stufen PostNuke kennt neun verschiedene Stufen von Zugriffen, die aufeinander aufbauen. 1. Keines (ACCESS_NONE): kein Zugriff auf Content wie z.B. Artikel oder Downloads. 2. Übersicht ACCESS_OVERVIEW): erlaubt eine Auflistung von Content, also beispielsweise die Anzeige einer Übersicht über alle Artikel. Ein Artikel selbst kann nicht aufgerufen werden. 3. Lesen (ACCESS_READ): erlaubt Übersicht + die detaillierte Ansicht von Content. Ein Artikel darf also zusätzlich komplett gelesen werden. 4. Kommentieren (ACCESS_COMMENT): Lesen + Abgabe von Kommentaren zu Content. 5. Moderieren (ACCESS_MODERATE): Kommentieren + Verwaltung der Kommentare. 6. Editieren (ACCESS_EDIT): Moderieren + komplette Bearbeitung von bereits bestehendem (!) Content möglich. Ermöglicht beispielsweise auch das Löschen von Teilen eines Artikels. Ein Artikel kann allerdings nicht komplett gelöscht werden.
5.4 Berechtigungen und Zugriffsrechte in PostNuke
57
7. Hinzufügen (ACCESS_ADD): Editieren + Erstellung (und Freigabe) von neuem Content ist möglich. Content darf immer noch nicht als Ganzes gelöscht werden, auch eigener Content nicht. 8. Löschen (ACCESS_DELETE): Hinzufügen + Content darf gelöscht werden. 9. Administrieren (ACCESS_ADMIN): ermöglicht die Administration von Modulen und Blöcken. Höchstes und uneingeschränktes Zugriffsrecht.
5.4.4 Abarbeitungsreihenfolge Berechtigungs-Regeln werden von PostNuke von oben nach unten abgearbeitet. Trifft eine Regel auf eine Komponente und deren Instanz zu, wird diese angewendet. Folgt eine Regel, die ebenfalls auf die gleiche Komponente/Instanz zutreffen würde, wird diese nicht mehr angewendet. Angenommen, ein Benutzer ist gleichzeitig Mitglied in den beiden Gruppen „Gruppe1“ und „Gruppe2“. Für beide Gruppen sei jeweils eine Regel definiert, die bei der einen den Zugriff auf das News-Modul erlaubt und bei der anderen entzieht. Je nach dem, welche Regel in der Abarbeitungs-Hierarchie zuerst angeordnet ist, hat der Benutzer Zugriff auf das News-Modul – oder auch nicht. Benutzer hat keinen Zugriff: 1. Regel Gruppe: Komponente: Instanz: Berechtigung:
Gruppe1 Stories::.* .* keines
2. Regel Gruppe: Komponente: Instanz: Berechtigung:
Gruppe2 Stories::.* .* hinzufügen
Benutzer hat Zugriff
58
5 Sicherheit
1. Regel Gruppe: Komponente: Instanz: Berechtigung:
Gruppe2 Stories::.* .* hinzufügen
2. Regel Gruppe: Gruppe1 Komponente: Stories::.* Instanz: .* Berechtigung: keines Die sequentielle Abarbeitungsreihenfolge erzwingt damit das Prinzip: soll ein Zugriff eingeschränkt werden, müssen erst Rechte entzogen, dann gewährt werden. Das System ist extrem mächtig, hat aber den Nachteil: je mehr Regeln, desto komplexer die richtige Handhabung der Reihenfolge, potenziert mit der Anzahl von Gruppen und Benutzern. Daher: 1. Ein Benutzer sollte so wenigen Gruppen wie möglich angehören. 2. Wenn ein Benutzer in mehreren Gruppen Mitglied ist, dann sollten die Berechtigungen der Gruppen keine gemeinsamen Bereiche betreffen. 3. Es bietet sich an, für Bereiche, die von allen Benutzern genutzt werden sollen, Rechte über eine gemeinsame Gruppe zu definieren. Dafür bietet sich die Gruppe „Users“ an. 4. Alle speziellen Rechte sollten über separate Gruppen realisiert werden. Damit macht es auch Sinn, wenn jeder neu angelegte Benutzer automatisch Mitglied der Gruppe „Users“ wird (siehe Einstellung unter Administration – Einstellungen – StandardGruppe für Benutzer).
Tipp: benennen Sie nie die Gruppen „Admins“ und „Users“ um. Es könnte Auswirkungen auf viele Bereiche Ihres Systems haben.
5.4.5 Anwendung Mit den Regeln sind Sie schon im vorigen Kapitel kurz in Berührung gekommen. Das Beispiel soll erweitert werden. Angenommen, Sie haben eine Artikel-Kategorie „intern“ angelegt, in der alle ge-
5.4 Berechtigungen und Zugriffsrechte in PostNuke
59
heimen Artikel des Unternehmens abgelegt werden. Praktikanten sollen daher auf diese Kategorie nicht mehr zugreifen dürfen. Sie haben Berechtigungen falsch gesetzt und Ihr System damit unbenutzbar gemacht? PSAK schafft Abhilfe (siehe Kapitel Troubleshooting, Backup und Recovery)
Auch wenn es sinnvoll wäre, so langsam eine eigene Gruppe „Praktikanten“ zu definieren, wird das Beispiel der Einfachheit halber auf die Gruppe „Users“ angewendet. Das News-Modul registriert die Komponente Stories::Story mit der Instanz Author ID:Category name:Story ID. Diese muss verwendet werden, um die Anforderung umzusetzen. Man könnte zwar auf die Idee kommen, die Komponente Stories::Category zu verwenden – sie regelt jedoch nur, ob bei der Pflege eines Artikels Kategorien angelegt, editiert oder gelöscht werden dürfen. Der Regelsatz muss daher so aussehen:
Abb. 5.1:Die Berechtigungen des Beispiels
Die Komponente ist immer fest vorgegeben, die Instanz ist variabel.
5.4.6 Die Auswertung des Regelsatzes Ist ein Praktikant eingeloggt und kennt er einen Link zu einem internen Artikel, wird Regel 2 und Regel 4 ausgeführt. Keine weitere Regel trifft auf die Situation zu. Regel 4 verweigert ihm wie gewünscht den Zugriff. Wählt er für ihn erlaubte Artikel aus, wird Regel 4 nicht abgearbeitet und Regel 5 schlägt stattdessen zu – er bekommt Leserechte. Leider gibt es noch ein Problem in der jetzigen Rechtekonfiguration. Wenn sich der Praktikant abmeldet, sieht er dennoch alle inter-
60
5 Sicherheit
nen Artikel. Daran ist Regel 7 schuld, da sie allen unregistrierten Benutzern Lesezugriff auf alle Bereiche erteilt. Sie müssen jetzt also noch der unregistrierten Gruppe alle Rechte auf die internen Artikel entziehen. Da das Prinzip gilt „erst Rechte entziehen, dann Rechte gewähren“, muss die neue Regel vor Regel 7 eingefügt werden. Sie hat das gleiche Aussehen wie die Regel 4 und unterscheidet sich nur im Gruppennamen. Abb. 5.2: Der korrekte Regelsatz
5.5 Allgemeine PostNuke Sicherheitstipps Hier gilt das, was für alle Anwendungen gilt:
Informieren Sie sich regelmäßig auf http://www.postnuke.com oder http://www.post-nuke.net über mögliche Sicherheitslecks.
Halten Sie Ihre PostNuke-Installation auf dem neuesten Stand. Machen Sie die Release-Wechsel mit.
Wechseln Sie die Passwörter der Admins und der Benutzer regelmäßig.
Pflegen Sie Ihre Benutzer und Gruppen: entfernen Sie nicht mehr benötigte Benutzer und Gruppen und löschen Sie in den Gruppen auch nicht richtig zugeordnete Benutzer.
Installieren Sie so wenig Module aus dritter Hand wie möglich. Oder informieren Sie sich auf http://www.post-nuke.net über sinnvolle und empfohlene Module Dritter. Schauen Sie auch einmal in deren Source-Code, wenn möglich: werden Eingaben abgesichert? Werden Rechte geprüft? Sehen Sie bei schlechtem Code von einem Einsatz ab.
5.5 Allgemeine PostNuke Sicherheitstipps
61
Deaktivieren Sie alle Blöcke und Module, die Sie nicht benötigen (einen Anhaltspunkt, was alles deaktiviert und deinstalliert werden darf, gibt Ihnen das Kapitel pnmini). Es macht Ihre Seite nicht nur weniger anfällig für mögliche Sicherheitslücken in den einzelnen Modulen, sondern auch noch schneller.
Überprüfen Sie anschließend das PostNuke-Rechtesystem. Stimmen alle Regeln noch? Gibt es die Blöcke, Module, Benutzer und Gruppen noch, die dort referenziert werden?
Denken Sie bei der Installation neuer Blöcke und Module auch immer sofort daran, dass Berechtigungssystem nachzuziehen.
Testen Sie den Zugriff auf Ihre Seite auch mit anderen Browsern, und schalten Sie dafür einmal deren Caching ab.
Für Modulentwickler: halten Sie sich unbedingt an die goldenen Regeln zur Absicherung Ihrer Module, die Sie in diesem Buch im Kapitel Die PostNuke-Programmierung finden. Damit sichern Sie beispielsweise Benutzer-Eingaben gegen Script- oder SQL-Injections ab oder verhindern, dass Daten an Ihrem Modul vorbei ins PostNuke-System geschleust werden können.
Das wichtigste zum Schluss: auch unabhängige Seiten wie SecurityFocus berichten über mögliche Sicherheitslöcher. Ein Besuch des Links http://www.securityfocus.org/search?category =2&query=postnuke&rank=&submit=Search sucht nach bekannten Vulnerabilities in PostNuke.
5.6 Zusammenfassung Die Absicherung eines Systems reicht von der Konfiguration des Webservers & PHP über die Einrichtung von SSL bis hin zur Erstellung von Regeln im Zugriffsrechte-Modul.
5.7 Ausblick Im folgenden werden alle mitgelieferten Blöcke eines PostNukeSystems alphabetisch sortiert erläutert.
62
5 Sicherheit
6 Blöcke
Für die Erstellung neuer Blöcke in der Block-Administration stellt Ihnen PostNuke 0.750 Gold folgende Typen zur Verfügung (alphabetisch sortiert): 1. Admin Messages/Show admin messages 2. Core/Button Link Block 3. Core/Categories Menu 4. Core/Custom Banner Display 5. Core/Display Poll 6. Core/Ephemerids 7. Core/FXP Currency Exchange 8. Core/Generic Menu 9. Core/HTML 10. Core/Languages 11. Core/Latest Web Links 12. Core/Online 13. Core/Past Articles 14. Core/PHP Script 15. Core/Plain Text 16. Core/RSS Extra 17. Core/RSS Newsfeed 18. Core/Search Box 19. Core/Simple File Include 20. Core/Story Related Links 21. Core/Story Titles 22. Core/Today’s Big Story
5.7 Ausblick
63
23. Core/Topics Menu 24. Core/User’s Custom Box 25. Core/User’s Login 26. pnRender/custom pnRender block 27. Quotes/Random Quote 28. Xanthia/Display module output in a block 29. Xanthia/Logo Block for Xanthia Themes Beachten Sie, dass die Dropdown-Listbox unter Administration – Blöcke – neuer Block unsortiert ist.
6.1 Admin Messages/Show Admin Messages Zeigt eine Admin-Nachricht an. Block zum gleichnamigen Modul. Siehe dazu die Beschreibung zum Modul „Admin Messages“.
PHP-Datei: modules/NSAdmin_Messages/pnblocks/blocks/messages.php
DB-Tabellen: message
6.2 Core/Button Link Block Dieser Block zeigt eine Reihe von verlinkten Grafiken untereinander angeordnet und zufällig sortiert an. Sinnvoll ist dieser Block beispielsweise, um auf Partner-Unternehmen zu verlinken (über deren Firmenlogos). Ohne die Angabe einer Grafik-URL, die ins Web oder lokal (dann in der Art „images/topics/linux.gif“) verweisen kann, lässt sich kein neuer Eintrag hinzufügen.
64
PHP-Datei: includes/blocks/button.php
DB-Tabellen: blocks_buttons
6 Blöcke
6.3 Core/Categories Menu Listet alle Kategorien auf, die Ihre Seite besitzt. Ein Klick auf die Kategorie führt dann zu einer Auflistung aller Artikel aus dieser Kategorie. Sind keine Kategorien angelegt (die Kategorie „Beiträge“ allein genügt nicht), wird der Block nicht angezeigt.
PHP-Datei: includes/blocks/category.php
DB-Tabellen: stories_cat
6.4 Core/Custom Banner Display Zeigt einen Werbebanner in einem Block an. Damit muss ein Werbebanner nicht ins Theme integriert, sondern kann vom Seitenbetreiber individuell platziert und ein- oder ausgeschaltet werden. Sie werden in der Blockkonfiguration nach einer Custom Banner ID gefragt, was nichts anderes als die ID der Kategorie darstellen soll, zu der der Banner gehört. Um Banner in einem Block nutzen zu können, benötigen diese eine Kategorie-ID >= 3 (Einzelheiten dazu finden Sie in der Beschreibung zum Banner-Modul). Wird in der Block-Konfiguration eine Custom Banner ID gesetzt, wird der Banner-Block bei jedem Reload der Seite zufällig einen Banner aus der dort angegebenen Banner-Kategorie auswählen. Wird keine ID gesetzt, geht der Block von der ID 3 aus.
PHP-Datei: includes/blocks/banners.php
DB-Tabellen: banner
6.5 Core/Display Poll Zeigt eine Umfrage an. Block zum Poll-Modul.
PHP-Datei: includes/blocks/poll.php
DB-Tabellen: poll_data, poll_desc, pollcomments
6.3 Core/Categories Menu
65
6.6 Core/Ephemerids Zeigt einen Ephemeriden-Eintrag an. Block zum EphemeridenModul. Die Erklärung zu Ephemeriden findet sich an entsprechender Stelle im Kapitel Module.
PHP-Datei: includes/blocks/ephem.php
DB-Tabellen: ephem
6.7 Core/FXP Currency Exchange FXP Currency Exchange ist ein Währungsumrechner. Nicht interaktiv, aber immerhin. Der Block bezieht seine Daten vollautomatisch aus der XML-Datei von http://www.ecb.int/stats/ eurofxref/eurofxref-daily.xml. In der Konfiguration gibt man an, von welcher Währung (Base) man in welche Währung (Quote) umrechnen möchte. Für Base und Quote müssen Sie den Namen der Währung angeben. Mit dem Beispiel für Quote = EUR und Base = USD erhält man am 06.12.2004, dass ein US-Dollar 0,74 EUR kostet.
PHP-Datei: includes/blocks/fxp.php
DB-Tabellen: -
6.8 Core/Generic Menu Generic Menu erstellt Menü-Blöcke. Menüs können auf bestimmte Sprachen festgelegt werden und als simple Auflistung oder in Dropdown-Form erscheinen. In den Eigenschaften dieses Blocks verlinkt die Checkbox Module automatisch auf die Benutzeroberfläche aller installierten Module. Ist zu prüfen aktiviert, verlinkt der Block bei Eintreffen neuen Contents zusätzlich auf deren Freigabe-Funktion. Das gilt für
66
Neue Stories/Artikel des News-Moduls
Neue Reviews
6 Blöcke
Neue Weblinks
Neue Downloads
Neue FAQs
Beispiel: Mit den Angaben „Titel: Startseite“, „URL: index.php“, „Beschreibung: Zur Startseite“ (optional) erstellen Sie einen Link, der auf die Startseite verweist.
Hinweis: Geben Sie Links immer relativ an.
Leider besitzt der Menu-Block keine Möglichkeit, einfach die Reihenfolge der Menülinks zu ändern. Das muss umständlich über Copy&Paste-Aktionen geschehen – oder Sie ändern die Menüstruktur direkt in der Datenbank, was wir allerdings nicht empfehlen. Jede PostNuke-Installation besitzt bereits einen Block namens „Main Menu“ vom Typ „Generic Menu“. Wenn Sie in die Eigenschaften dieses Blockes wechseln, fällt Ihnen auf, dass auf einige Module ganz einfach über „[ModulName]“ verlinkt wird. Als „ModulName“ muss der Verzeichnisname des Moduls angegeben werden. Eckige Klammern werden für die Verlinkung auf old-style Module verwendet. Geschweifte Klammern verwendet man für Module, die pnAPI-konform entwickelt wurden, beispielsweise „{Credits}“ für das Credits-Modul. Über „{Name:Funktion}” kann optional der Name der Funktion eingebaut werden, die im Modul aufgerufen werden soll, also z.B. „{Credits:display}“. Es ist nicht möglich, über die Verwendung von Klammern Admin-Funktionen der Module aufzurufen.
PHP-Datei: includes/blocks/menu.php
DB-Tabellen: blocks, downloads_newdownload, faq_answer, links_newlink, queue, reviews_add
6.9 Core/HTML Der HTML-Block ermöglicht Ihnen, HTML-Code jeglicher Art einzufügen. Das Ergebnis wird dann in einem Block angezeigt. Erstellen Sie einmal einen neuen HTML-Block namens „Taschenrechner“ und fügen Sie diesen HTML-Code in den Block ein:
In diesem Block funktioniert JavaScript auch bei aktiviertem pnAntiCracker.
<script language="JavaScript">
6.9 Core/HTML
67
Abb. 6.1: Ein Taschenrechner im HTML-Block
68