2

rel="lightbox"当您使用 Image 或 TextImage 组件选择目标图像时,我需要添加 到锚标记。锚标记是由 CQ 自动生成的,但我无法找到发生这种情况的位置,或者更重要的是,是否有可以调用的方法来添加此字符串。

我正在查看内置图像组件的 Adob​​e 文档(http://dev.day.com/docs/en/cq/5-3/javadoc/com/day/cq/wcm/foundation/Image.html ),我将其克隆并稍作修改以供单独的 Lightbox 使用。

图像对象有protected Map<String,String> getImageTagAttributes(),我希望在我不知道的类中有一些锚点的等效对象。

这是我们当前用作参考的 Image 组件。

<%@ page import="commons.Doctype,
    wcm.api.components.DropTarget,
    wcm.foundation.Image" %><%
%><%@include file="/apps/site/global.jsp"%><%
String alignment = properties.get("alignment", "");
Image image = new Image(resource);

    //drop target css class = dd prefix + name of the drop target in the edit config
    image.addCssClass(DropTarget.CSS_CLASS_PREFIX + "image");
    if (!alignment.isEmpty() && !alignment.equals("center"))     
    image.addCssClass(alignment);
    image.loadStyleData(currentStyle);
    image.setSelector(".img"); // use image script
    image.setDoctype(Doctype.fromRequest(request));
    // add design information if not default (i.e. for reference paras)
    if (!currentDesign.equals(resourceDesign)) {
        image.setSuffix(currentDesign.getId());
    }
    if (alignment.equals("center")) {
    %><div class="center"><%
    }
    %><% image.draw(out); %><%
    %><cq:text property="jcr:description" placeholder="" tagName="small"/>
    <% if (alignment.equals("center")) {%>
    </div>
    <% } %>

现在我正在使用 jQuery 来完成这项工作,但如果可能的话,我不想依赖脚本。

4

2 回答 2

1

您应该能够扩展图像组件并使用

image.addAttribute("rel","lightbox");

按照

CQ5.5 的图像类文档

于 2013-02-03T19:24:43.727 回答
0

您可以查看 Sling Rewriters 来完成这项工作:http ://sling.apache.org/site/rewriting-the-output-through-pipelines.html基本上您可以解析您的响应并即时修改它。

于 2013-01-31T21:00:48.473 回答