Themes是唯一的可以热部署的plugins在一个站点内。使用themes你可以修改用户的界面。
Liferay提供了良好的架构,来模块化主题。Themes在配置方面遵循一贯的思路:
它们是在默认配置基础上再个性化定制,所以配置标签的每一行和每个样式,都有一个默认数值。换句话,theme可以继承内建的theme的样式,图片和模板。
这样可以节省时间和对个性化的theme瘦身,因为你定制的themes仅仅包含与默认不一样的那部分。
Liferay themes的生成非常容易,你可以仅仅编辑个CSS文件即可完成,你需要扩展你的themes,你可以修改HTML。
下面是相关的技术,需要你开发themes之前进行大概的了解:
l CSS:你可以编辑一个已经存在的CSS文件来形成你的theme CSS文件。
l Velocity:被theme生成的自定义标签
l JavaScript:添加特殊的功能到你的theme.
l XML:theme的部分设置需要在XML里进行指定。
生成theme 项目
生成的过程,接近生成portlet 的过程,前面章节我们已经介绍过了,我们的theme将命名为 Elearn007 Blue,该项目名称不允许有空格,因此我们的项目名命名为:elearn007-blue,而屏幕显示名为elearn007 blue,让我们首先用liferay Developer Studio来生成,然后我们使用终端来生成。
使用LiferayDeveloper Studio
1,去 File->New->LiferayProject.
2,填写项目名和展示名 elearn007-blue ,elearn007blue
3,选择liferay Plugins SDK和Portal Runtime(这两项之前你都配置过。)
4,为你的Plugin Type选择Theme.
5, 点击下一步。
1, 选择theme的父类。你除了可以继承_Styled theme还可以继承_unstyled theme(不包括页面风格定义),同时也有classic theme该主题有一个比较好的外观格式,而且工作的很好,对于这个项目我们选择_styled.
2, 选择你的theme框架,你可以选择Freemarker或Velocity frameworks为你的theme,你甚至也可以选择JSP。
3, 单击完成。
使用终端
切换到themes目录在你的Plugins SDK下,输入下列命令在你的系统上:
1, 在你的linux和Mac osx录入
./create.sh elearn007-blue “elearn007 Blue”
2, 在Windows下输入
Create.bat elearn007-blue “elearn007 blue”
现在你在你的themes目录下就有了一个空的themes项目,该项目名的后缀为-theme,现在你的theme是空的,我们接下来完成必要的配置。
设置theme
在liferay中的所有themes 都是在_unstyled和_styled 之上建立的,你新生成的theme默认就是这样做的,但是默认的所包含的样式非常简单,你通常需要采取另外的theme 来取代它们以换取更丰富的格式。
基础的theme被添加进来,首先_unstyled给你了theme的核心,而_styled提供了绝大多数的元素。当你设置不同的基础theme,都会覆盖默认的格式。当你的基础theme被添加后,你自己定义的格式,就在其上被添加。
默认情况下,theme基于_styled主题,提供基础的格式,如果你打开build.xml文件,你会看到如下的代码:
这里的theme.parent属性确定了你的theme继承了哪个theme.除了_styled你还可以选择继承_unstyled theme.这里的代码可以确保项目工作,到那时如果想提供完全的设计格式,你需要手工设计你的CSS文件。
你可以使用默认的liferay theme Classic 当作父类theme,你可以从一个外观更丰富的水平起步,但是因为提前做了绝大多数的设置为你,那样就会缺少灵活性,所以你在项目开发的时候,要考虑效率与灵活性的问题。
部署theme
在开发工具界面下部署比较容易,按照前面的章节介绍做就可以,在终端下输入ant deploy来进行部署。
部署成功后,你会看到如下信息:
1 theme for elearn007-blue-theme isavailable for use.