123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?php
- function email_registration_user_insert(&$edit, &$account, $category = NULL) {
-
- if (!empty($account->name) && strpos($account->name, 'email_registration_') !== 0) {
- return;
- }
-
-
-
- $names = module_invoke_all('email_registration_name', $edit, $account);
-
- $names = array_filter($names);
- if (empty($names)) {
-
- $new_name = preg_replace('/@.*$/', '', $edit['mail']);
-
- $new_name = email_registration_cleanup_username($new_name, $account->uid);
- }
- else {
-
-
- $new_name = array_pop($names);
- }
-
- $new_name = email_registration_unique_username($new_name, $account->uid);
-
- db_update('users')
- ->fields(array('name' => $new_name))
- ->condition('uid', $account->uid)
- ->execute();
- $edit['name'] = $new_name;
- $account->name = $new_name;
- }
- function email_registration_unique_username($name, $uid) {
-
- $i = 0;
- do {
- $new_name = empty($i) ? $name : $name . '_' . $i;
- $found = db_query_range("SELECT uid from {users} WHERE uid <> :uid AND name = :name", 0, 1, array(':uid' => $uid, ':name' => $new_name))->fetchAssoc();
- $i++;
- } while (!empty($found));
- return $new_name;
- }
- function email_registration_cleanup_username($name, $uid = NULL) {
-
- $name = preg_replace('/[^\x{80}-\x{F7} a-zA-Z0-9@_.\'-]/', '', $name);
-
- $name = trim($name);
-
- $name = preg_replace('/ +/', '_', $name);
-
- $name = ('' === $name) ? t('user') : $name;
- if (!empty($uid)) {
-
- $name = $name . '_' . $uid;
- }
-
- $name = (drupal_strlen($name) > (USERNAME_MAX_LENGTH - 10)) ? drupal_substr($name, 0, USERNAME_MAX_LENGTH - 11) : $name;
- return $name;
- }
- function email_registration_form_user_register_form_alter(&$form, &$form_state) {
- $form['account']['name']['#type'] = 'hidden';
- $form['account']['name']['#value'] = 'email_registration_' . user_password();
- $form['account']['mail']['#title'] = t('E-mail');
- }
- function email_registration_form_user_pass_alter(&$form, &$form_state) {
- $form['name']['#title'] = t('E-mail');
- }
- function email_registration_form_user_login_alter(&$form, &$form_state) {
- $form['name']['#title'] = t('E-mail');
- $form['name']['#description'] = t('Enter your e-mail address.');
- $form['name']['#element_validate'][] = 'email_registration_user_login_validate';
- $form['pass']['#description'] = t('Enter the password that accompanies your e-mail.');
- }
- function email_registration_form_user_login_block_alter(&$form, &$form_state) {
- $form['name']['#title'] = t('E-mail');
- $form['name']['#element_validate'][] = 'email_registration_user_login_validate';
- }
- function email_registration_user_login_validate($form, &$form_state) {
- if (isset($form_state['values']['name'])) {
-
- $form_state['values']['email'] = $form_state['values']['name'];
- if ($name = db_query('SELECT name FROM {users} WHERE LOWER(mail) = LOWER(:name)', array(':name' => $form_state['values']['name']))->fetchField()) {
- $form_state['values']['name'] = $name;
- }
- }
- }
- function email_registration_form_user_profile_form_alter(&$form, &$form_state) {
- $form['account']['name']['#title'] = t('Display name');
- }
|