本章包含以下部分:
本节包含以下内容:
社区模板由一组服务(通道)和可视布局组成。但是,社区模板不一定会指明布局,例如在 Wiki 社区模板中布局由 Wiki 自己指明。社区模板在角色显示配置文件文档中定义了可用于社区的服务的类型、每种服务的默认设置以及绑定服务的容器。
实际上,社区模板是由属性文件、图片以及一个或多个显示配置文件文档组成。每种社区角色(例如 OWNER、VISITOR 和 MEMBER)都拥有显示配置文件文档。每个角色模板定义了与特定角色相关的服务和布局(有关这些角色的详细信息,参见管理成员资格)。显示配置文件文档中会显示角色模板的内容。实际上,社区模板包含处理不同角色(每个角色对应一个显示配置文件文档)以及依存于一个或多个角色的逻辑,您将获得一组不同的服务和不同的布局。将社区标记为删除 (deleted.xml) 或禁用 (disable.xml) 时,也会产生用于自定义内容的显示配置文件文档。
可通过社区模板创建社区。系统可以拥有任意数量的社区模板。在“企业范例”中,最终用户在创建社区后选择社区模板。
社区模板存储在文件系统中。社区模板存储在 PortalServer-DataDir/portals/portal-URI/communitytemplates 目录中(称为 communityTemplateBaseDir)。请注意,这表示每个门户(在多门户部署环境中)必须拥有一组自己的社区模板。communityTemplateBaseDir 中的资源包定义了与每个模板相关的元数据。此外,每个模板都拥有用于存储角色模板的目录。
communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template2 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template3 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | +-- template1.properties | +-- template1_en.properties | +-- template1_fr.properties | +-- template2.properties | +-- template3.properties | +-- template3_en_US.properties | +-- ...
显示配置文件 disabled.xml 和 deleted.xml 文件控制社区在被禁用或被标记为删除后的内容。有关详细信息,参见管理社区状态。
门户管理员可以在系统中添加新的社区模板、更新现有社区模板、归档和恢复社区模板,也可以将社区模板从某个门户实例导出至其他实例,和/或使这些模板保持同步。
每个模板都由一个或多个 XML 格式的角色模板(member.xml、owner.xml、visitor.xml、deleted.xml、disabled.xml)组成。模板目录包括它所服务的角色的 XML 文件,例如用于社区成员的 member.xml、用于社区所有者的 owner.xml 和用于社区访客的 visitor.xml。
每个角色模板都是该角色的社区用户的显示配置文件文档。文件必须基于显示配置文件 DTD。
<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd"> <DisplayProfile version="1.0" priority="%COMMUNITY_DP_PRIORITY%"> <Properties/> <Channels> <Container name="%COMMUNITY_CONTAINER%" provider="JSPTableContainerProvider"> <Properties> <String name="title" value="%COMMUNITY_NAME%"/> <String name="description" value="%COMMUNITY_DESCRIPTION%"/> <Boolean name="compileToRealPath" value="true"/> </Properties> <Available>...</Available> <Selected>...</Selected> <Channels>...</Channels> </channels> <Providers/> </DisplayProfile>
在创建社区时,模板引擎会使用实际值动态替换显示配置文件中的下述令牌(以 % 相括)。
为社区指定(用户友好)名称。例如,tourists。
指定标识社区的唯一字符串。该名称实际上是内部标识,并不会在用户界面上显示。例如,jdo__tourists。
包括社区的描述。
指定社区的顶级容器。例如,jdo__touristsContainer。
指定合并了产生社区显示配置文件的优先级的显示配置文件。每个角色都有不同的值。默认情况下,访客角色、成员角色和所有者角色的值分别为 1000、1005 和 1010。
指定社区的搜索服务器 URL。
指定社区内容的搜索数据库。
指定讨论数据库。
指定门户的 ID。例如,portal1。
每个模板都包含定义了与该模板相关的元数据的资源包属性文件。资源包称为描述符文件,可以进行本地化。每个模板描述符文件(必须)定义以下属性:
指定模板的唯一 ID。ID 必须与模板目录名称匹配。例如,如果某个模板目录的名称为 Baseball,且该目录带有所有的三种支持的角色的角色模板(或 XML 文件),则该目录的 ID 应该是 Baseball。
在用户界面(Portal 桌面)中指定用户友好的名称来标识模板。例如,Baseball Template。
详细描述模板及其所提供的服务。例如,Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat。
包含模板角色文件中所用的令牌的列表。这仅供参考,而不是必需的。例如, %COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER%。
为门户上下文指定绝对 URI 或相对 URI。例如,http://images.domain.com/images/baseball.jpg。相对 URI 必须对应于门户 web-app 上下文路径。
id=Baseball name=Baseball Template description=Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat tokens=%COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER% previewImageURI=http://images.domain.com/images/baseball.jpg |
可按照本节中的指导创建新模板或修改现有模板。您可通过以下三种方式之一创建模板:
使用 psadmin 实用程序导出模板、添加内容和导入内容。
创建内容和导入内容以覆盖现有模板。
向现有模板添加新文件。
转至 communityTemplateBaseDir。
创建以下内容:
新模板的新目录
将现有模板复制到新的模板目录
例如,键入:
cd PortalServer-DataDir/portals/portal-URI/communitytemplates mkdir NewTemplate cp 2column/* NewTemplate/ |
根据需要在新模板目录中修改基于角色的显示配置文件文档。
有关基于角色的显示配置文件文档的详细信息,参见模板的语法和语义。
创建和编辑属性文件,以使其包含“模板描述符文件”中描述的属性,并保存文件。
例如,要为新模板创建新的属性文件,可键入:
cp 2colimn.properties NewTemplate.properties |
或者,
touch NewTemplate.properties |
要查看新添加的模板,可注销所有当前的门户会话,并重新登录以查看更改。
在多门户环境中(系统中有一个以上的门户),使用 PAR 机制(不是直接编辑 communityTemplateBaseDir 中的文件)以跨多个门户应用社区模板的更改。这将允许所有门户拥有一组相同的社区模板。如果不希望使用跨门户的同步环境,可参考为单门户环境创建新模板中的指导。
可使用 psadmin export --type desktop 导出桌面数据(包含社区模板),然后将该数据导出以编辑内容;也可只使用社区模板(而不使用任何其他桌面数据)从头开始创建新的 PAR 结构。
请按照为单门户环境创建新模板中的指导来编辑内容。
创建包含以下内容的新 PAR 文件:
-+-- META-INF -- MANIFEST.MF | +-- pbfiles -+-- communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | | | +-- disabled.xml | | | | | +-- member.xml | | | | | +-- owner.xml | | | | | +-- visitor.xml | | | +-- template1.properties | | | +-- template1_en.properties | | | +-- template1_fr.properties | | | +-- ... | +-- static -- community -- images -- template1.gif
根据需要编辑或添加内容。
创建新的 PAR 文件。
使用 psadmin import 子命令跨所有门户导入 PAR 内容。
如果您导出所有桌面数据,请注意 psadmin export 子命令将导出所有桌面数据;如果您只使用社区模板从头开始创建新 PAR 结构,则该命令仅会导出社区模板。
有关详细信息,参见《Sun Java System Portal Server 7.2 Command-Line Reference》中的“psadmin export”。