毛里求斯的化石博物馆
posts - 12, comments - 19, trackbacks - 0, articles - 23
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
Liferay Portal学习笔记之(五):开发主题风格theme (转载)
Posted on 2006-09-09 16:36
毛里求斯的化石
阅读(1178)
评论(0)
编辑
收藏
所属分类:
portal相关
Liferay Portal为我们提供了非常灵活的主题风格定制功能,自身带了四种风格的theme,在官方网站上提供了很多风格theme的下载,这无疑大大增强了主题风格定制的功能。但是,我们完全可以开发具有自己风格的theme,这里,我们将讨论怎样来开发个性的theme。
第一步:我们将以现有风格classic为模板文件创建新的theme,我们将新theme命名为coldtear
1、将liferay/html/themes目录下的classic文件夹copy一份副本,并修改副本的文件夹名为coldtea
2、在liferay/web-inf目录下新建liferay-look-and-feel-ext.xml文件,文件liferay-look-and-feel.xml是定义主题风格theme的配置文件,为了加以区分,我们在这里新建了该文件的扩展文件liferay-look-and-feel-ext.xml,该文件内容如下:
<?
xml version
=
"
1.0
"
?>
<!
DOCTYPE look
-
and
-
feel PUBLIC
"
-//Liferay//DTD Look and Feel 4.0.0//EN
"
"
http://www.liferay.com/dtd/liferay-look-and-feel_4_0_0.dtd
"
>
<
look
-
and
-
feel
>
<
compatibility
>
<
version
>
4.0
.
0
</
version
>
</
compatibility
>
<
company
-
limit
>
<
company
-
includes
/>
<
company
-
excludes
/>
</
company
-
limit
>
<
theme id
=
"coldtear
"
name
=
"ColdTear
"
>
<
root
-
path
>/
html
/
themes
/
coldtear
</
root
-
path
>
<
templates
-
path
>/
html
/
themes
/
coldtear
/
templates
</
templates
-
path
>
<
images
-
path
>/
html
/
themes
/
coldtear
/
images
</
images
-
path
>
<
template
-
extension
>
jsp
</
template
-
extension
>
<
color
-
scheme id
=
"
01
"
name
=
"
Blue
"
>
<!
[CDATA[
body
-
bg
=
#FFFFFF
layout
-
bg
=
#FFFFFF
layout
-
text
=
#
000000
layout
-
tab
-
bg
=
#E0E0E0
layout
-
tab
-
text
=
#
000000
layout
-
tab
-
selected
-
bg
=
#6699CC
layout
-
tab
-
selected
-
text
=
#4A517D
portlet
-
title
-
bg
=
#6699CC
portlet
-
title
-
text
=
#4A517D
portlet
-
menu
-
bg
=
#B6CBEB
portlet
-
menu
-
text
=
#
000000
portlet
-
bg
=
#FFFFFF
portlet
-
font
=
#
000000
portlet
-
font
-
dim
=
#C4C4C4
portlet
-
msg
-
status
=
#
000000
portlet
-
msg
-
info
=
#
000000
portlet
-
msg
-
error
=
#FF0000
portlet
-
msg
-
alert
=
#FF0000
portlet
-
msg
-
success
=
#007F00
portlet
-
section
-
header
=
#
094170
portlet
-
section
-
header
-
bg
=
#ADBDFB
portlet
-
section
-
subheader
=
#
405278
portlet
-
section
-
subheader
-
bg
=
#91AEE8
portlet
-
section
-
body
=
#000000
portlet
-
section
-
body
-
bg
=
#E2E7FA
portlet
-
section
-
body
-
hover
=
#FFFFFF
portlet
-
section
-
body
-
hover
-
bg
=
#AC6CFA
portlet
-
section
-
alternate
=
#
000000
portlet
-
section
-
alternate
-
bg
=
#CFD7FB
portlet
-
section
-
alternate
-
hover
=
#FFFFFF
portlet
-
section
-
alternate
-
hover
-
bg
=
#AC6CFA
portlet
-
section
-
selected
=
#7AA0EC
portlet
-
section
-
selected
-
bg
=
#FAFCFE
portlet
-
section
-
selected
-
hover
=
#00329A
portlet
-
section
-
selected
-
hover
-
bg
=
#C0D2F7
]]
>
</
color
-
scheme
>
</
theme
>
</
look
-
and
-
feel
>
这里,注意的是修改theme的id和name,以及root-path、templates-path和images-path的路径,这样,我们就可以在主题风格页面看到我们新的theme了。
第二步、分析classic的主题布局的划分
1、打开liferay/html/theme/coldtear/templates目录,该目录下存放着很多jsp文件,打开portal_normal.jsp文件可以看到,该文件是整个页面的主体,通过<liferay-util:include />标签和<%@ include>方法包含了很多jsp文件,其中top.jsp文件定义了头部信息,navigation.jsp定义了导航菜单,bottom.jsp定义了底部语言标签信息,而页面的主体信息是由<liferay-theme:box />标签定义的,top="portlet_top.jsp"定义了portlet的标题栏信息,bottom="portlet_bottom.jsp"定义了portlet下面的阴影线,portlet的内容则是由<liferay-util:include page="<%= Constants.TEXT_HTML_DIR + tilesContent %>" />定义的。所有的css样式信息是定义在css_cached.jsp文件中的。
2、liferay portal的页面定义大部分地方都采用了DIV+CSS的方式,下面将以classic的整个DIV定义框架给出,以说明classic风格的定义方法。
<
div id
=
"
layout-outer-side-decoration
"
>
<
div id
=
"
layout-inner-side-decoration
"
>
<
div id
=
"
layout-box
"
>
<!--
定义头部信息 top.jsp
-->
<
div id
=
"
layout-top-banner
"
>
<
div id
=
"
layout-user-menu
"
style
=
"
text-align: right;
"
>
<
div
class
=
"
font-small
"
style
=
"
margin-top: 5px;
"
>
<
div id
=
"
layout-my-places
"
>
<
div id
=
"
p_p_id_49_
"
class
=
"
portlet-boundary
"
>
<
div
class
=
"
portlet-borderless-container
"
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
<!--
定义导航菜单 navigation.jsp
-->
<
div id
=
"
layout-nav-container
"
>
<
div
class
=
"
layout-nav-tabs-box
"
>
<
div
class
=
"
layout-tab
"
></
div
>
<
div
class
=
"
layout-tab
"
></
div
>
<
div
class
=
"
layout-tab-selected
"
></
div
>
<
div
class
=
"
layout-tab
"
></
div
>
</
div
>
<
div id
=
"
layout-global-search
"
></
div
>
</
div
>
<
div
class
=
"
portlet-bottom-decoration-2
"
><
div
><
div
></
div
></
div
></
div
>
<!--
定义主体portlet信息部分
-->
<
div id
=
"
layout-content-outer-decoration
"
>
<
div id
=
"
layout-content-inner-decoration
"
>
<
div id
=
"
layout-content-container
"
>
<
div id
=
"
layout-column_column-1
"
>
<
div id
=
"
p_p_id_73_INSTANCE_9Q28_
"
class
=
"
portlet-boundary
"
>
<
div
class
=
"
portlet-container
"
>
<!--
定义portlet标题栏信息 portlet
-
top.jsp
-->
<
div
class
=
"
portlet-header-bar
"
id
=
"
portlet-header-bar_73_INSTANCE_9Q28
"
onmouseover
=
"
PortletHeaderBar.show(this.id)
"
onmouseout
=
"
PortletHeaderBar.hide(this.id)
"
>
<
div
class
=
"
portlet-wrap-title
"
>
</
div
>
<
div
class
=
"
portlet-small-icon-bar
"
style
=
"
display: none;
"
>
</
div
>
</
div
>
<!--
定义portlet内容信息
-->
<
div
class
=
"
portlet-box
"
>
<
div
class
=
"
portlet-minimum-height
"
>
<
div id
=
"
p_p_body_73_INSTANCE_9Q28
"
>
<
div
class
=
"
slide-maximize-reference
"
>
<
div id
=
"
p_p_content_73_INSTANCE_9Q28_
"
style
=
"
margin-top: 0; margin-bottom: 0;
"
>
</
div
>
</
div
><!--
slide
-
maximize
-
reference
-->
</
div
>
</
div
>
</
div
><!--
end portlet
-
box
-->
<!--
定义portlet底部阴影线 portlet
-
bottom.jsp
-->
<
div
class
=
"
portlet-bottom-decoration-2
"
><
div
><
div
></
div
></
div
></
div
>
</
div
><!--
End portlet
-
container
-->
</
div
>
<!--
定义一个空的portlet区域
-->
<
div
class
=
"
layout-blank-portlet
"
></
div
>
</
div
>
</
div
>
</
div
>
</
div
>
<!--
定义底部信息 bottom.jsp
-->
<
div id
=
"
layout-bottom-container
"
></
div
>
</
div
><!--
End layout
-
box
-->
</
div
>
</
div
><!--
End layout
-
outer
-
side
-
decoration
-->
这里我们可以看到classic的整体DIV定义框架,注释部分对每个部分的定义都做了区分。
第三步、根据这样一个结构,我们可以设计自定义theme风格的结构,然后将各个区域细化到各个jsp文件中,并配以特定的图片和样式就可以实现自定义theme,为了达到更好的显示效果,需要教好的掌握CSS的各个属性和使用方法。
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Liferay Portal学习笔记之(五):开发主题风格theme (转载)
Liferay Portal学习笔记(四):搭建开发环境 (转载)
Liferay Portal学习笔记(三):自定义页面布局Template (转载)
Liferay Portal学习笔记(二):使用CMS (转载)
Liferay Portal学习笔记(一):安装 (转载)
Hello World,一个简单的JSR 168 portlet(转载)from smoking_boy
Portlet应用开发 (JSR168)(四)
Portlet应用开发 (JSR168)(三)
Portlet应用开发 (JSR168)(二)
Portlet应用开发 (JSR168)(一)
Powered by:
BlogJava
Copyright © 毛里求斯的化石
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(8)
给我留言
查看公开留言
查看私人留言
随笔分类
(10)
portal&portlet(2)
SOA学习园地(2)
开源(5)
杂谈(1)
随心所欲
随笔档案
(11)
2007年8月 (3)
2006年9月 (3)
2006年8月 (5)
文章分类
(23)
java&js相关(8)
jms(3)
oracle-运行管理(1)
portal相关(10)
工作流(1)
文章档案
(23)
2007年3月 (4)
2006年9月 (13)
2006年8月 (6)
收藏夹
Oracle
搜索
最新评论
1. re: portal和portlet基本概念介绍
希望了解JBOSS运行Portlet的知识。也希望了解Vignette中配置Portal的知识。
--Dora
2. re: 灭绝动物:渡渡鸟
评论内容较长,点击标题查看
--网友
3. re: 灭绝动物:渡渡鸟
感觉渡渡鸟就如我国的大熊猫,让人感觉它笨拙可爱,没有防御能力忧人爱怜!
T_T
--王儒棋 T_T
4. re: 灭绝动物:渡渡鸟
人类太残忍了吧!!! T_T
--王儒棋 T_T
5. re: 灭绝动物:渡渡鸟
评论内容较长,点击标题查看
--safs
阅读排行榜
1. sakai安装配置(一)(更新了依赖清单)(5175)
2. sakai安装配置(二)(3142)
3. sakai安装配置(三)(1947)
4. sakai安装配置(四)(1880)
5. portal和portlet基本概念介绍(1864)
评论排行榜
1. sakai安装配置(一)(更新了依赖清单)(6)
2. 灭绝动物:渡渡鸟(6)
3. portal和portlet基本概念介绍(1)
4. sakai安装配置(四)(1)
5. sakai安装配置(三)(1)