二、创作网站 (三) Creating custom content types
Orchard默认包含了Page和Blog内容类型,在管理面板也可以很容易的创建一个自定义的内容类型(或扩展现有内容类型)。默认Content Types功能是启用的,必须启用这个功能才能创建自定义内容类型。
通过管理面板的 Content Types链接进行创建内容类型。
下面列出一些系统默认的内容类型.
点击 List Items 可以查看到系统中可用的这种内容项。
点击 Edit 链接用于定义这种类型。
内容类型由 fields和parts拼装起来。field 是具体的类型,如产品可以和名称和价格fields。part 是可附加到一个或多个类型的可复用组件,如Route part 给类型在前端通过路由/url地址被访问的能力,可以理解为part是由field拼装起来的类型。通过查看代码可以看得到。
定义新内容类型
下面定义一个自定义内容类型。假设现在定义 Event 类型,列出事件的location和date fields。在Manage Content Types面板,点击 Create new type
内容类型名称输入 Event,Id设置自动增加,
在 Event类型面板可以看到Location字段.
重复上面的步骤添加 Date 字段。
下面列出了Orchard中可用的 parts。我们的 Event 类型,我们想要它能发表评论(comments part),能加标签(tag part),在前端通过URL/route 访问(route part),把 Event 加入到主菜单(menu part),能立即、计划、存为草稿稍后发布这个 event。同样添加 common part以便你的items能出现在content items列表中。
Types,fields,parts 同样能被设置。Orchard中可作用于field,part已激活的功能的可以具体设置。如果我们启用了 indexing功能,将会有 Index this content type for search" and on each field, a setting to "Include in the index" 设置。选择event类型的location的选项,在前端将使访问者能通过搜索location进行访问。
现在我们定义了自定义的内容类型,下面创建一个这种类型的新实例。在 Manage content types 面板 create a new event。
然后在管理菜单面板 new 项下将会有名为 event的项,点击可以创建一个新的event 内容。
能看到event 类型的编辑页中有所有我们定义的所有fields和parts。
在管理面板的manage content面板中,能列出网站的的event类型的内容条目。
在网站前端可以看到event已经添加到了主菜单中,通过这个链接能查看到所有的field和parts内容。
可能还要自定义event的显示方式及模板。
试一个搜索我们的内容类型的功能。首先要确保已启用 indexing,search,Lucence功能 。访问Search index页面,可用的fields已经被索引了。应该看到了event-location field出现在索引中。(如果没有看到需要rebuild一下)
我们在Setting管理面板添加这个field到搜索设置中,用于查询这个field的功能。
在前端输入一个event location的关键字
将搜索到这个内容。