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.
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.
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
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:
CSS-Verzeichnis und color_schemes:
..\images :
Hier
werden grafische Objekte (Bilder,Icons und Navigationselemente) für
das Standard-Liferay-Portal hinterlegt:
..\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)
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...)
Es
muss ein geeigneter JAVA_HOME-Pfad bei den Umgebungsvariablen
gesetzt sein: SET JAVA_HOME = C:\Programme\Java\jdk1.6.0_17
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
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
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.
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!
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.
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.
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
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.
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>
Menü-Änderung:
()
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