diff --git a/main/auth/courses.php b/main/auth/courses.php index 5aab3e5955..0d1b78c6a6 100755 --- a/main/auth/courses.php +++ b/main/auth/courses.php @@ -223,13 +223,8 @@ switch ($action) { $date = isset($_POST['date']) ? $_POST['date'] : date('Y-m-d'); $hiddenLinks = isset($_GET['hidden_links']) ? intval($_GET['hidden_links']) == 1 : false; - $userInfo = api_get_user_info(); - $allowEmailEditor = api_get_setting('allow_email_editor') === 'true'; - $administratorEmail = api_get_setting('emailAdministrator'); - $authModel = new Auth(); $sessions = $authModel->browseSessions($date); - $courseCategories = $authModel->browse_course_categories(); $sessionsBlocks = array(); @@ -243,7 +238,7 @@ switch ($action) { 'is_subscribed' => $session['is_subscribed'], 'icon' => $courses_controller->getSessionIcon($session['name']), 'date' => SessionManager::getSessionFormattedDate($session), - 'subscribe_button' => $courses_controller->getRegisterInSessionButton($session['name'], $userInfo, $administratorEmail, $allowEmailEditor) + 'subscribe_button' => $courses_controller->getRegisterInSessionButton($session['name']) ); } diff --git a/main/auth/courses_controller.php b/main/auth/courses_controller.php index 735ec1dcc9..e081361791 100755 --- a/main/auth/courses_controller.php +++ b/main/auth/courses_controller.php @@ -425,39 +425,16 @@ class CoursesController { // extends Controller { /** * Get a HTML button for subscribe to session * @param string $sessionName The session name - * @param array $userInfo The user information - * @param string $administratorEmail The administrator email - * @param boolean $allowEmailEditor (Optional) Whether the email editor online is enabled * @return string The button */ - public function getRegisterInSessionButton($sessionName, $userInfo, $administratorEmail, $allowEmailEditor = false) + public function getRegisterInSessionButton($sessionName) { - $mailSubject = get_lang('SubscribeToSession') . " '$sessionName'"; + $sessionName = urlencode($sessionName); - $mailMessage = sprintf(get_lang('PleaseSubscribeMeToSessionX'), $sessionName) . PHP_EOL . PHP_EOL; - $mailMessage.= get_lang('ContactInformation') . PHP_EOL; - $mailMessage.= sprintf(get_lang('NameX'), $userInfo['complete_name']) . PHP_EOL; - $mailMessage.= sprintf(get_lang('UsernameX'), $userInfo['username']) . PHP_EOL; - $mailMessage.= sprintf(get_lang('EmailX'), $userInfo['email']) . PHP_EOL; - - if ($allowEmailEditor) { - $mailParams = http_build_query(array( - 'email_title' => $mailSubject, - 'email_text' => $mailMessage - )); - - $url = "mailto:$administratorEmail&$mailParams"; - } else { - $mailParams = http_build_query(array( - 'subject' => $mailSubject, - 'body' => $mailMessage - )); - - $url = "mailto:$administratorEmail?$mailParams"; - } + $url = api_get_path(WEB_PATH) . "main/inc/email_editor.php?action=subscribe_me_to_session&session=$sessionName"; return Display::url(get_lang('Subscribe'), $url, array( - 'class' => 'btn btn-primary clickable_email_link', + 'class' => 'btn btn-primary', )); } diff --git a/main/inc/email_editor.php b/main/inc/email_editor.php index 22dbbd0aa0..81c4bcfb93 100755 --- a/main/inc/email_editor.php +++ b/main/inc/email_editor.php @@ -27,6 +27,8 @@ if (empty($_SESSION['origin_url'])) { Session::write('origin_url',$origin_url); } +$action = isset($_GET['action']) ? $_GET['action'] : null; + $form = new FormValidator('email_editor', 'post'); $form->addElement('hidden', 'dest'); $form->addElement('text', 'email_address', get_lang('EmailDestination')); @@ -40,11 +42,30 @@ $form->addRule('email_text', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('email_address', get_lang('EmailWrong'), 'email'); $form->addElement('button', 'submit', get_lang('SendMail')); + +switch ($action) { + case 'subscribe_me_to_session': + $sessionName = isset($_GET['session']) ? Security::remove_XSS($_GET['session']) : null; + + $objTemplate = new Template(); + $objTemplate->assign('session_name', $sessionName); + $objTemplate->assign('user', api_get_user_info()); + $mailTemplate = $objTemplate->get_template('mail/subscribe_me_to_session.tpl'); + + $emailDest = api_get_setting('emailAdministrator'); + $emailTitle = get_lang('SubscribeToSession'); + $emailText = $objTemplate->fetch($mailTemplate); + break; + default: + $emailDest = Security::remove_XSS($_REQUEST['dest']); + $emailTitle = Security::remove_XSS($_REQUEST['email_title']); + $emailText = Security::remove_XSS($_REQUEST['email_text']); +} -$defaults = array( 'dest' => Security::remove_XSS($_REQUEST['dest']), - 'email_address' => Security::remove_XSS($_REQUEST['dest']), - 'email_title' => Security::remove_XSS($_REQUEST['email_title']), - 'email_text' => Security::remove_XSS($_REQUEST['email_text']) +$defaults = array( 'dest' => $emailDest, + 'email_address' => $emailDest, + 'email_title' => $emailTitle, + 'email_text' => $emailText ); $form->setDefaults($defaults); diff --git a/main/template/default/mail/subscribe_me_to_session.tpl b/main/template/default/mail/subscribe_me_to_session.tpl new file mode 100644 index 0000000000..dd11e161ff --- /dev/null +++ b/main/template/default/mail/subscribe_me_to_session.tpl @@ -0,0 +1,6 @@ +{{ 'PleaseSubscribeMeToSession' | get_lang }}: {{ session_name }} + +{{ 'ContactInformation' | get_lang }}: +{{ 'Name' | get_lang }}: {{ user.complete_name }} +{{ 'Username' | get_lang }}: {{ user.username }} +{{ 'Email' | get_lang }}: {{ user.email }}