原文链接: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 界面:

添加新层信息:层名称、描述,以及层规则,完成后点击保存

层规则的值是一个可以解析为truefalse的表达式。如果解析为 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入门——部件管理的更多相关文章

  1. [译]:Orchard入门——Orchard控制面板概览

    原文链接:Getting Around the Dashboard 文章内容基于Orchard 1.8版本 Orchard控制面板用于管理网站.改变外观.添加内容以及控制Orchard功能可用性.成功 ...

  2. [译]:Orchard入门——构建你的第一个Orchard网站

    原文链接:Building Your First Orchard Site 文章内容基于Orchard 1.8版本 本文将逐步简要介绍Orchard提供的功能.如果你是第一次使用Orchard,本文将 ...

  3. [译]:Orchard入门——手动安装Orchard

    原文链接:Manually Installing Orchard 文章内容基于Orchard 1.8版本 本文将演示通过zip安装包安装Orchard所需要的步骤. 本文包括如下三种不同的Orchar ...

  4. [译]:Orchard入门——安装Orchard

    原文链接:Installing Orchard 文章内容基于Orchard 1.8版本 安装Orchard的方式 主要有以下四种方式安装Orchard: 利用Microsoft Web Platfor ...

  5. CSharpGL(56)[译]Vulkan入门

    CSharpGL(56)[译]Vulkan入门 本文是对(http://ogldev.atspace.co.uk/www/tutorial50/tutorial50.html)的翻译,作为学习Vulk ...

  6. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  7. 6)Linux程序设计入门--消息管理

    )Linux程序设计入门--消息管理 前言:Linux下的进程通信(IPC) Linux下的进程通信(IPC) POSIX无名信号量 System V信号量 System V消息队列 System V ...

  8. [译]:Orchard入门——使用标签管理内容

    原文链接:Organizing Content Using Tags 在Orchard中,内容项可以使用标签来分类,同时,通过格式为 ~/tags/tag-name 的url可以直接查看包含对应标签关 ...

  9. [译]:Orchard入门——媒体文件的添加与管理

    原文链接:Adding and Managing Media Content 注:此文内容相对较老,实际操作指导性不强,仅适合做研究 当你利用富文本编辑器上传图片时(或者使用XML-RPC客户端,例如 ...

随机推荐

  1. 架构师养成记--4.volatile关键字

    volatile修饰的变量可在多个线程间可见. 如下代码,在子线程运行期间主线程修改属性值并不对子线程产生影响,原因是子线程有自己独立的内存空间,其中有主内存中的变量副本. public class ...

  2. 【整理】Word OpenXML常用标签

    一.背景 最近在做关于Word内容自动标引,需要了解Word的底层结构,顺便梳理一下OpenXML的标签含义,方便后续开发,提高对OpenXML标签的查找效率,也是一个熟悉的过程. 二.内容 < ...

  3. hdu2929 Bigger Is Better

    题意 给出n根木棍,要你拼一个最大的数,并且这个数是m的倍数. 题解 显然越长的数越大.设\(dp[i][j]\)表示用i根木棍并且\(mod m = j\)的最大长度. 我们很容易想出dp方程,再用 ...

  4. [转]eclipse重新编译

    Eclipse打开时并不重新生成class文件,这就造成了eclipse找不到需要的class文件从而不能正常编译工程中的其他代码.此时就需要重新编译工程. 单击Project菜单,选择Clean菜单 ...

  5. Hibernate的关联映射关系

    一:多对一 <many-to-one 1.name:当前类的属性名(关联映射的类) 2.column:属性多对应的类的对应的表的外键(连接条件) 3.class:属性所对应的类的权限定名 4.n ...

  6. JavaScript写在Html页面的<head></head>中

    JavaScript写在Html页面的<head></head>中 ----------------- <html> <head> <style ...

  7. 入门: 使用JNI 从C++代码中调用Java的静态方法

    开发环境: 操作系统: (uname -a output)  Linux ubuntu 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC ...

  8. AndroidStudio使用笔记

    声明: 正式放弃Eclipse,投奔AndoidStudio大军,有些东西要从头摸索,特发此帖记录Android Studio的使用方法.本帖永久更新,不定时记录本人使用过程中的经验积累,给自己留一份 ...

  9. PHP正则表达式详解(三)

    1.preg_match() :preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 . 语法:int preg_match( string pattern, strin ...

  10. JS表单验证-12个常用的JS表单验证

    JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...