在AEM6中,如何根据特定国家/地区的页面隐藏特定组件字段?
答案 0 :(得分:0)
您可以编写自定义对话框/窗口小部件插件来执行此操作。这是您将插件附加到窗口小部件的方式:
<h2 class="intro-text text-center">
<strong><?php echo (!empty($webinfo[0]['title'])) ? $webinfo[0]['title'] : 'Empty Title' ;; ?></strong>
</h2>
接下来,我们需要编写插件并注册它:
<title jcr:primaryType="cq:Widget"
fieldLabel="Field to hide"
plugins="hideFieldPlugin"
name="./fieldToHide"
xtype="textfield" />
JavaScript文件需要包含在经典UI编辑模式中。最好的方法是使用您自己的自定义clientlib或使用现有的类别(function ($) {
var plugin = CQ.Ext.extend(CQ.Ext.emptyFn, {
init: function (fieldToHide) {
var url = CQ.HTTP.getPath();
if (this.shouldBeHidden(url)) {
fieldToHide.hide().disable();
}
},
shouldBeHidden: function (url) {
// some logic
return true;
}
});
CQ.Ext.ComponentMgr.registerPlugin("hideFieldPlugin", plugin);
}($CQ));
。
如果您有更复杂的逻辑来跨越多个小部件,您可以在对话框级别附加插件并使用cq.wcm.edit
方法导航到小部件对象。