[译]:Orchard网站内容管理——创建自定义内容类型

返回目录索引
原文链接:Creating Custom Content Types

尽管Orchard默认提供了Page和Blog Post内容类型,但是,在控制面板中,我们仍然可以很容易的创建自定义的内容类型(或者扩展已有内容类型的定义)。默认情况下,内容定义功能模块是启用的——创建自定义内容类型,此功能必须启用。如果没有启用,可以在模板-功能界面手动启用它。

要创建内容类型,在控制面板中,点击内容定义,选择内容类型标签。

在此界面中,你可以看到系统中可用的内容类型。注意:此处有些类型可以直接在此处创建内容项或查看内容项列表(如Page类型),而其他的则只能在此编辑内容类型定义(如Comments和Widgets,由于它们有专门的/定制的管理界面来创建和列举内容项)。

由于官网图片名称大小写有误,无法显示,此处修改

点击Page类型里的项目列表可以查看网站的Page类型内容项列表——界面类似管理内容界面。

你也可以点击Page类型的编辑链接来修改Page类型的定义。

Orchard中的内容类型由字段和元件组成,关于那些基本概念的概述见:原文:Basic Orchard Concepts。字段是类型中的一些定制内容,如:Product类型可能会需要SKU和Price字段。元件则用于可以在一个或多个类型中重复使用的部分。例如:Autoroute元件为类型提供使用链接地址访问内容的功能。 从某种意义上讲,你可以将类型理解为 含有字段的,并由一个或多个部件组成的一个东西。事实上,反应到代码层面也是一样。 如果你需要处理博文为Autoroute部件并访问其Slug属性,你可能需要写如下代码:post.As<AutoroutePart>.Slug 。幸运的是,你现在不必编写代码来查看处理类型和部件。我们将在下一节通过更详细的例子来介绍这一点。

定义一个新的内容类型

下面准备定义一个自定义内容类型。假设你定义一个Event类型,用于列举活动(包括地点和日期字段)。首先,点击内容定义进入内容类型界面,点击创建新类型

输入类型名称 Event内容类型Id字段可以保持使用自动填写的 Event

点击 添加字段-Add 添加字段

现在Orchard只有一个字段类型(TextField),但在Orchard中还有许多扩展类型(如CheckBoxField, EmailField, TextAreaField, DateTimeField 等),详细内容见:原文:Creating-a-custom-field-type。同时在模块里的库中还提供了大量的额外字段类型可供下载。

下面在字段名称中输入 Location ,并点击保存

现在可以看到字段显示在Event类型字段列表中了。

重复以上步骤添加字段 Date

现在给类型添加元件,在Event类型中点击添加元件

然后你可以看到当前版本的Orchard中可用的元件。对于我们的Event类型,我们添加 Comments 元件(允许评论event),Tags 元件(可以为event打标签),Autoroute 元件(可以通过前台url地址访问),Menu 元件(可以将event添加到主菜单)以及PublishLater 元件(允许event立即发布,稍后发布或保存为草稿)。

另外还要添加 “Common” 元件,那样你的内容项可以显示在内容项列表中。

类型、字段和元件都可以有自己的设置。字段和元件的特有的设置由Orchard中的功能来决定。如果我们启用Indexing功能,类型设置上会出现Index this content type for search的设置,并且在每个字段上会有设置项Include in the index。勾选Event类型中Location字段上的选项,这样讲会允许用户在前台通过location来搜索内容(Search功能需要启用)。最后记得点击保存。

现在我们已经完成了自定义内容类型的定义。下面我们为其创建内容项。可以在内容定义-内容类型界面看到新建Event链接。

同样,在控制面板的新建菜单下也有Event类型。点击效果与上面一样(二选一)。

我们可以在Event类型的编辑页面,看到所有我们定义的字段和元件。其中有TitleAutoroutePart元件,包含TitlePartPermalink),有Location字段,还有 Tags 输入框(Tags元件),显示到主菜单-Show on main menu 勾选框(Menu元件),是否允许评论勾选框(Comments元件),以及现在发布-Publish Now, 稍后发布-Publish Later保存草稿-Save As DraftPublish Later 元件)。填写完成后下一步发布活动。

点击Orchard控制面板中的内容,我们可以看到添加的event内容项出现在列表项中。

在网站的前台页面中,event正如预期的一样,被添加到了主菜单中,同时所有的字段和元件都得以正确显示。

我们可以自定义event的显示方式,并将其模板化。关于此的更多内容见:原文:Template File Syntax Guide

下面我们可以测试下新类型的搜索功能。首先保证你在模块-功能界面启用了Indexing, SearchLucene 功能。然后访问搜索索引-Search Index 页面查看有哪些可用字段有索引。你应该可以在索引字段列表中看到event-location字段(如果没有,重建索引即可)。

我们可以在设置管理界面将字段添加到搜索设置中,以此让搜索功能可以通过查询此字段查找内容。

在前台界面输入可以匹配活动地址的关键字。

系统会通过搜索地址字段的索引,然后展示搜索结果。

至此本教程结束。


译:奇葩史

[译]:Orchard网站内容管理——草稿发布

返回目录索引
原文链接:Publishing Drafts

Orchard支持将页面保存为草稿或将其发布到网站。当你发布一个页面时,你可以选择立即发布或者指定某一个时间点发布。页面的保存和发布选项在 新Page 页面的最底端。

保存为草稿选项

当你需要保持一个页面,但又不想网站访问者看到这个页面,你就可以将其保存为草稿。你后续可以继续修改其内容直到你想发布它。在 管理内容 页面,你可以看到已被保存为草稿的页面。

草稿显示为未发布状态,你可以点击发布、修改,以及删除链接。点击发布链接将会立即将草稿发布到网站,网站访问用户将立即可以看到此内容。

现在发布选项

想立即发布一个页面,则点击现在发布。要发布一个草稿页面,则在管理内容页面点击发布链接。在管理内容页面,你也可以看到已发布的内容。

你可以点击查看、取消发布、编辑以及删除链接来操作页面。点击取消发布后,页面将变为一个草稿。

稍后发布选项

你可以为一个页面设置一个未来的日期时间,然后点击稍后发布选项,以此来让页面在一个特定时间发布。

页面在设置的发布日期时间前,将作为草稿存储。你不需要再做其他的操作来发布页面。

你可以在管理内容页面看到页面草稿所设置的发布日期时间。


译:奇葩史

关于Visual Studio单元测试项目中Console使用和WinForm相关问题

问题来源:个人想给单元测试添加用户输入,即添加Console.ReadLine()。但vs的单元测试中并不会显示控制台窗口。

解决方案:

1、关于Console.WriteLine——要查看输出,无法直接查看,只能在运行结束后查看,查看方式如下:

output

点击图中的“输出”或者在测试资源管理器中点击“输出”

testoutput

 

2、 想在“输出窗口”查看输出结果,将Console改为System.Diagnostics.Trace或System.Diagnostics.Debug,即如下:

经测试,需要在调试模式下才会在输出窗口看到内容,此时Console同样有效

System.Diagnostics.Debug.WriteLine("输出");
System.Diagnostics.Trace.WriteLine("输出");

 

3、关于输入Console.ReadLine,未找到合适解决方案,最终使用添加Form窗体来进行输入处理。

但是,使用form窗体时,在运行情况下,窗体可以显示,调试时窗体会显示不出来。

解决方案:将窗体的ShowInTaskbar属性改为false即可

[译]:Orchard网站内容管理——搜索与索引

返回目录索引
原文链接:Search and Indexing

Orchard支持在网站中索引和搜索内容项。索引功能需要启用Indexing功能,同时还要一个具体的索引实现功能(例如:Lucene-based是默认内置在Orchard中的)。除了Indexing之外,Search功能支持通过索引(关键字或Lucene查询语法)来查询内容项,并将匹配的内容列表项返回到前台显示。

你必须启用以下所有模块: Search, Indexing, 和 Lucene.

新版中Indexing模块还依赖Jobs Queue——一个异步处理的模块。

由于搜索功能依赖于索引功能,所以启用搜索功能时,会自动启用索引功能。注意:在使用搜索和索引之前,你还必须启用Lucene模块。

在索引功能启用之后,在控制面板中,可以看到设置-Settings菜单下面会有 搜索-Search索引-Indexes 两个新菜单。索引器是作为一个后台任务在运行,在默认情况下,一分钟执行一次,你可以在索引界面中更新和重建索引。Indexes 界面中还显示文档(内容项)的索引数量, Search 界面中显示索引字段。

在启用Search功能后,点击 内容定义——Content Definition 菜单,然后点击你想要索引的内容类型,并勾选上可索引勾选框。如,内容类型——Page:

当搜索功能启用后,在 设置-Settings 下的搜索 界面中会显示哪些字段可以通过索引查询。

现在在网站前台界面还没有搜索交互界面。要添加搜索交互,你需要添加一个部件。在控制面板中,点击部件。在默认的层上,在项添加搜索框的区域后点击添加-Add,然后选择可用部件列表中的 SearchForm

选择 “Header” 区域和"Default" 层可以保证搜索部件始终显示在所有界面的最上面(default层在网站的每一个界面都会显示)。

输入标题,如 “Search” 并点击保存-Save 按钮。

关于更多部件内容,见:原文:Managing widgets译文:Orchard入门——部件管理

现在打开前台界面就可以看到搜索框了。

注:个人之前使用TheBootstrapTheme时,由于其已经存在搜索框,添加到Header位置不生效(其他位置可以),故建议测试时,切换为默认主题查看。

当在输入框中输入关键字或查询条件后,符合条件的内容列表将会显示在界面上:


译:奇葩史