[译]:Orchard入门——部件管理
原文链接:Managing Widgets
在Orchard中,部件是可以加入到当前当前主题任何位置或区域(如侧栏sidebar或底部区域footer)的UI块(如:HTML)或代码部分(如:内容部分)。常见部件示例包括:导航菜单navigation menus, 图片库image galleries, 广告ads, 视频videos, 以及标记云图tag clouds
本文介绍部件的基础知识,以及如何管理部件。
层Layers, 区域Zones, 和部件Widgets
在Orchard控制面板中,点击 部件Widgets 菜单进入部件管理界面。Widgets 界面列出了可用的部件列表,以及可以添加部件的层_layer_和区域_zone_。
你可以将层 layer 理解为展示一个部件(或一组部件)的一系列规则。例如:一个层可以控制页面上某一部件只对登录用户可见。区域_zone_控制部件显示在页面的哪一个位置。
下图为部件Widgets 页面:

可用的部件
一旦部件设置可用 (通常是在控制面板-模块-功能下面启用了一个功能后引起), Orchard会自动将部件添加到当前主题区域可用部件列表当中。要查看区域可用部件列表,点击部件界面中区域列表中某一区域后面的添加按钮。
例如:在部件界面中点击 Header 区域后的添加按钮。网站将展示可以添加到区域的可用部件列表。

下面表格描述了Orchard中默认可用的部件:
| 部件Widget | 描述Description |
|---|---|
| Blog Archives | 显示指定博客的博文条目列表 |
| Container Widget | 显示内容项容器,例如一个列表 |
| Html Widget | 显示HTML内容——需要通过部件编辑器添加内容 |
| Recent Blog Posts | 显示指定博客的最近更新博文 |
层的列表
Orchard内置提供了一些层。你也可以按照自己的需要定义层,稍后将详述添加层。在部件页面,你可以通过当前层下拉菜单改变当前编辑的层,也可以点击添加一个新层来来添加新层。
下面列表列举了默认层的显示规则,以及层的作用。
| 层Layer | 规则Rule | 描述Description |
|---|---|---|
| Default | true | 在所有页面都显示 |
| Authenticated | authenticated | 用户已认证——即对登录用户可见 |
| Anonymous | not authenticated | 匿名用户可见 |
| Disabled | false | 不显示。可用于保存当前不需要显示的部件配置 |
| TheHomepage | url("~/") | 首页显示 |
区域列表
Orchard中,网页被分成许多个区域。可用区域被定义在网站主题之中。在部件界面,你可以看到当前选中层所有可用区域的列表。界面上也包含当前选中层的每个区域包含的部件。
关于更多默认主题(TheThemeMachine)的可用区域信息,参见:原文:Customizing the Default Theme。
添加层
点击控制面板-部件-添加一个新层来添加一个层,下图为 Add Layer 界面:

添加新层信息:层名称、描述,以及层规则,完成后点击保存。
层规则的值是一个可以解析为true 或 false的表达式。如果解析为 true, 则部件显示,否则部件不显示。
下表简述了建立层的语法规则:
| 语法规则Rule Syntax | 描述Description |
|---|---|
| url("<url path>") | 当当前url地址符合指定的路径,则为true。如果在路径最后加了星号(*),所有此路径下的子链都被认为是true(如:url("~/home*"))。 |
| authenticated | 用户已登录则为true。 |
| ContentType("<Type>") | 浏览内容类型与特定的类型匹配,则为true。如:内容类型(“Page”) |
| not | 逻辑非 |
| and | 逻辑与 |
| or | 逻辑或 |
表达式可以使用括号。
例如,下面表达式定义的规则表示对于未登录用户可以在About页面查看到部件,登录用户在任何页面都可以看到部件。
(not authenticated and url("~/about")) or authenticated
如 允许多个url值,可以使用如下语法:
url("~/foo") or url("~/bar")
为区域添加部件
点击要添加部件的区域后的添加按钮,然后选择要添加的部件,以此给一个区域添加部件。
例如:点击Header区域后的添加按钮,然后在 Choose A Widget 页面点击 Html Widget。然后网站将展示 Add A Widget 页面

要配置哪些字段取决于你配置的部件类型。所有部件都包含区域Zone, 层Layer, 标题Title, 和 位置Position 字段。位置字段确认区域内部所有部件的相对位置(事实上就是z-order)。需要注意的是区域内的部件可以来自多个层。例如:两个完全不同的层中可能在统一区域都含有部件。
位置字段可以是整数,也可以是由点分隔的整数序列。例如:以下值都是有效的:5, 10.1, 7.5.3.1。位置值小的部件将显示在位置值大的部件之前。
设置完所有字段后,点击保存。
编辑或删除部件
要编辑或删除部件,在部件页面的当前层下拉框中选择部件所在的层。然后在层所含的区域列表中,点击要更改的部件。之后会自动进入编辑部件界面:

编辑你想修改的字段,然后点击保存。要从区域中移除部件,点击后面的移除按钮。
译:奇葩史
[译]:Orchard入门——部件管理的更多相关文章
- [译]:Orchard入门——Orchard控制面板概览
原文链接:Getting Around the Dashboard 文章内容基于Orchard 1.8版本 Orchard控制面板用于管理网站.改变外观.添加内容以及控制Orchard功能可用性.成功 ...
- [译]:Orchard入门——构建你的第一个Orchard网站
原文链接:Building Your First Orchard Site 文章内容基于Orchard 1.8版本 本文将逐步简要介绍Orchard提供的功能.如果你是第一次使用Orchard,本文将 ...
- [译]:Orchard入门——手动安装Orchard
原文链接:Manually Installing Orchard 文章内容基于Orchard 1.8版本 本文将演示通过zip安装包安装Orchard所需要的步骤. 本文包括如下三种不同的Orchar ...
- [译]:Orchard入门——安装Orchard
原文链接:Installing Orchard 文章内容基于Orchard 1.8版本 安装Orchard的方式 主要有以下四种方式安装Orchard: 利用Microsoft Web Platfor ...
- CSharpGL(56)[译]Vulkan入门
CSharpGL(56)[译]Vulkan入门 本文是对(http://ogldev.atspace.co.uk/www/tutorial50/tutorial50.html)的翻译,作为学习Vulk ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- 6)Linux程序设计入门--消息管理
)Linux程序设计入门--消息管理 前言:Linux下的进程通信(IPC) Linux下的进程通信(IPC) POSIX无名信号量 System V信号量 System V消息队列 System V ...
- [译]:Orchard入门——使用标签管理内容
原文链接:Organizing Content Using Tags 在Orchard中,内容项可以使用标签来分类,同时,通过格式为 ~/tags/tag-name 的url可以直接查看包含对应标签关 ...
- [译]:Orchard入门——媒体文件的添加与管理
原文链接:Adding and Managing Media Content 注:此文内容相对较老,实际操作指导性不强,仅适合做研究 当你利用富文本编辑器上传图片时(或者使用XML-RPC客户端,例如 ...
随机推荐
- 架构师养成记--4.volatile关键字
volatile修饰的变量可在多个线程间可见. 如下代码,在子线程运行期间主线程修改属性值并不对子线程产生影响,原因是子线程有自己独立的内存空间,其中有主内存中的变量副本. public class ...
- 【整理】Word OpenXML常用标签
一.背景 最近在做关于Word内容自动标引,需要了解Word的底层结构,顺便梳理一下OpenXML的标签含义,方便后续开发,提高对OpenXML标签的查找效率,也是一个熟悉的过程. 二.内容 < ...
- hdu2929 Bigger Is Better
题意 给出n根木棍,要你拼一个最大的数,并且这个数是m的倍数. 题解 显然越长的数越大.设\(dp[i][j]\)表示用i根木棍并且\(mod m = j\)的最大长度. 我们很容易想出dp方程,再用 ...
- [转]eclipse重新编译
Eclipse打开时并不重新生成class文件,这就造成了eclipse找不到需要的class文件从而不能正常编译工程中的其他代码.此时就需要重新编译工程. 单击Project菜单,选择Clean菜单 ...
- Hibernate的关联映射关系
一:多对一 <many-to-one 1.name:当前类的属性名(关联映射的类) 2.column:属性多对应的类的对应的表的外键(连接条件) 3.class:属性所对应的类的权限定名 4.n ...
- JavaScript写在Html页面的<head></head>中
JavaScript写在Html页面的<head></head>中 ----------------- <html> <head> <style ...
- 入门: 使用JNI 从C++代码中调用Java的静态方法
开发环境: 操作系统: (uname -a output) Linux ubuntu 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC ...
- AndroidStudio使用笔记
声明: 正式放弃Eclipse,投奔AndoidStudio大军,有些东西要从头摸索,特发此帖记录Android Studio的使用方法.本帖永久更新,不定时记录本人使用过程中的经验积累,给自己留一份 ...
- PHP正则表达式详解(三)
1.preg_match() :preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 . 语法:int preg_match( string pattern, strin ...
- JS表单验证-12个常用的JS表单验证
JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...