每当内容作者点击页面上的激活时,我都需要调用工作流程。然后,工作流将向管理员发送通知,然后管理员继续激活该页面。
让我以更详细的方式解释一下。这个部分有两部分
i)每当内容作者完成修改页面时,他将继续从siteadmin上的sidekick或page属性中单击“激活页面”。通过这样做,他不会立即激活页面,而是调用工作流程。
ii)工作流程将向管理员发送通知,然后管理员决定激活该页面。这一点相当普通,所以这里没有问题。
除非经过管理员审核,否则所有这些都是为了确保没有任何发布/激活。
我尝试设置一个可以调用工作流的ReplicationEvent侦听器。在调用工作流之前,页面已经激活;只有在发生所述复制事件(即激活)之后才会出现 ReplicationEvent 。(显然!)。
如上所述,我需要确保在用户点击激活时页面未实际激活;这意味着我需要修改激活按钮的功能。
我尝试过在网上查找,但一无所获,这让我相信CQ5的大多数siteadmin代码都是隐藏的,无法修改(且有充分的理由)。
那么还有什么人可以想到哪些可以帮助我实现我的要求?或者我应该把它作为一个失败的原因?
提前致谢并为长篇文章道歉
答案 0 :(得分:7)
您可以将作者放在没有复制权限的用户组中。当作者尝试激活没有权限的页面时,它会自动启动request for activation
工作流程。我认为默认配置有一个内容批准步骤和一个单独的激活步骤。这两个步骤都映射到管理员用户组。工作流程位于http://localhost:4502/libs/cq/workflow/content/console.html
,您可以双击模型进行编辑。
答案 1 :(得分:4)
您可以使用replication preprocessor(example),类似于复制事件侦听器,但在激活完成之前调用。在preprocess()
方法中抛出异常将停止激活过程并显示异常消息。
但是,更优雅的选择是使用ACL禁止用户激活页面。之后,点击激活按钮不会发布该页面,而是会调用激活请求工作流程。