每当内容作者在页面上单击激活时,我都需要调用工作流程.然后,工作流将向管理员发送通知,然后管理员继续激活该页面.
让我用更详细的解释一下.这有两个部分
i)每当内容作者完成修改页面时,他将继续从sideadick或siteadmin上的页面属性中单击" 激活页面 ".通过这样做,他不会立即激活页面,而是调用工作流程.
ii)工作流程将向管理员发送通知,然后管理员决定激活该页面.这一点相当普通,所以这里没有问题.
所有这一切都是为了确保没有任何发布/激活,除非管理员已经审核过.
我尝试设置一个可以调用工作流的ReplicationEvent监听器.发生的事情是在调用工作流之前页面已经激活; 一个发生ReplicationEvent只说后复制事件(即激活)发生(当然!).
如上所述,我需要确保在用户单击激活时实际未激活页面; 这意味着我需要修改激活按钮的功能.
我试过在网上查找,但一无所获,这让我相信CQ5的大多数siteadmin代码都是隐藏的,无法修改(并且有充分的理由).
那么还有什么人可以想到哪些可以帮助我实现我的要求?或者我应该把它作为一个失败的原因?
在此之前,感谢道歉
我正在开发一个组件,它需要一些属性(用户在运行时设置)才能按预期工作.
最初,我只是使用a properties.get('foo')从我的组件中获取所需的属性,但我正在尝试从组件jsp文件中删除所有脚本代码的痕迹.
如何在我的Java代码中获取此属性'foo'(在我的组件的运行时期间设置)?我记得在某处读过使用ValueMap是最好的方法,所以我尝试使用它: -
public static Map<String, Object> getResourceProperties(String path,
SlingHttpServletRequest request) {
ResourceResolver resourceResolver = request.getResourceResolver();
Map<String, Object> props= new HashMap<String, Object>();
Resource resource = resourceResolver.getResource(path);
if (null != resource) {
props.putAll(resource.adaptTo(ValueMap.class));
}
return props;
}
Run Code Online (Sandbox Code Playgroud)
这在我的jsp中: - <c:set var="refProperties" value="${xyz:getResourceProperties(properties.path,slingRequest)}" />
但这不会返回我想要的价值.