Adobe CQ:客户端库管理器

时间:2013-09-24 23:50:45

标签: adobe cq5

我正在尝试修改/覆盖CQ客户端库管理器的功能,我想知道是否有人熟悉代码所在的位置?

我在DefaultChannelDetector.js和CQClientLibraryManager.js中找到了一些控制通道检测的js,它们似乎只处理通道,而不是依赖或嵌入。这些作为clientlib,etc / clientlibs / foundation / librarymanager.js,我假设可以通过在apps / system / config / com /day.cq.widget.impl.HtmlLibraryManagerImpl.config

因此,对于修改,我需要知道代码的位置。为了覆盖,我假设我将htmllibmanager.clientmanager指向其他东西,但我仍然需要知道如何访问clientlibs的依赖项/ categories / embed属性。

此外,任何有关cq:includeClientLib标记如何工作​​的低级别见解将不胜感激。 (低级别,与实现它的代码相关)

1 个答案:

答案 0 :(得分:2)

绝大多数客户端库功能都在HtmlLibraryManagerImpl组件中com.day.cq.cq-widgets类的cq:includeClientLib类实现的OOB中。您可以在Felix中查找此组件以查看它所在的包,然后在需要查看实现的内容时对该包进行反编译。

在高级别,此组件处理cq:includeClientLib标记的结果生成以及请求库URL时库的串联和编译。专门针对HtmlLibraryManager标记,writeIncludes的{​​{1}}方法将根据请求的参数和cq:includeClientLib标记中提供的参数确定如何编写包含到现有库的页面。

对于动态库(基于通道的库),它将编写对库管理器JavaScript机制的调用,该机制将动态地包含基于用户通道的库。否则,将分别为所请求的库及其依赖项编写适用于JavaScript和CSS的脚本和链接标记。