您可以通过修改创建新的片段布局XML文件来创建新的片段布局,或者通过修改现有的片段布局XML文件来修改现有的片段布局。完成后,您可以使用一种数据导入方法来导入片段(参见导入和导出数据)。
片段布局XML文件是文件夹和通道的层次结构,带有一些帮助定义页面结构的附加属性和元素。一个例子是:
<?xml version="1.0" encoding="UTF-8"?>
<layout xmlns:dlm="http://www.uportal.org/layout/dlm" script="classpath://org/jasig/portal/io/import-layout_v3-2.crn"
username="welcome-lo" >
<folder ID="s1" hidden="false" immutable="false" name="Root folder" type="root" unremovable="true">
<!--
| Hidden folders do not propagate to regular users, and fragment owner
| accounts don't receive (other) fragments at all; Fragment owners must
| have their own copies of the minimal portlets required to view and manage
| their own layouts.
+-->
<folder ID="s2" hidden="true" immutable="true" name="Page Top folder" type="page-top" unremovable="true">
<channel fname="dynamic-respondr-skin" unremovable="false" hidden="false" immutable="false" ID="n3"/>
<channel fname="fragment-admin-exit" unremovable="false" hidden="false" immutable="false" ID="n4"/>
</folder>
<folder ID="s5" hidden="true" immutable="true" name="Customize folder" type="customize" unremovable="true">
<channel fname="personalization-gallery" unremovable="false" hidden="false" immutable="false" ID="n6"/>
</folder>
<folder ID="s7" dlm:deleteAllowed="false" dlm:editAllowed="false" dlm:moveAllowed="false" hidden="false" immutable="false" name="Welcome" type="regular" unremovable="false">
<structure-attribute>
<name>externalId</name>
<value>welcome</value>
</structure-attribute>
<folder ID="s8" hidden="false" immutable="false" name="Column" type="regular" unremovable="false">
<structure-attribute>
<name>width</name>
<value>60%</value>
</structure-attribute>
<channel fname="email-preview-demo" unremovable="false" hidden="false" immutable="false" ID="n9" dlm:moveAllowed="false" dlm:deleteAllowed="false"/>
<channel fname="weather" unremovable="false" hidden="false" immutable="false" ID="n10"/>
<channel fname="pbookmarks" unremovable="false" hidden="false" immutable="false" ID="n11" dlm:moveAllowed="false" dlm:deleteAllowed="false"/>
</folder>
<folder ID="s12" hidden="false" immutable="false" name="Column" type="regular" unremovable="false">
<structure-attribute>
<name>width</name>
<value>40%</value>
</structure-attribute>
<channel fname="calendar" unremovable="false" hidden="false" immutable="false" ID="n13"/>
</folder>
</folder>
</folder>
</layout>
片段布局XML文件具有以下层次结构:
一个<layout>节点;这是文档的根节点,包含一些重要的属性
一个<folder type="root">节点,是<layout>的唯一直接子节点;所有布局内容都是这个元素的后代
添加了各种类型的<folder>元素,包括常规、页顶、预标题、自定义等;普通文件夹定义页面的标签/列内容;非规则文件夹将内容放入区域
<folder>元素表示Regions直接包含<channel>元素
<folder> 表示标签(type="regular")包含<folder name="Column" type="regular">元素
<channel>元素,通过fname标识portlet,从而将它们引入布局
可选<structure-attribute>节点
隐藏的文件夹
片段布局通常包含隐藏的文件夹(hidden="true"),管理portlet需要允许Manage layouts Admin UI在编辑片段布局时正常工作。隐藏文件夹只将其内容传递给片段所有者帐户——而不是片段的受众成员。
布局节点
属性 | 描述 | 必须 |
---|---|---|
xmlns:dlm | 命名空间,标识解析XML文件的模式。必须是http://www.uportal.org/layout/dlm | Y |
script | 处理XML文件的脚本的位置 | Y |
username | 可以管理片段的片段所有者的名称。当使用管理UI管理片段时,这是您模拟来管理片段布局的本地帐户。按照惯例,它是“fragmentOwnerName-lo”,其中fragmentOwnerName是一个名称,语义上传达什么内容(可能是标签名)和lo代表布局所有者(例如:“welcome-lo”)。片段所有者帐户必须存在。 | Y |
属性 | 描述 | uP4.3:api/v4-3/dlm/layout.json字段 | 必须 | 默认 |
---|---|---|---|---|
ID | ID值。按照约定,文件夹是“s#”,频道是“n#”,其中#是一个数值。字母名称是任意的。数字部分必须是XML文件中唯一的数字值(在所有文件夹和频道中唯一);例如,你不能在同一个XML文件中同时有"s1"和"n1",因为"s"和"n"没有存储到数据库中。 用户自定义的页面在数据库中表示“删除ID x”所以一旦用于生产布局,你不能改变现有的ID值或重用ID值或uPortal将无法正确呈现用户的页面,修改他们的布局。 在使用Admin UI修改布局后,您应该导出片段布局并将其存储在源代码存储库中,这样您就可以使用ant initdb或ant initportal在其他环境中重新创建布局。 | Y | ||
hidden | 将显示给用户的文件夹设置为false。 对于不向用户显示但在管理UI中选择Manage DLM Fragments时显示的文件夹,将其设置为true。 片段所有者必须存在特定的通道来编辑片段。这些通道包括动态- Respondr -skin(用于Respondr them)、片段-管理-退出(允许退出Manage DLM Fragments用户模拟)和个性化图库(允许使用自定义查找并向页面添加portlet)。 | Y | ||
immutable | 过时的参数从uPortal 2.x | ? | false | |
name | 文件夹名称。如果一个文件夹是一个选项卡,这是选项卡的名称。按照惯例,列的名称为Column或者Column1, Column2。用户看不到列名。 | Y | ||
type | 文件夹类型。由于历史原因,这通常表明文件夹的内容在页面上的位置。选项有: 规则——放在TAB或列中的内容(取决于层次结构中的级别) region name -区域名称(参见Respondr区域特性) | Y | ||
unremoveable | 来自早期uPortal版本的过时参数。不要使用。 | N | false | |
dlm:addChildAllowed | 对于选项卡文件夹或列文件夹,确定具有自定义布局权限的用户是否可以向文件夹添加子元素(选项卡的列,列的portlet)。 | hasColumnAddChildAllowed | N | true |
dlm:deleteAllowed | 对于选项卡文件夹或列文件夹,确定具有自定义布局权限的用户是否可以将项目(选项卡对应选项卡,列对应列)删除到该文件夹。 | deleteAllowed | N | true |
dlm:editAllowed | 对于选项卡文件夹,确定具有自定义布局权限的用户是否可以重命名文件夹(实际上只有在选项卡上重命名选项卡才有用) | editAllowed | N | true |
dlm:moveAllowed | 对于选项卡文件夹或列文件夹,确定具有自定义布局权限的用户是否可以移动页面上的选项卡或列 | moveAllowed | N | true |
dg