据我了解,您所追求的是创建一个Widget
. 基本上要在页面中显示任何内容,您必须创建适当的ContentType
并附加所需的部分,并且要显示它,您必须url
在浏览器的地址栏中输入该内容或单击该内容的链接,无论哪种情况,它都会导航到新页面,将显示里面的内容[Content] Zone
。但是如果你想在一个特殊Zone
和特殊的页面中显示一个内容,创建一个Widget
是要走的路。创建一个小部件唯一需要的就是添加一个WidgetPart
并给它“小部件”的刻板印象。你可以这样做通过对文件进行以下更改来Migration
满足您的要求ContentType
:
ContentDefinitionManager.AlterTypeDefinition("MyType", cfg => cfg
.WithPart("WidgetPart")
.WithPart("CommonPart")
.WithSetting("Stereotype", "Widget"));
这会将您Content Type
变成一个小部件,可以放置在您想要的任何区域中。
将您的小部件添加到区域导航到仪表板中的小部件。
然后选择要放置小部件的区域:
然后选择您的小部件
最后选择您的小部件将在其中显示的图层。图层是一组规则,用于确定您的小部件将在哪些页面中显示。例如homepage
,选择将仅在主页中default
显示您的小部件,选择将在所有页面中显示您的小部件等等。在这里定义你自己的规则检查。
编辑 :
zone
要在您的主题中创建新的,只需Zone
在文件中包含名称theme.txt
然后打开Layout.cshtml
(一个位于您的自定义主题的视图目录中),然后执行以下操作:
给定您的区域名称,SecondaryNavigation
然后在您的主题中添加以下代码
@if (Model.SecondaryNavigation != null)
{
<div id="secondary-navigation" class="group">
<div class="inner">
@Zone(Model.SecondaryNavigation)
</div>
</div>
}
有了这个额外的Zone
将显示在区域列表中,然后您可以将您的小部件放入新创建的zone
.and about that picture you ask about.it is an image file that created by the author of the theme and named 'Theme.png' and将在管理小部件屏幕中显示为预览,您可以为自己的主题创建它并将其放在您的主题视图目录中。
编辑 2
迁移文件本身并不重要。唯一重要的是定义一个从中驱动的类DataMigrationImpl
,orchar 将选择您的迁移文件并自动运行它,迁移文件首先有一个Create
返回 1 的方法,并且每次进一步更新您必须定义一个调用的方法UpdateFromN
,该方法N
是您的模块所在的当前版本,它将返回 2 , 3 , ...您可以在迁移文件中执行的操作是创建数据库表,创建ContentTypes
, ContentParts
,ContentFields
等。已经有几个模块与果园一起发货,检查它们并得到想法。