0

1 つの特定の役割を除くすべての人の cck フィールドを非表示にする方法を探しています。

これをうまく処理するモジュール、Content Permission モジュールがあることを私は知っています。しかし、多くのコンテンツ タイプがあり、関連する多くの cck フィールドが定義されている非常に大きなサイトを引き継いでいます。そのため、大量の設定が必要になるため、Content Permission モジュールをインストールすることはお勧めできません。

これは drupal 6 のインストールです。

4

2 に答える 2

0

権限モジュールのいずれかを使用して、問題の各フィールドを再構成する必要があります。コードでは、これらの各フィールドのユーザー ロールを確認する必要があります。

于 2013-04-20T05:37:37.967 に答える
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',
  );
}

それにもかかわらず、これはややハックであることに注意してください。サイトに Content Permission モジュールを使用することを再検討し、ノード タイプに合わせて構成するために必要な努力をする必要があると思います。これは 1 回限りの作業であり、サイト内の他のモジュールとの互換性の問題から保護される場合があります。

于 2013-04-19T19:26:09.723 に答える