0
我正在使用hook_user validate操作來驗證用戶註冊信息是否違反了我的業務邏輯。Drupal:如何區分hook_user驗證操作中的新用戶註冊和用戶密碼更新?
我想單獨的邏輯運行註冊和更改密碼。
但我無法區分這兩者 - 兩者都通過驗證並且同時運行兩個代碼。
如何區分hook_user中驗證操作的兩個內部?
我正在使用hook_user validate操作來驗證用戶註冊信息是否違反了我的業務邏輯。Drupal:如何區分hook_user驗證操作中的新用戶註冊和用戶密碼更新?
我想單獨的邏輯運行註冊和更改密碼。
但我無法區分這兩者 - 兩者都通過驗證並且同時運行兩個代碼。
如何區分hook_user中驗證操作的兩個內部?
與$ form_id
if (($form_id == 'user_profile_form' && arg(3) == NULL) {
// validation code for updating
}
elseif ($form_id == 'user_register')) {
// validation code for registering
}
在Drupal 7的,你可以嘗試這樣的:
/**
* Implements hook_form_FORM_ID_alter().
* Form ID: user_profile_form
*/
function foo_form_user_profile_form_alter($form, &$form_state) {
// Set a custom form validate and submit handlers.
$form['#validate'][] = 'foo_form_user_profile_form_validate';
$form['#submit'][] = 'foo_form_user_profile_form_submit';
}
/**
* Implements hook_form_FORM_ID_alter().
* Form ID: user_register_form
*/
function foo_form_user_register_form_alter($form, &$form_state) {
if ($form['#user_category'] == 'account') {
// Set a custom form validate and submit handlers.
$form['#validate'][] = 'foo_form_user_register_validate';
$form['#submit'][] = 'foo_form_user_register_submit';
}
}