$contentId = mb_substr($values['page'], 10); preg_match("/.*view_unit=(\\d+).*/", $values['page'], $matches); $resultType = eF_getTableData("content", "ctg_type", "id=" . $matches[1]); if ($resultType[0]['ctg_type'] == "tests") { $title = _ERRORREPORTFOR . ' ' . $lesson->lesson['name'] . ' [' . _TESTS . ']'; } else { $title = _ERRORREPORTFOR . ' ' . $lesson->lesson['name'] . ' [' . _CONTENT . ']'; } } $patterns = array("/([&|\\?])message=[^&]*(&message_type=[^&]*)?(&(.*))*/"); $replacements = array("\$1\$4"); $values['page'] = preg_replace($patterns, $replacements, $values['page']); $values['notes'] = strip_tags($values['notes']); $data = '<a href="' . G_SERVERNAME . 'professor.php?lessons_ID=' . $_SESSION['s_lessons_ID'] . '&' . $values['page'] . '">' . _LINKTOTOPIC . '</a><br><br>' . _NOTES . ': ' . $values['notes']; $pm = new eF_PersonalMessage($_SESSION['s_login'], $recipients, $title, $data); if ($pm->send(true)) { $message = _SUCCESFULLYSENDREPORT; $message_type = 'success'; } else { $message = $pm->errorMessage; $message_type = 'failure'; } } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $form->accept($renderer); $smarty->assign('T_REPORTS_FORM', $renderer->toArray()); $smarty->assign("T_HEADER_LOAD_SCRIPTS", array()); $smarty->assign("T_HEADER_EDITOR", $load_editor);
public function sendTo($recipient) { if (is_array($recipient)) { if (isset($recipient['login'])) { if (!(isset($recipient['email']) && isset($recipient['name']) && isset($recipient['surname']) && isset($recipient['user_type']))) { $recipient = $recipient['login']; } else { $defined = 1; } } else { throw new EfrontNotificationException(_UNKNOWNRECIPIENT, EfrontNotificationException::NORECIPIENTLOGIN_DEFINED); } } if (!$defined) { $recipient = eF_getTableData("users", "*", "login = '******'"); if (!empty($recipient)) { $recipient = $recipient[0]; } else { throw new EfrontNotificationException(_UNKNOWNRECIPIENT, EfrontNotificationException::NORECIPIENTLOGIN_DEFINED); } } // create the array of substitutions for this particular user and replace them in the subject/message texts $hostname = G_SERVERNAME; if ($hostname[strlen($hostname) - 1] == "/") { $hostname = substr($hostname, 0, strlen($hostname) - 1); } $language = eF_getTableData("languages", "translation", "name = '" . $recipient['languages_NAME'] . "'"); if (!empty($language)) { $language = $language[0]['translation']; } $template_formulations = array("users_name" => $recipient['name'], "users_surname" => $recipient['surname'], "users_login" => $recipient['login'], "users_email" => $recipient['email'], "users_comments" => $recipient['comments'], "users_language" => $language, "date" => formatTimestamp(time()), "date_time" => formatTimestamp(time(), 'time'), "timestamp" => time(), "user_type" => $recipient['user_type'], "host_name" => $hostname, "site_name" => $GLOBALS['configuration']['site_name'], "site_motto" => $GLOBALS['configuration']['site_motto']); $header = array('From' => $GLOBALS['configuration']['system_email'], 'To' => $recipient['email'], 'Subject' => eF_formulateTemplateMessage($this->notification['subject'], $template_formulations), 'Content-Transfer-Encoding' => '7bit', 'Date' => date("r")); if ($this->notification['html_message'] == 1) { $header['Content-type'] = 'text/html;charset="UTF-8"'; // if content-type is text/html, the message cannot be received by mail clients for Registration content } else { $header['Content-type'] = 'text/plain;charset="UTF-8"'; } $smtp = Mail::factory('smtp', array('auth' => $GLOBALS['configuration']['smtp_auth'] ? true : false, 'host' => $GLOBALS['configuration']['smtp_host'], 'password' => $GLOBALS['configuration']['smtp_pass'], 'port' => $GLOBALS['configuration']['smtp_port'], 'username' => $GLOBALS['configuration']['smtp_user'], 'timeout' => $GLOBALS['configuration']['smtp_timeout'])); // force url change for html messages $message = eF_getCorrectLanguageMessage($this->notification['message'], $recipient['languages_NAME']); // Local paths names should become urls if ($this->notification['html_message'] == 1) { $message = str_replace('="content', '="###host_name###/content', $message); /* * //Commented-out Feb 2013 (periklis) because it's no longer needed (probably) if ($configuration['math_images']) { $message = "<html><body><script type = \"text/javascript\" src = \"###host_name###/js/ASCIIMath2Tex.js\"> </script>".$message."</body></html>"; } else { $message = "<html><body><script type = \"text/javascript\" src = \"###host_name###/js/ASCIIMathML.js\"> </script>".$message."</body></html>"; } */ } else { $message = str_replace("<br />", "\r\n", $message); $message = str_replace("<br>", "\r\n", $message); $message = str_replace("<p>", "\r\n", $message); $message = str_replace("</p>", "\r\n", $message); $message = str_replace("&", "&", $message); $message = strip_tags($message); } $message = eF_formulateTemplateMessage($message, $template_formulations); $message = eF_replaceMD5($message); if ($GLOBALS['configuration']['notifications_send_mode'] == 0) { //email only if (!empty($recipient['email'])) { $result = $smtp->send($recipient['email'], $header, $message); } } else { if ($GLOBALS['configuration']['notifications_send_mode'] == 1) { //pm only $pm = new eF_PersonalMessage($recipient['login'], $recipient['login'], $header['Subject'], $message); $result = $pm->send(); } else { if ($GLOBALS['configuration']['notifications_send_mode'] == 2) { //email and pm $pm = new eF_PersonalMessage($recipient['login'], $recipient['login'], $header['Subject'], $message); $pm->send(); if (!empty($recipient['email'])) { $result = $smtp->send($recipient['email'], $header, $message); } } } } if (PEAR::isError($result)) { $admin = EfrontSystem::getAdministrator(); eF_mail($GLOBALS['configuration']['system_email'], $admin->user['email'], _AUTOMATEDEMAILSENTFROM . $admin->user['email'], $result->getMessage()); throw new EfrontNotificationException($result->getMessage(), EfrontNotificationException::GENERAL_ERROR); } if ($result === true) { // put into sent_notifications table eF_insertTableData("sent_notifications", array("timestamp" => time(), "recipient" => $recipient['email'] . " (" . $recipient['name'] . " " . $recipient['surname'] . ")", "subject" => $header['Subject'], "body" => $message, "html_message" => $this->notification['html_message'])); return true; } else { return false; } }
$pm->sender_attachment_timestamp = time(); $user_dir = G_UPLOADPATH . $currentUser->user['login'] . '/message_attachments/Sent/' . $pm->sender_attachment_timestamp . '/'; mkdir($user_dir, 0755); $filesystem = new FileSystemTree($user_dir); try { $uploadedFile = $filesystem->uploadFile('attachment', $user_dir, 0); $pm->sender_attachment_fileId = $uploadedFile['id']; $pm->setAttachment($uploadedFile['path']); } catch (EfrontFileException $e) { //echo $e -> getMessage(); $smarty->assign("T_EXCEPTION_TRACE", $e->getTraceAsString()); $message = $e->getMessage() . "<br />"; $message_type = 'failure'; } } if ($pm->send($values['email'], $values)) { $message .= _MESSAGEWASSENT; $message_type = 'success'; if (!$popup) { eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=messages&message=" . rawurlencode($message) . '&message_type=' . $message_type); } } else { $message .= $pm->errorMessage; $message_type = 'failure'; } } else { $message = _NORECIPIENTSHAVEBEENFOUND; $message_type = 'failure'; } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty);
public function getModule() { $smarty = $this->getSmartyVar(); global $load_editor; $load_editor = true; $current_user = $this->getCurrentUser(); $smarty->assign("T_MODULE_CURRENT_USER", $current_user->getType()); $form = new HTML_QuickForm("module_mail_form", "post", $this->moduleBaseUrl, "", "id = 'module_mail_form'"); $form->addElement('hidden', 'recipients', $_GET['rec']); $form->addElement('text', 'subject', _SUBJECT, 'class = "inputText" style = "width:400px"'); $form->addElement('textarea', 'body', _BODY, 'class = "simpleEditor" style = "width:100%;height:200px"'); $form->addElement('checkbox', 'email', _SENDASEMAILALSO, null, 'id = "send_as_email" class = "inputCheckBox"'); $form->addRule('subject', _THEFIELD . ' "' . _SUBJECT . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addRule('recipients', _THEFIELD . ' "' . _RECIPIENTS . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addElement('file', 'attachment[0]', _ATTACHMENT, null, 'class = "inputText"'); $form->addElement('submit', 'submit_mail', _SEND, 'class = "flatButton"'); if ($form->isSubmitted() && $form->validate()) { $values = $form->exportValues(); switch ($values['recipients']) { case "lesson_students": $lesson = new EfrontLesson($_SESSION['s_lessons_ID']); $lessonUsers = $lesson->getUsers("student"); foreach ($lessonUsers as $value) { $mail_recipients[] = $value['login']; } //pr($mail_recipients);return; break; case "lesson_professors": $lesson = new EfrontLesson($_SESSION['s_lessons_ID']); $lessonUsers = $lesson->getUsers("professor"); if (isset($_SESSION['s_courses_ID'])) { $course = new EfrontCourse($_SESSION['s_courses_ID']); $course_users = $course->getCourseUsers(); foreach ($lessonUsers as $key => $value) { if (!isset($course_users[$key])) { unset($lessonUsers[$key]); } } } foreach ($lessonUsers as $value) { $mail_recipients[] = $value['login']; } break; case "admin": $result = eF_getTableData("users", "*", "user_type='administrator' and user_types_ID=0 and archive = 0"); //not foreach ($result as $value) { $mail_recipients[] = $value['login']; } break; } //$list = implode(",",$mail_recipients); $pm = new eF_PersonalMessage($_SESSION['s_login'], $mail_recipients, $values['subject'], $values['body']); if ($_FILES['attachment']['name'][0] != "") { $maxFileSize = FileSystemTree::getUploadMaxSize(); if ($_FILES['attachment']['size'][0] == 0 || $_FILES['attachment']['size'][0] > $maxFileSize * 1024) { // G_MAXFILESIZE is deprecated $message = _EACHFILESIZEMUSTBESMALLERTHAN . " " . G_MAXFILESIZE . " Bytes"; $message_type = 'failure'; } //Upload user avatar file $pm->sender_attachment_timestamp = time(); $user_dir = G_UPLOADPATH . $_SESSION['s_login'] . '/message_attachments/Sent/' . $pm->sender_attachment_timestamp . '/'; mkdir($user_dir, 0755); $filesystem = new FileSystemTree($user_dir); $uploadedFile = $filesystem->uploadFile('attachment', $user_dir, 0); $pm->sender_attachment_fileId = $uploadedFile['id']; $pm->setAttachment($uploadedFile['path']); } if ($pm->send($values['email'], $values)) { $message = _MESSAGEWASSENT; $message_type = 'success'; } else { $message = $pm->errorMessage; $message_type = 'failure'; } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); //Create a smarty renderer $renderer->setRequiredTemplate('{$html}{if $required} <span class = "formRequired">*</span> {/if}'); $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); //Set javascript error messages $form->setRequiredNote(_REQUIREDNOTE); $form->accept($renderer); //Assign this form to the renderer, so that corresponding template code is created $smarty->assign('T_MODULE_MAIL_FORM', $renderer->toArray()); $smarty->assign("T_MESSAGE_MAIL", $message); $smarty->assign("T_MESSAGE_MAIL_TYPE", $message_type); //pr($renderer -> toArray()); return true; }