【问题标题】:Cloning parsys component functionality克隆 parsys 组件功能
【发布时间】:2012-03-20 20:32:57
【问题描述】:

我希望获取组件 libs/foundation/components/parsys/colctrl/... 并修改其文本,以便我可以将其用于 css 选项卡。我将它重新创建为 apps/-site-/components/content/tabsys/ (以及它的所有子文件夹/组件/等。我唯一没有改变的是 tabsys/tabctrl/ virtual/2tabs/cq:editConfig/cq:formParameters(同样适用于 3tabs/):

sling:resourceType = foundation/components/parsys/colctrl
layout = 2;cq-colctrl-lt0

在 Sidekick 中,我现在有一个 Tabs 组件选项,其选项与 Columns 相同。但是,当我将任何选项卡拖入内容区域时,我没有任何边框内容区域可以将内容块拖入;只有编辑/删除/新建栏。当我单击编辑时,我应该有一个我想要的列数的下拉列表(列组件有它供参考)。我错过了什么?

【问题讨论】:

  • 您是重新创建还是复制了它?通常,节点类型是一个重要且被忽视的方面 - 如果它们是错误的类型,可能会导致行为异常。
  • 我复制了它并相应地更改了标题/描述。
  • 您可以尝试将 ?debug=layout 添加到页面 url;它提供了有关每个资源的信息,并为页面输入了内容。这可能会给你一个有用的线索。

标签: adobe aem


【解决方案1】:

我遇到了同样的问题,原因似乎是 parsys 组件使用的 ParagraphSystem 类仅在 content 节点的sling:resourceType 的情况下解析/生成列/容器> 以“/colctrl”结尾。

  private String colCtrlSuffix = "/colctrl";
  if (res.getResourceType().endsWith(this.colCtrlSuffix)) { /*creates columns*/ }

在您的示例中,tabctrl 应该具有对 Super 类型的引用:

  sling:resourceSuperType = "foundation/components/parsys/colctrl"

其次,如果tabctrl 被重命名为colctrl,那么ParagraphSystem 将尝试根据布局属性的第一部分中指定的数字来解析列,并为每列创建额外的内容节点。

如果 ParagraphSystem 类查找“-colctrl”而不是“/colctrl”,它会允许自定义组件,如“my-colctrl”。相反,我想我们需要使用文件夹来避免命名冲突。 (即,apps/-site-/components/content/tabsys/colctrl)

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2016-12-22
    • 2010-12-23
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多