回答:
フィールド権限モジュールを試すことができます
特徴
- ノードだけでなく、任意のエンティティのフィールド権限を有効にします。
- 役割ベースのフィールド権限により、ユーザーのアクセス権に基づいてさまざまな表示をパターン化できます。
- 作成者レベルの権限により、エンティティの所有者が誰であるかに基づいて、フィールドを表示および編集できます。
- 各フィールドの権限は、デフォルトでは有効になっていません。代わりに、管理者は、この機能が必要なフィールドに対してこれらの権限を明示的に有効にすることができます。
カスタムモジュールで実行する場合
my_module_form_user_profile_form_alter(&$form, &$form_state) {
// Since it is on registration form, field might be reqruied.
$form['your_field']['#required'] = FALSE;
$form['your_field']['#access'] = FALSE;
}
my_module_form_user_register_form_alter
ませんmy_module_form_user_profile_form_alter
。そうではありません。
このコードをカスタムモジュールに配置すると、フィールドは新しいコンテンツで使用できますが、編集できなくなります。
if ($form_id == 'YOUR_FORM_ID') {
//dsm($form);
// for user form use '#user' instead of '#node' and uid instead of nid
if (isset($form['#node']) && isset($form['#node']->nid)){
// Prevent editing a field once the node has been created
// hiding the field entirely on the edit form.
$form['field_name']['#access'] = FALSE;
// disable update field on the edit form (gray color).
$form['field_name']['#disabled'] = TRUE;
}
}