如何在AEM 6.3的Touch UI中更改parsys放置区域文本?

reg*_*e_7 5 adobe aem

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

  1. 我创建了一个自定义的parsys组件。让我们将其命名为custom / parsys,我已经使用sling:resourceSuperType指向foundation / components / parsys
  2. 我分别创建了custom / parsys / new
  3. 我通过添加以下行来覆盖new.jsp

    String emptyText = currentStyle.get("cq:emptyText", ""); if (StringUtils.isNotBlank(emptyText)) { editConfig.setEmpty(true); editConfig.setEmptyText(emptyText); }

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

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



更新:我已经使用经典UI解决方案创建了一个示例项目。所以在这里我们有new.jsp之下,相应的配置设计。当构建并部署到AEM 6.3时,可以在/ content / enigmatic下对其进行检查并产生所需的行为: 自定义parsys放置区域的屏幕截图

Tec*_*iks 3

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

替代解决方案:-

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

<sly data-sly-resource="${@path='par1',resourceType='mysite/components/parsys',selectors='par-1'}"/>
Run Code Online (Sandbox Code Playgroud)

  • 将添加的选择器附加到 parsys.html 中的“新”部分的类中,使用

${request.requestPathInfo.selectors[0]}
Run Code Online (Sandbox Code Playgroud)

  • 现在,在 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;
}
Run Code Online (Sandbox Code Playgroud)

更多详情请参考:- Touch UI 中 Parsys 详细帮助文本定制