जवाबों:
यद्यपि यह दृष्टिकोण मॉड्यूल का उपयोग करता है, मैं उपयोगकर्ताओं को Logintoboggan और नियमों का उपयोग करके अपने ई-मेल की पुष्टि करने के बाद नोड जोड़ता हूं । 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 = TRUE
खाता संपत्ति का उपयोग कर सकते हैं जो अपने आप को कोड में hook_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
}
}
चूंकि कोर और अन्य मॉड्यूल भी हुक_सुमेर_अपडेट करेंगे, आप बार-बार कार्रवाई से बचने के लिए कुछ लागू करना चाहेंगे। इस उदाहरण में मैंने कार्रवाई शुरू होने के बाद $ खाते पर एक और संपत्ति निर्धारित की है लेकिन यदि आवश्यक हो तो आप बेहतर नियंत्रण लगा सकते हैं।
ध्यान दें कि यदि स्वचालित ई-मेल सत्यापन के लिए LoginToboggan का उपयोग किया जाए तो IOco का तरीका काम नहीं करेगा (कई कारणों के बीच - एक हुक_सुअर_प्रसव के दौरान, $ खाता-> स्थिति == 1 (यह सिर्फ भूमिका है जो आपके चुने हुए या पूर्व-अधिकृत में है) राज्य)।