Change the way how to send email to subscribe to session - refs #7275

1.9.x
Angel Fernando Quiroz Campos 11 years ago
parent ef1a2ae051
commit dcbb48bce3
  1. 7
      main/auth/courses.php
  2. 31
      main/auth/courses_controller.php
  3. 29
      main/inc/email_editor.php
  4. 6
      main/template/default/mail/subscribe_me_to_session.tpl

@ -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'])
);
}

@ -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',
));
}

@ -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);

@ -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 }}
Loading…
Cancel
Save