답변:
이 방법은 모듈을 사용하지만 Logintoboggan 및 Rules를 사용하여 전자 메일을 확인한 후 노드를 추가 합니다. Logintoboggan 규칙 통합은 새 이벤트를 추가 When the user account is validated하여 전자 메일 확인시 작업을 수행 할 수 있습니다.
이것은 나를 위해 일합니다.
/**
* Implements @see hook_user_presave
*/
function hook_user_presave(&$edit, $account, $category) {
if ($account->uid // user is not new
&& $account->status === "0" && $edit['status']==1) { // user is being activated
}
}
if($account->uid && $account->original->status == 0 && $account->status == 1)
전자 메일 유효성 검사에 LoginToboggan 모듈을 사용하고 규칙 모듈을 사용하지 않으려면 코드에서 모듈의 유효성 검사 응답 ( logintoboggan_email_validated = TRUEhook_user_update로 푸시 된 임시 계정 속성 탐색)을 모방하면 됩니다.
/**
* Implement hook_user_update()
*
*/
function yourcustommodule_user_update(&$edit, $account) {
if (!empty($account->logintoboggan_email_validated) && !isset($account->your_custom_action)) {
$account->your_custom_action = TRUE;
// Do what you want here
}
}
코어 및 기타 모듈도 hook_user_update를 호출하기 때문에 반복되는 동작을 피하기 위해 무언가를 구현하고 싶을 것입니다. 이 예에서는 작업이 시작되면 $ account에 다른 속성을 설정했지만 필요한 경우 더 세밀한 제어를 강요 할 수 있습니다.
자동 이메일 유효성 검사를 위해 LoginToboggan을 사용하는 경우 IOco의 방법이 작동하지 않는 경우 (여러 가지 이유로 hook_user_presave 중에 $ account-> status == 1 (이것은 역할이 선택한 "사전 승인 된"것임) 상태).