欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

d7 drupal7 drupal 7 workbench 自己亲自做的 有大用 有大大用 有大大大用 有大大大大用

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上传  的人应该到这里检查权限

image.png


发布 内容类型 为 FTP上传  的人还应该到这里检查权限  ,,,当然审核的人也应该到这里检查权限

image.png


 /admin/config/workbench/access/roles   发布 内容类型 为 FTP上传  的人还还应该在这里的角色里 

image.png

 创建一个词汇表 FTP,再在里面添加一个术语 FTP上传

 

 

/admin/config/workbench/access/settings 

Active access scheme 配置成分类,使用上面创建的词汇表;;;另外再使用上面创建的内容类型 "FTP上传"

image.png

/admin/config/workbench/access  里面设管理员 和特定的用户(此用户具有审核角色) 以及创建和编辑FTP上传"的用户  当然,首先特定用户要在权限页面有关于  workbench的权限


image.png

同理 /admin/config/workbench/access/roles   里面设管理员角色 和特定的角色(审核角色) 以及 以及 创建和编辑 "FTP上传" 的用户用户,, 当然,首先审核角色要在权限页面有关于  workbench的权限 审核角色尽量 把有关于workbench的权限以及 内容类型 "FTP上传"的所有权限全部勾上,

image.png

/admin/config/workbench/access/sections

image.png



/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.


image.png

名称源自
删除
Publish需要审核-->已发布
needs_review已发布-->需要审核


image.png

/node-admin/21055  即   https://www.drupal.org/node/2121239  




/admin/workbench  这个要看一下研究一下,很简单 

image.png



如下的视图在 节点类型里要过滤掉 节点类型=FTP上传,,当然 已发布也要去掉吧??

image.png




最后关于内容类型  "FTP上传"的查看权限也要设一下,见 /node-admin/18345



审核人无法查看未发布内容的权限

https://www.drupal.org/project/view_unpublished     #这种saj 方式 似乎导致匿名用户的 列表页面任何节点都不显示,,,可能我掌握的不熟,所以才有问题,,,我禁用它吧

安装这个模块,让审核人 具有 对内容类型  "FTP上传" 的  View any unpublished content

审核人仍然没有 查看未发布内容的权限 

还有一种方法   忽略内容访问控制 绕过内容访问控制 (Bypass content access control)  不过这个方法 有点危险吧 所以我的思路是 页面打开时,临时赋予 忽略内容访问控制 权限,页面运行结束再拿掉这个权限 见  /node-admin/21062 但是这种方法不行

image.png


上面忽略内容访问控制后,审核人对于所有的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  似乎也没有作用

普通分类: