hook_user() ドキュメントで報告されているとおり:
$op どのようなアクションが実行されているか。可能な値 (アルファベット順):
- "insert": ユーザー アカウントが追加されています。モジュールは、ユーザー オブジェクトへのカスタム追加をデータベースに保存し、保存されたフィールドを $edit で NULL に設定する必要があります。
- "update": ユーザー アカウントが変更されています。モジュールは、ユーザー オブジェクトへのカスタム追加をデータベースに保存し、保存されたフィールドを $edit で NULL に設定する必要があります。
- "validate": ユーザー アカウントが変更されようとしています。モジュールは、ユーザー オブジェクトへのカスタム追加を検証し、必要に応じてエラーを登録する必要があります。
モジュールは、独自のデータベース テーブルを に作成する必要がありますhook_install()
。
hook_user()
たとえば、次のコードで実装できます。
function perscriptions_user($op, &$edit, &$account, $category = NULL){
if ($op == 'register' || ($op == 'form' && $category = 'account')) {
$form['surgery_address'] = array (
'#type' => 'textarea',
'#title' => t('Surgery Address'),
'#required' => TRUE,
);
return $form;
}
if ($op == 'insert' || $op == 'update') {
prescriptions_save_user_profile($account->uid, $edit['surgery_address']);
}
if ($op == 'validate' && $category == 'account') {
// Verify the entered values are valid.
// In this example, the value is contained in $edit['surgery_address'].
}
}
prescriptions_save_user_profile()
ユーザープロファイル値をデータベースに保存する関数です。コードは、カテゴリをチェックして、ユーザー プロファイル編集フォームに表示されるすべてのタブで同じフォーム フィールドを表示しないようにします。