聚焦:Workflow模块
至此,我们一直是依赖于内置的Drupal提供给每一篇内容的“published”标示工作。当这个标示在节点编辑表中没有选上的话,那只有 “administer node”权限的用户可以看到内容。这对有些站点是够用的,但是它不能给作者或者编辑尽可能多的控制权。比如,它不能让作者将一个故事标记为一篇“未完 工”的稿件并且以后再回来,它也不能让编辑以很轻松简单的方式告诉文章的作者说文章需修改——编辑必须人工联络作者。
这些问题正好用Workflow模块(http://drupal.org/project/workflow) 来解决。它允许管理员预先定义好步骤,称作“状态”,每一篇内容在发布前都得经过这些状态。一个有着严格法律要求的复杂网站可能需要经过 “Editorial review (编辑审查)”、“Legal review(法律审查)”、“Executive approval(执行审批)”和“Ready to publish(预备发布)等状态。一个节点处于这些状态的时候,只有某个特定角色的用户有权将它从这个状态转到下个状态,以保证内容在面世前得到符合要 求的人的审核批准。
工作流程状态可以直接在创建节点的时候选择,也可以通过编辑添加到该节点的一个新字符集来完成,如图6-7。修改状态的同时,用户还能留下流程日志,这样 别人就能明白原因或者注意到变化。Workflow还能允许用户预先计划在某个特定时刻进行状态的改变。如将一个页面从“执行审批”转入到“预备发布”, 可以计划在8:00a.m.进行,尽管决定是VP在昨晚的11:00作出的。
图6-7.Workflow的状态选择
除了对节点表单的控制,Workflow还给节点表单提供了一个标签,位于“View“和”Edit“右侧。这个标签同样显示状态和计划的控制,以及每一次状态变化的流程历史记录和留下的评论。图6-8演示了记录的样子。
图6-8.Workflow历史记录
更重要的是,Workflow模块可以影响到Drupal的actions。节点每从一个状态转入到另外一种状态,某种行为就要发生。比如,当编辑将一个 节点从”编辑审核“转入到”法律审核“的时候,法律部门就会收到邮件通知,当VP(副总)签批了一篇内容并把它从”执行审批“转入到”预备发布“时,行为 能自动发布内容并把它推到首页。
这套组合工具(Actions、Trigger和Workflow)可以让站点建立起复杂的编辑程序和错综复杂的审批机制。每一种内容类型甚至都可以单独 设置工作流程。一个精简的程序可能适合于博客发布,而对于类似于”关于我们“和”隐私政策“类官方内容则可能需要更为严格的审批程序。
除Workflow外,Workflow模块包中还有一个叫Workflow Access的模块。它能基于用户的角色来隐藏内容和当前状态。在我们这个复杂的例子中,只有”法律小组“角色中的用户能够访问处于”法律审查“状态下的节点内容。



Comments
Post new comment