hook_form_alterのテキストフィールドを非表示にする


8

フィールドfield_agent_nameがあります。カスタムモジュールでこのフィールドを非表示にしたいのは、hook_form_alterを使用することです。

これを行う方法。

回答:


16

hook_form_FORM_ID_alter形式の使用が理想的です。

function MODULENAME_form_CONTENTTYPE_node_form_alter(&$form, &$form_state, $form_id) {
  $form['field_agent_name']['#access'] = FALSE;
}

hook_form_FORM_ID_alterに関する詳細情報


参照されている場合は$ formを返す必要はありません。
Alex Gill

form_id_alterを使用する場合は+1。上記のコメント以外に、$ form_stateを参照渡しする必要もありません。
AyeshK 2012年

1
ドキュメントによると@AyeshK $ form_stateは参照渡しする必要があります:)ただし、フォームを返す必要はありません
Clive

1

以下のコードは私のために働きました:

function modulename_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'contenttypename_node_form') {
    $form['field_agent_name']['#access'] = 0;
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.