动态配置是一种基于元数据能动态生成表单的格式,小组件可用来定义配置选项。
何时使用动态配置?
当开发人员希望向管理员和其他非开发人员公开小组件的配置选项时,动态配置是必要的。动态配置小组件工作室上的小组件中被定义为 XML。
XML 配置定义
[
<propertyGroup>
[
<property>
[<propertyValue />]*
[<propertyRule />]*
</property>
]*
</propertyGroup>
]*
一个或多个属性组可以包含一个或多个属性。每个组都表示为小组件配置窗口的选项卡,每个属性存储一个值。每个属性都可以选择定义可选值和规则。
可以使用 $limyee_v1_widget 扩展上的 get 和 set 方法为小组件检索属性值。
<propertyGroup [id=""] [resourceName="" [resourceFile=""]] [text=""] [descriptionResourceName="" [descriptionResourceFile=""]] [descriptionText=""] [orderNumber=""] [visible=""] [other attributes]>...</propertyGroup>
定义配置属性组。在小组件配置窗口中,每个组都由一个选项卡表示。
属性:
资源名称或文本是必需的。
<property id="" dataType="" [resourceName="" [resourceFile=""]] [text=""] [descriptionResourceName="" [descriptionResourceFile=""]] [descriptionText=""] [orderNumber=""] [defaultValue=""] [editable=""] [visible=""] [controlType=""] [scope=""] [other attributes] />
定义配置组中的配置属性。
属性:
除了 id 和 dataType 之外,还需要 resourceName 或 text。
<propertyValue value="" [resourceName="" [resourceFile=""]] [text=""] [orderNumber=""] [other attributes] />
定义属性的可选值。为属性定义可选值时,默认情况下,将使用下拉列表呈现该属性。
属性:
除了 value 外,还需要 resourceName 或 text 。
<propertyRule type="" [other attributes]/>
定义要应用于属性的规则。
属性:
作用域属性
有时,将小组件放置在多个页面上共享单个配置可能很有用。例如,“群组应用程序导航”小组件在群组内多个页面显示时,应始终显示同一群组导航选项卡。小组件开发人员可以通过为一个或多个小组件配置属性定义显式范围来启用此行为。
定义属性的作用域
属性的作用域由属性 scope 定义。通常,属性的值与小组件的单个实例相关联,但是,在定义范围时,该值将小组件应用于定义范围内的所有实例。
例如,在下面的示例中,widgetHeader 属性使用默认范围(小组件实例),导航属性定义群组的显式范围。
<propertyGroup id="options" resourceName="Options">
<property id="widgetHeader" resourceName="Widget_Title" dataType="string" defaultValue="${resource:Groups_GroupApplicationNavigation_Name}" controlType="Limyee.Controls.ContentWidgetTokenStringControl, Limyee.Controls" />
<property id="navigation" dataType="custom" controlType="Limyee.Controls.CustomNavigationCustomControl, Limyee.Controls" maximumDepth="1" resourceName="Groups_GroupApplicationNavigation_Navigation" descriptionResourceName="Groups_GroupApplicationNavigation_Navigation_Description" navigationType="group" scope="group" />
</propertyGroup>
支持的范围
默认范围是小组件的实例。如果未定义作用域属性,则使用此作用域。显式定义范围时,支持以下值:
平台属性控件类型
动态配置定义了一个默认用户界面,用于编辑每个受支持的属性数据类型,但是,在某些情况下,更具体的用户界面会很有帮助。动态配置通过在声明定义 controlType 来支持备用的编辑体验。该平台支持以下备用属性控件类型: