/** * Provide the link (via email) for user to reset the password * * @param string $username * @param string $email * @return bool Returns false if user is not found or can not send email, * true otherwise */ public static function registerSuccess($username, $email) { $criteria = array('username' => $username, 'email' => $email); $users = self::find($criteria, null, null); if ($users == null || count($users) == 0) { return false; } /** * Send the confirmation link to reset password via email */ $user = $users[0]; $template = Modules_Mail_Services_Template::getByName(Modules_Mail_Models_Template::TEMPLATE_REGISTER_SUCCESS); if ($template == null) { return; //throw new Exception('MAIL_TEMPLATE_NOT_FOUND'); } $search = array(Modules_Mail_Models_Mail::MAIL_VARIABLE_EMAIL, Modules_Mail_Models_Mail::MAIL_VARIABLE_USERNAME); $replace = array($user['email'], $user['username']); $subject = str_replace($search, $replace, $template['subject']); $content = str_replace($search, $replace, $template['body']); /** * Get mail transport instance */ $mailer = Modules_Mail_Services_Mailer::getMailTransport(); $mailer->From = $template['from_mail']; $mailer->FromName = $template['from_name']; $mailer->AddAddress($user['email'], $user['username']); $mailer->AddReplyTo($template['reply_to_mail'], $template['reply_to_name']); $mailer->WordWrap = 50; // set word wrap $mailer->IsHTML(true); // send as HTML $mailer->Subject = $subject; $mailer->Body = $content; //HTML Body $mailer->AltBody = ""; //Text Body if (!$mailer->Send()) { return false; } else { return true; } }
/** * List mail templates * * @return void */ public function listAction() { $request = $this->getRequest(); $pageIndex = $request->getParam('pageIndex', 1); $perPage = 20; $offset = ($pageIndex - 1) * $perPage; $user = Gio_Core_Session::getUser(); $templates = Modules_Mail_Services_Template::getTemplates($user, $offset, $perPage); $numTemplates = Modules_Mail_Services_Template::count($user); $this->view->templates = $templates; $this->view->numTemplates = $numTemplates; // Pager require_once LIB_DIR . DS . 'PEAR' . DS . 'Pager' . DS . 'Sliding.php'; $pagerPath = $this->view->url('mail_template_list'); $pagerOptions = array('mode' => 'Sliding', 'append' => false, 'perPage' => $perPage, 'delta' => 5, 'urlVar' => 'page', 'path' => $pagerPath, 'fileName' => 'pag-/%d', 'separator' => '', 'nextImg' => '<small class="icon arrow_right"></small>', 'prevImg' => '<small class="icon arrow_left"></small>', 'altNext' => '', 'altPrev' => '', 'altPage' => '', 'totalItems' => $numTemplates, 'currentPage' => $pageIndex, 'urlSeparator' => '/', 'spacesBeforeSeparator' => 0, 'spacesAfterSeparator' => 0, 'curPageSpanPre' => '<a href="javascript: void();" class="current">', 'curPageSpanPost' => '</a>'); $pager = new Pager_Sliding($pagerOptions); $this->view->pager = $pager; }