我在 AEM 6.1的经典UI 中有一个项目,可以将默认的“拖动此处的组件或 Assets ”标签覆盖为自定义标签,就像这样:

  • 我已经创建了一个自定义的parsys组件。让我们将其命名为 custom/parsys 我使用了sling:resourceSuperType指向 foundation/components/parsys
  • 我分别创建了 custom/parsys/new
  • 通过添加以下行,我覆盖了 new.jsp :
    String emptyText = currentStyle.get("cq:emptyText", "");if (StringUtils.isNotBlank(emptyText)) { editConfig.setEmpty(true); editConfig.setEmptyText(emptyText);}

  • 现在,我可以通过/etc/designs/custom 结构进行设置,从而轻松自定义每个parsys的放置区域标签。因此,每个parsys基本上都明确地告诉作者它接受了哪种组件。除了parsys内传统组件的可用性之外,这还为编辑器处理具有许多不同段落(通常相互嵌套)的复杂页面结构增加了很大的值(value)。

    现在,我正在使用带触摸UI的AEM 6.3,并且发生了很多变化,使我无法简单地移植上述解决方案。不幸的是,谷歌搜索问题并没有帮助,6.3非常新,有一些针对wcm/foundation/components/parsys和/或Foundation/components/parsys的较旧版本的解决方案,但对于最新版本则没有。有人解决过这个吗?

    更新:我已经使用Classic UI解决方案创建了一个示例项目。因此,这里有new.jsp以及designs下的相应配置。当构建并部署到AEM 6.3时,可以在/content/enigmatic下对其进行检查并产生所需的行为:

    最佳答案

    上述方法不适用于Touch UI。 Adobe在其i18n文件中的"new"部分将其硬编码为“将组件拖到此处”。

    替代解决方案:-

  • 查找覆盖parsys的方法。
  • 使用选择器方法,修改其与Inspectable.js的交互,您可以在其中提供新的特定于组件的消息,同时包括parsys,这可以通过使用选择器来实现。


  • <sly data-sly-resource="${@path='par1',resourceType='mysite/components/parsys',selectors='par-1'}"/>


  • 使用
  • 将添加的选择器附加到parsys.html中"new"部分的类中


    ${request.requestPathInfo.selectors[0]}


  • 现在,在Inspectable JS中,您可以绕行执行类似的操作
    102.


  • if (this.dom.hasClass("par-1")) {
      return "Customized Text for Par 1";
    }
    if (this.dom.hasClass("par-2")) {
      return "Customized Text for Par 2";
    }
    // New component placeholder
    if (this.dom.hasClass(newComponentClass)) {
      return newComponentPlaceholderText;
    }


    有关更多详细信息,请参阅:-
    Detailed Help text Customization For parsys in Touch UI

    关于adobe - 如何在AEM 6.3的Touch UI中更改parsys放置区域文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45109265/

    10-11 13:30