Это очень просто, я предлагаю вам сделать это самостоятельно, я думаю, это сэкономит много времени, чем изучение того, как внедрить и использовать новое расширение.
Добавьте столбцы CHECK_SUM, STATUS в свою пользовательскую таблицу.CHECK_SUM используется для хранения зашифрованного значения или любых случайных значений, которые можно использовать для проверки пользователя, а в столбце STATUS по умолчанию установлено значение 0, когда проверяется адрес электронной почты, задайте для него значение 1, чтобы эта учетная запись могла войти в систему.
Когда пользователи отправляют свои регистрационные формы:
function encrypt($pswd)
{
....//make your own encrypt method to store uses' password
}
//suppose your user model is Users
$users->email=$_POST['email'];
$users->pswd=encrypt($_POST['pswd']);
...
//here comes the customized part
$users->check_sum=sha1($_POST['email'].time());//or other method to make a safe random string
if($users->save())
{
$to=...;
$subject=...;
//suppose your reg page is in reg controller.
$msg='please visit <a href="domain.com/reg/check?sum='.$users->check_sum.'">this url</a> to finish registration';
mail($to,$subject,$msg,$header);
}
В своем контроллере reg добавьте:
public function actionCheck()
{
if(isset($_GET['sum']))
{
$c=new CDbCriteria;
$c->condition="check_sum=:i";
$c->params=array($i=>$_GET['sum']);
$user=Users::model()->find($c);
if($user)
{
$user->status=1;
$user->save();
$this->redirect('http://...');
}
}
}
Это мое решение.