làm sao hook vào lúc active account bằng mail

Events happening in the community are now at Drupal community events on www.drupal.org.
pbn's picture

Chào mọi người, em có gặp vài khó khăn sau mong mọi người chỉ giúp:

  1. Trong phần user em bắt người dùng phải active accout qua email -> sau khi đăng ký drupal sẽ gởi link login 1 lần, em muốn là sau khi người dùng click vào link đó sẽ gọi 1 vài function khác. Có cách nào mình làm được như vậy mà không phải sửa core không?

  2. Có cách nào khi đăng ký mình bắt người dùng phải nhập đầy đủ username, password, email nhưng sau khi active qua mail thì account mới được publish không? (chức năng email account activation thì không cho nhập password lúc đăng ký :d )

Em cám ơn!

Comments

Chào pbn, Xem hàm

thehong's picture

Chào pbn,

Xem hàm user_mail_tokens (http://api.drupal.org/api/function/user_mail_tokens/6) thì thấy user_pass_reset_url() render ra login url. Đọc user_pass_reset_url() thì thấy là hàm đó render ra link dạng user/reset/%/%/%
Đọc user_menu (http://api.drupal.org/api/function/user_menu/6) thì thấy

<?php
  $items
['user/reset/%/%/%'] = array(
   
'title' => 'Reset password',
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('user_pass_reset', 2, 3, 4),
   
'access callback' => TRUE,
   
'type' => MENU_CALLBACK,
   
'file' => 'user.pages.inc',
  );
?>

Vậy có 2 cách hook vào đây:
1. Hook vào form user_pass_reset
2. Alter vào menu item trên để thay đổi page callback.

Thế Hồng

Cám ơn thehong đã trả lời,

pbn's picture

Cám ơn thehong đã trả lời, sau khi tìm tòi thì mình thấy có module này có thể giải quyết được vấn đề của mình: http://drupal.org/project/logintoboggan