Learning path - Improve script cron to remind lp progress - refs BT#19569

pull/4136/head
Christian 4 years ago
parent 02831b21d1
commit 4fe265ea0e
  1. 69
      main/cron/lp_progress_reminder.php
  2. 10
      main/template/default/mail/lp_progress_reminder_body.tpl
  3. 2
      main/template/default/mail/lp_progress_reminder_subject.tpl

@ -36,7 +36,8 @@ function sendMessage(
$lpProgress, $lpProgress,
$registrationDate, $registrationDate,
$nbRemind $nbRemind
) { )
{
$subjectTemplate = new Template( $subjectTemplate = new Template(
null, null,
false, false,
@ -48,8 +49,10 @@ function sendMessage(
$courseInfo = api_get_course_info_by_id($courseId); $courseInfo = api_get_course_info_by_id($courseId);
$courseName = $courseInfo['title']; $courseName = $courseInfo['title'];
$subjectTemplate->assign('nbRemind', $nbRemind); $userInfo = api_get_user_info($toUserId);
$subjectTemplate->assign('courseName', $courseName); $language = $userInfo['language'];
$subjectTemplate->assign('RemindXLpCourseX', sprintf(getUserLang('RemindXLpCourseX', $language), $nbRemind, $courseName));
$subjectLayout = $subjectTemplate->get_template( $subjectLayout = $subjectTemplate->get_template(
'mail/lp_progress_reminder_subject.tpl' 'mail/lp_progress_reminder_subject.tpl'
@ -64,49 +67,67 @@ function sendMessage(
false false
); );
$userInfo = api_get_user_info($toUserId);
$userFullName = api_get_person_name($userInfo['firstname'], $userInfo['lastname']);
$teachersListString = ''; $teachersListString = '';
$teachers = CourseManager::getTeachersFromCourse($courseId); $teachers = CourseManager::getTeachersFromCourse($courseId);
if (!empty($teachers)) { if (!empty($teachers)) {
$teachersList = []; $teachersList = [];
foreach ($teachers as $value) { foreach ($teachers as $value) {
$teachersList[] = api_get_person_name( $teacherName = api_get_person_name($value['firstname'], $value['lastname']);
$value['firstname'], $teachersList[] = strtoupper($teacherName).': '.$value['email'];
$value['lastname'],
null,
PERSON_NAME_EMAIL_ADDRESS
);
} }
$teachersListString = implode('<br/>', $teachersList); $teachersListString = implode('<br/>', $teachersList);
} }
$bodyTemplate->assign('courseName', $courseName); $userFullName = api_get_person_name($userInfo['firstname'], $userInfo['lastname']);
$bodyTemplate->assign('userFullName', $userFullName); $urlChamilo = api_get_path(WEB_CODE_PATH);
$bodyTemplate->assign('username', $userInfo['username']); $urlLostPw = api_get_path(WEB_CODE_PATH).'auth/lostPassword.php';
$bodyTemplate->assign('lpProgress', $lpProgress); $logoPortal = return_logo();
$bodyTemplate->assign('registerDate', $registrationDate); $bodyTemplate->assign('HelloX', sprintf(getUserLang('HelloX', $language), $userFullName));
$bodyTemplate->assign('trainers', $teachersListString); $bodyTemplate->assign('YouAreRegCourseXFromDateX', sprintf(getUserLang('YouAreRegCourseXFromDateX', $language), $courseName, $registrationDate));
$bodyTemplate->assign('urlChamilo', api_get_path(WEB_PATH)); $bodyTemplate->assign('ThisMessageIsAboutX', sprintf(getUserLang('ThisMessageIsAboutX', $language), $lpProgress));
$bodyTemplate->assign('urlLostPw', api_get_path(WEB_CODE_PATH).'auth/lostPassword.php'); $bodyTemplate->assign('StepsToRemindX', sprintf(getUserLang('StepsToRemindX', $language), $urlChamilo, $userInfo['username'], $urlLostPw));
$bodyTemplate->assign('logoPortal', ''); $bodyTemplate->assign('LpRemindFooterX', sprintf(getUserLang('LpRemindFooterX', $language), $logoPortal, $teachersListString));
$bodyLayout = $bodyTemplate->get_template( $bodyLayout = $bodyTemplate->get_template(
'mail/lp_progress_reminder_body.tpl' 'mail/lp_progress_reminder_body.tpl'
); );
$tittle = $subjectTemplate->fetch($subjectLayout);
$title = $subjectTemplate->fetch($subjectLayout);
$content = $bodyTemplate->fetch($bodyLayout); $content = $bodyTemplate->fetch($bodyLayout);
return MessageManager::send_message_simple( return MessageManager::send_message_simple(
$toUserId, $toUserId,
$tittle, $title,
$content, $content,
1, 1,
true true
); );
} }
/**
* Returns a translated (localized) string by user language.
*
* @param $variable
* @param $language
*
* @return mixed
*/
function getUserLang($variable, $language)
{
$languageFilesToLoad = api_get_language_files_to_load($language);
foreach ($languageFilesToLoad as $languageFile) {
include $languageFile;
}
$translate = $variable;
if (isset($$variable)) {
$langVariable = $$variable;
$translate = $langVariable;
}
return $translate;
}
/** /**
* Number of reminder checking the frequency from NUMBER_OF_DAYS_TO_RESEND_NOTIFICATION. * Number of reminder checking the frequency from NUMBER_OF_DAYS_TO_RESEND_NOTIFICATION.
* *
@ -200,7 +221,7 @@ function notifyUsersForCheckingLpCompletion()
if (!empty($sessionCourseUsers)) { if (!empty($sessionCourseUsers)) {
foreach ($sessionCourseUsers as $user) { foreach ($sessionCourseUsers as $user) {
$toUserId = $user['user_id']; $toUserId = $user['user_id'];
$lpProgress = $user['progress']; $lpProgress = (int) $user['progress'];
$nbDaysForLpCompletion = $lpItems[$user['lp_id']]; $nbDaysForLpCompletion = $lpItems[$user['lp_id']];
$registrationDate = getUserCourseRegistrationAt($courseId, $toUserId, $user['session_id']); $registrationDate = getUserCourseRegistrationAt($courseId, $toUserId, $user['session_id']);
$notify = isTimeToRemindUser($registrationDate, $nbDaysForLpCompletion); $notify = isTimeToRemindUser($registrationDate, $nbDaysForLpCompletion);

@ -1,16 +1,16 @@
<p> <p>
{{'HelloX'|get_lang|format(userFullName)}} {{HelloX}}
</p> </p>
<p> <p>
{{'YouAreRegCourseXFromDateX'|get_lang|format(courseName,registerDate)}}<br /> {{YouAreRegCourseXFromDateX}}<br />
{{'ThisMessageIsAboutX'|get_lang|format(lpProgress)}} {{ThisMessageIsAboutX}}
</p> </p>
<p> <p>
{{'StepsToRemindX'|get_lang|format(urlChamilo,username,urlLostPw)}} {{StepsToRemindX}}
</p> </p>
<p> <p>
{{'LpRemindFooterX'|get_lang|format(logoPortal, trainers)}} {{LpRemindFooterX}}
</p> </p>

@ -1 +1 @@
{{'RemindXLpCourseX'|get_lang|format(nbRemind,courseName)}} {{RemindXLpCourseX}}
Loading…
Cancel
Save