[保存]ボタン、名前、タイムゾーンなど、ユーザープロファイルのデフォルトフィールドを上書き/変更する方法を知りたいです。それらの一部を変更、削除('必要ないため)します。ユーザープロファイルを変更するには、フックhook_form_alter を使用します。これを使用して、ユーザープロファイルに自分のフィールドを追加することができました。しかし今、私はデフォルトのフィールドを変更したいと思います。どうすればいいですか?
7224 次
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 でも同じように機能します!)。
于 2011-08-14T18:55:22.357 に答える