二十四画生的Blog


        ——开始学习Orchard框架
posts - 125, comments - 1456, trackbacks - 46, articles - 8
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

Orchard模块和主题的清单文件(Manifest File)

Posted on 2011-07-04 12:20 二十四画生 阅读(...) 评论(...) 编辑 收藏
    在Orchard中模块和主题是用于扩展和自定义Orchard网站的重要工具。每一个模块和主题都需要一个清单文件(manifest),它是一个文本文件,文件名为module.txt或theme.txt,位于模块或主题的根目录下。一个清单文件存储了描述模块或主题的一些基本信息供Orchard系统使用,如:名称、版本、描述、作者或标签等。
    本文是关于清单文件的。如果你创建一个自定义模块或主题,或者你写代码访问模块或主题,你都需要理解清单文件中的字段。在文件清单中数据都是以键值对的形式存储的,如:FiledName:Value。以下分两节分别讲解模块和主题的清单文件中的字段含义。

 

模块清单字段 

字段名称

说明

Name

模块名称。可以理解为模块的友好名称,能够最直观的表述模块功能。如:Orchard.Blogs模块,其模块名称可以为BlogsOrchard.Blogs是模块Id,它是模块所在的目录名称。如果清单文件中没有提供模块名称,系统默认用模块Id作为模块的名称。模块名称将显示在Orchard UIOrchard软件市场中。

Path

路由名称(Area部分)Orchard默认的路由地址为:{area}/{controller}/{action},如果没有指定Path值,Orchard默认使用模块Id作为area。如:MyCompany.HelloWorld模块的areaMyCompany.HelloWorld,这样的Url可读性就不高,所以可提供一个PathHelloWorld这样在访问MyCompany.HelloWorld模块时就可以简化Url,如:/admin/HelloWorld

Description

模块描述。可用于描述模块的功能,此描述将显示在Orchard UIOrchard软件市场中。

Version

模块的版本号。将显示在Orchard UIOrchard软件市场中,让用户知道是否有新的更新发布。

OrchardVersion

描述当前模块所支持的Orchard框架版本

AntiForgery

防伪,指示模块是否启用请求验证。可选值有:enableddisabled。如果启用这个设置,Orchard会验证Post的请求是否来源于本站,这样就可以防止跨站提交。启用这个设置后,form表单必须用Html.BeginFormAntiForgeryPost()生成。

Author

模块的开发者,可以是组织,个人或团队。

Website

模块开发者网站

Tags

模块的标签,用半角逗号分隔。标签可以可便于在Orchard软件市场中查询。

FeatureDescription

模块默认功能描述。如果模块只有一个功能那么只用在这里描述就可以了。如果模块有多个功能,可以在这里描述一个主要的功能。其余的功能可以在Features中描述。

Category

模块分类,Orchard管理后台的模块列表功能中,可以根据分类,将不同类型的模块列在一起便于查看。

Dependencies

模块的依赖关系,用半角逗号分隔模块所依赖的其他模块。

Features

描述模块的所有功能。如果模块只有一个功能,用FeatureDescription就可以了,如果模块有多个功能,就可用到此节点。具体用法可见:Orchard.Experimental模块。

 

 模块清单示例

一个功能的模块 
Name: MyCompany HelloWorld
Path: HelloWorld
AntiForgery: enabled
Author: 二十四画生
Website: http://esshs.cnblogs.com/
Version: 1.0
OrchardVersion: 1.0
Description: 这是一个简单显示HelloWorld字样的模块
FeatureDescription:显示HelloWorld文字
Category: Sample


多个功能的模块
Name: Experimental
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.1.30
OrchardVersion: 1.1.30
Description: An assortment of debugging tools.
Category: Developer
Features:
    Profiling:
        Name: Profiling
        Description: Tools to help profile Orchard.
        Category: Developer
        Dependencies: Orchard.Experimental
    Orchard.Experimental.WebCommandLine:
        Name: Web Command Line
        Description: Enables site administrators to execute Orchard.exe commands via web interface
        Category: Developer
    Orchard.Experimental.TestingLists:
        Name: Testing Lists
        Description: Adds some content definitions to help test lists
        Dependencies: Orchard.Lists
        Category: Developer
    Orchard.Experimental.LockLogging:
        Name: Lock Logging
        Description: Logs extra diagnostic information for Sql CE if a deadlock timeout occurs
        Category: Developer

多个功能的模块在定义的时候每一个功能用一个Tab缩进列举在Features下面。用feature ID+”:”表示一个功能。每个功能下面可以用2个Tab缩进分别定义这个功能的名称,描述,依赖,分类等。

 

主题清单字段 

字段名称

说明

Name

主题名称

Description

主题描述。可用于描述主题的风格布局等,此描述将显示在Orchard UIOrchard软件市场中。

Version

主题的版本号。将显示在Orchard UIOrchard软件市场中,让用户知道是否有新的更新发布。

Author

主题的开发者,可以是组织,个人或团队。

Website

主题开发者网站

Tags

主题的标签,用半角逗号分隔。标签可以可便于在Orchard软件市场中查询。

Zones

主题的区域。用半角逗号分隔主题所包含的区域。Orchard后台在添加widgets的时候可根据此设置显示主题所拥有的区域。

BaseTheme

主题所继承的其他主题的Id。这是一个可选字段。他通常用于你希望复制一个已存在的主题并做出一些修改的时候。

 

主题清单示例

 

主题清单文件
Name: 测试主题
Description: 这是一个测试主题。
Version: 1.0
Author: 二十四画生
Website: http://esshs.cnblogs.com/
Tags: 测试, 简洁
Zones: Header, Content, Footer

 

 

注意:字段名称是区分大小写的。如果拼写错误,Orchard系统不认的。另外如清单文件中如果有中文,需要用utf-8编码格式保存。

参考文档