隐藏基于角色的cck字段

时间:2013-04-19 15:01:24

标签: drupal drupal-6 cck

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

我知道有一个模块,内容权限模块,它很好地照顾这个。但我接管了一个包含许多内容类型的大型网站,其中定义了许多相关的cck字段。因此,安装内容权限模块并不是一个好主意,因为它需要大量的设置。

这是一个drupal 6安装。

2 个答案:

答案 0 :(得分: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',
  );
}

尽管如此,请注意这有点像黑客:我认为您应该重新考虑使用您网站的内容权限模块,并为您的节点类型进行配置。这是一次性工作,它可以保护您免受与您网站中其他模块的兼容性问题的影响。

答案 1 :(得分:0)

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