ADOBE CQ 5.5反向复制(发布者 - >作者)按代码触发,但根本不运行

时间:2014-02-19 16:58:38

标签: java adobe cq5 aem

我做了很多关于如何做的研究,最后来到这里:

Session session = resourceResolver.adaptTo(Session.class);
Node formRootNode = resourceResolver.getResource("/content/usergenerated/content/XXX").adaptTo(Node.class);
String id = incrementId(formRootNode);
Node formNode = formRootNode.addNode("data" + id, "nt:unstructured");
formNode.setProperty("id", id);
formNode.setProperty("name", "John");
session.save();
formNode.setProperty("cq:distribute", true);
formNode.setProperty("cq:lastModified", Calendar.getInstance());
formNode.setProperty("cq:lastModifiedBy", session.getUserID());
session.save();

对于 XXX ,它的类型为 cq:Page 。当我在发布商中试用此代码时,新节点确实已插入发布商(例如:/ content / usergenerated / content / XXX / data1),只是它没有被复制致作者

我已经收集了有关如何通过互联网执行此操作的任何可能的知识:

不幸的是,在研究了上述建议/示例之后,仍然没有设法让它工作,任何人都可以请点亮一点?

1 个答案:

答案 0 :(得分:1)

  1. 为每条用户生成的内容创建单独的cq:Page
  2. 应在cq:distribute资源上设置
  3. jcr:content属性。
  4. 示例:

    Session session = resourceResolver.adaptTo(Session.class);
    Node formRootNode = JcrUtil.createPath("/content/usergenerated/content/formPage", true, "sling:Folder", "cq:Page", session, false);
    Node formNode = formRootNode.addNode("jcr:content", "cq:PageContent");
    formNode.setProperty("name", "John");
    session.save();
    formNode.setProperty("cq:distribute", true);
    formNode.setProperty("cq:lastModified", Calendar.getInstance());
    formNode.setProperty("cq:lastModifiedBy", session.getUserID());
    session.save();
    

    示例使用JcrUtil.createPath/content/usergenerated/content下创建唯一节点。