是否可以创建特定于运行模式的clientlib?

时间:2016-10-26 15:53:29

标签: cq5 aem

我正在使用AEM6.0 SP2。我有一个author.css需要stlying创作对话框。我将clientlib包含在带有条件的模板头中。

我的问题是我必须在所有模板headlib中添加此条件。有没有类似于基于运行模式osgi config的方法,只需创建clientlib-author,OTB会在发布时自动排除库,而不需要在所有模板上显式运行模式条件。

3 个答案:

答案 0 :(得分:2)

我不这么认为。您应该尝试构建模板继承,以便将代码放在一个超级类型的JSP中的一个地方(不要重复自己 - 干),然后让继承的子模板更改那些部分。不同。

答案 1 :(得分:0)

这取决于您想要使用自定义作者库的位置,但是在不触及页面的情况下完成此操作的最简单方法就是使用在创作模式下加载的标准AEM库之一作为库的类别,例如" cq.authoring.dialog"," granite.ui.foundation"," cq.authoring.editor"等等。例如:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:ClientLibraryFolder"
    categories="[granite.ui.foundation]"
    />

我还没有尝试将runmodes用于库,但我不认为这是可能的。另外,您可以编写自己的jsp taglib来实现此类行为。

答案 2 :(得分:0)

我猜您可以通过以下方式验证您的wcm模式:

if (CQ.WCM.getMode() == 'edit') {
    include your lib here
    .........
}

请注意,CQ对象在发布时可能未定义