0

我正在寻找一种方法来为每个人隐藏一个 cck 字段,除了一个特定的角色。

我知道有一个模块,内容权限模块,可以很好地处理这个问题。但是我接管了一个非常大的站点,其中包含许多内容类型,并且定义了许多相关的 cck 字段。所以安装内容权限模块不是一个好主意,因为它需要大量的设置。

这是一个drupal 6安装。

4

2 回答 2

0

您可以在自定义模块中使用 hook_nodeapi:

/**
 * Implements hook_nodeapi().
 */
function yourmodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'view':
      if (! user_access('show restricted content')) {
        unset ($node->content['field_restrictedcontent']);
      }
      break;
  }
}

/**
 * Implements hook_perm().
 */
function yourmodule_perm () {
  return array(
    'show restricted content',
  );
}

不过,请注意,这在某种程度上是一种 hack:我认为您应该重新考虑为您的站点使用 Content Permission 模块,并努力为您的节点类型配置它。这是一次性的工作,它可以保护您免受与站点中其他模块的兼容性问题。

于 2013-04-19T19:26:09.723 回答
0

您需要使用任何权限模块并重新配置有问题的每个字段。使用代码,您必须检查每个字段的用户角色!

于 2013-04-20T05:37:37.967 回答