原文地址 http://mscoder.cn/orchard/documentation/managing-widgets
在Orchard中,widget是UI片段(比如HTML)和代码(比如内容部件),它可以轻松的映射到当前主题的任何位置或区域,例如工具栏或底部区域。widgets示例包括导航菜单,图片画廊,广告,视频和标签云(image galleries, ads, videos, and tag clouds)。
本文解释了基础的widgets并且展示了如何管理他们。
Layers, Zones, and Widgets
在控制台点击Widgets 管理部件。这里列出了可用widgets,并且允许你分配的widget到层和区域中。
你可以认为layer (层)是一套规则用于展示widget(或一组widget)。例如,一个layer 可能在用户登陆后在某个特殊页面显示一个widget。 zone(区域)就可以帮助定位一个widget在页面中的位置。
下图展示了Widgets管理界面。
可用的 Widgets
每当widget可用时(通常是在Modules中启用了其他功能),Orchard都会把它添加在可用widget列表中,并且可以添加到当前主题的区域中。 在Widgets管理界面,点击任何区域的Add按钮查看可用widget列表。
例如,点击Header 区域的Add 按钮。将会显示可用widget列表让你选择。
下表描述了Orchard默认可用widget:
Widget名 | 描述 |
Blog Archives | 显示指定博客的内容列表。 |
Container Widget | 显示一个容器呈现内容,例如一个列表。 |
Html Widget | 使用widget编辑器输入显示HTML内容。 |
Recent Blog Posts | 显示指定博客最近发布的内容。 |
Layers列表
Orchard包含一些预定义layer。你也可以添加需要的自定义的layer,稍后详细讨论 Adding a Layer。在Widgets界面,你可以编辑 Current Layer (当前层),也可以点击 Add a new layer 添加新层。
下表列出了默认layers以及它们的访问规则和功能。
Layer | 访问规则 | 描述 |
Default | true | 每个页面都会显示。 |
Authenticated | authenticated | 当用户授权后显示。 |
Anonymous | not authenticated | 匿名用户访问时显示。 |
Disabled | false | 不显示。该层提供一种保存widget配置的方式并且不显示的方式。 |
TheHomepage | url("~/") | 仅首页显示 |
Zones列表
在Orchard中,一个页面被分为多个zones(区域)。网站主题定义了可用的zones。在 Widgets 页面,你可以看见选中层的zones列表。列表还显示已分配的widegets。
关于默认主题(The ThemeMachine)页面区域(zones),见Customizing the Default Theme。
添加一个layzer
控制台进入Widgets.。点击 Add a new layer。打开如下界面:
输入layer名称,描述,和访问规则,点击 Save。
Layer Rule 是一套表达式判断来决定widget是否显示。
下表简要概述rules语法。
Rule Syntax | Description |
url("<url path>") | 当前URl匹配则为ture。如果你添加*号在路径后,所有该路径下的子路径都将为ture (例如, url("~/home*") ) |
authenticated | 用户已登录为True |
not | 逻辑否 |
and | 逻辑和 |
or | 逻辑或 |
表达式可以使用圆括号。
例如,下面这个表达式定义为 访问About页面同时没有登陆或用户已经登陆。
(not authenticated and url("~/about")) or authenticated
匹配多条URL,你可以使用如下语法:
url("~/foo") or url("~/bar")
分配一个Widget
在想添加的区域点击 Add 按钮, 选择widget。
例如,点击Header区域的 Add 按钮,选择Html Widget。
打开Add A Widget 界面。
需要填写的字段取决于你正在配置的widget。然后,所有widget 都有Zone, Layer, Title 和 Position 字段。 Position 字段确定区域内所有widget的相对位置(等效, z顺序)。记住区域内的widgets可以来自多个层,例如,两个不同的层可能分配widgets到同一区域。
Position 字段可以是整数或小数点分割的数字。例如,这些值都有效: 5, 10.1, 7.5.3.1。数字越小的Widgets越先呈现。
设置完成后,点击 Save。
编辑或删除 Widget
在Widgets 界面,在 Current Layer 下拉框选择层,在区域列表中,选择你要编辑的widget。打开编辑界面:
修改字段,然后Save。点击 Delete 删除.