我正在向Orchard网站添加一个“联系表单”页面(我正在学习Orchard)。
首先我将其添加为图层。然后我发现你可以将它添加为内容类型。
我发现这一切都非常令人困惑。
有什么区别&层,内容类型,模块和关系之间的关系小部件。为什么没有页面?!
为什么TripelFirst是一个例子 - 而不是一个小部件?
为什么我不能只是制作一个“联系”页面并为其添加一个名为“联系表格”的小部件?!
模块和模块之间有什么区别?小部件 - 它们听起来像是一样的东西。
添加“联系我们”页面的最佳做法是什么?作为图层或内容类型?
感谢。
答案 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'?!
你可以,但你需要首先定义几件事。
这应该为您提供您正在寻找的基本行为。当然,您可以进一步自定义。
What would be the best practice way to add a Contact Us page -
as a layer or a Content Type?
就个人而言,我更喜欢使用我自己的内容类型的灵活性,例如ContactFormRequest。如果将来我的客户希望将高度,重量和年龄作为属性添加到联系表单中,我只需要将这些字段添加到内容类型中,而Orchard将处理剩下的内容。