1

我在页面属性>基本中添加了一个新的选择类型字段“主题”。现在,如果我在 WCM 中使用相同的模板添加一个新页面,我还会看到“主题”选项,这很明显。有什么方法可以隐藏子页面中的字段吗?

PS 发生这种情况是因为我为子页面使用了相同的模板。

4

2 回答 2

3

您不能使用相同的模板并使页面属性对话框不同。

你可以做的是重载对话框

  • 创建一个新模板和相应的从您当前继承的资源类型组件。
  • 复制您希望与组件的最低父级不同的对话框或选项卡。确保对话框是组件下的唯一节点。
  • 对对话框进行所需的更改。

然后,您必须在页面 jsp 中包含代码以获取父页面属性,例如:

// if the parent page is always a certain level below the root you can use
// currentPage.getAbsoluteParent(3); to get the third page down from the top
// of the current path tree.
Page parentPage = currentPage.getParent();

ValueMap parentPageProperties;

if (parentPage != null) {
    parentPageProperties = parentPage.getProperties();
}

// This tries to get the property 'theme' from the current page. If that fails
// then it tries to get the property from the parent page. If that fails it 
// defaults to blank.
theme = properties.get("theme", parentPageProperties.get("theme", ""));
于 2013-02-22T21:49:36.503 回答
0

一个快速的解决方案也是创建第二组模板/页面组件。假设您有模板 A,它使用页面组件 B 作为资源类型:

  • 创建模板 X 并使用 allowedParents allowedChildren 和 allowedPaths 属性,使两者互斥(实际解决方案取决于您的内容架构)
  • 给 X 与 A 相同的标题
  • 创建扩展 B 的页面组件 Y,并定义它自己的对话框
  • 使用 xtype=cqinclude 使 Y 的对话框重新使用 B 中的任何选项卡(请参阅基础页面的对话框以供参考)
于 2013-02-25T13:53:10.140 回答