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

标签 java adobe 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。当我在 Publisher 中尝试此代码时,新节点确实被插入到 Publisher 中(例如:/content/user generated/content/XXX/data1),只是它没有被复制致作者

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

不幸的是,在研究了上述建议/示例后仍然无法使其正常工作,任何人都可以请阐明一些情况吗?

最佳答案

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

示例:

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/user generated/content 下创建唯一节点。

关于java - ADOBE CQ 5.5 反向复制(发布者 -> 作者)由代码触发,但根本不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887189/

相关文章:

java - 如何为我的乒乓球获得一个移动的矩形?

forms - 如何在 Business-Catalyst 登录页面中制作“记住我”按钮?

AEM 中未缓存图像

java - 如何在 Swing 中创建 "Game Option/Pause Screen"?

java - Java 中的内存 OLAP 引擎

java - 如果每个枚举类型具有特定于常量的方法,为什么要为它们创建不同的类文件?

flash - Adobe AIR Mobile 上的游戏开发框架?

aem - 在 Sightly AEM 中评估表达式并作为参数传递

javascript - Uncaught ReferenceError : ZG is not defined AEM

AEM : How to Iterate a HTL list in reverse order?