【问题标题】:Any way to make a page template inherit from another page template without the parent existing as a page in Kentico?有什么方法可以使页面模板从另一个页面模板继承,而父级没有作为 Kentico 中的页面存在?
【发布时间】:2017-01-25 23:51:37
【问题描述】:

我有一个通用的页面模板,我希望在很多页面中重复使用它,但每个页面还需要在其中有自己的模板。例如,通用页面模板可能包括页面横幅和面包屑。

我目前这样做的方式是让每个页面都是通用模板的临时克隆,但是,当我需要对通用模板本身进行更改时,这并不容易管理,因为我需要也对所有临时模板进行更改。

我可以通过在父级别创建一个使用通用模板的新页面来解决这个问题,然后将我的所有页面嵌套在它下面,充当母版页,但我觉得这会不必要地污染内容树,因为我已经在根目录下有一个主模板。

有没有办法让页面模板从其他模板继承而无需在内容树中实际创建物理母版页?

如果可以使特定的 webpart 容器不共享给使用相同模板的所有页面,那也可以。

【问题讨论】:

    标签: kentico


    【解决方案1】:

    如您所理解的那样,ad-hoc 并不好。

    您可以拥有 2 个主模板:1 个将是您的根,第 2 个在树中。 second master 下的所有页面都可以同时继承两个模板: 例如你有:

    • 包含站点菜单、页脚和占位符的整个站点的根主文件
    • 您的商店主模板,其中包含商店菜单、横幅和占位符。

    您在 store master 下的所有产品都将继承 store master 和 root master。为此你必须去 模板>特定的祖先页面>并检查两个主人:root和store

    共享内容的另一个选项是将占位符 Web 部件添加到您的页面并将其指向共享页面(您必须设置“要显示的页面”属性)。我有几个完全不同的大师,但他们共享相同的页脚。所以我在它们两个上都有一个占位符,指向这个共享的页脚页面。

    【讨论】:

    • 由于继承细节而接受了这个答案。检查两个母版页为我修复了一些问题。
    【解决方案2】:

    让一个页面模板从另一个模板继承是可行的,问题是如果你不在一个页面上使用那个页面模板,那么子页面模板将没有内容可以继承,因此违背了继承的目的。最好的办法是将这些项目添加到父页面模板。假设这样的内容树:

    • 页面
      -- 第 1 页
      -- 第 2 页

    在“页面”上,将您的项目添加到该模板中,并根据页面类型和/或级别隐藏或显示它们。然后对于“第 1 页”和“第 2 页”页面,为这些页面类型设置默认页面模板。然后用户不必添加或选择模板,它会自动为他们选择。然后他们要做的就是在“第 1 页”或“第 2 页”页面下为横幅添加内容。然后面包屑应根据显示或设置节点级别的子页面自动显示。

    【讨论】:

    • 好吧,我已经走这条路了,因为它看起来没有其他方法可以绕过它。不管怎么说,还是要谢谢你!我的内容树现在就像WebsiteName -> Generic Template -> Content Page,我想我的下一个问题是如何让像面包屑这样的组件忽略中间层。
    猜你喜欢
    • 2015-05-14
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2014-07-27
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多