Orchard CMS - Layer&内容类型

时间:2013-07-03 09:23:05

标签: orchardcms orchardcms-1.6

我正在向Orchard网站添加一个“联系表单”页面(我正在学习Orchard)。

首先我将其添加为图层。然后我发现你可以将它添加为内容类型。

我发现这一切都非常令人困惑。

有什么区别&层,内容类型,模块和关系之间的关系小部件。为什么没有页面?!

为什么TripelFirst是一个例子 - 而不是一个小部件?

为什么我不能只是制作一个“联系”页面并为其添加一个名为“联系表格”的小部件?!

模块和模块之间有什么区别?小部件 - 它们听起来像是一样的东西。

添加“联系我们”页面的最佳做法是什么?作为图层或内容类型?

感谢。

1 个答案:

答案 0 :(得分:4)

What is the difference & relationship between layers, content types, 
modules & widgets. And why are there no pages?!

图层控制哪些小部件出现在特定网页上的区域(由主题指定)中。他们有规则,所以例如,我可以有一个名为 NotHomePage 的图层,并为其提供规则而不是url(“〜/”)以及添加到的任何窗口小部件除了主页之外,该图层上的区域会出现。

内容类型就是您在网站上创建的内容的类型。 Page 是Orchard开箱即用的内容类型。它包含一个名为 Route 的部分,因此您可以选择创建的第一个属性是slug例如: mydomain.com/sweet-page

模块基本上是为网站创建特定功能的MVC区域。模块可能包含一些自定义部件,一些脚本,一些样式等。有一些联系表单模块,但如果您使用自定义表单< / strong>已经在默认的Orchard配方中煮熟的模块(我想你必须启用它,但它就在那里。)

小部件就像您添加到区域(由主题指定)的代码段,您可以在其中拥有任意数量的小部件。也许您的主页有一个“MainContent”区域,您的客户希望使用tagLine和一个小表格来注册简报。您可以为标语添加HTML小部件(其中包含基本信息,如HTML的WYSIWYG编辑器)和自定义表单小部件(将处理创建注册请求。)

Why is TripelFirst a layer for example - not a widget?

TripelFirst不应该是一个图层,它应该是TheThemeMachine主题中的区域,即页面上可能包含或不包含小部件的区域。

Why can't I just make a 'contact' page and add a widget 
to it called 'Contact Form'?!

你可以,但你需要首先定义几件事。

  1. 创建名为ContactFormRequest的内容类型(您可能需要启用“内容类型”模块)
  2. 添加字段(名字,姓氏等),就像将属性添加到类定义
  3. 一样
  4. 使用slug / contact
  5. 创建一个名为联系的页面
  6. 使用规则网址(“/ contact”)
  7. 创建名为 ContactLayer 的图层
  8. 向ContactLayer添加自定义表单窗口小部件,并确保选择 ContactFormRequest 作为内容类型
  9. 这应该为您提供您正在寻找的基本行为。当然,您可以进一步自定义。

    What would be the best practice way to add a Contact Us page - 
    as a layer or a Content Type?
    

    就个人而言,我更喜欢使用我自己的内容类型的灵活性,例如ContactFormRequest。如果将来我的客户希望将高度,重量和年龄作为属性添加到联系表单中,我只需要将这些字段添加到内容类型中,而Orchard将处理剩下的内容。