報告したコードはノードフォームのフォームIDを探しているため、2つのケースがあります。
Drupal 6
コードがコンテンツタイプの設定に使用されるフォームを変更しようとしている場合、次のIFステートメントを使用する必要があります。
if ($form_id == 'node_type_form' && isset($form['identity']['type'])) { /* … */ }
コードがノード編集フォームを変更しようとしている場合、コードは次のIFステートメントを使用する必要があります。
if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }
Drupal 7以降
最初の場合、IFステートメントは次のようになります。
if ($form_id == 'node_type_form') { /* … */ }
別のアプローチを使用して、mymoduleがモジュールの短縮名であると仮定すると、を使用できますmymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
。Drupal 7以降、別のモジュールによって実装されたフォームを変更するために使用されるすべてのフックは$form_id
、最後のパラメーターとして取得されます。hook_form_alter()、hook_form_FORM_ID_alter()、hook_form_BASE_FORM_ID_alter()を参照してください。
2番目の場合、IFステートメントはDrupal 6に使用されるものと同じです。
if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }