7

每当内容作者在页面上单击激活时,我都需要调用工作流。然后,工作流将向管理员发送通知,然后管理员继续激活该页面。

让我更详细地解释一下。这有两个部分

i) 每当内容作者完成修改页面时,他将继续从 Sidekick 或站点管理员的页面属性中单击“激活页面”。通过这样做,他不会立即激活页面,而是调用工作流。

ii) 工作流程将向管理员发送通知,然后管理员决定激活该页面。这一点相当普通,所以这里没有问题。

所有这些都是为了确保没有任何内容已发布/激活,除非已由管理员审核。

我尝试设置一个调用工作流的 ReplicationEvent 侦听器。发生的情况是在调用工作流之前页面已经被激活;ReplicationEvent的发生仅在所述复制事件(即激活)发生之后(显然!)。

如前所述,我需要确保当用户单击激活时页面实际上并未被激活;这意味着我需要修改激活按钮的确切作用。

我曾尝试在网上查找,但一无所获,这使我相信 CQ5 的大部分站点管理代码对我们隐藏并且无法修改(并且有充分的理由)。

那么还有什么其他人可以想到的可以帮助我实现我的要求吗?还是我应该放弃这个作为一个失败的原因?

在此先感谢并为这篇长文道歉

4

2 回答 2

7

您可以将作者放在没有复制权限的用户组中。当作者尝试在没有权限的情况下激活页面时,它会自动启动request for activation工作流程。我认为默认配置有一个内容批准步骤和一个单独的激活步骤。这两个步骤都映射到管理员用户组。工作流程在http://localhost:4502/libs/cq/workflow/content/console.html,您可以双击模型进行编辑。

于 2013-09-18T15:14:02.583 回答
4

您可以使用复制预处理器示例),它类似于复制事件侦听器,但在激活完成之前被调用。在方法中抛出异常preprocess()将停止激活过程并显示异常消息。

然而,更优雅的选择是使用 ACL 来禁止用户激活页面。之后,单击“激活”按钮不会发布页面,而是会调用“激活请求”工作流。

于 2013-09-18T12:22:21.583 回答