一、Orchard的基本概念
一般的CMS概念
-
Content
CMS系统中的内容.如一篇博文、一条评论、一个产品、导航菜单或logo等。 -
Admin panel,Dashboard or back-end
管理后台。管理网站和内容的地方。
-
CMS
内容管理系统的缩写。 -
Front-end
被用户访问的前台。 -
Setup
系统的安装及基本设置
Orchard concepts
-
Content Item
内容项是内容中单独的一部分,经常与一个URL关联。如页面、博文或产品。 -
Content Type
内容项是内容类型的实例。如一篇博文是博客类型的一个实例。 -
Content Part
构建内容类型的基本元素。 -
Content Field
内容字段。能被添加到内容类型中的一块信息。如产品内容类型有一个文本字段显示产品名称,一个数字字段显示产品价格,一个数字字段显示产品重量。 -
Module
模块。Orchard功能的扩展。模块存放在网站Modules子目录下。可以通过Orchard Gallery安装模块。 -
Feature
特色功能。一个模块能包含一个或几个功能,可以启用或禁用特定的功能。如一个自定义的认证模块可能含有几个独立的特色功能,像OpenID,Facebook,LiveID,可以单独启用或禁用。 -
Manifest
描述module或theme的文本文件。像下面这样:
Name: Comments AntiForgery: enabled Author: The Orchard Team Website: http://orchardproject.net Version: 0.9.0 OrchardVersion: 0.9.0 Description: The comments system implemented by this module can be applied to arbitrary Orchard content types, such as blogs and pages. It includes comment validation and spam protection through the Akismet service. Features: Orchard.Comments: Name: Comments Description: Standard content item comments. Dependencies: Settings Category: Social
UI composition
-
Theme
主题。网站的外观。Orchard 提供了清晰的内容管理和内容展现的分隔。一个主题包可能由css,images,layouts,templates,custuom code构成。也可以继承一个主题,这在基于一个主题进行小改动时很有用。 -
Layout
布局。一个Layout是一个主题中的文件,定义了定义了页面的结构。一个Layout通常定义了包含contents和widgets的zone。 -
Template
模板。定义了content part,field,widget,data在html中的显示。如<h1>@Model.Title</h1>
-
Shape
Shapes是一个动态数据模型,它使用shape templates来展现UI,Shape templates是一个标记片段。Shapes的示例包括menus, menu items, content items, documents, and messages。Shape是一个派生自Orchard.DisplayManagement.Shapes.Shape 类的数据模型对象。Shape 类不会实例化,而是在运行时通过shape工厂来生成。缺省的shape工厂是Orchard.DisplayManagement.Implementation.DefaultShapeFactory。shape工厂生成的shape是一个动态对象. -
Placement
位置。Placement.info是一个xml文件,描述了确定哪个shapes以什么顺序放在哪个zones中。这不仅能自定义shapes的呈现,也能定义他们的顺序。如
<Placement> <Place Parts_Map="Content:10"/> <Place Parts_Map_Edit="Content:7.5"/> </Placement>
-
Zone
区域。能插入widgets的layout的一个指定部分。一些主题中zones在没有active widget时是可折叠起来。 -
Widget
小组件。是一个或所有页面中的一个小片段。如widget可以是tag clouds, maps, archives, a search form, or recent blog posts.
-
Layer
层次。一个layer是一组应用特定规则启用的widgets。如TheHomepage层使用一个规则启用特定选择的主页。默认的layer总是激活没有显示问题的页面。
Security
-
用户和角色
用户可以被分配角色,角色包含一组用户。权限能分配到特定角色。用户可以拥有一个或几个角色。
网站管理员能创建自定义的角色,Orchard系统内建了一些角色:
Administrator:拥有全部权限。
Editor:不能创建内容,但可以编辑和发布其它用户创建的内容。
Moderator:审批用户创建的内容,例如评论。
Author:写作和发布内容。
Contributor:写作内容,但不一定有发布的权限。
Anonymous:匿名用户,没有登入的用户。
Authenticated:所有已登入的用户。 -
权限
所有用户都不要有同样的权限,权限被赋予角色,但不是明确的禁止。如果一个用户属于所有角色,那么他将拥有所有的权限。取消一个权限,需要移除用户的角色授予权限。由模块定义了权限以及内建角色的默认设置,意味着你构建自己的模块,你能给它定义指定的权限。 -
Site owner
网站管理员。是系统中的特殊用户,在安装时设置并且有全部的权限,能在设置面板中更改它。有一个“网站管理员”权限拥有同样的权限,仅仅Administrator角色默认授予这样的权限,建议不要把这个权限授予其它角色。
Development
-
ASP.NET MVC
Orchard是基于 ASP.NET MVC 构建的。 -
Handler
一个handler就像是一个包含代码的MVC筛选器,处理请求周期的特定事件。通常用于设置数据仓库或者当某些东西装载做一些额外的操作。 -
Driver
Driver像是MVC的控制器,但是他们是content part层起作用。通常为呈现和处理管理员回复准备shapes。 -
Record
一个Record是一个类,是content part的数据库表示模型。每个属性必须声明为virtual -
Model
模型。Content Part的model就是这个part类,一些parts也在强类型的类中或更灵活的动态shapes中定义view models -
Migration
迁移。安装一个功能或升级时执行的操作的描述。使升级能在不丢失数据下平稳的进行。Orchard包含一个数据迁移框架。 -
Injection
注入。Inversion of Control 控制反转或叫依赖注入,在Orchard中大量使用。当任何一段代码需要依赖项时,它通常会要求一个或几个特定的接口的实例的注入。框架会在运行时选择、安装和注入正确的实现。