0

[保存]ボタン、名前、タイムゾーンなど、ユーザープロファイルのデフォルトフィールドを上書き/変更する方法を知りたいです。それらの一部を変更、削除('必要ないため)します。ユーザープロファイルを変更するには、フックhook_form_alter を使用します。これを使用して、ユーザープロファイルに自分のフィールドを追加することができました。しかし今、私はデフォルトのフィールドを変更したいと思います。どうすればいいですか?

4

1 に答える 1

3

hook_form_alterを使用する方が良いですが、 で可能hook_form_FORM_ID_alterです。

フォームを変更できるようにするには、配列の構造を知る必要があります。これを知る最も簡単な方法は、Devel モジュールをインストールすることです。次にdpm($form);、alter 関数内に配置することで構造を表示できます。

この関数は、カスタムモジュールまたはテーマ(template.phpファイル内) で使用できます。

通常、ユーザー プロファイルの form_id はuser_profile_formです。簡単な例は次のとおりです。

    function mymodule_form_user_profile_form_alter(&$form,$form_state,$form_id){
      $form['timezone']['#access'] = FALSE; //remove the "timezone" field from the form (default value is still saved)
      $form['field_somefield']['#weight'] = -50; //move the field up
      $form['actions']['submit']['#value'] = t('Add this content now'); //change the submit button text
    }

優れたチュートリアルについては、こちらの Lullabot チュートリアルを参照してください(これは drupal 6 用ですが、d7 でも同じように機能します!)。

API: hook_form_FORM_ID_alter

于 2011-08-14T18:55:22.357 に答える