我在AEM 6.1的经典UI中有一个项目,可以覆盖默认的“ 拖动此处的组件或资产”标签到自定义标签,就像这样:
我通过添加以下行来覆盖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的较旧版本的解决方案,但对于最新版本则没有。有人解决过这个吗?
上述方法不适用于 Touch UI。Adobe 在其“新”部分的 i18n 文件中将其硬编码为“将组件拖至此处”。
替代解决方案:-
<sly data-sly-resource="${@path='par1',resourceType='mysite/components/parsys',selectors='par-1'}"/>Run Code Online (Sandbox Code Playgroud)
${request.requestPathInfo.selectors[0]}Run Code Online (Sandbox Code Playgroud)
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 详细帮助文本定制