Adobe CQ : Client Library Manager

标签 adobe aem

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

我在 DefaultChannelDetector.js 和 CQClientLibraryManager.js 中发现了一些控制 channel 检测的 js,它们似乎只处理 channel ,而不是依赖项或嵌入。这些被用作 clientlib,etc/clientlibs/foundation/librarymanager.js 我认为可以通过在 apps/system/config/com.day.cq.widget.impl.HtmlLibraryManagerImpl.config 中指向 htmllibmanager.clientmanager 来覆盖它。 >

因此,为了进行修改,我需要知道代码所在的位置。为了覆盖,我假设我将 htmllibmanager.clientmanager 指向其他东西,但我仍然需要知道如何访问 clientlibs 的依赖项/类别/嵌入属性。

此外,如果您能深入了解 cq:includeClientLib 标记的工作原理,我们将不胜感激。 (低级指的是实现它的代码)

最佳答案

绝大多数客户端库功能都在 HtmlLibraryManager 中组件由 com.day.cq.cq-widgets 包中的 HtmlLibraryManagerImpl 类实现 OOB。您可以在 Felix 中查找该组件,看看它位于哪个包中,然后如果您需要查看实现的内部结构,则反编译该包。

在较高级别上,该组件处理 cq:includeClientLib 标记结果的生成以及请求库 URL 时库的串联和编译。具体到 cq:includeClientLib 标记,HtmlLibraryManagerwriteInincludes 方法将根据请求的参数和在cq:includeClientLib 标签,如何将现有库的包含内容写入页面。

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

关于Adobe CQ : Client Library Manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993985/

相关文章:

javascript - Adobe Bridge ExtendScript CS5 - 将 PSD 导出为 300DPI JPEG

javascript - ie 中的 blob url 不起作用

html - Adobe FDF(PDF 表单)提交按钮 - 到另一个框架?

aem - 表情表达选项

extjs - 如何将 xtype 值存储为字符串数组 CQ5/AEM

javascript - 为什么 DTM 数据元素被调用两次?

Adobe Acrobat Pro 使所有页面具有相同的尺寸

java - 使用自定义工作流程更新节点属性 AEM

java - 如何部分覆盖 OOTB 组件的 osgi 配置?

aem - 如何更改 (CQ5) VLT repo url/端口?