PostgreSQL
Portierung Oracle
AS Geronimo
Liferay
.Net (VB)
PowerPoint-Tips
Excel-Tips
Word-Tips
Outlook-Tips
Zitatenschatz
Dietmar Keune


Für das Können gibt es nur einen Beweis: das Tun.
Marie von Ebner-Eschenbach Öst. Schriftstellerin (1830-1916)

Liferay


Themes in Liferay - Grundlagen

Grundsätzlich werden die Seiten im Portal zur Laufzeit genneriert. Das passiert auf der Grundlage von Templates, die als Schablonen verwendet werden, während der Generierung einzelner Portalseiten- bzw. Portletfragmenten durch die zuständigen Systemkomponenten.

Liferay-Schemata

Abb. Erzeugung einer Portalseite (Schematisch)

Das Festlegen von portletspezifischen Farbwerten findet in einer vordefinierten XML-Datei statt (liferay-look-and-feel.xml).:

<?xml version="1.0"?>
<!DOCTYPE look-and-feel PUBLIC "-//Liferay//DTD Look and Feel 5.2.0//EN" "http://www.liferay.com/dtd/liferay-look-and-feel_5_2_0.dtd">

<look-and-feel>
<compatibility>
<version>5.2.0+</version>
</compatibility>
<company-limit>
<company-includes />
<company-excludes />
</company-limit>
<theme id="classic" name="Classic">
<root-path>/html/themes/classic</root-path>
<templates-path>${root-path}/templates</templates-path>
<images-path>${root-path}/images</images-path>
<template-extension>vm</template-extension>
<settings>
<setting key="bullet-style-options" value="1,2" />
<setting key="hello" value="world" />
<setting key="hi" value="mom" />
</settings>
<roles>
<role-name>User</role-name>
</roles>
<color-scheme id="01" name="Blue">
<css-class>blue</css-class>
<color-scheme-images-path>${images-path}/color_schemes/${css-class}</color-scheme-images-path>
</color-scheme>
<color-scheme id="02" name="Green">
<css-class>green</css-class>
</color-scheme>
<color-scheme id="03" name="Orange">
<css-class>orange</css-class>
</color-scheme>
</theme>
<theme id="control-panel" name="Control Panel">
<root-path>/html/themes/control_panel</root-path>
</theme>
<theme id="mobile" name="Mobile">
<root-path>/wap/themes/${theme-id}</root-path>
<wap-theme>true</wap-theme>
</theme>
</look-and-feel>

Zum Einbinden der festgelegten Farbwerte aus der XML-Datei in ein Template verwendet Liferay die Technologie Velocity Markup (VM) . Der dadurch entstehende grundlegende Vorteil liegt sowohl in der Minimierung redundanter Daten als auch in der dateiorientierten Gruppierung gleichartiger Informationen.

Neben den aufgeführten Elementen kann ein Template weitere Informationen und Elemente beinhalten. Für das Einbinden dynamischer Elemente, wie z.B. das ereignisgesteuerte Anzeigen von Bildern, wird sowohl JSP als auch JavaScript verwendet.

Liferay Theme-Struktur

Abb. Zusammenwirken der Theme-Komponenten

Selbstentwickelte Themes können in Liferay dem Portal zur Laufzeit als Web-Archive (WAR)-Datei hinzugefügt werden.


Formale Zuordnung von Layouts zu Dateien:

  • main.css
    ruft alle anderen css-Dateien auf.

  • base.css
    enthält alle grundlegenden generischen Basis-Styls die nicht in einer Beziehung zu anderen Objekten (Formularen, Navigation ) stehen.

  • application.css
    Hier werden allle in der Anwendung benutzten Styls (z.B. Dialoge, Inline-Popup-Fenster, Tabs, Tags)

  • layout.css
    Definiert alle Styls die im Zusammenhang mit dem Layout stehen.Das passiert hier auf sehr elementarer Ebene und sollte besser nicht geändert werden.

  • navigation.css
    Diese Datei enthält alle Styls die im Zusammenhang mit der Navigation wichtig sind.

  • Portlet. css
    Beinhaltet alle Styl-Definitionen für die Portlets, einschließlich der JSR-168- und der JSR-286-Klasse

  • forms.css
    Enthält alle CSS-Styls für Formular-Elemente.

  • custom.css
    Sollte alle Styls für die individuelle Anpassung enthalten.

In keiner css -Datei sollten Definitionen vorgenommen werden die die Definitionen anderer CSS-Dateien berühren!


Übersicht über die HTML Selektoren, Klassennamen,IDs die in den css-Dateien definiert werden stehen in CSS-Definitionen OpENSC-themes-css.odt

Liferay Themes-Übersicht

Ordnerstruktur Liferay Themes

Lferay - Ordnerstruktur

Die Ordnerstruktur der Unterverzeichnisse unterhalb des Ordners....\-themes\docroot entspricht bis auf den Ordner ..\docroot\_diffs der Ordner- und Dateistruktur wie sie unter _diffs aufgeführt sind. Ich habe zur Vereinfachung alle Ordner die unter ..\docroot\images liegen daher ausgeblendet.

..\templates

Die Templates werden über Velocity Markup -Format abgelegt. Standardmäßig werden folgende Templates benutzt:

templates

CSS-Verzeichnis und color_schemes:

..\images :

Hier werden grafische Objekte (Bilder,Icons und Navigationselemente) für das Standard-Liferay-Portal hinterlegt:

  • lifarey.ico (Browser-Tab-Icon

  • thumbnail.png (Voransicht im Layout-Auswahl-Fenster von Liferay)

..\images\add_content, ..\application, ..\arrows, ..\blogs, ..\calendar, ..\colorpicker

Grafische Objekte für Bedienung und Standardportlets.

..\images\color_schemes:

Grafische Objekte für Farbschematas (Standard ist Blau) wird das Farbschemata geänderst, ersetzten die grafischen Objekte, so sie angelegt wurden, die Standardobjekte in:

..\images\arrows,..\images\dock...\images\forms,..\images\navigation, ..\images\portlet

..\images\common

Grafische Objekte für das Common User Interfaces von Liferay

..\images\control_panel, ..\dock, ..\document_library, ..\

Grafische Objekte für Bedienung und Standardportlets.

..\images\emoticons

Standard Emoticons

..\images\language

Standard-Flaggensymbole für Sprachauswahl

..\images\enterprise_admin, ..\forms, ..\mail, ..\messages, ..\messages_boards

Grafische Objekte für Bedienung und Standardportlets.

..\images\navigation, ..\, ..\portlet, ..\progress_bar, ..\ratings, ..\shadow, ..\shopping, ..\social_bookmarks

Grafische Objekte für OpEN.SC - Anpassung, Bedienung und Standardportlets.

..\images\trees, ..\wiki,

Grafische Objekte für Bedienung und Standardportlets.

..\javascript

Hier werden angepasste Javascripte gespeichert

..\web-inf

Die Datei liferay-plugin-package.properties beinhaltet die Beschreibung des Themes:

name=OpEN.SC

module-group-id=liferay

module-incremental-version=3.0

tags=Forschungsdatenportal

short-description=

change-log=Charit Universitätsmedizin

page-url=http://opensc.Community.de/

author=OpEN.SC, Charit Universitätsmedizin D.Keune/A.Bogedaly

licenses=MIT

Portlet und Theme-Entwicklung mit dem Plugins SDK von Liferay

Wiki - Link http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Themes


Als Voraussetzung benötigt man Apache Ant, das im System-PATH erreichbar sein sollte, sowie ein installiertes Liferay-Server-Bundle (Tomcat, Geronimo). Weiterhin ein JDK : (download: http://java.sun.com/javase/downloads/widget/jdk6.jsp)



  1. Das Liferay Plugins SDK (Verzeichnis \\-wsi\wsi\software\liferay\liferay-plugin-sdk ist schon angepasst!) herunterladen und lokal entpacken.

    Ergänzend den Liferay Plugin Development Guide herunterladen. (%SDK% =>%svn%\Liferay\sdk...)


  1. Es muss ein geeigneter JAVA_HOME-Pfad bei den Umgebungsvariablen gesetzt sein: SET JAVA_HOME = C:\Programme\Java\jdk1.6.0_17

  2. Liferay-Server-Bundle (Tomcat, Geronimo) ab hier genannt -Lokales Bundle- ist zu installieren, aber nur um die notwendigen Bibliotheken zur Entwicklung zur Verfügung zu haben. Das heisst, der Server muss nicht konfiguriert werden, nur die nötigen Dateien mit ihren Pfaden werden benötigt:
    Kopieren von \\-wsi\wsi\Software\liferay\bundle nach E:\Daten\bundle

  3. Apache Ant (1.7.1.) ist local herunterzuladen (C:\Programme\...)
    Die Umgebungsvariablen sind anzupassen: Unter Systemsteuerung>>System>>Erweitert die Umgebungsvariablen neu anlegen:

    ANT_HOME mit dem Wert C:\Programme\apache-ant-1.7.1

    ANT_OPTS mit dem Wert -Xms256M -Xmx512M

    sowie die Variable Path erweitern mit: %ANT_HOME%\bin

  4. Eine weitere properties-Datei muss angelegt werden. Dazu sollte der eigene Windows-Benutzername herausgefunden werden. Das SDK enthält eine Datei namens build.properties. Diese muss im gleichen Verzeichnis kopiert werden und mit dem Benutzernamen umbenannt werden. Bsp.: Benutzername ist Antje, dann heißt die Datei build.antje.properties.

  5. Es sind einige Konfigurationsvariablen in der Datei build.antje.properties einzutragen, dabei ist insbesondere der korrekte Pfad anzugeben, unter dem das lokale bundle angelegt ist:

    Merke: bitte nur / (slash) benutzen!!!!

#

# Specify the paths to an unzipped Tomcat 6.0.x bundle.

#

app.server.dir=C:/liferay/liferay-portal-5.2.3/tomcat-6.0.18

app.server.classes.portal.dir=${app.server.portal.dir}/WEB-INF/classes

app.server.lib.global.dir=${app.server.dir}/lib/ext

app.server.lib.portal.dir=${app.server.portal.dir}/WEB-INF/lib

app.server.portal.dir=${app.server.dir}/webapps/ROOT


Für ein Geronimo-Bundle: (für lokales Bundle)

app.server.dir=E:/Daten/bundle

app.server.portal.dir=${app.server.dir}/deploy/liferay-portal.war

app.server.classes.portal.dir=${app.server.portal.dir}/WEB-INF/classes

app.server.lib.portal.dir=${app.server.portal.dir}/WEB-INF/lib

app.server.lib.global.dir=${app.server.dir}/var/shared/lib


Dann folgt:

##
## Auto Deploy
##
auto.deploy.dir=${app.server.dir}/../deploy

##
## Libraries
##

required.portal.jars=commons-logging.jar,log4j.jar,util-bridges.jar,util-java.jar,util-taglib.jar

ACHTUNG! Keine Leerzeichen hinter den Pfadnamen lassen!


  1. Wichtige Notiz: Die Ant-Datei build-common-plugin.xml im Verzeichnis %sdk% = %svn%\Liferay\sdk ist scheinbar nicht korrekt. Es ist das ant-target "war" zu suchen. In diesem wird nach dem Entfernen von der vorhergehenden WAR-Datei per antcall das Target clean-portal-dependencies aufgerufen. Das sollte aber erst nach dem Zippen der Dateien geschehen. Die Zeile


<antcall target="clean-portal-dependencies" />

ist also einen Block nach unten, direkt vor das abschließende </target> zu verschieben.

  1. Zum Verwenden des SDK muss der Server gestartet und dementsprechend Liferay am Laufen sein. Dann per Kommandozeile in das Verzeichnis des SDK gehen (z.B. %svn%\Liferay\sdk\themes),
    per Befehl create wird ein neues Default-theme entsprechend dem Classic-Aufbau angelegt. Dieses theme kann dann nach Wunsch verändert werden. Mit dem Befehl ant ist das frisch angelegte theme bzw. portlet auf der Kommandozeile zu kompilieren.

    Für das Anlegen eines Default-Portlets sind die gleichen Schritte vorzunehmen, aber statt ins Unterverzeichnis themes zu gehen, muss im Unterverzeichnis portlets gearbeitet werden.

  2. Merke: Wegen der Versionsänderung (Liferay 5.2) ist in allen neu angelegten themes (z.B. -theme) in der build.xml zu verändern:

    <!-- <property name="theme.parent" value="_styled" /> auskommentieren?
    <property name="theme.parent" value="classic" /> dafür eintragen

  3. Um die neu erstellten themes oder portlets ins Liferay zu integrieren, muss im Portal innerhalb der Seitenverwaltung im Kontextmenü Look-and-Feel unter dem Link weitere installieren das neue Theme bzw. Portlet als .war-Datei hochgeladen und angewandt werden. Die durch das Kompilieren neu angelegte war-Datei liegt unter: %svn%\Liferay\sdk\dist\%war-Datei%.


CSS für Liferay


Wie anfangen:

  • Im Plugins SDK ein neues theme erstellen (create ), per ant-Befehl auf der Konsole zusammenfügen, dieses neue theme ist abgeleitet vom classic theme als default-version.

  • Im Ordner _diffs (%sdk%\sdk\themes\-theme\docroot\_diffs) werden die Änderungen vorgenommen, daher sind alle anderen Ordner des -theme, d.h. images, css, WEB-INF, templates usw. in den _diffs Ordner zu kopieren. Nur dieser Ordner wird für Veränderungen durch den ant-Befehl miteinbezogen!!


Vorgehensweise:

  • Orientierung: Per Firebug die Ebenen nachvollziehen, so ist z.B. der Body-container Ebene 1, auf diesen setzt der wrapper auf (Ebene 2), darauf setzt dann das Banner auf (Ebene 3), darauf das Logo usw.

  • Im _diffs-Ordner in der custom.css die ensprechenden Elemente finden, dort gewünschten Änderungen vornehmen.

  • Notwendiger dirty workaround: verwendete graphische Dinge werden ersetzt, in dem das alte Element (z.B. Bild banner_bg) mit dem neuen ausgetauscht wird, die Bezeichnung aber die gleiche bleibt.


  • Bilder : Speichern nach %sdk%_diffs/images/

Verlinkung zb Communitylogo zu Community webseite: in portal-Normal vm die richtige stelle per firebug finden und href eintrage. (<a class="png" href="$company_url">$company_name</a>)

<div id="wrapper">

<div id="banner">

<h1 class="logo">

<a class="png" href="http://www.Community.de/intranet/">$company_name</a>

  • Abschluss: Änderungen per ant-Befehl zusammenfügen, das neue theme als war-Datei ins Liferay hochladen und installieren.


Menü-Änderung: ()

  • In der portal_normal.vm des test-themes müssen eigene divisions erstellt werden

  • Hier stehen auch Fuß und Kopfdefinitionen für (Achtung! Link hinterlegt)


Themes laden:

Themes zusammenstellen nach Änderung in .._diff..


E:

cd \

CD E:\Daten\svn\develop\sources\Portal\liferay\sdk\themes\-theme

call ant


Vor Laden neues Theme:

altes Theme entfernen:

-Aufruf Geronimo-Console http://-p:8080/console/
Login: system / manager_passwort

Menü WebApp-Wars Theme suchen und deinstallierenI


Laden:

Liferay ? Seiten verwalten Look and Feel ? link (unten) weitere Installieren ? Datei hochladen ? Keine Neuen Namen vergeben!


z.B: E:\Daten\svn\develop\sources\Portal\liferay\sdk\dist\-theme-5.2.3.1.war ? installieren.

Layout-Templat

Wiki-Link: http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Layout+Template

Layout-Templat laden:

Templates ändern:

Z.B. Voransicht in E:\Daten\svn\develop\sources\Portal\liferay\sdk\layouttpl\template-layouttpl\docroot


Layout-Templates zusammenstellen mit

E:

cd \

CD E:\Daten\svn\develop\sources\Portal\liferay\sdk\layouttpl

call ant


Vor Laden des neuen Layout-Templates:

altes Layout-Templates entfernen:

-Aufruf Geronimo-Console http://-p:8080/console/
Login: system / manager_passwort

Menü WebApp-Wars Layout-Templates suchen und deinstallierenI


Laden:

Liferay ? Seiten verwalten Look and Feel ? link (unten) weitere Installieren ? Datei hochladen ?


z.B: E:\Daten\svn\develop\sources\Portal\liferay\sdk\dist\-theme-5.2.3.1.war ? installieren.


Sonstiges:

Lifaray-stop:

-p :

Geronimo-Dosbox strg-c

terminate = y


Lifaray-starten:

d:

cd \

D:\web\geronimo\bin

geronimo run



Verzeichnisse:


Geronimoverzeichnisse zum Deployen:

D:\web\geronimo\deploy\...

Geronimoverzeichnis zum Laden

D:\web\geronimo\repository\default\...


thumbnail.png (Vorschaubild für das Thems in Liferay nach dem Deployen erst in die War einhängen. Da sie sonst immer wieder verschwinden.

Portletanpassung über Portletmenues

Beispiel für Änderungen der Aufzählungszeichen in Portlet Navigation

Menüpunkt Look and Feel

-Erweitertes Styling:



p_p_id_71_INSTANCE_Zl3J_a

{

font-size:9pt ;

font-family:Verdana,Arial, sans-serif ;

font-weight:bolder ;

text-decoration:none ;

}

#p_p_id_71_INSTANCE_Zl3J_ ul ul li {

list-style-type:none ;

}

#p_p_id_71_INSTANCE_Zl3J_ ol,ul,dl {

margin-left:0 ;

}



Liferay dock-Menü:

Die Lösung kann aber durch Einträge in der dock.vm von OpENS- Themes überschrieben werden:

  • Auf dem Server (-p) in D:\web\geronimo\repository\liferay\liferay-portal-tomcat\5.2.0\liferay-portal-tomcat-5.2.0.war\html\themes\_unstyled\templates\dock.vm / init.vm

  • Auf dem Server (-r) in F:\web\geronimo\repository\liferay\liferay-portal-tomcat\5.2.0\liferay-portal-tomcat-5.2.0.war\html\themes\_unstyled\templates\dock.vm / vm


  • können die Texte für die Menü-Einträge geändert werden!

  • Die Icons können über sdk\themes\-theme\docroot\_diffs\images\dock
    manipuliert werden.

Die dock.vm in meinem Theme sieht so aus:

 1<div class="lfr-dock interactive-mode">
 2 #if ($is_signed_in)
 3... bisheriger Inhalt der Datei ...
 4 #end
 5 #if (! $is_signed_in)

6 #<h2 class="user-greeting">
 7 <a href="$sign_in_url"><span>$sign_in_text</span></a>
 8 </h2>
 9 <ul class="lfr-dock-list">
10 </ul>
11 #end
12</div>


Hier außerdem den Anmeldelink für unangemeldete Benutzer genauso umbiegen wie den Homelink. Dann bleibt man bei der Anmeldung im -Layout gefangen. umbiegen , damit die Anmeldung

Standard-Portlet Änderung (passt hier vom Thema nicht ganz)

Portlets die von Liferay standardmäßig benutzt werden:

Im Login Portlet für Passwort vergessen wird (-r)

F:\web\geronimo\repository\liferay\liferay-portal-tomcat\5.2.0\liferay-portal-tomcat-5.2.0.war\html\portlet\login\forgot_password.jsp angepasst.

(-p: D:\web\....

(in svn unter ...svn\develop\sources\portlets\LifeayStandardPortlet\forgot_password.jsp )



Im Login Portlet fürKonto erstellen >wird

F:\web\geronimo\repository\liferay\liferay-portal-tomcat\5.2.0\liferay-portal-tomcat-5.2.0.war\html\portlet\login\create_account.jsp angepasst.

(in svn unter ...svn\develop\sources\portlets\LifeayStandardPortlet\create_account.jsp )

Im Login Portlet einen Abmeldebutton aufnehmen

F:\web\geronimo\repository\liferay\liferay-portal-tomcat\5.2.0\liferay-portal-tomcat-5.2.0.war\html\portlet\login\logint.jsp angepasst.

(in svn unter ...svn\develop\sources\portlets\LiferayStandardPortlet\login.jsp )

Außerdem aus Portal_normal.vm den vorher dort definierten festen Button für das Ausloggen auskommentiert.

(in svn unter ...svn\develop\sources\Portal\Liferay\sdk\themes\-theme\docroot\_diffs\templates\portal_normal.vm )



Portlet Web Content Anzeige:

Bilder in das Portlet integrieren:

In der Toolbar Bild einfügen/editieren auswählen


Hier stehen alle möglichen Property-Änderungen:

http://www.liferay.com/community/wiki/-/wiki/Main/Portal+Properties+5.2.3

Mehrsprachigkeit

Wiki: http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Languagedisplay+customization


Problem:
Wie kann ich zusätzliche Sprachen einbinden?

Lösung:
Benötigte Spachecodes mit Hilfe der Datei Language-ext_xy.properties in ext-ejb/classes/content erzeugen. portal.properties Datei mit portal-ext.properties überschreiben und gewünschte Spracheinstellungen angeben.

Beispiel:
Um etwa Dänisch zu implementieren:
- Datei Language-ext_da.properties mit den Codes erzeugen
- locales-Eintrag in der Datei portal-ext.properties setzen: locales=da_DK

Tipps:
ISO Language Codes können unter http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt, ISO Country Code unter http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html eingesehen werden.



Problem:

Wie kann ich die verfügbaren Sprachen festlegen?

Lösung:

Mit Hilfe der Datei portal-ext.properties im Ordner ext-ejb/classes/META-INF kann man die

default-Einstellungen überschreiben.

Beispiel:

locales=en_US,de_DE



Controllbereich mit eigenem Themes verbinden:

Portal-ext.properties:

control.panel.layout.regular.theme.id=[theme-name]_WAR_[war-name]



Beispiel:?



control.panel.layout.regular.theme.id=-theme-Vers.3.0_WAR_-theme-5.2.3.3.0.war



Ohne Namensangabe beim deployen sollte eine geronimo-web.xml in


E:\Daten\svn\develop\sources\Portal\liferay\sdk\themes\-theme\docroot\WEB-INF

eingebunden werden. (wsi\Temp_dk\)




My Places Portlet#

    #
    # Set this to true to show user public sites with no layouts.
    #
    my.places.show.user.public.sites.with.no.layouts=true

    #
    # Set this to true to show user private sites with no layouts.
    #
    my.places.show.user.private.sites.with.no.layouts=true

    #
    # Set this to true to show organization public sites with no layouts.
    #
    my.places.show.organization.public.sites.with.no.layouts=true

    #
    # Set this to true to show organization private sites with no layouts.
    #
    my.places.show.organization.private.sites.with.no.layouts=true

    #
    # Set this to true to show community public sites with no layouts.
    #
    my.places.show.community.public.sites.with.no.layouts=true

    #
    # Set this to true to show community private sites with no layouts.
    #
    my.places.show.community.private.sites.with.no.layouts=true

    #
    # Set the maximum number of elements that will be shown in the My Places
    # navigation menu. For example, if the maximum is set to 10, then, at most,
    # 1 personal community, 10 organizations, and 10 communities will be shown.
    #
    my.places.max.elements=10


Translator Portlet#

    #
    # Set the default languages to translate a given text.
    #
    translator.default.languages=en_es



Company#

    #
    # This sets the default web id. Omniadmin users must belong to the company
    # with this web id.
    #
    company.default.web.id=liferay.com

    #
    # This sets the default home URL of the portal.
    #
    company.default.home.url=/web/guest

    #
    # The login field is prepopulated with the company's domain name if the
    # login is unpopulated and user authentication is based on email addresses.
    # Set this to false to disable the behavior.
    #
    company.login.prepopulate.domain=true

    #
    # The portal can authenticate users based on their email address, screen
    # name, or user id.
    #
    company.security.auth.type=emailAddress
    #company.security.auth.type=screenName
    #company.security.auth.type=userId

    #
    # Set this to true to ensure users login with https.
    #
    company.security.auth.requires.https=false

    #
    # Set this to true to allow users to select the "remember me" feature to
    # automatically login to the portal.
    #
    company.security.auto.login=true

    #
    # Set this to the maximum age (in number of seconds) of the browser cookie
    # that enables the "remember me" feature. A value of 31536000 signifies
    # lifespan of one year. A value of -1 signifies a lifespan of a browser
    # session.
    #
    # Rather than setting this to 0, set the property
    # "company.security.auto.login" to false to disable the "remember me"
    # feature.
    #
    company.security.auto.login.max.age=31536000

    #
    # Set this to true to allow users to ask the portal to send them their
    # password.
    #
    company.security.send.password=true

    #
    # Set this to true to allow strangers to create accounts and register
    # themselves on the portal.
    #
    company.security.strangers=true

    #
    # Enter a friendly URL of a page that will be used to create new accounts
    # whenever the user clicks the "create account" link in the login portlet.
    # This allows providing custom portlets to create accounts. By default, the
    # portal's create account will be used.
    #
    #company.security.strangers.url=/create_account

    #
    # Set this to true if strangers can create accounts with email addresses
    # that match the company mail suffix. This property is not used unless
    # "company.security.strangers" is also set to true.
    #
    company.security.strangers.with.mx=true

    #
    # Set this to true if strangers who create accounts need to be verified via
    # email.
    #
    company.security.strangers.verify=false

    #
    # Set this to true to allow community administrators to use their own logo
    # instead of the enterprise logo.
    #
    company.security.community.logo=true

    #
    # Input a list of sections that will be included as part of the company
    # settings form.
    #
    company.settings.form.configuration=\
                general,authentication,default-user-associations,reserved-credentials,mail-host-names,email-notifications
    company.settings.form.identification=addresses,phone-numbers,additional-email-addresses,websites
    company.settings.form.miscellaneous=display-settings

Users#

    #
    # Set this to false if users cannot be deleted.
    #
    users.delete=true

    #
    # Set this to true to always autogenerate user screen names even if the user
    # gives a specific user screen name.
    #
    users.screen.name.always.autogenerate=false

    #
    # Input a class name that extends
    # com.liferay.portal.security.auth.ScreenNameGenerator. This class will be
    # called to generate user screen names.
    #
    users.screen.name.generator=com.liferay.portal.security.auth.ScreenNameGenerator

    #
    # Input a class name that extends
    # com.liferay.portal.security.auth.ScreenNameValidator. This class will be
    # called to validate user ids.
    #
    users.screen.name.validator=com.liferay.portal.security.auth.ScreenNameValidator
    #users.screen.name.validator=com.liferay.portal.security.auth.LiberalScreenNameValidator

    #
    # Set this to false if you want to be able to create users without an email
    # address. Note that not requiring an email address disables some features
    # that depend on an email address.
    #
    users.email.address.required=true

    #
    # Set the maximum file size for user portraits. A value
    # of 0 for the maximum file size can be used to indicate unlimited file
    # size. However, the maximum file size allowed is set in the property
    # "com.liferay.portal.upload.UploadServletRequestImpl.max.size".
    #
    users.image.max.size=307200

    #
    # Set this to true to record last login information for a user.
    #
    users.update.last.login=true

    #
    # Input a list of sections that will be included as part of the user form
    # when adding a user.
    #
    users.form.add.main=details,organizations
    users.form.add.identification=
    users.form.add.miscellaneous=

    #
    # Input a list of sections that will be included as part of the user form
    # when updating a user.
    #
    users.form.update.main=details,password,organizations,communities,user-groups,roles,categorization
    users.form.update.identification=addresses,phone-numbers,additional-email-addresses,websites,instant-messenger,social-network,sms,open-id
    users.form.update.miscellaneous=announcements,display-settings,comments,custom-attributes

    #
    # Input a list of sections that will be included as part of the user form
    # when updating a user in the My Account portlet.
    #
    users.form.my.account.main=details,password,organizations,communities,user-groups,roles,categorization
    users.form.my.account.identification=\
                addresses,phone-numbers,additional-email-addresses,websites,instant-messenger,social-network,sms,open-id
    users.form.my.account.miscellaneous=announcements,display-settings,comments,custom-attributes

    #
    # Set this to true to enable reminder queries that are used to help reset a
    # user's password.
    #
    users.reminder.queries.enabled=true
    users.reminder.queries.custom.question.enabled=true

    #
    # Input a list of questions used for reminder queries.
    #
    users.reminder.queries.questions=\
                what-is-your-primary-frequent-flyer-number,\
                what-is-your-library-card-number,\
                what-was-your-first-phone-number,\
                what-was-your-first-teacher's-name,\
                what-is-your-father's-middle-name

Groups and Roles#

    #
    # Input a list of comma delimited system group names that will exist in
    # addition to the standard system groups. When the server starts, the portal
    # checks to ensure all system groups exist. Any missing system group will be
    # created by the portal.
    #
    system.groups=

    #
    # Input a list of comma delimited system role names that will exist in
    # addition to the standard system roles. When the server starts, the portal
    # checks to ensure all system roles exist. Any missing system role will be
    # created by the portal.
    #
    # The standard system roles are: Administrator, Guest, Power User, and User.
    # These roles cannot be removed or renamed.
    #
    system.roles=

    #
    # Set the description of the Administrator system role.
    #
    system.role.Administrator.description=Administrators are super users who can do anything.

    #
    # Set the description of the Guest system role.
    #
    system.role.Guest.description=Unauthenticated users always have this role.

    #
    # Set the description of the Owner system role.
    #
    system.role.Owner.description=This is an implied role with respect to the objects users create.

    #
    # Set the description of the Power User system role.
    #
    system.role.Power.User.description=Power Users have their own public and private pages.

    #
    # Set the description of the User system role.
    #
    system.role.User.description=Authenticated users should be assigned this role.

    #
    # Input a list of comma delimited system community role names that will
    # exist in addition to the standard system community roles. When the server
    # starts, the portal checks to ensure all system community roles exist. Any
    # missing system community role will be created by the portal.
    #
    # The standard system community roles are: Community Administrator,
    # Community Member, and Community  Owner. These roles cannot be removed or
    # renamed.
    #
    system.community.roles=

    #
    # Set the description of the Community Administrator system community role.
    #
    system.community.role.Community.Administrator.description=\
                Community Administrators are super users of their community but cannot make other users into Community Administrators.

    #
    # Set the description of the Community Member system community role.
    #
    system.community.role.Community.Member.description=All users who belong to a community have this role within that community.

    #
    # Set the description of the Community Owner system community role.
    #
    system.community.role.Community.Owner.description=Community Owners are super users of their community and can assign community roles to users.

    #
    # Input a list of comma delimited system organization role names that will
    # exist in addition to the standard system organization roles. When the
    # server starts, the portal checks to ensure all system organization roles
    # exist. Any missing system organization role will be created by the portal.
    #
    # The standard system organization roles are: Organization Administrator,
    # Organization Member, and Organization  Owner. These roles cannot be
    # removed or renamed.
    #
    system.organization.roles=

    #
    # Set the description of the Organization Administrator system organization
    # role.
    #
    system.organization.role.Organization.Administrator.description=\
                Organization Administrators are super users of their organization but cannot make other users into Organization Administrators.

    #
    # Set the description of the Organization Member system organization role.
    #
    system.organization.role.Organization.Member.description=\
                All users who belong to a organization have this role within that organization.

    #
    # Set the description of the Organization Owner system organization role.
    #
    system.organization.role.Organization.Owner.description=\
                Organization Owners are super users of their organization and can assign organization roles to users.

    #
    # Omniadmin users can administer the portal's core functionality: gc,
    # shutdown, etc. Omniadmin users must belong to the default company.
    #
    # Multiple portal instances might be deployed on one application server, and
    # not all of the administrators should have access to this core
    # functionality. Input the ids of users who are omniadmin users.
    #
    # Leave this field blank if users who belong to the right company and have
    # the Administrator role are allowed to administer the portal's core
    # functionality.
    #
    omniadmin.users=

    #
    # Set this to true if all users are required to agree to the terms of use.
    #
    terms.of.use.required=true

    #
    # Specify the group id and the article id of the Journal article that will
    # be displayed as the terms of use. The default text will be used if no
    # Journal article is specified.
    #
    terms.of.use.journal.article.group.id=
    terms.of.use.journal.article.id=

    #
    # Specify subtypes of roles if you want to be able to search for roles
    # using your custom criteria.
    #
    roles.community.subtypes=
    roles.organization.subtypes=
    roles.regular.subtypes=

Organizations#

    organizations.types=regular-organization,location

    organizations.rootable[regular-organization]=true
    organizations.children.types[regular-organization]=regular-organization,location
    organizations.country.enabled[regular-organization]=false
    organizations.country.required[regular-organization]=false

    organizations.rootable[location]=false
    #organizations.children.types[location]=
    organizations.country.enabled[location]=true
    organizations.country.required[location]=true

    #
    # Input a list of sections that will be included as part of the organization
    # form when adding an organization.
    #
    organizations.form.add.main=details
    organizations.form.add.identification=
    organizations.form.add.miscellaneous=

    #
    # Input a list of sections that will be included as part of the organization
    # form when updating an organization.
    #
    organizations.form.update.main=details,categorization
    organizations.form.update.identification=addresses,phone-numbers,additional-email-addresses,websites,services
    organizations.form.update.miscellaneous=comments,reminder-queries,custom-attributes

    #
    # Set this property to true if you want any administrator that creates an
    # organization to be automatically assigned to that organization.
    #
    organizations.assignment.auto=false

    #
    # Set this property to false if you want any administrator of an
    # organization to be able to assign any user to that organization. By
    # default, he will only be able to assign the users of the organizations
    # and suborganizations that he can manage.
    #
    organizations.assignment.strict=true

    #
    # Set this property to true if you want users to only be members of the
    # organizations to which they are assigned explicitly. By default they will
    # also become implicit members of the ancestors of those organizations.
    # for example if a user belongs to Liferay Spain he will implicitly be a
    # member of the ancestors Liferay Europe and Liferay Global and will be
    # able to access their private pages.
    #
    organizations.membership.strict=false

Languages and Time Zones#

    #
    # Specify the available locales. Messages corresponding to a specific
    # language are specified in properties files with file names matching that
    # of content/Language_*.properties. These values can also be overridden in
    # properties files with file names matching that of
    # content/Language-ext_*.properties. Use a comma to separate
    # each entry.
    #
    # All locales must use UTF-8 encoding.
    #
    # See the following links specifiy language and country codes:
    #     [http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt]
    #     [http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html]
    #
    locales=\
                ar_SA,eu_ES,ca_AD,ca_ES,zh_CN,zh_TW,cs_CZ,nl_NL,en_US,fi_FI,fr_FR,de_DE,el_GR,\
                hu_HU,it_IT,ja_JP,ko_KR,nb_NO,fa_IR,pl_PL,pt_BR,pt_PT,ru_RU,sk_SK,es_ES,sv_SE,tr_TR,vi_VN

    #
    # Set this to true if unauthenticated users get their preferred language
    # from the Accept-Language header. Set this to false if unauthenticated
    # users get their preferred language from their company.
    #
    locale.default.request=false

    #
    # Specify the available time zones. The specified ids must match those from
    # the class java.util.TimeZone.
    #
    time.zones=\
        Pacific/Midway,\
        Pacific/Honolulu,\
        America/Anchorage,\
        America/Los_Angeles,\
        America/Denver,\
        America/Chicago,\
        America/New_York,\
        America/Puerto_Rico,\
        America/St_Johns,\
        America/Sao_Paulo,\
        America/Noronha,\
        Atlantic/Azores,\
        UTC,\
        Europe/Lisbon,\
        Europe/Paris,\
        Europe/Istanbul,\
        Asia/Jerusalem,\
        Asia/Baghdad,\
        Asia/Tehran,\
        Asia/Dubai,\
        Asia/Kabul,\
        Asia/Karachi,\
        Asia/Calcutta,\
        Asia/Katmandu,\
        Asia/Dhaka,\
        Asia/Rangoon,\
        Asia/Saigon,\
        Asia/Shanghai,\
        Asia/Tokyo,\
        Asia/Seoul,\
        Australia/Darwin,\
        Australia/Sydney,\
        Pacific/Guadalcanal,\
        Pacific/Auckland,\
        Pacific/Enderbury,\
        Pacific/Kiritimati

Look and Feel#

    #
    # Set this to false if the system does not use allow users to modify the
    # look and feel.
    #
    look.and.feel.modifiable=true

    #
    # Set the default layout template id.
    #
    default.layout.template.id=2_columns_ii

    #
    # Set the default theme id for regular themes.
    #
    default.regular.theme.id=classic

    #
    # Set the default color scheme id for regular themes.
    #
    default.regular.color.scheme.id=01

    #
    # Set the default theme id for wap themes.
    #
    default.wap.theme.id=mobile

    #
    # Set the default color scheme id for wap themes.
    #
    default.wap.color.scheme.id=01

    #
    # Set this to true if you want a change in the theme selection of the public
    # or private group to automatically be applied to the other (i.e. if public
    # and private group themes should always be the same).
    #
    theme.sync.on.group=false

Request#

    #
    # Portlets that have been configured to use private request attributes in
    # liferay-portlet.xml may still want to share some request attributes. This
    # property allows you to configure which request attributes will be shared.
    # Set a comma delimited list of attribute names that will be shared when the
    # attribute name starts with one of the specified attribute names. For
    # example, if you set the value to "hello_,world_", then all attribute names
    # that start with "hello_" or "world_" will be shared.
    #
    request.shared.attributes=LIFERAY_SHARED_

Session#

    #
    # Specify the number of minutes before a session expires. This value is
    # always overridden by the value set in web.xml.
    #
    session.timeout=30

    #
    # Specify the number of minutes before a warning is sent to the user
    # informing the user of the session expiration. Specify 0 to disable any
    # warnings.
    #
    session.timeout.warning=1

    #
    # Set the auto-extend mode to true to avoid having to ask the user whether
    # to extend the session or not. Instead it will be automatically extended.
    # The purpose of this mode is to keep the session open as long as the user
    # browser is open and with a portal page loaded. It is recommended to use
    # this setting along with a smaller "session.timeout", such as 5 minutes for
    # better performance.
    #
    session.timeout.auto.extend=false

    #
    # Set this to true if the user is redirected to the default page when the
    # session expires.
    #
    session.timeout.redirect.on.expire=false

    #
    # Portlets that have been configured to use private session attributes in
    # liferay-portlet.xml may still want to share some session attributes. This
    # property allows you to configure which session attributes will be shared.
    # Set a comma delimited list of attribute names that will be shared when the
    # attribute name starts with one of the specified attribute names. For
    # example, if you set the value to "hello_,world_", then all attribute names
    # that start with "hello_" or "world_" will be shared.
    #
    # Note that this property is used to specify the sharing of session
    # attributes from the portal to the portlet. This is not used to specify
    # session sharing between portlet WARs or from the portlet to the portal.
    #
    session.shared.attributes=org.apache.struts.action.LOCALE,COMPANY_,USER_,LIFERAY_SHARED_

    #
    # Set this to false to disable all persistent cookie. Features like
    # automatically logging in will not work.
    #
    session.enable.persistent.cookies=true

    #
    # Set this to true to enable sessions when cookies are disabled. See
    # LEP-4787. This behavior is configurable because enabling it can break
    # certain setups.
    #
    session.enable.url.with.session.id=true

    #
    # The login process sets several cookies if persistent cookies are enabled.
    # Set this property to set the domain of those cookies.
    #
    #session.cookie.domain=

    #
    # Set this to true to invalidate the session when a user logs into the
    # portal. This helps prevents phishing. Set this to false if you need the
    # guest user and the authenticated user to have the same session.
    #
    session.enable.phishing.protection=true

    #
    # Set this to true to test whether users have cookie support before allowing
    # them to sign in. This test will always fail if "tck.url" is set to true
    # because that property disables session cookies.
    #
    session.test.cookie.support=true

    #
    # Set this to true to disable sessions. Doing this will use cookies to
    # remember the user across requests. This is useful if you want to scale
    # very large sites where the user may be sent to a different server for each
    # request. The drawback to this approach is that you must not rely on the
    # API for sessions provided by the servlet and portlet specs.
    #
    # This feature is only available for Tomcat and requires that you set
    # Tomcat's Manager class to
    # "com.liferay.support.tomcat.session.SessionLessManagerBase".
    #
    session.disabled=false

    #
    # Input a list of comma delimited class names that extend
    # com.liferay.portal.struts.SessionAction. These classes will run at the
    # specified event.
    #

    #
    # Servlet session create event
    #
    servlet.session.create.events=com.liferay.portal.events.SessionCreateAction

    #
    # Servlet session destroy event
    #
    servlet.session.destroy.events=com.liferay.portal.events.SessionDestroyAction

    #
    # Set this to true to track user clicks in memory for the duration of a
    # user's session. Setting this to true allows you to view all live sessions
    # in the Admin portlet.
    #
    session.tracker.memory.enabled=true

    #
    # Set this to true to track user clicks in the database after a user's
    # session is invalidated. Setting this to true allows you to generate usage
    # reports from the database. Use this cautiously because this will store a
    # lot of usage data.
    #
    session.tracker.persistence.enabled=false

    #
    # Set this to true to convert the tracked paths to friendly URLs.
    #
    session.tracker.friendly.paths.enabled=false

    #
    # Enter a list of comma delimited paths that should not be tracked.
    #
    session.tracker.ignore.paths=\
        /portal/render_portlet,\
        \
        /document_library/get_file
Am Anfang
Selbst
Der engste Kreis
Impressum