Ich möchte ein Modul entwickeln - was bietet mir Postnuke?
Bei Postnuke handelt es sich nicht (mehr) um ein einfaches Portalsystem - mit jeder Veröffentlichung wurden Schritte auf dem Weg zu einem Application Framework genommen, die den Modulentwickler bei seiner Arbeit unterstützen. Die verschiedenen Teile des Frameworks nehmen eine Menge Arbeit ab und helfen bei einer effizienten und möglichst fehlerfreien Implementierung.
Postnuke Application Framework
Zu den Teilen des Systems, auf die ein Entwickler zugreifen kann gehören:
Benutzerverwaltung
Das Basissystem bietet die Möglichkeit, dass sich Benutzer anmelden können. Jeder User kann verschiedene Einstellungen vornehmen und persönliche Daten angeben, die sich über ein API abfragen lassen.
Zugriffsrechte
Die Zugriffsrechte sind bei Postnuke über eine Gruppen- und eine Rechteverwaltung geregelt. Benutzer können in Gruppen eingetragen werden und diesen Gruppen können spezifische Benutzerrechte zugeteilt werden. Die verschiedenen Zugriffsrechte können je nach Anforderungen der Programmierung genutzt werden - dazu sind ebenfalls einfache API-Aufrufe nötig.
DBUtil
(Ab Postnuke .8) - DBUtil hilft Fehlerquellen bei Datenbank-Zugriffen durch eine einfache Syntax zu reduzieren.
Workflow-System
(Ab Postnuke .8) - Das Workflow-System ist für eine weitere Flexibilisierung im Moduleinsatz gedacht: Statt die Module an geänderte Arbeitsabläufe anzupassen, können über die Änderung direkt an den Workflows vorgenommen werden.
Templating
Nach dem Konzept der verschiedenen Application Layer ermöglicht Postnuke die einfache Trennung von Anwendungs- und Layout-Logik. In der Modullogik muss ein Objekt mit Daten gefüllt werden, die dann vom Layoutsystem an die Templates gegeben werden. Dadurch müssen optische Anpassungen nicht im empfindlichen Programmtext durchgeführt werden. Außerdem können je nach Anwendungsfall bestimmte Funktionen ausgeblendet werden - durch einfaches editieren der HTML-Templates.
FormsAPI
(Ab Postnuke .8) Das pnForms-Framework ist eine Erweiterung von pnRender und dient der Erstellung von Formularen inkl. Überprüfung der eingegebenen Daten, weiteres siehe unten.
Mehrsprachigkeit
Das Language-System von Postnuke ermöglicht es alle textlichen Ausgaben in Form von Konstanten zu umzusetzen, die je nach Spracheinstellung der Site und/oder des Benutzers durch die korrekten Ausgaben ersetzt werden - dies funktioniert auch für Icons mit Beschriftung.
Hooks
Hooks sind kleine Module, die ihre Funktionen anderen Modulen zur Verfügung stellen. Es gibt transform-Hooks, die eingegebene Texte verändern und so zum Beispiel automatisch bestimmte Schlüsselworte durch Links ersetzen. Desweiteren gibt es display-Hooks, die Modulfunktionen in ein anderes Modul integrieren. Es gibt zum Beispiel einen Kommentar-Hook (EZComments), welcher jedes Modul um eine Kommentar-Funktion erweitert.
Modul-API
Über Modul-APIs lässt sich auf die Funktionen andere Module zugreifen, so dass mehrere Module zu einem Gesamtsystem verbunden werden können.
Tools
Die Community stellt Modul-Entwicklern verschiedene Tools zur Verfügung, die die Programmierung weiter beschleunigen. Dazu gehören:
Modul-Generator
Unter openstar.postnuke.com existiert ein Modul-Generator, der alle wichtigen Dateien grundsätzlich anlegt und die Installationsdateien bei vorgegebenen Datenbank-Schema mit dem entsprechenden Programm-Code gefüllt.
pnDefinemachine
Mit pnDefinemachine lassen sich bequem Sprachpakete in verschiedenen Sprachen erstellen und verwalten.
NOC
Das NOC ist die zentrale Entwicklungs-Platform, die die Postnuke Foundation den Modul-Entwicklern zur Verfügung stellt. Ähnlich dem SourceForge-System bietet das NOC Bugtracker, CVS/SVN, Projektmanagement-Tools und Foren. PostNuke gehörte übrigens mit zu den ersten OpenSource-Projekten, die interessierten Programmierern diese Möglichkeit anbot. Andere Projekte haben sich daran angelehnt und führen seitdem ähnliche Seiten im Repertoire.
PostNuke .8
Folgende Features stehen Modulentwicklern ab der Version .8 zur Verfügung.
- DBUtil (eng.)
- Workflow-System (eng.)
Dokumentation
- Coding Richtlinien (eng)
Support
In unserem Entwicklerforum versucht das pnTeam auch bei Modulentwicklungen zu helfen - oft soll das schon gelungen sein.