欢迎各位兄弟 发布技术文章
这里的技术是共享的
1)下载并启用4个模块
http://drupal.org/project/workbench
http://drupal.org/project/workbench_access
http://drupal.org/project/workbench_moderation
https://www.drupal.org/project/Drafty
创建内容类型 FTP上传 (机器名: ftp_upload)
创建角色 ftp_upload 它应该对内容类型 ftp_upload 具有创建和编辑的权限;;还应该具有workbench的所有权限
/admin/config/workbench/moderation/check-permissions 发布 内容类型 为 FTP上传 的人应该到这里检查权限
发布 内容类型 为 FTP上传 的人还应该到这里检查权限 ,,,当然审核的人也应该到这里检查权限
/admin/config/workbench/access/roles 发布 内容类型 为 FTP上传 的人还还应该在这里的角色里
创建一个词汇表 FTP,再在里面添加一个术语 FTP上传
/admin/config/workbench/access/settings
Active access scheme 配置成分类,使用上面创建的词汇表;;;另外再使用上面创建的内容类型 "FTP上传"
/admin/config/workbench/access 里面设管理员 和特定的用户(此用户具有审核角色) 以及创建和编辑"FTP上传"的用户 当然,首先特定用户要在权限页面有关于 workbench的权限
同理 /admin/config/workbench/access/roles 里面设管理员角色 和特定的角色(审核角色) 以及 以及 创建和编辑 "FTP上传" 的用户用户,, 当然,首先审核角色要在权限页面有关于 workbench的权限 审核角色尽量 把有关于workbench的权限以及 内容类型 "FTP上传"的所有权限全部勾上,
/admin/config/workbench/access/sections
/admin/config/workbench/moderation 里面设置一下
/admin/config/workbench/moderation/check-permissions 暂进未能理解,先搁一下
/admin/config/workbench/moderation 下面有关于它的设置
/admin/config/workbench/moderation/transitions 下面同样有关于它的设置
d7 关于 workbench 的视频
https://www.y2b.com/watch?v=VEUZeWOrDeo
https://www.y2b.com/watch?v=HXyQKMh8dGk 有大用
https://www.youtube.com/watch?v=gT2e_m1bU20 有大用
https://www.y2b.com/watch?v=iLmLbxuEifw
https://www.drupal.org/node/1175592
https://modulesunraveled.com/workbench
这个页面 /node/164273
如果用户 只能从 需要审核 到 已发布,不能倒过来,从已发布到 需要审核 ,
需要到 /admin/config/workbench/moderation ,见下图的操作
名称 | 机读名称 | 描述 | 删除 |
---|---|---|---|
needs_review | |||
published | |||
Enter a name for the new state. | Enter a description of the new state. |
名称 | 源自 | 到 | 删除 | |
---|---|---|---|---|
Publish | 需要审核 | --> | 已发布 | |
needs_review | 已发布 | --> | 需要审核 |
见 /node-admin/21055 即 https://www.drupal.org/node/2121239
/admin/workbench 这个要看一下研究一下,很简单
如下的视图在 节点类型里要过滤掉 节点类型=FTP上传,,当然 已发布也要去掉吧??
最后关于内容类型 "FTP上传"的查看权限也要设一下,见 /node-admin/18345
审核人无法查看未发布内容的权限
https://www.drupal.org/project/view_unpublished #这种saj 方式 似乎导致匿名用户的 列表页面任何节点都不显示,,,可能我掌握的不熟,所以才有问题,,,我禁用它吧
安装这个模块,让审核人 具有 对内容类型 "FTP上传" 的 View any unpublished content
审核人仍然没有 查看未发布内容的权限
还有一种方法 忽略内容访问控制 绕过内容访问控制 (Bypass content access control) 不过这个方法 有点危险吧 所以我的思路是 页面打开时,临时赋予 忽略内容访问控制 权限,页面运行结束再拿掉这个权限 见 /node-admin/21062 但是这种方法不行
上面忽略内容访问控制后,审核人对于所有的node都能看到了,,在 某一个 hook_init() 里面进行限制一下吧,我的代码如下
function custom_twenty_fourth_ftp_init(){
$arg0 = arg(0);
$arg1 = arg(1);
if($arg0=='node' && is_numeric($arg1)){
global $user;
$node = node_load($arg1);
$roles = $user->roles;
if($node->type=='article' && !in_array('administrator', $roles)){
die("没有权限");
}
}
}
当然 未发布的内容 /node/164284 对于审核人我们不需要有权限打开吧,因为我们默认 可以打开 /node/164284/moderation (它是可以访问的) 进行审核吧
https://www.drupal.org/project/workbench_moderation/issues/1492118
https://www.drupal.org/project/access_unpublished/issues/2554001
上面两个对于 审核人 查看未发布版本作用不大,
看看 hook_node_grants hook_node_access_records /node-admin/21064 似乎没有作用 这个东西未起作用,似乎也导致匿名用户的 列表页面任何节点都不显示,,,可能我掌握的不熟,所以才有问题
看看 hook_node_access /node-admin/21063 似乎也没有作用