首页 / 帖子
Drupal中如何默认使用邮件(Email)登录,而不是用户名?

就像Drupal大学这样,可以使用邮件登录。

谢谢大家!

2个答案
YOYO
发布于:2014-08-24 21:15

试试这个模块,LoginToboggan:http://drupal.org/project/logintoboggan

或者,自定义模块里面,alter一下form,在user_form加一个validate,如下:

if ($form_id == 'user_login' || $form_id == 'user_login_block') {
    $form['#validate'] = is_array($form['#validate']) ? $form['#validate'] : array();
    array_unshift($form['#validate'],'drupal001_user_or_email_login_validate');
}

//自定义验证函数
function drupal001_user_or_email_login_validate($form, &$form_state) {
  if (isset($form_state['values']['name']) && strpos($form_state['values']['name'], '@') !== false) {
    $name = drupal001_user_get_name_by_email($form_state['values']['name']);
    if ($name) {
      form_set_value($form['name'], $name, $form_state);
    }
  }
}


AnnyO
发布于:2014-08-24 23:26

如果想让用户只能用email注册和登陆,还可以使用 Email Registration 模块。

如果只是想用email登陆就用LoginToboggan