在AEM6中,如何仅基于特定国家/地区的页面隐藏特定组件字段?

时间:2016-01-06 15:04:16

标签: content-management-system cq5 aem

在AEM6中,如何根据特定国家/地区的页面隐藏特定组件字段?

1 个答案:

答案 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方法导航到小部件对象。