Magnolia CMS:属性继承

mrl*_*ion 1 magnolia

使用 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)

我无法让它在子页面中工作。它不会从对话框中获取设置值,而只是获取默认的“假”值。

我缺少什么?

Jan*_*Jan 5

为了从页面层次结构中的任何位置继承属性,您需要使用cmsfn.inheritProperty(content, "your-prop-name").

stkfn.siteRoot(content)按照上面的建议使用,将返回站点的根节点,因此,如果值在层次结构中的任何位置被覆盖,您将看不到它。

简·HTH