【问题标题】:Hide cck field based on role根据角色隐藏 cck 字段
【发布时间】:2013-04-19 15:01:24
【问题描述】:

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

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

这是一个 drupal 6 安装。

【问题讨论】:

    标签: drupal drupal-6 cck


    【解决方案1】:

    您可以在自定义模块中使用 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:我认为您应该重新考虑为您的站点使用内容权限模块,并努力为您的节点类型配置它。这是一次性的工作,它可以保护您免受与您网站中其他模块的兼容性问题。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-07-19
        • 1970-01-01
        • 2011-02-25
        • 2012-06-20
        • 2021-12-01
        • 2017-12-13
        • 2012-09-16
        • 1970-01-01
        • 2018-10-04
        相关资源
        最近更新 更多