/** * Send a notification message to the user * * @param string $template_dir Template directory * @param string $template Template name * @param string $subject Subject line for notification message * @param array $tags Array of substitutions for template variables * * @return bool true if success, false if error **/ public function notifyUser($template_dir, $template, $subject, $tags) { global $icmsConfigMailer; // Check the user's notification preference. $member_handler = icms::handler('icms_member'); $user =& $member_handler->getUser($this->getVar('not_uid')); if (!is_object($user)) { return true; } $method = $user->getVar('notify_method'); $xoopsMailer = new icms_messaging_Handler(); include_once ICMS_ROOT_PATH . '/include/notification_constants.php'; switch ($method) { case XOOPS_NOTIFICATION_METHOD_PM: $xoopsMailer->usePM(); $xoopsMailer->setFromUser($member_handler->getUser($icmsConfigMailer['fromuid'])); foreach ($tags as $k => $v) { $xoopsMailer->assign($k, $v); } break; case XOOPS_NOTIFICATION_METHOD_EMAIL: $xoopsMailer->useMail(); foreach ($tags as $k => $v) { $xoopsMailer->assign($k, preg_replace("/&/i", '&', $v)); } break; default: return true; // report error in user's profile?? break; } // Set up the mailer $xoopsMailer->setTemplateDir($template_dir); $xoopsMailer->setTemplate($template); $xoopsMailer->setToUsers($user); //global $icmsConfig; //$xoopsMailer->setFromEmail($icmsConfig['adminmail']); //$xoopsMailer->setFromName($icmsConfig['sitename']); $xoopsMailer->setSubject($subject); $success = $xoopsMailer->send(); // If send-once-then-delete, delete notification // If send-once-then-wait, disable notification include_once ICMS_ROOT_PATH . '/include/notification_constants.php'; $notification_handler = icms::handler('icms_data_notification'); if ($this->getVar('not_mode') == XOOPS_NOTIFICATION_MODE_SENDONCETHENDELETE) { $notification_handler->delete($this); return $success; } if ($this->getVar('not_mode') == XOOPS_NOTIFICATION_MODE_SENDONCETHENWAIT) { $this->setVar('not_mode', XOOPS_NOTIFICATION_MODE_WAITFORLOGIN); $notification_handler->insert($this); } return $success; }
//show change password form $form = new icms_form_Theme(_MD_PROFILE_CHANGEMAIL, 'form', $_SERVER['REQUEST_URI'], 'post', true); $form->addElement(new icms_form_elements_Text(_MD_PROFILE_NEWMAIL, 'newmail', 15, 50), true); $form->addElement(new icms_form_elements_Button('', 'submit', _SUBMIT, 'submit')); $form->assign($icmsTpl); } else { //compute unique key $key = md5(substr(icms::$user->getVar('pass'), 0, 5)); if (!isset($_REQUEST['oldmail'])) { if (!icms_core_DataFilter::checkVar($_POST['newmail'], 'email', 0, 1)) { redirect_header(ICMS_URL . '/modules/' . basename(dirname(__FILE__)) . 'changemail.php', 2, _MD_PROFILE_INVALIDMAIL); } //send email to new email address with key $icmsMailer = new icms_messaging_Handler(); $icmsMailer->useMail(); $icmsMailer->setTemplateDir(ICMS_ROOT_PATH . '/modules/' . basename(dirname(__FILE__)) . '/language/' . $icmsConfig['language'] . '/mail_template'); $icmsMailer->setTemplate('changemail.tpl'); $icmsMailer->assign('SITENAME', $icmsConfig['sitename']); $icmsMailer->assign('X_UNAME', icms::$user->getVar('uname')); $icmsMailer->assign('ADMINMAIL', $icmsConfig['adminmail']); $icmsMailer->assign('SITEURL', ICMS_URL); $icmsMailer->assign('IP', $_SERVER['REMOTE_ADDR']); $icmsMailer->assign('NEWEMAIL_LINK', ICMS_URL . '/modules/' . basename(dirname(__FILE__)) . '/changemail.php?code=' . $key . '&oldmail=' . icms::$user->getVar('email')); $icmsMailer->assign('NEWEMAIL', $_POST['newmail']); $icmsMailer->setToEmails($_POST['newmail']); $icmsMailer->setFromEmail($icmsConfig['adminmail']); $icmsMailer->setFromName($icmsConfig['sitename']); $icmsMailer->setSubject(sprintf(_MD_PROFILE_NEWEMAILREQ, $icmsConfig['sitename'])); if ($icmsMailer->send()) { //set proposed email as the user's newemail $profile_profile_handler = icms_getModuleHandler('profile', basename(dirname(__FILE__)), 'profile');
function postSaveProcess($newuser) { global $icmsConfigUser, $icmsConfig, $template_dir, $member_handler; $newid = (int) $newuser->getVar('uid'); if (!$member_handler->addUserToGroup(ICMS_GROUP_USERS, $newid)) { return _MD_PROFILE_REGISTERNG; } if ($icmsConfigUser['new_user_notify'] == 1 && !empty($icmsConfigUser['new_user_notify_group'])) { $icmsMailer = new icms_messaging_Handler(); $icmsMailer->useMail(); $icmsMailer->setToGroups($member_handler->getGroup($icmsConfigUser['new_user_notify_group'])); $icmsMailer->setFromEmail($icmsConfig['adminmail']); $icmsMailer->setFromName($icmsConfig['sitename']); $icmsMailer->setSubject(sprintf(_MD_PROFILE_NEWUSERREGAT, $icmsConfig['sitename'])); $icmsMailer->setBody(sprintf(_MD_PROFILE_HASJUSTREG, $newuser->getVar('uname'))); $icmsMailer->send(true); } if ($icmsConfigUser['activation_type'] == 1) { return ''; } if ($icmsConfigUser['activation_type'] == 0) { $icmsMailer = new icms_messaging_Handler(); $icmsMailer->useMail(); $icmsMailer->setTemplate('register.tpl'); $icmsMailer->setTemplateDir($template_dir); $icmsMailer->assign('X_SITENAME', $icmsConfig['sitename']); $icmsMailer->assign('X_ADMINMAIL', $icmsConfig['adminmail']); $icmsMailer->assign('X_SITEURL', ICMS_URL . '/'); $icmsMailer->assign('X_USERPASSWORD', $_POST['vpass']); $icmsMailer->assign('X_USERLOGINNAME', $_POST['login_name']); $icmsMailer->setToUsers(new icms_member_user_Object($newid)); $icmsMailer->setFromEmail($icmsConfig['adminmail']); $icmsMailer->setFromName($icmsConfig['sitename']); $icmsMailer->setSubject(sprintf(_MD_PROFILE_USERKEYFOR, $newuser->getVar('uname'))); if (!$icmsMailer->send(true)) { return _MD_PROFILE_YOURREGMAILNG; } else { return _MD_PROFILE_YOURREGISTERED; } } elseif ($icmsConfigUser['activation_type'] == 2) { $icmsMailer = new icms_messaging_Handler(); $icmsMailer->useMail(); $icmsMailer->setTemplate('adminactivate.tpl'); $icmsMailer->setTemplateDir($template_dir); $icmsMailer->assign('USERNAME', $newuser->getVar('uname')); $icmsMailer->assign('USERLOGINNAME', $newuser->getVar('login_name')); $icmsMailer->assign('USEREMAIL', $newuser->getVar('email')); $icmsMailer->assign('USERACTLINK', ICMS_URL . '/user.php?op=actv&id=' . $newid . '&actkey=' . $newuser->getVar('actkey')); $icmsMailer->assign('SITENAME', $icmsConfig['sitename']); $icmsMailer->assign('ADMINMAIL', $icmsConfig['adminmail']); $icmsMailer->assign('SITEURL', ICMS_URL); $icmsMailer->setToGroups($member_handler->getGroup($icmsConfigUser['activation_group'])); $icmsMailer->setFromEmail($icmsConfig['adminmail']); $icmsMailer->setFromName($icmsConfig['sitename']); $icmsMailer->setSubject(sprintf(_MD_PROFILE_USERKEYFOR, $newuser->getVar('uname'))); if (!$icmsMailer->send(true)) { return _MD_PROFILE_YOURREGMAILNG; } else { return _MD_PROFILE_YOURREGISTERED2; } } return ''; }
$form->display(); } else { $member_handler = icms::handler('icms_member'); $getuser = $member_handler->getUsers(new icms_db_criteria_Item('email', icms_core_DataFilter::addSlashes(trim($_REQUEST['email'])))); if (count($getuser) == 0) { redirect_header(ICMS_URL, 2, _MD_PROFILE_SORRYNOTFOUND); } if ($getuser[0]->isActive()) { redirect_header(ICMS_URL, 2, sprintf(_MD_PROFILE_USERALREADYACTIVE, $getuser[0]->getVar('email'))); } if ($getuser[0]->isDisabled()) { redirect_header(ICMS_URL, 2, sprintf(_MD_PROFILE_USERDISABLED, $getuser[0]->getVar('email'))); } $icmsMailer = new icms_messaging_Handler(); $icmsMailer->useMail(); $icmsMailer->setTemplate('register.tpl'); $icmsMailer->setTemplateDir(ICMS_ROOT_PATH . '/modules/' . icms::$module->getVar('dirname') . '/language/' . $icmsConfig['language'] . '/mail_template/'); $icmsMailer->assign('SITENAME', $icmsConfig['sitename']); $icmsMailer->assign('ADMINMAIL', $icmsConfig['adminmail']); $icmsMailer->assign('SITEURL', ICMS_URL); $icmsMailer->setToUsers($getuser[0]); $icmsMailer->setFromEmail($icmsConfig['adminmail']); $icmsMailer->setFromName($icmsConfig['sitename']); $icmsMailer->setSubject($icmsMailer->setSubject(sprintf(_MD_PROFILE_USERKEYFOR, $getuser[0]->getVar('uname')))); if (!$icmsMailer->send()) { echo _MD_PROFILE_YOURREGMAILNG; } else { echo _MD_PROFILE_YOURREGISTERED; } } include ICMS_ROOT_PATH . '/footer.php';