2

我有一个自定义主题果园网站 - 我是果园新手。

所有页面的主导航和页脚都具有相同的页眉。我已将页眉和页脚设置为区域。

有 4 个主要部分,其中 2 个需要在左侧进行第二次导航;信息和常见问题解答。

我想为 CMS 中的这些部分动态创建页面 - 并将页面添加到适当的第二个导航菜单中,然后在单击时导航到该页面(在左侧显示正确的导航菜单 - 其余部分使用正确的样式页)。

在简单的步骤中,最好的方法是什么 - 是否需要我在 Visual Studio 中编辑布局或其他文件(如果需要,我可以)。

我在网上找到了几篇文章 - 但它们都适用于已完成的主题,而不是从头开始创建的。

(我在小部件页面上也没有这个网站的“地图” - 我应该如何/应该以某种方式创建一个?): 小部件页面上的站点地图

谢谢。

4

1 回答 1

3

据我了解,您所追求的是创建一个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等。已经有几个模块与果园一起发货,检查它们并得到想法。

于 2013-07-25T17:29:08.360 回答