カスタムモジュールを作成していて、hook_form_alter()
にいくつかの条件を追加して、フォームがノードタイプフォームであることを確認します。
フォームがノード用かどうかを確認する機能はありますか?
hook_form_alter()
の代わりにノード編集フォーム(ノードを編集できるフォーム)を参照している場合は、 hook_form_BASE_FORM_ID_alter()
を実装する必要があります。これは、基本フォームのフォームIDがわかっている場合に使用されるhook_form_alter()
の特定の実装です。あなたの場合、Bookモジュールが hook_form_node_form_alter()
でどのように機能するかを正確にbook_form_node_form_alter()
に実装する必要があります。
function book_form_node_form_alter(&$form, &$form_state, $form_id) {
$node = $form['#node'];
// Omissis.
}
Admin/structure/types/manageにあるフォームを参照していて、コンテンツタイプのプロパティを編集できる場合は、hook_form_FORM_ID_alter()
を実装する必要があります。これは、hook_form_alter()
特定のフォームIDに対して実行されます。この場合、node_typeです。これは、コメントモジュールで comment_form_node_type_form_alter()
を実行するものです。フォームが表示されるコンテンツタイプを知る必要がある場合は、$form['#node_type']->type
を使用できます。
hook_form_node_form_alter
を使用できます。
例:
function my_module_form_node_form_alter(&$form, &$form_state, $form_id) {
$type = $form['#node']->type;
}