ulogin с подтверждением по почте

MM Web Studio Group

ulogin с подтверждением по почте

Доброй ночи. Решил поделиться одной правкой компонента. Пришлось мне его править так как для заказчика требуется чтобы можно было зарегистрироваться на его сайте в т.ч. и через соц сеть, но с подтверждением по email.
Всё очень даже просто, в файле /system/controlers/ulogin/actions/login.php после строки приблизительно 253:

$users_model = cmsCore::getModel('users');

вставляем вот такой блок кода:

$auth = cmsCore::getController('auth');
        if ($auth->options['verify_email']){
                    $CMSuser = array_merge($CMSuser, array(
                        'is_locked' => true,
                        'lock_reason' => LANG_REG_CFG_VERIFY_LOCK_REASON,
                        'pass_token' => string_random(32, $CMSuser['email']),
                        'date_token' => ''
                    ));
        }

Дальше ищем строку 270:

cmsEventsManager::hook('user_registered', $CMSuser);

и заменяем её вот этим кодом:

if ($auth->options['verify_email']){
 
                $messenger = cmsCore::getController('messages');
                $to = array('email' => $CMSuser['email'], 'name' => $CMSuser['nickname']);
                $letter = array('name' => 'reg_verify');
 
                $messenger->sendEmail($to, $letter, array(
                    'nickname' => $CMSuser['nickname'],
                    'page_url' => href_to_abs('auth', 'verify', $CMSuser['pass_token']),
                    'valid_until' => html_date(date('d.m.Y H:i', time() + ($this->options['verify_exp'] * 3600)), true),
                ));
 
                cmsUser::addSessionMessage(sprintf(LANG_REG_SUCCESS_NEED_VERIFY, $CMSuser['email']), 'info');
 
            } else {
 
                    cmsEventsManager::hook('user_registered', $CMSuser);
 
            }

Готово!

+1
22:29
RSS
Гость
20:48
Очень интересно, сложно, но очень умно и красиво!!! Молодец
Загрузка...