我在drupal 6中创建了一个站点。它的所有内容都作为页面节点放置。我创建了一个具有编辑角色的用户并获得了以下权限
访问内容 管理内容类型 adminsiter节点 编辑任何页面内容 编辑自己的页面内容
我希望此用户仅编辑内容页面已经由其他用户创建 不想删除/删除内容/节点来自网站的<> 。
我该怎么做?我试过了
nodeaccess-6.x-1.3.zip node_privacy_byrole-6.x-1.6.zip
还尝试了content_access-6.x-1.2.zip(但找不到该模块的任何设置?)。请帮我解决这个问题。
提前感谢。
步骤1。
答案 0 :(得分:2)
好吧我不知道是否有支持在节点删除时添加权限的模块,但请尝试以下内容.....
首先我们需要创建一个模块(不用担心,很容易)生成一个新的权限,你可以给任何用户角色让我们调用这个权限“node delete permission”
1-转到/ sites / all / modules
2-创建一个名为“node_delete_permission”的新文件夹,并在此文件夹中创建文件 使用以下名称“node_delete_permission.info”&amp;&amp; “node_delete_permission.module”
3- open node_delete_permission.info并在其中添加以下内容:
name = node delete permission
description = node delete permission
core = 6.x
4-现在打开node_delete_permission.module并在其中添加以下代码
<?php
/**
* Implementation of hook_perm()
*/
function node_delete_permission_perm() {
return array("node delete permission") ;
}
/**
* Implementation of hook_form_alter
*/
function node_delete_permission_form_alter($form, $form_state, $form_id) {
if($form_id == 'node_admin_content') {
if (!user_access('node delete permission')) {
unset($form['admin']['options']['operation']['#options']['delete']);
}
}
}
5-现在从(admin / build / modules)启用你的新模块并转到(/ admin / user / permissions)..确保你有一个新的权限生成称为“节点删除权限”
如果可以......让我们进入下一步
6-转到主题“page.tpl.php”并在此文件的顶部添加以下代码
<?php
$arg1 = arg(1) ;
$node_path = url( 'node/'.$arg1 , array('absolute' => TRUE)) ;
if(arg(0) == 'node' && arg(2) == 'delete' && !user_access('node delete permission')){
drupal_set_message('<div class="message error" > You don\'t have the permission
to delete node </div>') ;
header("Location: {$node_path}") ;
}
?>
现在您可以将此权限授予您想要的任何用户角色(/ admin / user / permissions)
注意:
1-它不是100%的drupal方式,但我认为它在你的情况下有用
2-我没有测试这段代码,所以你可能会发现语法错误或某些东西......如果你发现这个,你可以回复我
3-我知道一个糟糕的英语,我很抱歉这个
答案 1 :(得分:0)
启用CCK附带的内容权限模块,可以让您控制可以查看,创建,编辑或删除页面内容类型中的哪个字段