SendMailWhenLpIsPublish: Added sender id to message. Added informative result message - refs BT#18214

pull/3743/head
Carlos Alvarado 5 years ago
parent 62b9f17bf0
commit f3c7f7001b
No known key found for this signature in database
GPG Key ID: B612DB1EE6658FBB
  1. 87
      main/cron/learning_path_reminder.php

@ -148,6 +148,47 @@ function getLpIdWithNotify()
return $return; return $return;
} }
function getTutorIdFromCourseRelUser($cId = 0, $lpId=0){
$lpTable = Database::get_course_table(TABLE_LP_MAIN);
$tblCourseRelUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "
SELECT DISTINCT
tblCourseRelUser.user_id AS user_id
FROM
$lpTable AS tblLp
INNER JOIN $tblCourseRelUser AS tblCourseRelUser ON ( tblCourseRelUser.c_id = tblLp.c_id)
WHERE
tblCourseRelUser.user_id IS NOT NULL AND
tblCourseRelUser.status = 1 AND
tblLp.id = $lpId AND
tblLp.c_id = $cId";
$result = Database::query($sql);
$data = Database::fetch_assoc($result);
foreach ($data as $usersId){
return (int) $usersId;
}
return 0;
}
function SendToArray(&$data, &$type, &$message, $lpId = 0){
foreach ($data as $user) {
$userName = $user['userInfo']['complete_name'];
$userId = $user['userInfo']['user_id'];
$fromUser = $user['fromUser'];
$courseName = $user['courseName'];
$lpName = $user['lpName'];
$send =SendMessage(
$user['userInfo'],
$fromUser,
$courseName,
$lpName,
$user['link']
);
$sendit[$type][$userId][$fromUser][$courseName][$lpName] = $send;
$message.= "\n$type - Lp Id '$lpId' User Id '$userId' Sent to '$userName' Message id '$send' Lp name '$lpName'";
}
}
/** /**
* @return null * @return null
@ -158,6 +199,7 @@ function LearningPaths()
if (count($lpItems) == 0) { if (count($lpItems) == 0) {
return null; return null;
} }
$tutors = [];
$lpItemsString = implode(',', $lpItems); $lpItemsString = implode(',', $lpItems);
$lpsData = getLpDataByArrayId($lpItems); $lpsData = getLpDataByArrayId($lpItems);
$date = new DateTime(); $date = new DateTime();
@ -304,11 +346,14 @@ function LearningPaths()
if (isset($lpsData[$lpId])) { if (isset($lpsData[$lpId])) {
$lpData = $lpsData[$lpId]; $lpData = $lpsData[$lpId];
} }
if (!isset($tutors[$row['c_id']][$row['lp_id']])) {
$tutors[$row['c_id']][$row['lp_id']] = getTutorIdFromCourseRelUser($row['c_id'],$row['lp_id']);
}
$courseName = isset($lpData['course_name']) ? $lpData['course_name'] : null; $courseName = isset($lpData['course_name']) ? $lpData['course_name'] : null;
$courseCode = isset($lpData['code']) ? $lpData['code'] : null; $courseCode = isset($lpData['code']) ? $lpData['code'] : null;
$lpName = isset($lpData['name']) ? $lpData['name'] : null; $lpName = isset($lpData['name']) ? $lpData['name'] : null;
$toUser = (int) $row['user_id']; $toUser = (int) $row['user_id'];
$fromUser = (int) 0; $fromUser = $tutors[$row['c_id']][$row['lp_id']];
$userInfo = api_get_user_info($toUser); $userInfo = api_get_user_info($toUser);
$href = api_get_path(WEB_CODE_PATH). $href = api_get_path(WEB_CODE_PATH).
'lp/lp_controller.php?cidReq='.htmlspecialchars($courseCode). 'lp/lp_controller.php?cidReq='.htmlspecialchars($courseCode).
@ -322,7 +367,7 @@ function LearningPaths()
'lpName' => $lpName, 'lpName' => $lpName,
'link' => $link, 'link' => $link,
]; ];
$itemProcessed[$lpId][$sessionId]['Normal'][$toUser] = $groupUsers[$lpId][$sessionId][$toUser]; $itemProcessed[$lpId][$sessionId]['NoLpSubscription'][$toUser] = $groupUsers[$lpId][$sessionId][$toUser];
} }
} }
/** Get the users who are registered in the sessions */ /** Get the users who are registered in the sessions */
@ -358,7 +403,10 @@ function LearningPaths()
$courseCode = isset($lpData['code']) ? $lpData['code'] : null; $courseCode = isset($lpData['code']) ? $lpData['code'] : null;
$lpName = isset($lpData['name']) ? $lpData['name'] : null; $lpName = isset($lpData['name']) ? $lpData['name'] : null;
$toUser = (int) $row['user_id']; $toUser = (int) $row['user_id'];
$fromUser = (int) 0; if (!isset($tutors[$row['c_id']][$row['lp_id']])) {
$tutors[$row['c_id']][$row['lp_id']] = getTutorIdFromCourseRelUser($row['c_id'],$row['lp_id']);
}
$fromUser = $tutors[$row['c_id']][$row['lp_id']];
$userInfo = api_get_user_info($toUser); $userInfo = api_get_user_info($toUser);
$href = api_get_path(WEB_CODE_PATH). $href = api_get_path(WEB_CODE_PATH).
'lp/lp_controller.php?cidReq='.htmlspecialchars($courseCode). 'lp/lp_controller.php?cidReq='.htmlspecialchars($courseCode).
@ -372,7 +420,7 @@ function LearningPaths()
'lpName' => $lpName, 'lpName' => $lpName,
'link' => $link, 'link' => $link,
]; ];
$itemProcessed[$lpId][$sessionId]['Normal'][$toUser] = $groupUsers[$lpId][$sessionId][$toUser]; $itemProcessed[$lpId][$sessionId]['NoLpSubscription'][$toUser] = $groupUsers[$lpId][$sessionId][$toUser];
} }
} }
$sendit = []; $sendit = [];
@ -381,44 +429,21 @@ function LearningPaths()
* Send the emails to the corresponding students and their DRHs, Bearing in mind that if they exist through * Send the emails to the corresponding students and their DRHs, Bearing in mind that if they exist through
* LearnpathSubscription, it will not send anything in the other elements. * LearnpathSubscription, it will not send anything in the other elements.
*/ */
$message = '';
foreach ($itemProcessed as $lpId => $sessions) { foreach ($itemProcessed as $lpId => $sessions) {
foreach ($sessions as $sessionId => $types) { foreach ($sessions as $sessionId => $types) {
foreach ($types as $type => $users) { foreach ($types as $type => $users) {
if ('LearnpathSubscription' == $type) { if ('LearnpathSubscription' == $type) {
foreach ($users as $user) { SendToArray($users,$type, $message, $lpId);
$userId = $user['userInfo']['user_id'];
$fromUser = $user['fromUser'];
$courseName = $user['courseName'];
$lpName = $user['lpName'];
$sendit['LearnpathSubscription'][$userId][$fromUser][$courseName][$lpName] = SendMessage(
$user['userInfo'],
$fromUser,
$courseName,
$lpName,
$user['link']
);
}
} else { } else {
if (!isset($itemProcessed[$lpId][$sessionId]['LearnpathSubscription'])) { if (!isset($itemProcessed[$lpId][$sessionId]['LearnpathSubscription'])) {
if ('LearnpathSubscription' == $type) { SendToArray($users,$type, $message, $lpId);
$userId = $user['userInfo']['user_id'];
$fromUser = $user['fromUser'];
$courseName = $user['courseName'];
$lpName = $user['lpName'];
$sendit['Normal'][$userId][$fromUser][$courseName][$lpName] = SendMessage(
$user['userInfo'],
$fromUser,
$courseName,
$lpName,
$user['link']
);
}
} }
} }
} }
} }
} }
echo "\nReturn\n\n".var_export($sendit, true)."\n"; echo "$message\n\n";
} }
LearningPaths(); LearningPaths();

Loading…
Cancel
Save