0

私は自分の drupal Web サイトで登録エンティティ モジュールを使用しています。また、そのフォームに自宅の電話番号と携帯電話番号のドロップダウンがあります。自宅の電話番号は必須であり、ドロップダウンの上部に値として --select-- が表示されません。モバイル番号は必要ないため、上部に --select-- と表示されます。

今、私はそのフォームを変更し、自宅の電話番号の上部に --select-- オプションの値を追加したいと思います。カスタムモジュールでこのコードを書いています。

function custom_va_form_alter(&$form, $form_state, $form_id) {


if($form_id == 'commerce_checkout_form_registration'){
   if($form['registration_information']['prod-va_application']['prod-va_application-reg-0']['field_phone']['und'][0]['field_home_phone']['und']['#required'] == 1){
   dsm($form);

   $form['registration_information']['prod-va_application']['prod-va_application-reg-0']['field_phone']['und'][0]['field_home_phone']['und'][0]['country_codes']['#options']= '--select--';
   return $form;
   }
 }
}

しかし、ドロップダウンの上部に --select-- を追加できません。何が間違っていますか?

カスタム モジュールのフォームを変更する他の方法はありますか

4

1 に答える 1

0

#options は配列を想定しているため、最初に追加する場合は array_unshift 関数を使用します。

array_unshift($form['registration_information']['prod-va_application']['prod-va_application-reg-0']['field_phone']['und'][0]['field_home_phone']['und'][0]['country_codes']['#options'], '--select--');

array_unshift ドキュメント: http://php.net/manual/en/function.array-unshift.php

于 2015-09-21T12:16:18.257 に答える