使用 Magnolia CMS,我试图使属性通过所有子页面继承。该属性是从基页对话框中设置的。
本质上它只是一个复选框,用于切换显示/隐藏布尔值,该布尔值在主页模板(子页面也使用)中进行测试。
对话框控制组件“hideHeader”具有以下结构:
::hideHeader
.buttonLabel: Hide
.class: info.magnolia.ui.form.field.definition.CheckboxFieldDefinition;
.defaultValue: true;
.i18n: true;
.inheritable: true;
.label: hide;
.type: Boolean;
Run Code Online (Sandbox Code Playgroud)
它将添加到基页对话框中。
我访问模板中的属性,如下所示:
[#assign hideHeader = false /]
[#if content.hideHeader?? && content.hideHeader?has_content ]
[#assign hideHeader = content.hideHeader /]
[/#if]
Run Code Online (Sandbox Code Playgroud)
我无法让它在子页面中工作。它不会从对话框中获取设置值,而只是获取默认的“假”值。
我缺少什么?
为了从页面层次结构中的任何位置继承属性,您需要使用cmsfn.inheritProperty(content, "your-prop-name").
仅stkfn.siteRoot(content)按照上面的建议使用,将返回站点的根节点,因此,如果值在层次结构中的任何位置被覆盖,您将看不到它。
简·HTH