主题模板 (theme.html)

可以使用静态 HTML 来编写门户网站主题。静态主题模板名为 theme.html

theme.html 文件位于 WebDAV 上主题的根目录 \fs-type1\themes\theme-name\ 中,并且在主题下的 nls 目录 (\fs-type1\themes\theme-name\nls\) 中有多个 theme.html 文件。theme.html 包括页面的完整 HTML 结构,其中包括 <html><head><body> 部分。它可以既包括静态内容,又包括动态内容。
注意:
  • 文件夹 nls 包含名为 theme.html 的文件,此文件没有与之关联的语言环境。不使用此文件。您可以将其忽略。
  • 请不要忘记使用 WebDAV 入口点 fs-type1 来修改主题模板文件。使用此入口点时,您对主题模板所作的更改将在浏览器刷新后立即有所反映。

根主题模板

在缺省的 WebSphere® Portal 安装中,门户网站不会呈示主题根目录中的模板文件 theme.html。此文件将改为链接到模板,并且门户网站将呈现相应的模板。指向模板的链接包含在根模板的 <head> 节中。它们的格式如下:
<link rel="alternate" href="nls/theme_locale_code.html" hreflang="locale_code">
下面是一个指向英语模板文件的链接的示例:
<link rel="alternate" href="nls/theme_en.html" hreflang="en">

如果您不想使用主题模板,那么可以从根目录中的 theme.html 模板内除去这些链接。执行此操作后,门户网站将呈现此根模板。

此主题模板还包含以下格式的 Apache Ant 脚本:
 ${bundle_name:bundle_key:character_encoding}
character encoding 将特殊字符替换为通过指定的编码分隔的转义序列。编码的可用类型为 xmljson。您可以对多个编码实例进行链接,如下所示:
${bundle:key:json:xml} or ${bundle:key:xml:json}
您可以使用 Apache Ant 构建框架根据此根模板生成模板。如果您要在开发期间更新某个模板,然后使用 Ant 构建过程生成模板,那么此方法非常有用。如果要仅使用根模板,请将 Ant 脚本替换为要呈现的首选文本。您可以在 Apache Ant 了解关于 Ant 构建工具的更多信息。

主题模板

在缺省的 WebSphere Portal 安装中,主题体系结构将使用主题模板呈示内容。这些模板位于 WebDAV 中主题目录下的 nls 子目录中。这些文件在模板名末尾追加了语言环境代码,例如 theme_en.html(针对英语)。这些模板将翻译模板中内嵌的静态文本。

使用主题模板时,如果您要查看更改,请更新门户网站在浏览器中呈示的模板。例如,如果您的首选语言为英语,请更新文件 theme_en.html

将静态内容添加至 theme.html

可以采用下列方法将静态内容添加至 theme.html
直接添加内容:
可以将静态内容(例如,HTML 标记和图像)直接添加至 theme.html 文件。
从 WebDAV 中添加内容:
可以使用相对 URL 引用来添加 WebDAV 中相对于 theme.html 文件的内容。
通过相对 URL 添加内容:
可以使用相对 URL 来引用 WebDAV 文件存储库中 /common-resources/ 文件夹内的静态内容。如果相对路径无法成功解析为主题文件夹中的某个文件,那么门户网站将使用 /common-resources/ 文件夹作为回退位置以查找资源。这样,主题就可以引用公共资源,并且仍然能够使用 theme 文件夹中的同名资源来覆盖该文件夹中的文件。

将服务器端的动态内容添加至 theme.html

按用户、页面或者其他某些服务器状态来更改动态内容。因此,您无法在主题文件中静态地定义动态内容。您需要改为在运行时将动态内容插入响应中。为此,您将编辑 theme.html 并标识这些动态内容点。然后,在运行时,服务器端的主题解析器将标识并解析动态内容点,并且会将它们的输出输送到以浏览器为目标的最终响应。

动态内容点的格式为如下所示:
<a rel="dynamic-content" href="{path to dynamiccontent}"></a>
rel="dynamic-content"
主题模板解析器识别 rel="dynamic-content" 元素。它会解析 href 属性,并将其输出插入到响应中。
href
href 可以指向由资源寻址能力框架解析的任何 URI。
示例:
  1. 以下示例是一个特殊的内容点,用于呈示当前页面所引用的布局模板和内容:
    <a rel="dynamic-content" href="lm:template"></a>
  2. 以下示例包括的动态内容点来自通过 WP_DynamicContentSpotMappings 资源环境提供程序或主题元数据中的模块 dyn-cs 添加项指定的映射。
    <a rel="dynamic-content" href="dyn-cs:customSpot"></a>
  3. 以下示例包括使用解析器 POC URL 的主题 JSP 的输出:
    <a rel="dynamic-content" href="res:/customContext/themes/html/customTheme/customSpot.jsp"></a> 

更改主题模板位置

您可以更改主题模板的位置。为了实现此目标,主题包含一个元数据参数,用于存储主题模板 theme.html 的位置。此参数名为 com.ibm.portal.theme.template.ref。有需要时,您可以将其指向外部位置。例如,可以指定 POC URI 或者外部服务器的 URL。您不需要在 WebDAV 上存储主题模板。在缺省门户网站安装中,主题的元数据参数如下所示:
<parameter name="com.ibm.portal.theme.template.ref" type="string" update="set">
<![CDATA[dav:fs-type1/themes/theme_folder/]]>
</parameter>