Der Portal Manager kann in den beiden Dateien web.xml
und
pm.xml
konfiguriert werden. Diese Dateien sind im Verzeichnis
WEB-INF
unterhalb des Web-Applikationsverzeichnisses des Portal
Managers zu finden. In der CMS-Standardinstallation lautet der Pfad (relativ
zum CMS-Verzeichnis):
instance/default/webapps/PM/WEB-INF
In der Datei web.xml
werden (wie in jeder anderen
Web-Applikation auch) die verwendeten Servlets, Servlet-Filter etc.
deklariert und deren URL-Schemata festgelegt.
Die eigentliche Konfiguration des Portal Managers ist in der Datei pm.xml
zu finden. In dieser Datei sind Spring-Beans konfiguriert.
In der Standardkonfiguration sind die folgenden obligatorischen Beans enthalten:
hostConfig
(com.infopark.pm.HostConfig
)
Legt fest, für welche Hosts Anfragen angenommen werden und welche
Sprachen unterstützt werden, siehe auch
<npspm showIfLanguage>
und die Portletkonfiguration in der Datei
WEB-INF/portlet.xml
.
userManager
(com.infopark.pm.user.UserManager
)
Die Benutzerverwaltung des Systems, über die der
AuthenticationFilter
auf Benutzerdaten zugreift.
portletContainer
(com.infopark.pm.portlet.PortletContainer
)
Verwaltet die in der Datei WEB-INF/portlet.xml
definierten
Portlets und stellt diese für dynamische Inhalte bereit.
documentManager
(com.infopark.pm.DocumentManager
)
Liefert die Inhalte für das ContentServlet
. Die
mitgelieferte Implementierung greift dazu auf eine konfigurierbare
com.infopark.pm.DocumentSource
zu.
permissionManager
(com.infopark.pm.PermissionManager
)
Liefert dem
PermissionFilter
die Namen der Gruppen, die auf
auszuliefernde Inhalte zugreifen dürfen. Der
permissionManager
ist ab Version 6.7.1 nicht mehr
vorhanden, da der AuthorizationManager
seine Funktion
übernommen hat.
authorizationManager
(com.infopark.pm.user.AuthorizationManager
)
Überprüft mit Hilfe der angegebenen Methoden
(com.infopark.pm.user.Authorizer
), ob der Benutzer auf einen
Inhalt zugreifen darf.
templateEngine
(com.infopark.pm.TemplateEngine
)
Bereitet dynamische Inhalte so vor, dass das
ContentServlet
das Ergebnisdokument ausrechnen kann.
contentHandlerMap
(java.util.Map
)
Legt fest, welche Inhalte das ContentServlet
wie ausliefert
(statisch oder dynamisch). Je MIME-Typ kann ein Bean des Typs
com.infopark.pm.doc.ContentHandler
angegeben werden. Für
statische und dynamische Inhalte ist jeweils eine Implementierung
verfügbar.
Die in einer Web-Applikation enthaltenen Portlets werden in der Datei
WEB-INF/portlet.xml
konfiguriert. Die Datei hat den folgenden
Aufbau:
<?xml version="1.0" encoding="UTF-8" ?> <portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet> ... </portlet> ... <custom-portlet-mode> ... </custom-portlet-mode> ... <custom-window-state> ... </custom-window-state> ... <user-attribute> ... </user-attribute> ... </portlet-app>
Die Elemente haben die folgende Bedeutung:
portlet
konfiguriert ein Portletcustom-portlet-mode
konfiguriert einen über den Standard
hinausgehenden Portlet-Modus wie about
oder print
.custom-window-state
konfiguriert einen über den Standard
hinausgehenden Fensterstatus.user-attribute
definiert optionale
Benutzereigenschaften, die den
Portlets zur Verfügung gestellt werden.Sicherheitseinschränkungen (security-constraint
) werden vom Portal Manager nicht unterstützt.
Jedes Portlet wird durch ein portlet
-Element konfiguriert. Im
folgenden Beispiel sind die wichtigsten Elemente enthalten:
... <portlet> <portlet-name>example</portlet-name> <portlet-class>com.infopark.example.Portlet</portlet-class> <init-param> <description>my init param description</description> <name>host</name> <value>127.0.0.1</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>edit</portlet-mode> </supports> <supported-locale>en</supported-locale> <supported-locale>de</supported-locale> <resource-bundle>com.infopark.example.localizer</resource-bundle> <portlet-preferences> <preference> <name>readOnlyPreference</name> <value>foo</value> <value>bar</value> <read-only>true</read-only> </preference> <preferences-validator>com.infopark.example.Validator</preferences-validator> </portlet-preferences> </portlet> ...
Die Elemente haben die folgende Bedeutung:
portlet-name
: Die Bezeichnung des Portlets. Der Bezeichner muss
innerhalb der Portlet-Web-Applikation eindeutig sein. Über ihn wird das Portlet
eingebunden.
portlet-class
: Die Java-Klasse, die die Portlet-Funktionalität
bereitstellt. Diese Klasse muss in einem jar-Archiv im Verzeichnis
WEB-INF/lib
oder als kompilierte Klasse unter WEB-INF/classes
enthalten sein.
expiration-cache
: Diese Option erlaubt dem Portal Manager, den
Portletinhalt für die angegebene Anzahl von Sekunden zu cachen, d.h. in dieser Zeit
nicht neu zu berechnen. Bei 0
wird diese Funktion deaktiviert, bei
-1
ist endloses Caching erlaubt (bis eine Aktion ausgeführt wird).
init-param
: Ein Konfigurationsparameter für dieses Portlet. Es
können beliebig viele init-param
-Elemente für ein Portlet vorhanden sein.
description
: Optionale Beschreibungname
: Der Name des Parametersdescription
: Der Wert des Parameterssupports
: Konfiguriert unterstützte MIME-Typen und Portlet-Modi:
mime-type
: Konfiguriert einen unterstützten MIME-Typ. Je Typ
wird ein Element angegeben, der MIME-Typ muss angegeben werden.portlet-mode
: Weitere vom Portlet unterstützte Portlet-Modi
neben VIEW
können hier konfiguriert werden.supported-locale
: Eine unterstützte Sprache. Typischerweise wird
hier nur ein ISO-Kürzel für eine Sprache, optional auch ein Länderkürzel
nach einem Unterstrich angegeben. Ein Portlet kann eine oder meherere Sprachen
unterstützen, d.h. das Element kann mehrfach angegeben werden.
resource-bundle
: Der Name, unter denen die Ressourcen zu finden sind
(ohne die Sprache oder Endung .properties
).
portlet-info
: Alternativ zu Ressourcen können Titel, Kurztitel und
Schlüsselwörter mit diesem Element auch direkt angegeben werden. Die entsprechenden
Unterlemente sind: title
, short-title
und
keywords
.
portlet-preferences
: Zu jedem Portlet können beliebig viele
Voreinstellungen konfiguriert werden. Die Werte dieser Einstellungen können zur
Laufzeit geändert werden, sofern die Einstellung nicht als schreibgeschützt
gekennzeichnet ist. Optional kann die Überprüfung der Einstellungen mittels einer
Validator-Klasse konfiguriert werden.
Die Option expiration-cache
wird erst ab Version 6.5.2 unterstützt. Für
Portlets mit rechenintensiver Implementierung ist diese Option eine Möglichkeit, die
Performance des Portals zu verbessern.
Ab Version 6.5.1 können Sie eigene, nicht in der JSR168-Spezifikation definierte Portlet-Modi
(engl. "custom modes") oder Fenster-Status (engl. "custom states")
einsetzen, indem Sie im WEB-INF
-Verzeichnis der PM-Web-Applikation die
Datei portlet.xml
anlegen und darin Ihre eigenen Portlet-Modi und
Fenster-Status deklarieren.
Beispiel:
... <custom-portlet-mode> <portlet-mode>preview</portlet-mode> </custom-portlet-mode> <custom-portlet-mode> <portlet-mode>urn:javax:portlet:mode:custom:about</portlet-mode> </custom-portlet-mode> <custom-window-state> <window-state>solo</window-state> </custom-window-state> ...