This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
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.
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
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
Die PostNuke-Verzeichnisstruktur .................................... 157 9.1 Das PostNuke-Verzeichnis ............................................ 157
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
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
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 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.
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:
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“.
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.
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
6.10 Core/Languages Gehört zum Sprachen-Modul und bietet eine Sprachauswahl an. Der Block liest die installierten Sprachpakete direkt aus dem Verzeichnis postnuke/html/language aus.
6.10 Core/Languages
69
PHP-Datei: includes/blocks/thelang.php
DB-Tabellen: -
6.11 Core/Latest Web Links Dieser Block zeigt standardmäßig die zehn zuletzt eingefügten WebLinks an. Gehört zum WebLinks-Modul.
PHP-Datei: includes/blocks/weblinks.php
DB-Tabellen: links_links
6.12 Core/Online Dieser Block zeigt an, wie viele Mitglieder und Besucher das PostNuke-System gerade nutzen, mit welchem Namen Sie selbst angemeldet sind und ob Sie neue private Nachrichten erhalten haben.
PHP-Datei: includes/blocks/online.php
DB-Tabellen: priv_msgs, session_info
6.13 Core/Past Articles Der Block Past Articles gehört zum News-Modul und zeigt standardmäßig die zehn neuesten Artikel aus dem News-Modul an. In Version 0.750 Gold funktioniert dieser Block nicht.
70
PHP-Datei: includes/blocks/past.php
DB-Tabellen: -
6 Blöcke
6.14 Core/PHP Script Der PHP-Script Block ist mit der Funktionalität des HTML-Blockes vergleichbar. Im Unterschied zum HTML-Block lässt sich hier PHPCode angeben, der über die eval()-Funktion ausgewertet wird. Natürlich haben Sie die Möglichkeit, hier auch sämtliche PostNuke API-Funktionen zu verwenden. Wir möchten das Kapitel Die PostNuke-Programmierung nicht vorwegnehmen, zeigen aber einmal ein kleines Beispiel. Kopieren Sie sich folgenden PHP-Code in den PHP-Block:
Der PHP-Code darf nicht in PHP-Tags der Art eingeschlossen werden.
echo "Meine User-ID: " . pnUserGetVar('uid') . " "; echo "Mein User-Name: " . pnUserGetVar('uname') . " "; echo "Heute ist der " . date("d. M. Y");
PHP-Datei: includes/blocks/php.php
DB-Tabellen: -
Abb. 6.2: Ausgeführter PHPCode im PHPBlock
6.15 Core/Plain Text Der einfachste Block-Typ überhaupt. Hier genügt die unformatierte Angabe von Text. Der Text erscheint dann fast so im Block, wie er eingegeben wurde – Zeilenumbrüche werden zur Drucklegung des Buches leider nicht korrekt umgesetzt. Hier müssten Sie für diese mit „ “ arbeiten. Zudem lässt sich auch hier komplett HTMLCode verwenden; der WYSISYG-Editor funktioniert auch hier. Fazit: greifen Sie lieber gleich zum HTML-Block. Der verträgt ebenfalls Plain Text.
PHP-Datei: includes/blocks/text.php
DB-Tabellen: -
6.14 Core/PHP Script
71
6.16 Core/RSS Newsfeed RSS bietet Ihnen die Möglichkeit, fremden Content in Ihre Seite zu integrieren, wie im folgenden am Beispiel von spiegel.de gezeigt. Der Link zu den RSS-Feeds von spiegel.de lautet http://www.spiegel.de/schlagzeilen/rss/0,5291 ,,00.xml. Wenn Sie diese URL in Ihren Browser eingeben, erhalten Sie eine XML-Datei – zum größten Teil unleserlich für das menschliche Auge, aber lesbar für alle RSS-Reader. Die in der XML-Datei enthaltenen Nachrichtenköpfe werden durch den RSSBlock umgebaut und als verlinkte Auflistung auf Ihrer Seite angezeigt. Der RSS-Block bietet folgende Einstellungsmöglichkeiten:
RSS File URL: Geben Sie hier obenstehenden Link zur RSSXML-Datei an.
Maximale Anzahl der angezeigten Einträge: wie viele Nachrichtenüberschriften sollen angezeigt werden?
Seitenbild anzeigen: soll das Logo des Nachrichtenlieferanten angezeigt werden?
Seitensuche anzeigen: ergibt einen „weiterlesen“-Link, der auf das Gesamtangebot des Nachrichtenlieferanten verweist.
Beschreibung anzeigen: sollen die Nachrichtenköpfe angezeigt werden?
Alternative Anzeige benutzen: ist diese Option eingeschaltet, werden die Nachrichten in einem etwas anderen Format aufgelistet.
Es gibt eine Menge Nachrichten im RSS-Format – suchen Sie einfach mal in einer Suchmaschine nach deutschen RSS-Feeds. Spezialisierte RSS-Suchmaschinen sind z.B. http://www.rss-scout.de oder http://www.rss-verzeichnis.de
72
PHP-Datei: includes/blocks/rss.php
DB-Tabellen: -
6 Blöcke
6.17 Core/RSS Extra Dieser Block war zur Drucklegung des Buches nicht vollständig implementiert.
PHP-Datei: includes/blocks/rss2.php
DB-Tabellen: -
6.18 Core/Search Box Gehört zum Suchen-Modul. Bei der Konfiguration des Blockes können Sie angeben, was standardmäßig durchsucht werden soll – was in 0.750 Gold zwar gespeichert, aber bei einer erneuten Konfiguration nicht korrekt ausgelesen wird. Der Block durchsucht nicht selbst die Datenbank, sondern überlässt diese Aufgabe der modules.php. Wir empfehlen die Aktivierung des „Show Search Buttons“, da dadurch bei Verwendung von Xanthia-Themes weniger Probleme entstehen. Andernfalls kann es sein, dass die Suche keine Ergebnisse anzeigt.
PHP-Datei: includes/blocks/search.php
DB-Tabellen: -
6.19 Core/Simple File Include Dieser Block gibt den Inhalt der gewählten Datei mit beliebigem Typ aus. Wird der Pfad zur Datei relativ angegeben, muss die Datei in der Document-Root von PostNuke liegen (probieren Sie es mal mit der im PostNuke-Verzeichnis enthaltenen robots.txt). Bei absoluten Pfaden funktioniert auch eine Angabe der Art „c:/test.html“. Sinn machen hier nur Dateitypen wie .txt oder .html. PHPDateien werden nicht geparst; die Ausgabe einer Binär-Datei wie .doc (Word) liefert erwartungsgemäß wirres Zeug.
6.17 Core/RSS Extra
73
PHP-Datei: includes/blocks/finclude.php
DB-Tabellen: -
6.20 Core/Story Related Links Zeigt weiterführende Links zum Artikel an:
mehr Artikel aus dem gleichen Topic
andere Artikel vom gleichen Autor.
Dieser Block wird nur nach dem Öffnen eines Artikels angezeigt. Darüber hinaus muss mindestens ein Artikel einem Topic angehören und die Option „rechte Blöcke in Artikeln anzeigen“ in den SystemEinstellungen von PostNuke aktiviert sein.
PHP-Datei: includes/blocks/related.php
DB-Tabellen: related, stories
6.21 Core/Story Titles Dieser Block zeigt eine Auflistung von Beiträgen an. Er lässt sich folgendermaßen konfigurieren:
74
Alle Beiträge anzeigen/nur Titelseiten-Beiträge anzeigen/nur nicht-Titelseiten-Beiträge anzeigen: welche Art von Artikeln soll angezeigt werden?
Thema: soll nur ein bestimmtes oder alle Topics angezeigt werden?
Kategorie: wie bei Topics
Maximal anzuzeigende Beiträge: wie viele Beiträge sollen maximal angezeigt werden?
PHP-Datei: includes/blocks/stories.php
DB-Tabellen: stories, stories_cat, topics
6 Blöcke
6.22 Core/Today’s Big Story Zeigt alle Beiträge an, die am heutigen Tag mit dem News-Modul erstellt und mindestens einmal angeschaut wurden.
PHP-Datei: includes/blocks/big.php
DB-Tabellen: -
6.23 Core/Topics Menu Listet alle Topics einer Seite in einem Block auf, sofern ihnen Artikel zugeordnet sind.
PHP-Datei: includes/blocks/topic.php
DB-Tabellen: stories, topics
6.24 Core/User’s Login Zeigt einen Block an, über den sich PostNuke-Benutzer am System anmelden können. Wer den Block nicht verwenden möchte, kann alternativ auch die user.php direkt aufrufen. Wenn Sie nicht möchten, dass sich Benutzer über den LoginBlock oder die user.php selbständig registrieren können, wechseln Sie in die Administration – BenutzerAdministration – Konfiguration Benutzerregistrierung. Schalten Sie dort Benutzerregistrierung ermöglichen ab.
PHP-Datei: includes/blocks/login.php
DB-Tabellen: -
6.22 Core/Today’s Big Story
75
6.25 Core/User’s Custom Box Damit kann der Administrator jedem Benutzer einen persönlichen Block spendieren. Der Inhalt dieses Blockes darf Text oder HTML enthalten. Meist wird dieser Block dazu verwendet, sich Notizen oder ToDo’s für den Tag zu machen, seine persönliche Link-Liste zu pflegen oder ähnliches. Dieser Block wird nur sichtbar, wenn der Benutzer in seinen persönlichen Einstellungen unter „Einstellungen – Startseite einstellen“ sein persönliches Menü aktiviert hat. Hier wird dann auch der Inhalt des Blockes gepflegt – von jedem Benutzer persönlich. Text und HTML sind möglich, PHP-Code etc. nicht. Der von Ihnen vergebene Titel für diesen Blocktyp ist nur für interne Zwecke (Zugriffsrechte etc.) verwendbar. Die Benutzer sehen als Blocktitel immer nur „Menü für “.
PHP-Datei: includes/blocks/user.php
DB-Tabellen: users
6.26 pnRender/custom pnRender block Damit lassen sich sehr elegant Teil-Funktionalitäten eines Moduls in einem Block darstellen, beispielsweise Formulare, die bei Klick auf den Submit-Button leistungsstarke Modulfunktionen nutzen. Das ganze lässt sich am besten anhand eines Beispiels demonstrieren:
Modulname: Mailer (case-sensitiv; hier muss der Verzeichnisname des Moduls angegeben werden)
TemplateDatei: maileradminmodifyconfig.htm
Parameter: smtpserver = Mein Mailserver; smtptimeout = 20; (die Parameter können Sie dem Inhalt der angegebenen Template-Datei entnehmen)
Die hier angegebenen Module müssen nicht nur pnAPI-konform sein, sondern auch auf pnRender/Xanthia basieren (d.h. sie müssen mit Templates arbeiten, siehe Kapitel Xanthia-Themes).
76
6 Blöcke
PHP-Datei: modules/pnRender/pnblocks/pnRender.php
DB-Tabellen: -
6.27 Quotes/Random Quote Der Quotes-Block ist Teil des Zitat-Moduls und zeigt bei jedem Reload der Seite ein zufällig ausgewähltes Zitat aus der ZitatDatenbank an. Zitate müssen selber angelegt werden.
PHP-Datei: modules/Quotes/pnblocks/quote.php
DB-Tabellen: quotes
6.28 Xanthia/Logo Block for Xanthia Themes Dieser Block war zur Drucklegung des Buches nicht vollständig implementiert.
PHP-Datei: modules/Xanthia/pnblocks/logo.php
6.29 Xanthia/Display module output in a block Dieser Xanthia-Block leitet die Ausgaben eines Moduls in einen Block um. Zusätzlich kann man festlegen, welche Funktion inkl. Parameter aus dem Modul verwendet werden soll, um die Ausgaben zu erzeugen. Ohne Angabe von Parametern wird die Standard UserFunktion verwendet (main-Funktion aus der user.php). Testen kann man dies einfach am Credits-Modul (hier ist eine Angabe von „Funktion“ und „Parameter“ nicht notwendig).
PHP-Datei: modules/Xanthia/pnblocks/module.php
DB-Tabellen: -
6.27 Quotes/Random Quote
77
6.30 Sie brauchen mehr Blöcke? Auf den im Anhang aufgeführten Seiten gibt es jede Menge mehr an Blöcken. Für fast jeden Einsatzzweck sollte sich ein passendes Stück Software finden – wenn nicht, erläutern wir im Kapitel Die PostNuke-Programmierung, wie Sie selbst eigene Blöcke entwickeln können.
6.31 Zusammenfassung Dieses Kapitel gab einen Überblick über alle in einer StandardPostNuke-Paket mitgelieferten Blöcke. Dabei wurde auf deren Funktionalitäten, Besonderheiten als auch auf technische Details wie verwendete Dateien und Datenbank-Tabellen eingegangen.
6.32 Ausblick Das nächste Kapitel stellt in der gleichen Art und Weise die Standard-Module eines PostNuke-Systems vor.
78
6 Blöcke
7 Module
Ein PostNuke 0.750 Gold wird mit folgenden Modulen ausgeliefert (alphabetisch sortiert): 1. AddStory 2. Admin 3. Admin Messages 4. AutoLinks 5. AvantGo 6. Banners 7. Blocks 8. Censor 9. Comments 10. Credits 11. Downloads 12. Ephemerids 13. FAQ 14. Groups 15. Languages 16. Legal Documents 17. LostPassword 18. Mailer 19. MailUsers 20. Members List 21. Messages 22. Module
6.32 Ausblick
79
23. Multisites 24. News 25. NewUser 26. Past_Nuke 27. Permissions 28. pnRender 29. Polls 30. Quotes 31. Ratings 32. Recommend Us 33. Referers 34. Reviews 35. Search 36. Sections 37. Settings 38. Stats 39. Submit News 40. Template 41. Topics 42. Top List 43. typetool 44. Users 45. Web Links 46. Wiki 47. Xanthia 48. Xmlrpc 49. Your Account
80
7 Module
7.1 AddStory Kurzbeschreibung Mit AddStory kann ein Benutzer mit Administratoren-Rechten Artikel erstellen und freigeben. Die Module News, AddStory und Submit News bilden quasi eine Einheit.
Drei Module im Verbund: AddStory, News, Submit News
Funktionen & Verwendung Der Unterschied zum Modul „Submit News“ liegt in den Berechtigungen („Submit News“ ist mit Benutzerrechten aufrufbar) und dem Umfang der Eingabemaske. Bei „Submit News“ lassen sich nur Titel, Thema, Sprache, Einleitungs- und erweiterter Text eines Artikels festlegen. „AddStory“ erlaubt zusätzlich
das Festlegen einer Kategorie (eine vertikale Gruppierung von Artikeln, siehe Kapitel Begriffe)
die optionale Anzeige des Artikels auf der Startseite
Besuchern kann erlaubt werden, den Artikel zu kommentieren
das Format des Artikels kann geändert werden (Plain Text oder HTML vorformatiert)
der minutengenaue Erscheinungstermin des Artikels kann programmiert werden
die Freigabe des Artikels
Diese erweiterten Funktionen kann der Redakteur (also die Person, die die Rechte hat, Artikel freizugeben) für jeden Artikel anwenden, also auch bei denjenigen, die über „Submit News“ erstellt wurden. Über „AddStory“ können darüber hinaus Artikel sofort nach der Erstellung freigegeben werden. Diese durchlaufen dann nicht den Workflow von der Erstellung durch einen Autor bis zur Freigabe durch einen Redakteur. Hinweis: Kategorien lassen sich nur in AddStory editieren.
7.1 AddStory
81
Technische Daten zum Modul Verzeichnisname: NS-AddStory Das Verzeichnis-Präfix „NS-„ wurde in 0.760 bei allen Modulen entfernt. Die Angaben beziehen sich also auf 0.750 und früher.
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Beitrag hinzufügen
Admin-Link zum Modul: admin.php?module=NS-AddStory &op=main
Link zur Freigabe von Artikeln: admin.php?module=NSAddStory&op=submissions
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Core/menu (mit aktivierter Anzeige der zu prüfenden Beiträge), Core/Story Titles
Konfigurationsmöglichkeiten der Blöcke: siehe Beschreibung im Kapitel Blöcke
DB-Tabellen: stories, stories_cat, queue (für die nicht freigegebenen Stories), autonews (für die zeitgesteuerten Stories)
Berechtigungsschema Stories::Category => Category name::Category ID
Stories::Story => Author ID:Category name:Story ID
Meinung der Autoren An diesem Modul kommt keiner vorbei – es sei denn, man setzt andere Content-Module wie beispielsweise „PageSetter“ ein.
7.2 Admin Ab PostNuke 0.760/0.8 wird dieses Modul eine kategorisierte AdministrationsAnsicht anbieten.
82
Kurzbeschreibung Das Admin-Modul im Verzeichnis NS-Admin wird von der admin.php aus dem PostNuke-Hauptverzeichnis verwendet. Die Hauptaufgabe liegt in der Darstellung des Administrations-Menüs, das z.B. mit der Systemsteuerung unter Windows vergleichbar ist. Darüber hinaus werden die zeitgesteuerten/noch nicht veröffentlichten Beiträge, die freigegebenen Artikel und die aktuelle Umfrage aufgelistet. Notwendig sind nur die Dateien des Moduls, es muss daher nicht aktiviert sein.
7 Module
Technische Daten zum Modul Verzeichnisname: NS-Admin
pnAPI-konform: nein
Link/Icon im Administrationsmenü: gibt es nicht, aber das Admin-Modul liefert für andere Module ein Standard-Icon, wenn in deren pnimages-Verzeichnis keine Datei namens admin.gif, admin.jpg oder admin.png liegen sollte.
7.3 Admin Messages Kurzbeschreibung Mittels Admin Messages kann der Administrator die Besucher seiner PostNuke-Seite über wichtige Dinge informieren. Admin Messages werden standardmäßig noch vor den News im Mittelteil einer PostNuke-Seite angezeigt (wenn der dazugehörige Block entsprechend positioniert ist). Darüber hinaus können abhängig vom Benutzerstatus unterschiedliche Nachrichten gezeigt werden. Beispiel: unregistrierte Besucher sehen eine freundliche Meldung, sich zu registrieren; Benutzer werden über Wartungsarbeiten informiert; Administratoren erhalten Infos zu neu installierten Modulen. Admin Messages sind keine Artikel und werden daher auch nicht von einer Suche in PostNuke berücksichtigt. Funktionen & Verwendung Eine Admin Message besteht aus folgenden Teilen Titel: z.B. „Wartungsarbeiten am Samstag“
Inhalt: dem eigentlichen Text (optional)
Sprache: für welche Sprache soll diese Admin-Meldung angezeigt werden?
7.3 Admin Messages
83
Aktiv: Meldung aktiv (ja/nein)
Wer soll die Nachricht sehen: alle Besucher, nur registrierte PostNuke-Benutzer, nur anonyme Besucher, nur die Administratoren der Seite
Startdatum: wann soll die Admin-Nachricht erscheinen? (nicht funktional)
Hinweis: in der vorliegenden Version 0.750 Gold finden sich im Source-Code Codestellen, um eine Admin Message nach einigen Tagen ablaufen zu lassen („expire“). Leider ist der Code durchgängig einkommentiert, die Funktion ist also ausgeschaltet. Ein schneller Hack – Aktivierung der Funktion – funktioniert nicht. Technische Daten zum Modul Verzeichnisname: NS-Admin_Messages
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Admin Messages
Admin-Link zum Modul: admin.php?module=NS-Admin_ Messages&op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Admin Messages/Show admin messages
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: message
Berechtigungsschema Messages:: => Message title::Message ID
Meinung der Autoren Ein Admin Message Block sollte nur verwendet werden, wenn der Systemadmin auch etwas zu verkünden hat. Ansonsten wird die Admin Message zur Gewohnheit und die Benutzer bemerken keine Veränderung mehr. Zudem nimmt sie nur Platz weg, wenn nichts wirklich sinnvolles kommuniziert wird.
84
7 Module
7.4 AutoLinks Kurzbeschreibung Das Autolinks-Modul ersetzt definierte Schlüsselwörter durch einen Link. Im Beispiel der fiktiven Firma könnte der Standort immer mit dem Link auf einen Routenplaner verknüpft werden. Dies geschieht mittels Transform-Hooks aus dem AutoLinks-Modul dynamisch, bevor der bereits fertige Artikel zum Browser gesendet wird – der Artikel wird dabei also inhaltlich nicht verändert.
Folgt im Artikel nach einem zu ersetzenden Wort ein harter Zeilenumbruch (\n), wird es nicht ersetzt.
Funktionen & Verwendung So fügt man einen Autolink hinzu Administration – Autolinks - Autolink hinzufügen
Schlüsselwort: hier angeben, welches Wort verlinkt werden soll, z.B. „Routenplaner“. Nicht case-sensitiv. Wildcards sind nicht zulässig.
Titel: hier angeben, was der Browser beim Verweilen mit dem Mauscursor über dem Wort anzeigen soll, z.B. „Zum interaktiven Routenplaner“.
URL: wohin soll verwiesen http://www.routenplaner.de/xyz0815....
Kommentar: dient nur zu Ihrer Information und Darstellung innerhalb des AutoLink-Moduls.
werden?
Z.B.
AutoLinks-Konfiguration Autolink nur jeweils einmal im Text linken: taucht der Begriff mehrfach auf, wird er nur einmal verlinkt.
Keine Auszeichnung für Autolinks: wenn aktiviert, wird der Link nicht unterstrichen dargestellt
Hinweis: Damit dieses Modul auch aktiv wird, muss das NewsModul wissen, dass es seinen Output vorher durch ein anderes Modul schicken muss. Daher muss unter Administration – Module anzeigen – News – editieren – aktiviere AutoLinks für dieses Modul die Checkbox angehakt werden. Diesen Vorgang muss man für jedes Zielmodul, welches AutoLinks verwenden soll, wiederholen, vorausgesetzt, dass Zielmodul ruft Hooks auf.
7.4 AutoLinks
85
Technische Daten zum Modul Verzeichnisname: Autolinks
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Autolinks
Admin-Link zum &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: autolinks
Modul:
index.php?module=Autolinks
Berechtigungsschema kein Berechtigungsschema definiert
Meinung der Autoren Weitere sinnvolle Beispiele sind Benutzernamen, die mit mailtoLinks hinterlegt werden, der Begriff „Börsenbericht 2004“ verlinkt tatsächlich ohne Zutun des Autors auf das entsprechende PDFDokument, ein Fachbegriff wird mit einer Enzyklopädie verlinkt usw.
7.5 AvantGo Kurzbeschreibung AvantGo ist ein Anbieter von Software, welche Webseiten und Nachrichtenkanäle auf mobilen Geräten wie PDAs und Handys verfügbar macht. Funktionen & Verwendung Das AvantGo-Modul in PostNuke hat nichts mit der eigentlichen AvantGo-Software zu tun. Mit der Wahl dieses Namens wird nur ausgedrückt, dass mit Hilfe des Moduls eine Liste der zehn neuesten Stories so aufbereitet wird, dass sich diese auf mobilen Endgeräten ohne größere Einbußen darstellen lässt. Ein Klick auf eine Story öffnet deren druckfreundliche Ansicht. Technische Daten zum Modul Verzeichnisname: AvantGo
86
7 Module
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: modules.php?op=modload&name= AvantGo&file=index
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: stories, stories_cat, topics
Berechtigungsschema AvantGo:: => :: Meinung der Autoren Dieses Modul macht aus unserer Sicht keinen wirklichen Sinn – zumal es keine AvantGo-spezifischen Features wie die Unterstützung von Channels u.ä. kennt. Den Namen hat es damit nicht verdient. Auch andere mobile Möglichkeiten wie WAP & Co. sind nicht umgesetzt. Es generiert lediglich eine druckerfreundliche Ansicht der zehn neuesten Artikel. Mehr Infos zu http://www.avantgo.com.
AvantGo
erhalten
Sie
unter
7.6 Banners Kurzbeschreibung Dieses umfangreiche Modul ermöglicht die Darstellung von Werbe-Bannern auf der eigenen PostNuke-Seite. Funktionen & Verwendung Banner-Modul konfigurieren Administration – Banner
Ganz unten: Banner-Konfiguration anklicken
Banner auf der Seite aktivieren: ja
Eigene IP angeben: geben Sie hier die komplette IP-Adresse der Workstation an, deren Impressions nicht gezählt werden sollen, um die Banner-Statistiken nicht zu verfälschen. Leider kann
7.6 Banners
87
noch kein komplettes Subnetz angegeben werden. Die Klicks werden immer gezählt. Kunden-Login: banners.php? op=login
Zunächst muss im Modul mindestens ein Kunde angelegt werden, der dann mit den noch anzulegenden Werbe-Bannern verknüpft wird. Wenn Sie dem Kunden zusätzlich einen Login-Namen inkl. Passwort geben, können die Werbe-Kunden über http://servername/postnuke/html/banners.php?op=login selber auf ihre Bannerstatistiken zugreifen. Damit wird kein echter PostNukeBenutzer angelegt.
So legt man einen neuen Kunden an Administration – Banner Einfach die entsprechenden Felder ausfüllen.
So legt man einen neuen Banner an: Ist mindestens ein Kunde angelegt, können Werbebanner hinzugefügt werden.
Die Themes PostNukeBlue und SeaBreeze zeigen keine Banner an.
88
Administration – Banner – Banner hinzufügen
Kunde auswählen
Gekaufte Impressions: hier wird angegeben, wie oft die Einblendung des Banners verkauft wurde. Bei Erreichen der Grenze wird der Banner in der Statistik als „abgeschlossener Banner“ geführt. Hinweis: die Banner werden nicht deaktiviert, wenn die Impression-Grenze erreicht wird.
ID-Typ: hier können Banner kategorisiert werden. Ohne Typangabe erhält jeder Banner automatisch den Typ 0. Standardmäßig wird aus allen Bannern diesen Typs zufällig einer ausgewählt und an der Stelle im Theme ausgegeben, in der die für Banner zuständige API-Funktion pnBannerDisplay() aufgerufen wird. Typ 1 sind Header-, Typ 2 sind Footer-Banner. Für Banner des Typs 1 oder 2 muss das Theme lediglich so modifiziert werden, dass der Funktionsaufruf den entsprechenden Typ enthält. Da Typen > 2 von pnBannerDisplay() nicht per echoBefehl ausgegeben, sondern als HTML-Code zurückgegeben werden, muss der Theme-Programmierer für die Ausgabe dieser Banner-Typen selber sorgen. Tipp: Wenn Sie jeden Banner jeweils mit einem anderen Typ erzeugen und im Theme entsprechend aufrufen, kann gewährleistet werden, dass mehrere Banner zeitgleich und andauernd angezeigt werden (dann machen eventuell nur unlimitierte Impressions Sinn). Wer sich ein Theme bauen möchte, welches Banner anzeigt, sollte einen Blick in
7 Module
die Beschreibung der Funktion pnBannerDisplay($type) aus dem Kapitel Die PostNuke-API werfen.
Bild-URL: Geben Sie hier die URL zu Ihrem Werbe-Banner in der Form http://servername/postnuke/html/images/banners/ banner1.gif ein. Dazu ist es notwendig, alle Banner im PostNuke-Verzeichnis unter postnuke/html/images/banners abzulegen. Auch http-Verweise auf externe Banner werden unterstützt. Bei Klick auf den Banner wird ein neues Fenster geöffnet.
Klick-URL: URL, auf die bei Klick auf den Banner umgeleitet werden soll.
Folgende Banner-Größen haben sich als Standard durchgesetzt: 468 x 60 (Full Banner)
234 x 60 (Half Banner)
120 x 90 (Button 1)
120 x 60 (Button 2)
88 x 31 (Micro Bar)
160 x 600 (Wide Skyscraper)
120 x 600 (Skyscraper)
125 x 125 (Square Button)
180 x 50 (Rectangle)
120 x 240 (Vertical Banner)
300 x 250 (Medium Rectangle)
250 x 250 (Square Pop-up)
So fragt man die Banner-Statistik ab: Als Banner-Kunde: http://servername/postnuke/html/ banners.php?op=login aufrufen und einloggen. Dort hat der Kunde neben der Statistik-Ansicht auch die Möglichkeit, sich diese per E-Mail zukommen zu lassen (dazu muss der PostNuke-Server für E-Mail konfiguriert sein).
Als PostNuke-Admin: direkt unter Administration – Banner
Die verwendeten Begriffe: Impressions: Der Aufruf und das Laden einer PostNuke-Seite wird als ein „Impression“ gezählt. Wenn fünf Browser die PostNuke-Seite jeweils fünf mal reloaden, werden fünfundzwanzig Impressions gezählt.
7.6 Banners
89
Klicks: ein Klick wird gezählt, wenn auf den Banner geklickt wurde.
Berechtigungsschema Banners::Client => Client name::Client ID
Banners::Banner => Client name::Banner ID
Meinung der Autoren Das Banner-Modul muss nicht zwangsweise dazu eingesetzt werden, Werbung von Partnern einzublenden. Auch Werbung in eigener Sache – z.B. für den umfangreichen eigenen Download-Bereich oder neue Bereiche im Intranet – ist damit sehr einfach umsetzbar.
7.7 Blocks Kurzbeschreibung Dieses Modul verwaltet alle Blöcke eines PostNuke-Systems. Hier können Sie festlegen, welche Blöcke wo auf Ihrer Seite angezeigt werden sollen. Zudem werden über dieses Modul die Blöcke editiert. Siehe Kapitel Blöcke.
90
7 Module
Technische Daten zum Modul Verzeichnisname: Blocks
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Blöcke
Admin-Link &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: blocks
zum
Modul:
index.php?module=Blocks
Berechtigungsschema Blocks:: => Block key:Block title:Block ID Meinung der Autoren Ein systemweit wichtiges Modul, da es das funktionelle Layout einer PostNuke-Seite festlegt. Störend sind die nicht immer sauber funktionierenden Ordnungspfeile, um Blöcke in ihrer Anzeigereihenfolge zu ändern.
7.8 Censor Kurzbeschreibung Das Censor-Modul ersetzt zuvor definierte Wörter oder Phrasen durch einen Platzhalter wie z.B. „*****“. Technische Daten zum Modul Verzeichnisname: Censor
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Censor
Admin-Link &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
zum
Modul:
index.php?module=Censor
7.8 Censor
91
Berechtigungsschema Censor:: => :CensorList:
Censor:: => :CensorMode:
Meinung der Autoren Der Einsatz des Moduls als Content-Filter für Schimpfwörter ist sicherlich sinnvoll, sobald Besucher der PostNuke-Seite eigene Inhalte hinzufügen dürfen. Eine kurze Liste von englischen Schimpfwörtern ist vordefiniert. Schlimmeres verhindert es aber nicht, auch, weil es keine Wort-Varianten erkennt.
7.9 Comments Kurzbeschreibung Das Comments-Modul erlaubt das Kommentieren von Artikeln, die mit dem News-Modul erzeugt wurden. Funktionen & Verwendung Es bietet dafür sehr umfangreiche Funktionen, ist aber kein Modul, welches per Hook anderen Modulen seine Funktionen anbieten kann. Die „Verheiratung“ mit dem News-Modul ist leider hart codiert. Technische Daten zum Modul Verzeichnisname: NS-Comments
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Kommentare
Admin-Link zum Modul: admin.php?module=NS-Comments &op=main
Benutzer-Link zum Modul: user.php?op=editcomm (persönliche Einstellungen zum Kommentar-Modul)
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: comments
Berechtigungsschema Verwendet das Security-Schema aus dem News-Modul.
92
7 Module
Meinung der Autoren Kommentar-Module anderer Hersteller wie das Modul EZComments sind eleganter entwickelt, Hook-basiert und damit auch in Kombination mit anderen Modulen verwendbar.
7.10 Credits Kurzbeschreibung Das Modul „Credits“ dient dem PostNuke-Administrator zur Systeminformation. Das Modul erzeugt eine ausführliche Liste mit Angaben über alle installierten PostNuke-Module. Funktionen & Verwendung Es werden maximal folgende Informationen ausgegeben: Name des installierten Moduls
Official: Offizieller Bestandteil von PostNuke j/n
Versionsnummer des Moduls
Beschreibung des Moduls, wozu dient das Modul
Kontakt: Autor(en), meist verlinkt mit deren Webseite oder EMail-Adresse
Credits: Informationen zu den Autoren oder zur Lizenz des Moduls. Verlinkt auf eine optional vorhandene credits.txt unterhalb von postnuke/html/modules/<modulname>/(pn)docs.
Hilfe: Link zur Online-Hilfe des Moduls. Verlinkt auf eine optional vorhandene help.txt unterhalb von postnuke/html/modules/<modulname>/(pn)docs.
Lizenz: Link zum Lizenztext des Moduls (unterschiedliche Module können je nach Hersteller und Herkunft durchaus unterschiedliche Lizenzen besitzen). Verlinkt auf eine optional vorhandene license.txt unterhalb von postnuke/html/modules/ <modulname>/(pn)docs.
Changelog: die Versionshistorie des Moduls inkl. der Bugfixes oder Funktionen zwischen den einzelnen Versionen. Verlinkt auf eine optional vorhandene changelog.txt unterhalb von postnuke/html/modules/<modulname>/(pn)docs.
7.10 Credits
Die Credits werden auf der Oberfläche durch einen Klick auf den „Credits“-Link im Footer des ExtraLiteThemes aufgerufen.
pndocs bei newStyle-Modulen, docs bei oldstyle-Modulen
93
Technische Daten zum Modul Verzeichnisname: Credits
pnAPI-konform: ja
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: index.php?module=Credits
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: Das Modul bedient sich keiner SQL-Tabellen zum Auslesen seiner Informationen, sondern geht folgendermaßen vor: Ist im Verzeichnis des Moduls, dessen Informationen ausgelesen werden sollen, eine version.php vorhanden, werden die darin enthaltenen Informationen ausgelesen. Fehlt diese und ist statt dessen eine pnversion.php vorhanden, werden deren Informationen ausgewertet. Fehlt auch diese, werden nur die Informationen herangezogen, die die PostNuke API-Funktion pnModGetUserMods() zurückliefert (siehe dazu auch das Kapitel Die PostNuke-API). Hinweis: es geht hier lediglich um den Dateinamen. pnversion.php und version.php müssen den nachfolgend skizzierten identischen Aufbau haben.
Beispiel für eine pnversion.php / version.php: Berechtigungsschema Credits:: => ::
94
7 Module
Meinung der Autoren Es hängt vom Autor eines Moduls ab, in wie weit die maximal darstellbaren Informationen auch wirklich gepflegt sind. Machen Sie sich bei einigen Modulen deshalb auf Enttäuschungen gefasst. Vorbild für Modulentwickler sollte das Credits-Modul selbst sein.
7.11 Downloads Kurzbeschreibung Realisiert eine Download-Sektion. Die Dateien müssen bereits im Dateisystem des PostNuke-Servers existieren oder per URL (http, ftp) aufrufbar sein. Anschließend kann im Downloads-Modul ein Eintrag erzeugt werden, der auf diese Datei verweist. StandardBenutzer können Vorschläge zur Verlinkung auf eine Datei einreichen. Funktionen & Verwendung Mit dem Modul können keine Dateien auf das PostNuke-System hochgeladen werden. Zunächst müssen Sie vor dem Einsatz des Downloads-Moduls mindestens eine Download-Kategorie in PostNuke anlegen, die die eingestellten Vorschläge unter einer Art Ordner gruppiert. Es erscheint der Block „wartend“, der Ihnen neben neuen Standard-Artikeln auch anzeigt, wenn neue Downloads auf Freischaltung warten.
Es kennt noch weitere Funktionen wie das Melden defekter Downloads
der Admin kann Downloads auf Existenz überprüfen
Abstimmungen: Punktezahlen von 1 (schlecht) bis 10 (exzellent) für einen Download
Kommentare auf Downloads
Downloads können kategorisiert werden (max. eine Unterkategorie)
7.11 Downloads
95
Beliebteste Downloads: zählt die Häufigkeit des Downloads dieser Datei. Bestbewertete Downloads: zählt die Summe der Abstimmungs-Punkte
Technische Daten zum Modul Verzeichnisname: Downloads
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Downloads
Admin-Link &op=main
Benutzer-Link zum Modul: modules.php?op=modload&name= downloads&file=index
Berechtigungsschema Downloads::Category => Category name::Category ID
Downloads::Item => File name::File ID
Meinung der Autoren Das Modul enttäuscht ein wenig, und leider gibt es auch keine wirklich funktionierenden, gescheiten Alternativen für PostNuke 0.750. Wer eine Upload-Funktion benötigt, wird beim etwas besseren UpDownload-Modul fündig.
7.12 Ephemeriden Der Begriff „Ephemerid“ lässt sich am besten mit „Eintagsfliege“ übersetzen.
Kurzbeschreibung Ein Ephemerid ist in PostNuke der Begriff für einen kalenderartigen Eintrag nach dem Motto „Was geschah heute vor x Jahren?“ oder „Es war einmal...“. Mit Hilfe dieses Moduls kann der Besucher der Webseiten an längst vergangene Ereignisse erinnert werden, z.B. den Börsengang der fiktiven Firma vor fünf Jahren. Es sind mehrere Ereignisse pro Tag erlaubt und auch Termine in der Zukunft möglich Technische Daten zum Modul Verzeichnisname: NS-Ephemerids
96
pnAPI-konform: nein
7 Module
Link/Icon im Administrationsmenü: Ephemeriden
Admin-Link zum Modul: admin.php?module=NS-Ephemerids &op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Core/Ephemerids
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: ephem (enthält Tag/Monat/Jahr und Beschreibung des Ereignisses)
Berechtigungsschema Ephemerids:: => Ephemerid::Ephemerid ID Meinung der Autoren Das Modul ist für sämtliche Webseiten brauchbar, welche themenbezogene Ereignisse aus ihrer Vergangenheit dem Besucher ins Gedächtnis zurückrufen möchten.
7.13 FAQ Kurzbeschreibung FAQ ist die Abkürzung für Frequently Asked Questions und bedeutet übersetzt „die am häufigsten gestellten Fragen“. Damit ist eine Liste von Fragen gemeint, die die Besucher einer Webseite immer wieder an deren Betreiber stellen. Der Anbieter der Seite liefert zu den gestellten Fragen für alle Besucher einsehbar die passenden Antworten. Bekannt sind die FAQs besonders von Hard- und Software-Herstellern. Funktionen & Verwendung Zunächst müssen Sie vor dem Einsatz des FAQ-Moduls mindestens eine Fragen-Kategorie in PostNuke anlegen, die die gestellten Fragen unter einem Thema gruppiert.
7.13 FAQ
97
Hinweis: Löscht man eine Fragen-Kategorie, die bereits beantwortete Fragen enthält, werden auch die darin enthaltenen Fragen gelöscht.
So können Besucher die FAQs einsehen Startseite öffnen
Module – FAQs
Fragenkategorie auswählen und Liste der FAQ einsehen
Alternativ muss dieser Link aufgerufen werden: http://servername/postnuke/html/modules.php?op=modload&na me=FAQ&file=index
So können Besucher Fragen stellen Besucher gehen wie unter „So können Besucher die FAQs einsehen“ vor.
Dort Link „Eine Frage stellen“ anklicken.
Der Besucher kann nun – wenn er möchte – eine der vorgefertigten Frage-Kategorien auswählen. Anschließend muss er nur noch seine Frage an den Betreiber der Webseite eingeben und die Frage abschicken.
So beantworten Sie die Fragen Ihrer Besucher Öffnen Sie die Startseite.
Eine Liste aller noch unbeantworteten Fragen erscheint.
Sie können die Frage nun kategorisieren und beantworten oder löschen.
Hinweis: Sie werden von PostNuke nicht per Mail benachrichtigt, wenn ein Besucher eine neue Frage gestellt hat. Deshalb sind Sie als Administrator der Seite verpflichtet, die FAQs regelmäßig auf neue unbeantwortete Fragen zu untersuchen. Alternativ erscheint der Block „wartend“, der Ihnen neben neuen Standard-Artikeln auch anzeigt, wenn neue Fragen auf Beantwortung warten. Technische Daten zum Modul Verzeichnisname: FAQ
98
pnAPI-konform: nein
Link/Icon im Administrationsmenü: FAQ
Admin-Link zum Modul: admin.php?module=FAQ&op=main
7 Module
Benutzer-Link zum Modul: &name=FAQ&file=index
modules.php?op=modload
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: faq_answer, faq_categories
Berechtigungsschema FAQ:: => Category name::Category ID Meinung der Autoren Aktivieren Sie das Modul, sobald mündlich oder per Mail die ersten Fragen an Ihr Unternehmen gestellt werden. Achten Sie allerdings auch auf regelmäßige redaktionelle Betreuung und beantworten Sie die Fragen so, wie Sie es als Besucher einer Seite auch erwarten würden. Ziehen Sie gegebenenfalls auch Ihre Kollegen zu Rate und installieren Sie im Unternehmen einen neuen Workflow zur Verteilung und Beantwortung neuer FAQs.
7.14 Groups Kurzbeschreibung Für die Sicherheit eines PostNuke-Systems eine neben dem Benutzer- und Zugriffsrechte-Modul wichtige Systemkomponente. Damit werden Benutzer zu logischen Einheiten zusammengefasst, für die dann gesammelt Rechte vergeben werden können. Die hier angelegten Gruppen werden auch nur im Zugriffsrechte-Modul (Permissions) verwendet. Einmal eingerichtet, könnte das Modul sogar deaktiviert und entfernt werden, inkl. seiner Dateien. Die Groups-Tabellen bleiben vom Deinstallationsprozess unberührt und dürfen auch manuell nicht gelöscht werden, da sonst das gesamte Portal nicht mehr funktionieren würde. Das gilt auch für das Zugriffsrechte-Modul. Technische Daten zum Modul Verzeichnisname: NS-Groups
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Gruppen
Admin-Link &op=main
zum
Modul:
admin.php?module=NS-Groups
7.14 Groups
99
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: groups (enthält den Namen der Gruppe und eine jeweils eindeutige ID), group_membership (die zu einer Gruppe gehörenden Benutzer)
Berechtigungsschema Groups:: => Group Name::Group ID
Meinung der Autoren Das Modul kennt keine Untergruppen, genügt technisch aber voll und ganz und spielt seine Stärken in Kooperation mit dem Zugriffsrechte-Modul aus. Die Benutzeroberfläche ist ähnlich wie beim Users-Modul etwas umständlich. Zum Beispiel war es bis 0.750 nicht möglich, mehrere Benutzer auf einmal einer Gruppe zuzuordnen.
7.15 Languages Das LanguageModul kann nicht mit Modulen umgehen, die mit XanthiaTemplates arbeiten, weil deren Templates noch nicht geparst werden.
100
Kurzbeschreibung In erster Linie ein Modul für Übersetzer und daher bis auf zwei Konfigurationsmöglichkeiten weniger für den produktiven Betrieb benötigt. Es ist also möglich, dieses Modul problemlos zu deinstallieren. Funktionen & Verwendung Das Modul erzeugt eine Reihe von Sprachdateien, die alle Sprachkonstanten zum System enthalten. Ein Übersetzungsbüro kann anschließend diese Sprachdateien bearbeiten und damit neue Sprachpakete erzeugen.
1. Schritt: Sprache wählen. Zunächst wählt man das installierte Sprachpaket aus, welches man übersetzen oder komplettieren möchte. Im ersten Schritt passiert allerdings noch nicht viel, es werden nur alle Links im Languages-Modul auf die gewählte Sprache umgestellt.
2. Schritt: Laden der Konstanten. Es durchsucht u.a. ModulDateien wie pnadmin.php, pnadminapi.php, pnuser.php, pnuserapi.php und pninit.php sowie die zentralen Core-Dateien wie
7 Module
admin.php, user.php usw. nach komplett großgeschriebenen Konstanten, die mit einem „_“ beginnen. Dies dauert natürlich eine gewisse Zeit. Die Tabellen languages_constant und languages_file werden gefüllt. Schritt 2 hat nichts mit Schritt 1 zu tun.
3. Schritt: Übersetzung laden. Jetzt wird im gesamten PostNukeDateisystem nach Sprach-Konstanten in den ModulSprachverzeichnissen wie lang und pnlang gesucht. Die Tabelle languages_translation wird für die in Schritt 1 gewählte Sprache – verglichen mit den Konstanten aus Schritt 2 – gefüllt.
4. Schritt: fehlende hinzufügen. Alle fehlenden Übersetzungen werden angezeigt.
5. Schritt: erzeugen. Die in Schritt 4 aufgelisteten fehlenden Übersetzungen werden für alle Module gesammelt in der Datei im missing.php language/<Sprachkürzel>Verzeichnis von PostNuke abgelegt. Zusätzlich wird eine Kopie aller Sprachdateien des gesamten Systems im Verzeichnis postnuke/html/language_<Sprachkürzel> abgelegt. Auf diesem Verzeichnis sollte – mit missing.php als Vergleich – gearbeitet werden. Nach Abschluss der Übersetzung ist man mit postnuke/html/language_ <Sprachkürzel> im Besitz eines kompletten Sprachpakets für seine lokale Installation, welches man wieder in seine PostNuke-Installation kopieren und weltweit verteilen kann.
Technische Daten zum Modul Verzeichnisname: NS-Languages
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Sprachen
Admin-Link zum Modul: admin.php?module=NS-Languages &op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Core/Languages
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: languages_constant (listet auf, welche Konstante sich in welcher Datei befindet), languages_file (Zuordnung von logischen Namen zu Dateien), languages_translation (Übersetzung der Konstanten in eine Sprache)
7.15 Languages
Die Option „ML aktivieren“ bedeutet „MultiLanguage aktivieren“, also der Betrieb eines mehrsprachigen Portals
101
Berechtigungsschema Languages:: => ::
7.16 Legal Documents Kurzbeschreibung Das Legal Documents Modul stellt zentrale Dokumente wie die „Allgemeinen Nutzungsbedingungen“ und „Datenschutzhinweis / Erklärung zum Datenschutz (Privacy Policy)“ zur Verfügung – sogar auf deutsch, wenn das passende Sprachpaket installiert wurde. Funktionen & Verwendung Sie finden den Link zu diesen Dokumenten im Footer des Standard-Themes.
So ändern Sie die Angaben Wechseln Sie in das Verzeichnis postnuke/html/modules/legal/lang/deu, wenn Sie die deutschen Texte anpassen müssen oder möchten. Editieren Sie die Datei global.php mit einem Texteditor.
Technische Daten zum Modul Verzeichnisname: legal
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul:
Benutzer-Link zum Modul: modules.php?op=modload &name=legal&file=index für die Allgemeinen Nutzungsbedingungen, modules.php?op=modload&name=legal&file=privacy für die Datenschutzhinweise
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
Berechtigungsschema legal:: => ::
102
7 Module
Meinung der Autoren Abschalten. Da eine Web-Präsenz sowieso impressumspflichtig ist, ist es viel einfacher, das „Legal Documents“ Modul zu deaktivieren, eigene, passende News-Artikel „Impressum“, „AGBs“ usw. mit allen notwendigen Angaben zu erstellen, das Theme zu modifizieren und dort auf die neuen PostNuke-Artikel zu verlinken. Weitere Vorteile dieser Vorgehensweise sind die implizite Durchsuchbarkeit durch die PostNuke-Suchmaschine sowie die Editierbarkeit der Artikel im Sinne eines CMS – auch ohne den Admin involvieren zu müssen.
7.17 LostPassword Kurzbeschreibung Ermöglicht es Benutzern, ihr Passwort zurückzusetzen, d.h. es wird durch PostNuke ein neues Passwort generiert und zugesendet. Funktionen & Verwendung Geben Sie unter user.php?op=lostpassscreen&module=NSLostPassword zunächst Ihren Benutzernamen und Ihre im System eingetragene E-Mail-Adresse an. Sie erhalten eine E-Mail mit einem Bestätigungscode (wenn Ihre Server-Umgebung für den Versand von E-Mail eingerichtet ist). Den erhaltenen Code geben Sie anschließend im gleichen Formular mit an. Damit wird Ihnen eine zweite E-Mail zugestellt, die Ihr neu zugeteiltes Passwort enthält. Technische Daten zum Modul Verzeichnisname: NS-LostPassword
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: &module=NS-LostPassword
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
user.php?op=lostpassscreen
7.17 LostPassword
103
Berechtigungsschema kein Berechtigungsschema definiert
7.18 Mailer Kurzbeschreibung Ermöglicht die zentrale Konfiguration von SMTP-MailEinstellungen, die dann von anderen Modulen für den Mail-Versand aus dem Portal heraus genutzt werden können, auch bei Benutzerrechten/Benutzer-Ansichten (da das Mailer-Modul für den MailVersand eine Funktion sendmessages() aus pnuserapi.php zur Verfügung stellt). Auch die API-Funktion pnMail() verwendet wenn möglich die Einstellungen aus dem Mailer-Modul. Technische Daten zum Modul Verzeichnisname: Mailer
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Mailer
Admin-Link &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
zum
Modul:
index.php?module=Mailer
Berechtigungsschema Mailer:: => ::
7.19 MailUsers Kurzbeschreibung Mit diesem Modul kann ein Administrator bestimmten oder allen Benutzern des Systems eine SMTP-Email zukommen lassen. Verwendet die API-Funktion pnMail(), womit wenn möglich die Konfiguration des Mailer-Moduls herangezogen wird.
104
7 Module
Technische Daten zum Modul Verzeichnisname: NS-MailUsers
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Benutzer anmailen
Admin-Link zum Modul: admin.php?module=NS-MailUsers &op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: users
Berechtigungsschema MailUsers:: => User name::User ID
7.20 Members List Kurzbeschreibung Mit Hilfe dieses Moduls lassen sich alle Besucher und Benutzer inkl. ihres Status im System auflisten (also ob online oder nicht). Eine Auflistung der letzten zehn neu registrierten Benutzer fehlt ebenso wenig wie eine auf Benutzer spezialisierte Suchmaschine.
Für die Suche in diesem Modul genügt die Angabe von Teilstrings.
Funktionen & Verwendung So rufen Sie die Übersicht auf: Link „Mitglieder“ im Hauptmenü-Block anklicken
Eine Suche nach leerem Benutzernamen fördert alle jemals registrierten Benutzer zu Tage, egal ob online oder offline (das gleiche schafft man aber auch über den Link „Alle“). Anschließend können Sie die gefundenen – und nur die gefundenen – Benutzer editieren oder löschen. Das Mitglieder-Modul ruft dafür die Funktionen des Benutzer-Administrations-Modul auf.
7.20 Members List
105
Technische Daten zum Modul Verzeichnisname: Members_List
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: modules.php?op=modload&name= Members_List&file=index
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: session_info, users
Berechtigungsschema Members_List:: => ::
7.21 Messages Hinweis: wenn Sie eine neue Nachricht versenden, müssen Sie den PostNukeBenutzernamen des Empfängers kennen und diesen auch genau so unter „zu:“ eintragen.
106
Kurzbeschreibung Das Nachrichten-Modul versendet einfache, interne Mails zwischen registrierten PostNuke-Benutzern (und nur diesen). Neben einem Nachrichtenbetreff und der eigentlichen Nachricht kann noch ein Nachrichten-Icon vergeben werden. Attachments sind nicht möglich, dafür kann HTML oder BBCode verwendet werden. Technische Daten zum Modul Verzeichnisname: Messages
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: Mail versenden: Auf „Nachricht senden“ unter modules.php?op=modload&name=Messages &file=index klicken, Mails anschauen unter modules.php?op=modload&name=Messages&file=index oder alternativ über den Online-Block.
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
7 Module
DB-Tabellen: priv_msgs (enthält alle privaten Nachrichten, unverschlüsselt)
Berechtigungsschema kein Berechtigungsschema definiert
7.22 Modules Kurzbeschreibung Bietet dem Administrator eine Oberfläche zur Installation und Deinstallation sowie Upgrading von Modulen an. Ermöglicht darüber hinaus die Zusammenschaltung von Modulen per Hooks. Eines der zentralen Module in einem PostNuke-System. Funktionen & Verwendung Die Funktion sei anhand von new-style-Modulen erklärt. Wird auf erneut erzeugen geklickt, durchsucht das Modul das Dateisystem unterhalb von postnuke/html/modules. Dabei genügt dort schon ein neu angelegtes Verzeichnis, um dieses als Modul installieren und aktivieren zu können. Ein neu hinzugefügtes Modul muss zuerst initialisiert werden. Damit wird dessen Installationsroutine aufgerufen, welche zum Beispiel Datenbanktabellen oder Modulvariablen anlegt. Anschließend folgt die Aktivierung des Moduls, womit es Benutzern im Portal verfügbar wird. Unter anderem zeigt jetzt auch der Generic Menu-Block einen neuen Benutzer-Link zum Modul an. Verfügt das Modul über eine Admin-Oberfläche, taucht dessen Icon auch in der allgemeinen Administrations-Oberfläche auf. Wird ein Modul deaktiviert, wird nur dessen Funktion abgeschaltet. Die Benutzer können nicht mehr auf das Modul zugreifen und es ist nicht mehr administrierbar; dessen Daten bleiben aber erhalten. Wird ein Modul gelöscht, wird dessen Deinstallationsroutine aufgerufen, was auch meist ein Löschen seiner Datenbanktabellen zur Folge hat. Die Dateien des Moduls werden nie gelöscht. Damit erscheint es beim nächsten Neu-Erzeugen wieder in der Modulliste und kann erneut installiert werden.
Anzeigen: Modulliste wird aus der Datenbank geladen (Cache, eventuell veraltet); Erneut erzeugen: Dateisystem wird nach Modulen durchsucht und damit die Modulliste in der Datenbank aktualisiert (aktuell, aber langsamer)
Um festzustellen, ob Module upgedatet werden können, durchsucht das Modul Modules alle version.php oder pnversi-
7.22 Modules
107
on.php-Dateien der Module und vergleicht die darin enthaltenen Versionsnummern mit deren installierter Version. Hat sich diese geändert, wird ein Upgrade-Link angeboten. Idealerweise führen die upgedateten Module dann Routinen durch, die zum Beispiel auch bestehende Datenstrukturen updaten usw. Bei Meldung „Dateien fehlen“ ist das betroffene Modul unvollständig. Bis PostNuke 0.750 muss es dann im Verzeichnis physisch gelöscht, anschließend die Modulliste neu geladen und dort entfernt werden. Jetzt muss eventuell noch die PostNuke-Datenbank um die Tabellen des gelöschten Moduls bereinigt werden. Technische Daten zum Modul Verzeichnisname: Modules
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Module
Admin-Link zum &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: modules, hooks, module_vars
Modul:
index.php?module=Modules
Berechtigungsschema Modules:: => ::
7.23 Multisites Kurzbeschreibung Dabei handelt es sich um kein echtes Modul im postnukeschen Sinne, sondern um eine reine Ansammlung von Dateien, die manuell an bestimmte Stellen ins PostNuke-System verschoben werden müssen, um Multisite-Features zu ermöglichen. Auf Multisites wird im Kapitel Multisites eingegangen.
108
7 Module
7.24 News Kurzbeschreibung Das Modul dient allein der Anzeige von Artikeln/Beiträgen/Stories. Die Module News, AddStory und Submit News bilden quasi eine Einheit.
Drei Module im Verbund: AddStory,News, Submit News
Technische Daten zum Modul Verzeichnisname: News
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: &name=News&file=index
Name für Erstellung eines Blocks: Story Related Links, Past Articles, Story Titles, Todays Big Story, Categories Menu
Berechtigungsschema Stories::Story => Author ID:Category name:Story ID
Stories::Category => Category name::Category ID
Meinung der Autoren Probieren Sie mal das Content-Modul Pagesetter aus: Es kennt frei definierbare Content-Typen und Workflows, Integration von Bilddatenbanken und vieles mehr. Pagesetter macht aus PostNuke erst ein richtiges CMS.
http://www. elfisk.dk
7.25 NewUser Kurzbeschreibung Mit diesem Modul können sich Besucher selbstständig als neue PostNuke-Benutzer am System registrieren, vorausgesetzt, dass diese Einstellung in der Benutzer-Administration vom Administrator nicht deaktiviert wurde.
7.24 News
109
Technische Daten zum Modul Verzeichnisname: NS-NewUser
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: user.php?module=NS-NewUser
Berechtigungsschema kein Berechtigungsschema definiert
7.26 Past_Nuke Kurzbeschreibung Das Modul stellt das Admin-Menü früherer PostNuke-Versionen dar. Es geht davon aus, dass ein Modul Unterverzeichnisse wie „admin/links“, „admin/case“ oder „admin/modules“ besaß (das gleiche gilt für „user/links“ etc.), in denen damals wichtige Dateien abgelegt waren. Wird standardmäßig im abgeschalteten Zustand ausgeliefert. Das Modul Your_Account ist solch ein Vertreter der alten Zunft, funktioniert aber auch ohne Past_Nuke. Technische Daten zum Modul Verzeichnisname: NS-Past_Nuke
110
pnAPI-konform: nein
Link/Icon im Administrationsmenü: PastNuke
Admin-Link zum Past_Nuke&op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
7 Module
Modul:
admin.php?module=NS-
Berechtigungsschema kein Berechtigungsschema definiert Meinung der Autoren Kann deinstalliert werden, da es nur noch historische Bedeutung hat.
7.27 Permissions Kurzbeschreibung Mit diesem Modul werden die Zugriffsrechte des PostNukeSystems geregelt. Benutzer mit Administratorenrechten für dieses Modul können dabei Berechtigungen auf Gruppen- und/oder Benutzerebene festlegen, indem die von den Modulen bereitgestellten Berechtigungsschemata mit den im System bekannten Zugriffsarten verknüpft werden. Inhalte des Systems können so vor nicht autorisiertem Zugriff geschützt werden. Funktionen & Verwendung Verwenden Sie grundsätzlich Gruppenberechtigungen. Sie sind im Vergleich zu Benutzerberechtigungen effizienter und vereinfachen den administrativen Aufwand. Auf Benutzerrechte sollte nur dann zurückgegriffen werden, wenn Gruppenberechtigungen nicht mehr ausreichen. In diesem Fall überschreiben die jeweiligen Benutzerrechte auch die Gruppenberechtigungen. Ebenso wichtig ist die Reihenfolge der Regeln, da Berechtigungen immer von oben nach unten abgearbeitet werden. Werden mehrere äquivalente Regeln zu wahr ausgewertet, beispielsweise wenn ein Benutzer Mitglied in mehreren Gruppen ist, ist zu beachten, dass jede Regel ignoriert wird, die auf eine äquivalente, bereits abgearbeitete Regel folgt. Nähere Informationen zum Thema Berechtigungen finden Sie im Kapitel Sicherheit. Technische Daten zum Modul Verzeichnisname: Permissions
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Zugriffsrechte
Admin-Link zum &type=admin
Benutzer-Link zum Modul: -
Modul:
index.php?module=Permissions
7.27 Permissions
111
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: group_perms, user_perms
Berechtigungsschema Permissions:: => ::
Meinung der Autoren Eines der wichtigsten Module im ganzen PostNuke-System.
7.28 pnRender Kurzbeschreibung Das Layout-System Xanthia (XTE = Xanthia Template Engine) ist ab der PostNuke-Version 0.750 Bestandteil des Basis-Pakets. Es setzt sich dabei aus zwei Komponenten zusammen: 1. aus dem Modul Xanthia. Es kümmert sich hauptsächlich um die Verwaltung von Xanthia-konformen Themes und ist zuständig für das generelle Layout einer Seite. 2. aus pnRender. pnRender stellt anderen Modulen im PostNukeSystem Xanthia-Funktionen zur Verfügung und sorgt für die Übergabe von Modul- oder Block-Variablen an zuständige Templates. Technische Daten zum Modul Verzeichnisname: pnRender
112
pnAPI-konform: ja
Link/Icon im Administrationsmenü: pnRender
Admin-Link zum &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: pnRender / custom pnRender block
Konfigurationsmöglichkeiten des Blocks: siehe dazu pnRender/custom pnRender block im Kapitel Blöcke.
DB-Tabellen: -
7 Module
Modul:
index.php?module=pnRender
Berechtigungsschema pnRender:: => :: Meinung der Autoren Darf wie das Modul Xanthia nicht deaktiviert werden, da alle Themes bzw. Module in Zukunft mit dieser Technik arbeiten werden.
7.29 Polls Kurzbeschreibung Mit diesem Modul können Sie den Besuchern Ihrer Seite Umfragen anbieten. Funktionen & Verwendung Umfragen erstellen/ändern Bei der Erstellung oder Änderung einer Umfrage unter Administration – Umfragen müssen Sie einen Titel sowie die Sprache der Umfrage angeben. Anschließend können Sie bis zu 12 Antwortmöglichkeiten vorgeben.
Für die Anzeige einer Umfrage ist der „Core/Display Poll“Block notwendig. Im Block kann festgelegt werden, ob die aktuellste oder eine bestimmte Umfrage angezeigt werden soll. Konfiguration Unter Administration – Umfragen – UmfrageKonfiguration können Sie Kommentare in Umfragen erlauben (standardmäßig aktiv) und die Breite der Ergebnisbalken festlegen. Als Skalen-Werte lassen sich auch Kommazahlen eingeben (mit einem Punkt statt Komma). Die Breite des Ergebnisbalkens in Pixeln berechnet sich dann wie folgt: Umfrage-Prozentzahl * 4 * Skalen-Wert.
Technische Daten zum Modul Verzeichnisname: NS-Polls
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Umfragen
Admin-Link &op=main
zum
Modul:
admin.php?module=NS-Polls
7.29 Polls
113
Benutzer-Link zum Modul: modules.php?op=modload&name= NS-Polls&file=index
Name für Erstellung eines Blocks: Core/Display Poll
Konfigurationsmöglichkeiten des Blocks: anzuzeigende Umfrage kann ausgewählt werden
Berechtigungsschema Polls:: => Poll title::Poll ID
7.30 Quotes Kurzbeschreibung Realisiert eine Zitatesammlung. Standardmässig werden in der PostNuke-Version 0.750 Gold keine Zitate mitgeliefert. Der Zitate-Block wird bei jedem Reload der Seite mit einem neuen Zitat belegt (kein Caching).
Funktionen & Verwendung Neben dem Erstellen, Editieren und Löschen von Zitaten bietet dieses Modul keine weiteren Konfigurationsmöglichkeiten. Für den mitgelieferten Zitate-Block gilt: es müssen mindestens zwei Zitate eingestellt werden, damit der Block funktioniert. Technische Daten zum Modul Verzeichnisname: Quotes
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Zitate
Admin-Link &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Quotes / Random Quote
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: quotes
zum
Modul:
Berechtigungsschema Quotes:: => Author name::Quote ID
114
7 Module
index.php?module=Quotes
Meinung der Autoren Lässt sich natürlich auch für andere Gelegenheiten verwenden: bei jedem Reload gibt es dann statt Zitaten eine neue Vokabel, ein neues geschichtliches Ereignis usw.
7.31 Ratings Kurzbeschreibung Das Modul Ratings ermöglicht es Besuchern, Content wie z.B. Artikel oder Downloads nach einer Punkteskala zu bewerten. Funktionen & Verwendung Da dieses Modul hauptsächlich einen Hook darstellt, muss dieser in allen Modulen, in denen Bewertungen ermöglicht werden sollen, aktiviert sein. Technische Daten zum Modul Verzeichnisname: Ratings
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Ratings
Admin-Link &type=admin
Benutzer-Link zum Modul: index.php?module=Ratings
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: ratings, ratingslog
zum
Modul:
index.php?module=Ratings
Berechtigungsschema Ratings:: => Module name:Rating type:Item ID Meinung der Autoren Das Modul Ratings ist mit manchen PostNuke-/MySQLVersionen nicht funktional, da es Datenbank-Feldtypen falsch setzt/behandelt.
7.31 Ratings
115
7.32 Recommend Us Kurzbeschreibung Realisiert für jeden Artikel des News-Moduls einen klassischen Link à la „Senden Sie diesen Artikel an einen Freund“. Über einen allgemeinen Link auf das Modul kann man seine PostNuke-Präsenz ganz allgemein weiterempfehlen lassen. Technische Daten zum Modul Verzeichnisname: Recommend_us
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: modules.php?op=modload&name= Recommend_Us&file=index (um Seite unabhängig von einem Artikel weiterempfehlen lassen zu können)
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: stories, stories_cat, topics
Berechtigungsschema Recommend us:: => ::
Meinung der Autoren Auch wenn das Modul klaglos seinen Dienst versieht, schalten Sie es lieber ab. Sie könnten u.U. abgemahnt werden, wenn über diese Funktion auf Ihrer Seite Dritte mit Mails belästigt werden, zu denen Sie selbst keine geschäftliche Beziehung pflegen.
7.33 Referers Kurzbeschreibung Ein Referer ist die URL der vorherigen Webseite, die zur aktuellen Seite geführt hat. Dieses Modul listet also auf, woher die Besucher Ihrer PostNuke-Seite stammen.
116
7 Module
Technische Daten zum Modul Verzeichnisname: NS-Referers
pnAPI-konform: nein
Link/Icon im Administrationsmenü: HTTP-Referer
Admin-Link zum Modul: admin.php?module=NS-Referers &op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: referer
Berechtigungsschema Referers:: => :: Meinung der Autoren Der Einsatz von Proxies oder die Manipulation von HTTPReferern (z.B. durch Einsatz einer Norton Firewall möglich) lassen den Einsatz dieses Moduls wenig sinnvoll erscheinen. Auch wächst die Liste der Referer, die das Modul protokolliert, mit der Zeit ins Unendliche (Voreinstellung: 1000 Einträge). Für die Auswertung von Statistik-Daten dieser Art gibt es geeignetere Software, die direkt auf die Log-Dateien eines Webservers losgeht, z.B. Websuxess.
7.34 Reviews Kurzbeschreibung Ermöglicht die Erstellung von Produkt-Rezensionen. Ähnliche Funktionen kennt man von Produkt-Bewertungsseiten wie dooyoo.de. Technische Daten zum Modul Verzeichnisname: Reviews
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Reviews
Admin-Link &op=main
zum
Modul:
admin.php?module=Reviews
7.34 Reviews
117
Benutzer-Link zum Modul: modules.php?op=modload&name= Reviews&file=index
Kurzbeschreibung Ermöglicht den Benutzern, die Inhalte des PostNuke-Systems über ein Formular zu durchsuchen. Darüber hinaus kann der Benutzer definieren, welche Module auf welche Art durchsucht werden sollen. Funktionen & Verwendung Die Suche basiert auf Plugins, die von jedem Modul im Verzeichnis postnuke/html/includes/search abgelegt werden. Ein Plugin übernimmt – falls aktiviert – die modulspezifische Suche und liefert daraufhin seine Ergebnisse zurück; das SearchModul agiert dagegen als ein „Koordinator“ und zeigt die Ergebnisse aller Plugins gruppiert und gesammelt an. Die Gruppierung richtet sich dabei nach der Ordnung der Plugin-Dateien im Dateisystem. Technische Daten zum Modul Verzeichnisname: Search
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: &name=Search&file=index
Name für Erstellung eines Blocks: Core/Search Box
Konfigurationsmöglichkeiten des Blocks: Soll der „suchen“ Button angezeigt werden, welche Plugins sollen genutzt werden,
7 Module
modules.php?op=modload
welche Topics, Kategorien und Beiträge von welchem Autor sollen durchsucht werden
DB-Tabellen: - (Jedes Plugin arbeitet mit den eigenen Modulbezogenen Tabellen)
Berechtigungsschema kein Berechtigungsschema definiert (die Plugins müssen – entsprechend nach ihren Modulberechtigungen – selbst für die Umsetzung der Zugriffsregeln sorgen)
7.36 Sections Kurzbeschreibung Das Modul hilft bei der strukturierten Anzeige von sehr umfangreichem Content, z.B. von Handbüchern. Dazu verwendet es Hilfsmittel wie Seitenumbrüche, zwischen den Seiten des Dokuments kann direkt navigiert werden usw. Auch wenn das Sections-Modul letzten Endes ähnliches umsetzt wie das News-Modul, hat es nichts mit diesem zu tun. Technische Daten zum Modul Verzeichnisname: Sections
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Sektionen
Admin-Link &op=main
Benutzer-Link zum Modul: &name=Sections&file=index
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: seccont, sections
zum
Modul:
Beim allerersten Zugriff auf die Administration des SectionsModuls kann ausschließlich eine Sektion angelegt werden.
admin.php?module=Sections modules.php?op=modload
Berechtigungsschema Sections::Section => Section name::Section ID
Sections::Article => Article name:Section name:Article ID
7.36 Sections
119
7.37 Settings Kurzbeschreibung Über dieses Modul lassen sich allgemeine systemweite Einstellungen im PostNuke-System tätigen. Neben Titel, Motto und Standard-Theme der Seite lassen sich hier interne Einstellungen wie Zeitzone und -format, Standardgruppe für neu angelegte Benutzer und Sicherheitsoptionen festlegen. Eine nähere Beschreibung der wichtigsten Einstellungsmöglichkeiten finden Sie im Unterkapitel Grundkonfiguration im Kapitel Die PostNuke-Installation. Technische Daten zum Modul Verzeichnisname: NS-Settings
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Einstellungen
Admin-Link zum Modul: admin.php?module=NS-Settings &op=main
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
Berechtigungsschema Settings:: => ::
7.38 Stats Das Installationsdatum, welches in den Statistiken referenziert wird, setzt man in den Einstellungen von PostNuke.
120
Kurzbeschreibung Erzeugt eine Kurzstatistik mit Zahlen, Daten, Fakten über die Nutzung Ihres PostNuke-CMS. Ausgegeben wird statistisches Material zu verwendeten Browsern
Betriebssysteme der Clients
Zeiten: wann (Stunden/Wochentage/Monate) wurden wie viele Seiten in Ihrem CMS abgerufen?
der Anzahl der registrierten Benutzer Ihrer Seite etc.
7 Module
Beachten Sie, dass die Werte fortlaufend kumuliert werden. Die Zahlen der Wochenstatistik betreffen also beispielsweise nicht die aktuelle Woche, sondern stellen die Summe der Zugriffszahlen über alle Wochen seit Bestehen des Systems dar. Technische Daten zum Modul Verzeichnisname: Stats
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul:
Benutzer-Link zum Modul: modules.php?op=modload&name= Stats&file=index
7.39 Submit News Kurzbeschreibung Benutzer mit dem PostNuke-Recht „kommentieren“ können mittels dieses Moduls Beiträge einreichen, die im Anschluss von einem Administrator (über das Modul Add_Story) freigegeben werden müssen. Der Administrator ist somit die letzte Instanz, die über die Erscheinung eines Beitrags entscheidet.
Drei Module im Verbund: AddStory,News, Submit News
Funktionen & Verwendung Im Vergleich zum Modul AddStory (das im Prinzip einen äquivalenten Beitrag erstellt) kann der Benutzer hier nur den Titel, das Topic, die Sprache sowie den Text und den erweiterten Text eingeben. Auch die Festlegung auf ein Ausgabeformat (HTML oder Text) kann hier nicht von einem normalen Benutzer durchgeführt werden.
7.39 Submit News
121
In der Administrationsoberfläche kann der Administrator festlegen, ob ein Mail über neu eingereichte Beiträge versendet werden soll. Technische Daten zum Modul Verzeichnisname: Submit_News
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Submit_News
Admin-Link zum Modul: admin.php?module=Submit_News &op=main
Benutzer-Link zum Modul: modules.php?op=modload&name= Submit_News&file=index
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: queue, topics
Berechtigungsschema Submit news:: => ::
7.40 Template Kurzbeschreibung Dieses pnAPI-konforme Modul soll als Vorlage für die Entwicklung eigener Module dienen (daher der Name „Template“). Wenn Sie keine eigenen Module entwickeln möchten, können Sie diese Vorlage deinstallieren und löschen. Meinung der Autoren Das Template-Modul ist gut, könnte aber besser sein. Es gibt einige Tricks, Tipps und Kniffe, um sich das Leben bei der Entwicklung von Modulen noch einfacher zu machen, auf die das TemplateModul nicht eingeht. Anfängern sei jedoch dringendst empfohlen, anhand dieser Vorlage zu entwickeln, da man hier einen guten Überblick über die notwendigen Dateien sowie den Umgang mit der PostNuke-Technik von der Parameter-Übergabe bis hin zu Sicherheitsfunktionen oder Hooking bekommt. Fortgeschrittene werden mit der Zeit eigene Vorlieben in der Art der PostNukeModulprogrammierung entwickeln.
122
7 Module
7.41 Topics Kurzbeschreibung Ermöglicht die einfache Kategorisierung von Content jeglicher Art in bestimmte Themen-Bereiche (Topics). Topics werden global im gesamten PostNuke-System verwendet (auch in Dritt-Modulen wie z.B. Pagesetter), Kategorien gibt es dagegen nur im NewsModul.
Es sind keine hierarchischen Topics möglich
Technische Daten zum Modul Verzeichnisname: Topics
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Topics
Admin-Link zum Modul: admin.php?module=Topics&op=main
Benutzer-Link zum Modul: name=Topics&file=index
Name für Erstellung eines Blocks: Core/Topics Menu
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: comments, related, stories, topics
modules.php?op=modload&
Berechtigungsschema Topics::Topic => Topic name::Topic ID
Topics::Related => Related name:Topic name:Topic ID
7.42 Top List Kurzbeschreibung Dieses Modul listet jeweils eine festgelegte Anzahl der meistgelesenen Beiträge, meist kommentierten Beiträge, aktivsten Autoren, erfolgreichsten Umfragen, häufigsten Downloads, meistgelesenen Sektions-Beiträge sowie meistgelesenen Reviews auf. Funktionen & Verwendung Die Anzahl wird über die Administrationsoberfläche einmal für alle Ausgaben festgelegt. Die Top-Liste selbst wird über die Benutzeroberfläche ausgegeben.
7.41 Topics
123
Technische Daten zum Modul Verzeichnisname: Top_List
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Top List
Admin-Link &op=main
Benutzer-Link zum Modul: modules.php?op=modload&name= Top_List&file=index
7.43 typetool Kurzbeschreibung Das Modul typetool bietet systemweit einen WYSIWYG-Editor an, der eine Formatierung von Texten ohne Programmier- und HTML-Kenntnisse ermöglicht. Funktionen & Verwendung Der Editor lehnt sich an die Bedienung gängiger Office-Produkte an. In der Administration von typetool kann der Editor aktiviert und die Editor-Sprache per Sprachdatei angegeben werden. Nähere Informationen zu typetool finden Sie im Unterkapitel WYSIWYG HTML-Editor „Type Tool“ im Kapitel Umgang mit PostNuke. Technische Daten zum Modul Verzeichnisname: typetool
124
pnAPI-konform: ja
Link/Icon im Administrationsmenü: typetool
Admin-Link &type=admin
Benutzer-Link zum Modul: -
7 Module
zum
Modul:
index.php?module=typetool
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
Berechtigungsschema typetool:: => Modul name:: Meinung der Autoren typetool ist eine komfortable Alternative zur manuellen Eingabe von HTML und Text.
7.44 Users Kurzbeschreibung Bietet dem Administrator die Möglichkeit, Benutzer anzulegen, zu editieren und zu löschen. Benutzer verwalten über dieses Modul ihren Account und damit z.B. persönliche Einstellungen oder ihren eigenen Benutzer-Block. Darüber hinaus realisiert das Modul allgemeine Systemfunktionen wie den Login-Screen, kümmert sich um die Session-Cookies oder erzeugt auf Anfrage neue Passwörter. Technische Daten zum Modul Verzeichnisname: NS-User
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Benutzer-Administration
Admin-Link &op=main
Benutzer-Link zum Modul: user.php
Name für Erstellung eines Blocks: Core/User’s Custom Box, Core/User’s Login
Konfigurationsmöglichkeiten des Blocks: der Benutzer-Block kann beliebigen Text- oder HTML-Content enthalten
Die Datei user.php aus dem StammVerzeichnis von PostNuke bindet zwei SourceDateien des User-Moduls ein.
admin.php?module=NS-User
groups,
user_data,
Berechtigungsschema Users:: => Uname::User ID
7.44 Users
125
7.45 Web Links Kurzbeschreibung Das Web Links Modul stellt eine Liste von Links zu Webseiten zur Verfügung. Die Liste ist kategorisier- und durchsuchbar und entspricht in ihrem Verhalten etwa einem Web-Verzeichnis wie unter Yahoo. Funktionen & Verwendung Für die Bedienung des Web Links Moduls gelten die gleichen Aussagen wie für das Downloads-Modul, da beide aufeinander basieren und vom gleichen Autor stammen. Technische Daten zum Modul Verzeichnisname: Web_Links
pnAPI-konform: nein
Link/Icon im Administrationsmenü: Web Links
Admin-Link &op=main
Benutzer-Link zum Modul: modules.php?op=modload&name= Web_Links&file=index
Name für Erstellung eines Blocks: Core/Latest Web Links
Konfigurationsmöglichkeiten des Blocks: Modulname sowie Anzahl der aufzulistenden Links. Die Konfiguration des Modulnamens ist aber eher unglücklich, da sie Auswirkung auf die Verlinkung im Block hat. Der konfigurierte Name wird dazu verwendet, im Link den Parameter „name“ festzulegen. Im schlechtesten Fall wird hier dann auf ein falsches Modul umgeleitet. Sie sollten die Standardeinstellung „Web_Links“ beibehalten.
Berechtigungsschema Web Links::Category => Category name::Category ID
126
Web Links::Link => Category name:Link name:Link ID
7 Module
7.46 Wiki Kurzbeschreibung Das Modul Wiki bietet die Möglichkeit, Texte über Steuercodes (sogenannter Wiki-Code) zu formatieren. Funktionen & Verwendung Wiki ist Hook-basiert, stellt sich also anderen Modulen zur Verfügung, wenn diese den Hook "Wiki" für sich aktiviert haben. Wiki selbst bietet keinerlei Konfigurationsmöglichkeiten, es hat weder eine Administrations- noch eine Benutzeroberfläche. Mehr zum Modul Wiki können Sie im gleichnamigen Unterkapitel in Umgang mit PostNuke nachlesen. Technische Daten zum Modul Verzeichnisname: Wiki
pnAPI-konform: ja
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul:
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
Berechtigungsschema kein Berechtigungsschema definiert Meinung der Autoren Wiki braucht nicht aktiviert werden, die Verwendung von TypeTool ist ausreichend und sogar komfortabler.
7.47 Xanthia Kurzbeschreibung Das Layout-System Xanthia (XTE = Xanthia Template Engine) ist ab der PostNuke-Version 0.750 Bestandteil des Basis-Pakets. Es setzt sich dabei aus zwei Komponenten zusammen:
7.46 Wiki
127
1. aus dem Modul Xanthia. Es kümmert sich hauptsächlich um die Verwaltung von Xanthia-konformen Themes und ist zuständig für das generelle Layout einer Seite. 2. aus pnRender. pnRender stellt anderen Modulen im PostNukeSystem Xanthia-Funktionen zur Verfügung und sorgt für die Übergabe von Modul- oder Block-Variablen an zuständige Templates. Funktionen & Verwendung Themes können hinzugefügt, editiert und gelöscht werden. Beachten Sie, dass nur hinzugefügte Themes als aktiv gelten und in den allgemeinen System-Einstellungen als Standard-Theme ausgewählt werden können. Das Editieren umfasst Block-Zonen, Theme-Zonen, ThemeTemplates, Theme-Farben, Theme-Einstellungen sowie die BlockKontrolle. Näheres zu diesem Modul und seinen Konfigurationseinstellungen finden Sie im Kapitel Xanthia. Technische Daten zum Modul Verzeichnisname: Xanthia
pnAPI-konform: ja
Link/Icon im Administrationsmenü: Xanthia
Admin-Link &type=admin
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: Xanthia/Logo block for Xanthia Themes und Xanthia/Display module output in a block
Konfigurationsmöglichkeiten des Blocks: Keine für den erstgenannten Block. Der zweite Block verlangt die Angabe des Moduls, der zu ladenden Funktion sowie alle benötigten Parameter in der Art wie sie in einer URL definiert sind (Bsp.: cid=1&sid=5)
Berechtigungsschema Xanthia::item => Xanthia item name::Xanthia item ID
128
7 Module
Meinung der Autoren Darf wie das Modul pnRender nicht deaktiviert werden, da alle Themes bzw. Module in Zukunft mit dieser Technik arbeiten werden.
7.48 Xmlrpc Kurzbeschreibung XMLRPC ermöglicht die Anbindung externer Text-Editoren wie z.B. w.bloggar von http://www.wbloggar.com. Mit Editoren dieser Art lassen sich nicht nur Texte erstellen und formatieren, sondern anschließend auch direkt in PostNuke veröffentlichen. So lässt sich Content auch ohne Verwendung eines Browsers pflegen. Darüber hinaus bietet das Modul eine pnuserapi.php, mit deren Hilfe Entwickler ihre eigenen Module um XMLRPC-Funktionen erweitern oder weitere Editoren an PostNuke anbinden können.
Das NewsModul ist momentan die einzige Anwendung für XMLRPC
Funktionen & Verwendung 1. xmlrpc-Modul aktivieren 2. w.bloggar herunterladen, installieren und starten 3. w.bloggar verlangt nach einem Benutzernamen und Passwort. Hier muss ein gültiger PostNuke-Account mit Rechten zur Erstellung einer Story angegeben werden. 4. w.bloggar konfigurieren:
Blog System: PostNuke
Bezeichnung: XMLRPC-Test
Host: Hostname des PostNuke-Systems (z.B. localhost, wenn Editor und PostNuke auf dem gleichen System ausgeführt werden)
Seite: passender Pfad zur xmlrpc.php, /postnuke/html/xmlrpc.php
also
z.B.
5. Artikel erstellen und auf Eintragen & Publizieren klicken. Während Topics auch in w.bloggar vergeben werden können, unterstützt es PostNuke-Zusatzfunktionen wie die Unterteilung in Einleitungs- und erweiterter Text nicht. Mit einem kleinen Hack kann aber das xmlrpc-Modul so geändert werden, dass auch diese Eintei-
7.48 Xmlrpc
129
lung über die Verwendung von z.B. HTML-Kommentaren simuliert werden kann. Eine Beschreibung dazu findet sich auf post-nuke.net (Suche nach XMLRPC). Abb. 7.1: Der bloggar-Client
Wer andere Editoren anbinden möchte, muss eine API für das XMLRPC-Modul entwerfen. Die Datei modules\xmlrpc\api\blogger.php zeigt praktisch, wie so etwas funktioniert. Ist eine neue API erstellt, muss die pnuserapi.php des XMLRPC-Moduls um ein weitere include-Statement für diese Datei ergänzt werden. Technische Daten zum Modul Verzeichnisname: xmlrpc
130
pnAPI-konform: ja
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: -
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: stories, topics, users
7 Module
Berechtigungsschema kein Berechtigungsschema definiert
7.49 Your_Account Kurzbeschreibung Das Modul tritt in Aktion, wenn man auf seine „persönliche Seite“ über den Hauptmenü-Block gelangt. Es ermöglicht die Erstellung persönlicher Blöcke („User Blocks“, „Startseite einstellen“), die Selektion eines persönlichen Themes und die Pflege persönlicher Angaben. Darüber hinaus kann es eine Reihe von Icons/Links anbieten, die zu benutzerspezifischen Funktionen in Modulen verweisen.
Schauen Sie sich einmal die besondere Verzeichnisstruktur direkt im NSYour_AccountVerzeichnis an.
Funktionen & Verwendung Die Funktionen dieses Moduls erreicht man im HauptmenüBlock über den Link Einstellungen (nicht verwechseln mit Administration – Einstellungen) oder direkt über den Aufruf der user.php. Wer als Modulentwickler ebenfalls Funktionen über die persönliche Einstellungsseite anbieten möchte, muss
in seinem Modulverzeichnis im Ordner pnimages möglichst ein Icon für seine Benutzer-Funktion ablegen,
in seinem Modulverzeichnis ein Unterverzeichnis namens user anlegen, welches die Unterverzeichnisse case, links und modules enthält,
und darin jeweils eine neue PHP-Datei namens links.MeineFunktion.php legen. Wie diese jeweils zu implementieren sind, zeigt das Your_Account-Modul.
Wer es ganz einfach haben möchte, versucht mal einen BenutzerLink auf das News-Modul hinzuzufügen. Legen Sie eine Datei im Verzeichnis links.News.php modules/NSYour_Account/user/links an und füllen Sie diese mit folgendem Code: Unter Einstellungen wird jetzt das Icon und die Beschreibung „News – Alle auf einen Blick“ angezeigt.
Technische Daten zum Modul Verzeichnisname: NS-Your_Account
pnAPI-konform: nein
Link/Icon im Administrationsmenü: -
Admin-Link zum Modul: -
Benutzer-Link zum Modul: user.php
Name für Erstellung eines Blocks: -
Konfigurationsmöglichkeiten des Blocks: -
DB-Tabellen: -
Berechtigungsschema kein Berechtigungsschema definiert
7.50 Sie brauchen mehr Module? Auf den im Anhang aufgeführten Seiten gibt es jede Menge weitere Module. Für fast jeden Einsatzzweck sollte sich ein passendes Stück Software finden – wenn nicht, erläutern wir im Kapitel Die PostNuke-Programmierung, wie Sie selbst eigene Module entwickeln können.
7.51 Zusammenfassung Das Kapitel gab Ihnen detaillierte technische Informationen und Hinweise zur Bedienung, Funktionalität und Einsatzspektrum zu allen mitgelieferten Modulen. Die in 0.760 hinzugekommenen Module konnten zur Drucklegung des Buches nicht mehr berücksichtigt werden.
132
7 Module
7.52 Ausblick Im nächsten Kapitel werden Sie im Umgang mit Xanthia-basierten Themes vertraut gemacht. Auch die Erstellung eines eigenen Themes wird beschrieben.
7.52 Ausblick
133
8 Xanthia-Themes
Ab der PostNuke-Version 0.750 wird das Layout des gesamten Auftritts über eine eigene Template-Engine namens XTE (Xanthia Templating Engine) gesteuert. Aufgabe einer Template-Engine ist die Trennung der Anwendungs-Logik von der Ausgabe – das Aussehen einer PostNuke-Seite kann damit beliebig ausgetauscht werden, die Logik und die Daten sind davon nicht betroffen. Das XTE-Paket besteht aus:
Xanthia, welches für das Theme-Management zuständig ist..
pnRender basiert intern auf Smarty, einer Open Source Template-Engine für PHP (und Python). pnRender stellt die Schnittstelle für PostNuke-Module zu Smarty-Templates dar. Kernel
Browser
Zugriffsrechte
pnRender mit SmartyTags in Templates
Modul 1
Modul 2
Modul n
Xanthia
Abb. 8.1: Der Weg von der Anfrage bis zur Auslieferung von Seiten
DB
Suche
8.1 Einführung Bis PostNuke Version 0.726 wurden Modul-Ausgaben mit der pnHTML-Klasse erzeugt. Dabei wurden die Ausgabebefehle direkt
8.1 Einführung
135
in die Modul-PHP-Dateien (pnuser, pnadmin) programmiert. Ein Beispiel: function modulname_user_funktionsname(){ // Erzeugen eines neuen Objekts // $output des Typs pnHTML $output = new pnHTML(); // Erzeugen einer Tabelle mit einer // Spalte und einer Zeile $output->TableStart(); $output->TableRowStart(); $output->TableColStart(); $output->Text($my_result); $output->TableColEnd(); $output->TableRowEnd(); $output->TableEnd(); // Generierten Code an den // Browser übergeben return $output->GetOutput(); } Diese Vorgehensweise hat viele Nachteile:
136
Man muss im Beispiel sehr viel Code für die Definition einer kleinen Tabelle entwickeln und pflegen.
Der Source-Code für die Ausgabe unterscheidet sich nicht von reinem Anwendungscode.
Man ist an die Umsetzung der einzelnen Ausgabebefehle gebunden, was optimierten HTML Source-Code mitunter verhindern kann.
Designer und Programmierer können nicht parallel arbeiten, da das Sammeln und Aufbereiten von Daten in derselben Datei stattfindet.
Die Dateien sind nicht mit Design-Tools wie Frontpage o.a. editierbar.
Ein einheitliches Corporate Identity ist fast nicht umsetzbar.
8 Xanthia-Themes
Noch bedienen sich viele Module der alten pnHTML-Techniken, die wir hier jedoch nicht weiter vertiefen wollen. Xanthia beschreitet einen völlig anderen Weg. Ein XanthiaTemplate ist zunächst einmal nichts anderes als eine reine HTMLDatei. Zusätzlich kann dieser HTML-Code Variablen und Funktionen in einem bestimmten Format (die Tags der Smarty Templating Engine) enthalten, die von PostNuke-Modulen gefüllt und von der Layout-Engine an den Browser ausgeliefert werden. PostNukeModule müssen also im Gegensatz zu obigem Beispiel keinerlei HTML-Code mehr enthalten. Damit fallen alle genannten Nachteile weg.
Xanthia ist für das Management der Themes zuständig