Порядок регистрации.

Главные вкладки

Аватар пользователя player player 3 июля 2008 в 22:02

Необходим следующий порядок действий

1. При регистрации вводим
Username
Password
2. Уходит письмо с сылкой активации
3. Войти можно по введунному паролу но после активации.
Смотрел LoginToboggan но таких функций я там не обнаружил. Кто нибудь писал уже заплатку?

Комментарии

Аватар пользователя olk olk 4 июля 2008 в 15:42

Просто не совсем понятно, что вы хотите ? Куда уходит письмо ? админу ? юзеру ? если юзеру то , он кроме имени пароля должен ввсети е-майл ... , кто активирует ? юзер , админ ...
Пока я не вижу , того чего нет в стандартной регистрации ....

Аватар пользователя player player 4 июля 2008 в 19:41

пользователь заходит и регистрируется с вводом пароля (как при настройке регистрации без проверки почты.) Потом пользователю уходит письмо с ссылкой для активации аккаунта (а не сброса пароля). Пока пользователь его не активирует он несможет войти. При активации он должен просто перейти по ссылке в письме и все.
Этого нет в стандартной регистрации. Там есть два пути.

  1. Без подтверждения - когда пользователь вводит пароль при регистрации
  2. С подтверждением - пользователь получает письмо с сылкой для сброса пароля (который он не вводил при регистрации) и паролем сгенерированным системой.

А мне нужнен случай "Без подтверждения" но при этом пользователь должен активировать аккаунт.
Теперь надеюсь понятно написал.

Аватар пользователя player player 5 июля 2008 в 21:13

полазил я по модулю user и понял что теоретически возможно. Сделал пока в самом модуле. (Да простит меня сообщество Smile )
А вообще можно так попытатся использовать $user['status'].
1.
<?php
function mymodule_form_alter($form_id, &$form) {
if ($form_id == 'user_register') {
$form['#submit'] = array(
'user_register_submit' => array(),
'user_register_submit_custom' => array()
);
}
}
function user_register_submit_custom($form_id, $form_values) {
global $user;
$user = user_load( array( 'name' => $form_values['name'] ) );
// тут можно воспользоватся запросом типа после которого пользователь становится заблокирован
db_query("UPDATE {users} SET status = 0 WHERE uid = %d", $account->uid);
}
?>
2. далее посылаем ему письмо с активационным кодом.
3. пишем обработчик меню который прио переходе по ссылке с кодом активации типа http://www.video.ru/user/activate/19/1215271290/b817d9903908a95184cab55b... выполнит запрос типа
<?php
db_query("UPDATE {users} SET status = 1 WHERE uid = %d", $account->uid);
?>