/** * load the current message from the data base */ public function load() { $tableName = get_module_main_tbl(array('im_message', 'im_message_status', 'user', 'im_recipient')); $messageSQL = "SELECT U.nom AS lastName, U.prenom AS firstName, M.message_id, M.sender, M.subject, \n" . "M.message, M.send_time, R.is_read, R.is_deleted, R.user_id , M.course, M.group, M.tools, \n" . "RE.sent_to" . " FROM `" . $tableName['im_message'] . "` as M \n" . " LEFT JOIN `" . $tableName['im_message_status'] . "` as R ON M.message_id = R.message_id\n" . " LEFT JOIN `" . $tableName['user'] . "` AS U ON M.sender = U.user_id\n" . " LEFT JOIN `" . $tableName['im_recipient'] . "` AS RE ON M.message_id = RE.message_id\n" . " WHERE R.user_id = " . (int) $this->userId . "\n" . " AND M.message_id = " . (int) $this->messageId . "\n"; $this->setFromArray(claro_sql_query_fetch_single_row($messageSQL)); }
protected function mergeCourseUsers($uidToRemove, $uidToKeep, $courseId) { $courseTbl = claro_sql_get_course_tbl(claro_get_course_db_name_glued($courseId)); // Get groups for the user to remove $sql = "SELECT team\n FROM `{$courseTbl['group_rel_team_user']}`\n WHERE user= "******"\n SELECT user, team, role, status\n FROM `{$courseTbl['group_rel_team_user']}`\n WHERE user = "******"\n AND team = " . (int) $thisTeam); $toRemove_team_entry = claro_sql_query_fetch_single_row("\n SELECT user, team, role, status\n FROM `{$courseTbl['group_rel_team_user']}`\n WHERE user = "******"\n AND team = " . (int) $thisTeam); if ($toKeep_team_entry) { $status = $toKeep_team_entry['status'] > $toRemove_team_entry['status'] ? null : $toRemove_team_entry['status']; $role = empty($toKeep_team_entry['role']) ? $toRemove_team_entry['role'] : null; if (!is_null($role) || !is_null($status)) { if (!claro_sql_query("UPDATE `{$courseTbl['group_rel_team_user']}`\n SET role = '" . $role . "',\n status = " . $status . "\n WHERE user = "******"\n AND team = " . (int) $thisTeam)) { Console::error("Cannot update user group status for +{$uidToKeep} in group_rel_team_user in {$courseId}:{$thisTeam}"); $this->hasError = true; } } if (!claro_sql_query("DELETE FROM `{$courseTbl['group_rel_team_user']}`\n WHERE user = "******"\n AND team = " . (int) $thisTeam)) { Console::error("Cannot delete user -{$uidToRemove} in group_rel_team_user in {$courseId}:{$thisTeam}"); $this->hasError = true; } } else { if (!claro_sql_query("UPDATE `{$courseTbl['group_rel_team_user']}`\n SET user = "******"\n WHERE user = "******"\n AND team = " . (int) $thisTeam)) { Console::error("Cannot replace -{$uidToRemove} with +{$uidToKeep} in group_rel_team_user {$courseId}:{$thisTeam}"); $this->hasError = true; } } } // Update tracking $sql = "UPDATE `{$courseTbl['tracking_event']}`\n SET user_id = " . (int) $uidToKeep . "\n WHERE user_id = " . (int) $uidToRemove; if (!claro_sql_query($sql)) { Console::error("Cannot replace -{$uidToRemove} with +{$uidToKeep} in tracking_event in course {$courseId}"); $this->hasError = true; } $qwz_tbl_names = get_module_course_tbl(array('qwz_tracking'), $courseId); $sql = "UPDATE `{$qwz_tbl_names['qwz_tracking']}`\n SET user_id = " . (int) $uidToKeep . "\n WHERE user_id = " . (int) $uidToRemove; if (!claro_sql_query($sql)) { Console::error("Cannot replace -{$uidToRemove} with +{$uidToKeep} in qwz_tracking in {$courseId}"); $this->hasError = true; } // Update user info in course $sql = "DELETE FROM `{$courseTbl['userinfo_content']}`\n WHERE user_id = " . (int) $uidToRemove; if (!claro_sql_query($sql)) { Console::error("Cannot remove user info for user -{$uidToRemove} in {$courseId}"); $this->hasError = true; } }
} $dataText = $dataBeginText . $totalTime; $sql = "UPDATE `" . $TABLETRACKINGEVENT . "`\n SET `date` = '" . claro_sql_escape($currentDate) . "',\n `data` = '" . claro_sql_escape($dataText) . "'\n WHERE `id` = " . claro_sql_escape((int) $moduleStart['id']); claro_sql_query($sql); } else { $trackingTime = $timeSpentOnDoc; $dataText = $dataBeginText . $timeSpentOnDoc; $sql = "INSERT INTO `" . $TABLETRACKINGEVENT . "`\n ( `course_code`, `user_id`, `date`, `type`, `data` )\n VALUES ( '" . claro_sql_escape(claro_get_current_course_id()) . "', " . claro_sql_escape((int) claro_get_current_user_id()) . ", '" . claro_sql_escape($currentDate) . "', 'document_start', '" . claro_sql_escape($dataText) . "' )"; claro_sql_query($sql); } } else { $trackingTime = $timeSpentOnDoc; } // Get total time spent on the module $sql = "SELECT `user_module_progress_id`, `total_time`\n FROM `" . $TABLEUSERMODULEPROGRESS . "`\n WHERE `user_id` = " . (int) claro_get_current_user_id() . "\n AND `learnPath_module_id` = " . (int) $learnPathModuleId; $progressRow = claro_sql_query_fetch_single_row($sql); $currentTime = $progressRow['total_time']; $currentTimeTab = explode(':', $currentTime); $currentTimeSecTab = explode(',', $currentTimeTab[2]); $currentTimeInSec = $currentTimeTab[0] * 3600 + $currentTimeTab[1] * 60 + $currentTimeSecTab[0]; if ((int) $currentTimeInSec == 0) { $updateTime = $trackingTime; } elseif (get_conf('cllnp_documentDefaultTimeOnce')) { $updateTime = $progressRow['total_time']; $trackingTime = '0000:00:00'; } else { $trackingTimeTab = explode(':', $trackingTime); $trackingTimeInSec = $trackingTimeTab[0] * 3600 + $trackingTimeTab[1] * 60 + $trackingTimeTab[2]; $updateTimeInSec = $currentTimeInSec + $trackingTimeInSec; $updateTimeInHour = (int) ($updateTimeInSec / 3600); $updateTimeInSec %= 3600;
function getModuleProgression($user_id = 0, $learnPath_id = 0, $learnPath_module_id = 0) { if (empty($user_id) || empty($learnPath_module_id) || empty($learnPath_id)) { return false; } $courseTableList = get_module_course_tbl(array('lp_user_module_progress')); $sql = 'SELECT * ' . ' FROM `' . $courseTableList['lp_user_module_progress'] . '`' . ' WHERE learnPath_module_id = ' . (int) $learnPath_module_id . ' AND learnPath_id = ' . (int) $learnPath_id . ' AND user_id = ' . (int) $user_id; return claro_sql_query_fetch_single_row($sql); }
/** * @see StoredMessage */ public function load() { $tableName = get_module_main_tbl(array('im_message')); $readDataSQL = "SELECT M.message_id, M.sender, M.subject, M.message, M.send_time\n" . " FROM `" . $tableName['im_message'] . "` AS M\n" . " WHERE message_id = " . (int) $this->messageId; $this->setFromArray(claro_sql_query_fetch_single_row($readDataSQL)); }