【问题标题】:Setting emptyText on a parsys from Sightly (AEM6)从 Sightly (AEM6) 在 parsys 上设置 emptyText
【发布时间】:2014-07-30 12:43:25
【问题描述】:

在 Sightly/AEM6 中,当包含 parsys 组件时,如何设置显示“将组件拖到此处”(cq:emptyText) 的文本以使用本地化字符串?我有几个 parsys 组件作为自定义组件的子组件,并且每个组件都需要不同的文本(例如,在此处拖动图像组件,在此处拖动链接组件)。

【问题讨论】:

  • 我也遇到了类似的问题,在任何地方都找不到合适的答案后,决定自己解决问题并写了一篇详细的博客文章来解释它:scribcopia.wordpress.com/2017/08/13/…

标签: aem sightly


【解决方案1】:

不幸的是,在 /libs/cq/gui/components/authoring/clientlibs/editor/js/model/Inspectable.js 中,它似乎被硬编码为使用特定的 I18n 字符串

但是,我能够覆盖 parsys 控件并将 newpar 的 CSS 类从 new section 更改为 cq-placeholder section,然后在同一 html 元素中包含 data-emptytext="Custom text"

【讨论】:

  • 你能发布一些代码细节吗?我正在尝试做同样的事情,但我还没有找到一种方法来获取“新”div 上的数据属性。
【解决方案2】:

在 CQ5.6 中,我们可以执行以下操作,也许它适用于 AEM 6:

  • 从 /libs/foundation/components/parsys 继承您的组件
  • 在您的组件节点下添加一个名称为“新”的节点,其中 sling:resourceType 为 Foundation/components/parsys/new 或仅复制 /libs/foundation/components/parsys/new
  • 给这个节点添加cq:emptyText属性,就是出现在框中的文本。

【讨论】:

  • 新的 Sightly parsys 位于 /libs/wcm/foundation/components/parsys,它在 /libs/wcm/foundation/components/parsys/newpar 有一个子组件。不幸的是,继承这个组件并设置 cq:emptyText 不起作用,我猜它现在存储在其他地方
  • 你需要同时继承 parsys 和 newpar,并且在 parsys 中,你需要引用你的 newpar。
【解决方案3】:

见以下代码:

<div id="myTabContent" class="tab-content" data-sly-list="${properties.titles}"> 
    <div data-sly-test.resourcePath1="${'{0}{1}' @ format=['tab',itemList.index]}" class="${itemList.index != 0 && wcmmode.isPreview ? 'tab-pane fade' : 'tab-pane fade in active'}" id="${item}">

        <div data-sly-resource="${ resourcePath1 @ resourceType='wcm/foundation/components/parsys/newpar'}" class="cq-placeholder section" data-emptytext="${item}'s content"></div>

</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2015-03-19
    • 2011-05-04
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多