C. 创建主题缩略图
创建一个 150 * 120 像素的 png 图片(一般是主题效果图),取名 thumbnail.png,放在 theme 项目的 src\main\webapp\images 目录下。部署。
选择 theme 时能看到主题缩略图。应用 theme,会发现页面风格变了。
D. 修改样式
执行 mvn deploy 后,在 target 目录中能看到 theme war 包中的所有内容。theme 打包是覆盖式的,即先复制 _unstyled 里面的所有内容,然后用 _styled 里面的内容覆盖(如果你的 theme 是继承自 _styled 的话),最后再用你的 theme 里面的文件覆盖。
强调:是整个文件被覆盖。例如,只要你在 theme 中重定义了 portlet.css,那 _styled 中定义的 portlet.css 中的样式在你的 theme 中将不复存在。
鉴于此,一般小规模修改 theme 样式时,会在 custom.css 中添加自己的样式。由于 custom.css 最后加载(参见 main.css 内容),所以会把前面定义的样式取代掉。或者也可以将 target 目录中你想修改的文件复制到项目对应的目录下,再做修改,这样 theme 部署时,会用你的文件替换掉原来的文件。
PS:如果你以前用过 Ant 构建的 theme,一定记得有个 _diffs 目录。Maven 构建的 theme 不需要这个目录,直接在 src\main\webapp 目录下创建 css、images 等目录即可。
作为实验,我们修改(创建) src\main\webapp\css\custom.css:
.aui .table th {
background: #8080ff;
}
现在,表格头的背景色变成了淡蓝色。
E. 使用 settings 让 theme 变的可配置
1. 修改 liferay-look-and-feel.xml
<look-and-feel>
<compatibility>
<version>6.2.2+</version>
</compatibility>
<theme id="testTheme" name="testTheme">
<settings>
<setting key="footer-type" value="detailed" />
</settings>
</theme>
<theme id="testTheme-brief" name="testTheme Brief">
<settings>
<setting key="footer-type" value="brief" />
</settings>
</theme>
</look-and-feel>
<setting>
值在 theme 模板中可以通过 $theme.getSetting("footer-type")
的方式获取。
2. 将 portal_normal.vm 复制到 src\main\webapp\templates 目录下,并在 </body>
标签前添加:
#if ($theme.getSetting("footer-type") == "detailed")
#parse ("$full_templates_path/footer_detailed.vm")
#else
#parse ("$full_templates_path/footer_brief.vm")
#end
3. 创建 src\main\webapp\templates\footer_brief.vm 和 src\main\webapp\templates\footer_detailed.vm
<div>
A $theme.getSetting("footer-type") footer.
</div>
<div>
This is a $theme.getSetting("footer-type") footer.
</div>
这种方式实际上创建了两个 theme,我们需要给不同的 page 设置不同的 theme