$user_confirm = Model_UserConfirm::Create(); $user_confirm->set('confirmkey', $confirmkey); $user_confirm->set('userid', $userid); $user_confirm->set('expire', $expire); $user_confirm->save(); // construct e-mail body $mm = new Pagemill($pm->root()->fork()); $mm->setVariable('username', $user->get('username')); $mm->setVariable('confirmurl', sprintf('http://%s%s/confirm?userid=%d&confirmkey=%s', $_SERVER['HTTP_HOST'], TYPEF_WEB_DIR, $userid, $confirmkey)); $body = str_replace('&', '&', $mm->writeString('<pm:include template="/users/register/confirmation.eml" />', true)); // e-mail the user so they can confirm their registration $mailer = new Mailer(); $mailer->Configure(); $mailer->IsHTML(true); $mailer->AddAddress($_POST['email']); $mailer->Subject = 'Your Account Confirmation from ' . TYPEF_TITLE; $mailer->Body = $body; $mailer->Send(); } else { // if confirmation is not required, log the user in immediately Typeframe::User()->login($_POST['username'], $_POST['password']); Typeframe::Redirect('Registration complete. Welcome!', TYPEF_WEB_DIR . '/', 1); return; } // registratino is complete Typeframe::SetPageTemplate('/users/register/complete.html'); } } // populate form fields $pm->setVariable('fields', $form->fields());