如何创建可重复的内容部分

时间:2017-10-11 20:19:11

标签: umbraco7

我刚刚开始使用Umbraco并发现它与术语有点混淆 - 我已经设法创建页面并创建模板以引入类似页脚和导航。但是我想要实现的是添加一个自定义部分,最终用户可以在一个页面上添加多次,其中包括背景颜色,标题,段落,图像,图像对齐和文本对齐等参数。

我一直在阅读诸如宏观之类的内容并试图查看YouTube视频,但似乎没有找到任何能够为我提供正确指导的方法。我假设宏是正确的方法。我只需要非常简单的非开发人员进入并能够添加/删除/编辑部分。我也希望这种方法也可以在多个页面上使用。

2 个答案:

答案 0 :(得分:1)

如果您只想在每个页面使用的“模板”上更改一些内容,我建议您使用 Master Template 。这允许您从基础文件继承属性,并在子模板中添加您自己的属性,这将覆盖基础。请注意,您可以在一个站点上拥有多个主模板。例如,我有一些页面,我不想显示横幅,所以我为这些页面使用第二个主模板。

但是,使用主模板的缺点是管理员需要访问Templates(在Settings部分下方)才能进行更改。

如果您希望允许管理员选择页面中包含哪些“部分内容”,则表示您正在寻找 Multinode Treepicker 。这允许您从Content部分选择页面上显示的节点(管理员可以更安全地修改)。请注意,它表示它已过时,但仍可在Umbraco 7(以及我个人使用的)中使用。

多节点树选取器可以选择在某些情况下显示的单个节点,或者由Content部分中的管理员遍历所有选定的节点。

可以键入

@{
    var typedMultiNodeTreePicker = Model.Content.GetPropertyValue<IEnumerable<IPublishedContent>>("banner");
    foreach (var item in typedMultiNodeTreePicker)
    {
        <p>@item.Name</p>
    }
}

动态

@{
    var bannerList = CurrentPage.banner.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
    var bannerCollection = Umbraco.Content(bannerList);
    foreach (var item in bannerCollection)
    {
        <p>@item.Name</p>
    }
}

希望这有帮助! :)

答案 1 :(得分:1)

Umbraco中有多个可重复部分的选项。内置的主要主要是Grid。网格允许您创建和配置可在页面上使用的可关联块,例如标题块,图像块等。开箱即用它使用引导标记,但您可以根据需要更改它。有关网格的更多详细信息:https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout

接下来是插件选项。你所追求的两个主要内容是嵌套内容(现在是Umbraco后期版本核心的一部分):https://our.umbraco.org/projects/backoffice-extensions/nested-content/这有点像网格,除了你创建DocType来代表你的内容块,您必须从头开始编写自己的视图模板。

与嵌套内容类似,但也略有不同,是Stacked Content:https://github.com/umco/umbraco-stacked-content这与嵌套内容类似,因为您必须编写自己的视图等。