| @@ 67-84 (lines=18) @@ | ||
| 64 | * |
|
| 65 | * @return array |
|
| 66 | */ |
|
| 67 | public function getUserAcceptedLegal($userId, $courseId, $sessionId) |
|
| 68 | { |
|
| 69 | $userId = intval($userId); |
|
| 70 | $courseId = intval($courseId); |
|
| 71 | $sessionId = intval($sessionId); |
|
| 72 | ||
| 73 | $table = Database::get_main_table('session_rel_course_rel_user_legal'); |
|
| 74 | $sql = "SELECT * |
|
| 75 | FROM $table |
|
| 76 | WHERE user_id = $userId AND c_id = $courseId AND session_id = $sessionId"; |
|
| 77 | $result = Database::query($sql); |
|
| 78 | $data = array(); |
|
| 79 | if (Database::num_rows($result) > 0) { |
|
| 80 | $data = Database::fetch_array($result, 'ASSOC'); |
|
| 81 | } |
|
| 82 | ||
| 83 | return $data; |
|
| 84 | } |
|
| 85 | ||
| 86 | /** |
|
| 87 | * @param int $userId |
|
| @@ 151-176 (lines=26) @@ | ||
| 148 | * @param int $ref_id representative id inside one tool item |
|
| 149 | * @return array |
|
| 150 | */ |
|
| 151 | function get_specific_field_values_list_by_prefix( |
|
| 152 | $prefix, |
|
| 153 | $course_code, |
|
| 154 | $tool_id, |
|
| 155 | $ref_id |
|
| 156 | ) { |
|
| 157 | $table_sf = Database:: get_main_table(TABLE_MAIN_SPECIFIC_FIELD); |
|
| 158 | $table_sfv = Database:: get_main_table(TABLE_MAIN_SPECIFIC_FIELD_VALUES); |
|
| 159 | $sql = 'SELECT sfv.value FROM %s sf LEFT JOIN %s sfv ON sf.id = sfv.field_id'. |
|
| 160 | ' WHERE sf.code = \'%s\' AND sfv.c_id = \'%s\' AND tool_id = \'%s\' AND sfv.ref_id = %s'; |
|
| 161 | $sql = sprintf( |
|
| 162 | $sql, |
|
| 163 | $table_sf, |
|
| 164 | $table_sfv, |
|
| 165 | $prefix, |
|
| 166 | $course_code, |
|
| 167 | $tool_id, |
|
| 168 | $ref_id |
|
| 169 | ); |
|
| 170 | $sql_result = Database::query($sql); |
|
| 171 | while ($result = Database::fetch_array($sql_result)) { |
|
| 172 | $return_array[] = $result; |
|
| 173 | } |
|
| 174 | ||
| 175 | return $return_array; |
|
| 176 | } |
|
| 177 | ||
| 178 | /** |
|
| 179 | * Add a specific field value |
|
| @@ 259-274 (lines=16) @@ | ||
| 256 | * @param int $attendance_id |
|
| 257 | * @return array attendance data |
|
| 258 | */ |
|
| 259 | public function get_attendance_by_id($attendance_id) |
|
| 260 | { |
|
| 261 | $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE); |
|
| 262 | $attendance_id = intval($attendance_id); |
|
| 263 | $course_id = api_get_course_int_id(); |
|
| 264 | $attendance_data = array(); |
|
| 265 | $sql = "SELECT * FROM $tbl_attendance |
|
| 266 | WHERE c_id = $course_id AND id = '$attendance_id'"; |
|
| 267 | $res = Database::query($sql); |
|
| 268 | if (Database::num_rows($res) > 0) { |
|
| 269 | while ($row = Database::fetch_array($res)) { |
|
| 270 | $attendance_data = $row; |
|
| 271 | } |
|
| 272 | } |
|
| 273 | return $attendance_data; |
|
| 274 | } |
|
| 275 | ||
| 276 | /** |
|
| 277 | * Add attendances sheet inside table. This is the *list of* dates, not |
|
| @@ 1202-1222 (lines=21) @@ | ||
| 1199 | * @param int attendance id |
|
| 1200 | * @return int attendance calendar id |
|
| 1201 | */ |
|
| 1202 | public function get_next_attendance_calendar_id($attendance_id) |
|
| 1203 | { |
|
| 1204 | $tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
| 1205 | $attendance_id = intval($attendance_id); |
|
| 1206 | $course_id = api_get_course_int_id(); |
|
| 1207 | ||
| 1208 | $sql = "SELECT id FROM $tbl_attendance_calendar |
|
| 1209 | WHERE |
|
| 1210 | c_id = $course_id AND |
|
| 1211 | attendance_id = '$attendance_id' AND |
|
| 1212 | done_attendance = 0 |
|
| 1213 | ORDER BY date_time |
|
| 1214 | LIMIT 1"; |
|
| 1215 | $rs = Database::query($sql); |
|
| 1216 | $next_calendar_id = 0; |
|
| 1217 | if (Database::num_rows($rs) > 0) { |
|
| 1218 | $row = Database::fetch_array($rs); |
|
| 1219 | $next_calendar_id = $row['id']; |
|
| 1220 | } |
|
| 1221 | ||
| 1222 | return $next_calendar_id; |
|
| 1223 | } |
|
| 1224 | ||
| 1225 | /** |
|
| @@ 1230-1250 (lines=21) @@ | ||
| 1227 | * @param int attendance id |
|
| 1228 | * @return int UNIX time format datetime |
|
| 1229 | */ |
|
| 1230 | public function get_next_attendance_calendar_datetime($attendance_id) |
|
| 1231 | { |
|
| 1232 | $tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
| 1233 | $course_id = api_get_course_int_id(); |
|
| 1234 | $attendance_id = intval($attendance_id); |
|
| 1235 | $sql = "SELECT id, date_time FROM $tbl_attendance_calendar |
|
| 1236 | WHERE |
|
| 1237 | c_id = $course_id AND |
|
| 1238 | attendance_id = '$attendance_id' AND |
|
| 1239 | done_attendance = 0 |
|
| 1240 | ORDER BY date_time |
|
| 1241 | LIMIT 1"; |
|
| 1242 | $rs = Database::query($sql); |
|
| 1243 | $next_calendar_datetime = 0; |
|
| 1244 | if (Database::num_rows($rs) > 0) { |
|
| 1245 | $row = Database::fetch_array($rs); |
|
| 1246 | $next_calendar_datetime = api_get_local_time($row['date_time']); |
|
| 1247 | } |
|
| 1248 | ||
| 1249 | return $next_calendar_datetime; |
|
| 1250 | } |
|
| 1251 | ||
| 1252 | /** |
|
| 1253 | * Get user' score from current attendance |
|
| @@ 1305-1322 (lines=18) @@ | ||
| 1302 | * @param int attendance calendar id |
|
| 1303 | * @return array attendance calendar data |
|
| 1304 | */ |
|
| 1305 | public function get_attendance_calendar_by_id($calendar_id) |
|
| 1306 | { |
|
| 1307 | $tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
| 1308 | $calendar_id = intval($calendar_id); |
|
| 1309 | $course_id = api_get_course_int_id(); |
|
| 1310 | $sql = "SELECT * FROM $tbl_attendance_calendar |
|
| 1311 | WHERE c_id = $course_id AND id = '$calendar_id' "; |
|
| 1312 | $rs = Database::query($sql); |
|
| 1313 | $data = array(); |
|
| 1314 | if (Database::num_rows($rs) > 0) { |
|
| 1315 | while ($row = Database::fetch_array($rs)) { |
|
| 1316 | $row['date_time'] = api_get_local_time($row['date_time']); |
|
| 1317 | $data = $row; |
|
| 1318 | } |
|
| 1319 | } |
|
| 1320 | ||
| 1321 | return $data; |
|
| 1322 | } |
|
| 1323 | ||
| 1324 | /** |
|
| 1325 | * Get all attendance calendar data inside current attendance |
|
| @@ 1516-1532 (lines=17) @@ | ||
| 1513 | * @param int $attendance_id |
|
| 1514 | * @return int count of dates |
|
| 1515 | */ |
|
| 1516 | public static function get_count_dates_inside_attendance_calendar($attendance_id) |
|
| 1517 | { |
|
| 1518 | $tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
| 1519 | $attendance_id = intval($attendance_id); |
|
| 1520 | $course_id = api_get_course_int_id(); |
|
| 1521 | $sql = "SELECT count(id) FROM $tbl_attendance_calendar |
|
| 1522 | WHERE |
|
| 1523 | c_id = $course_id AND |
|
| 1524 | attendance_id = '$attendance_id'"; |
|
| 1525 | $rs = Database::query($sql); |
|
| 1526 | $count = 0; |
|
| 1527 | if (Database::num_rows($rs) > 0) { |
|
| 1528 | $row = Database::fetch_row($rs); |
|
| 1529 | $count = $row[0]; |
|
| 1530 | } |
|
| 1531 | return $count; |
|
| 1532 | } |
|
| 1533 | ||
| 1534 | /** |
|
| 1535 | * check if all calendar of an attendance is done |
|
| @@ 24-41 (lines=18) @@ | ||
| 21 | * @author Isaac Flores <[email protected]> |
|
| 22 | * @return array Contain glossary terms |
|
| 23 | */ |
|
| 24 | public static function get_glossary_terms() |
|
| 25 | { |
|
| 26 | $glossary_data = array(); |
|
| 27 | $glossary_table = Database::get_course_table(TABLE_GLOSSARY); |
|
| 28 | $session_id = api_get_session_id(); |
|
| 29 | $sql_filter = api_get_session_condition($session_id); |
|
| 30 | $course_id = api_get_course_int_id(); |
|
| 31 | ||
| 32 | $sql = "SELECT glossary_id as id, name, description |
|
| 33 | FROM $glossary_table |
|
| 34 | WHERE c_id = $course_id $sql_filter"; |
|
| 35 | $rs = Database::query($sql); |
|
| 36 | while ($row = Database::fetch_array($rs)) { |
|
| 37 | $glossary_data[] = $row; |
|
| 38 | } |
|
| 39 | ||
| 40 | return $glossary_data; |
|
| 41 | } |
|
| 42 | ||
| 43 | /** |
|
| 44 | * Get glossary term by glossary id |
|
| @@ 1501-1528 (lines=28) @@ | ||
| 1498 | * |
|
| 1499 | * @return array |
|
| 1500 | */ |
|
| 1501 | public static function getLatestHotPotatoResult( |
|
| 1502 | $exercisePath, |
|
| 1503 | $userId, |
|
| 1504 | $courseId, |
|
| 1505 | $sessionId |
|
| 1506 | ) |
|
| 1507 | { |
|
| 1508 | $table = Database:: get_main_table( |
|
| 1509 | TABLE_STATISTIC_TRACK_E_HOTPOTATOES |
|
| 1510 | ); |
|
| 1511 | ||
| 1512 | $courseInfo = api_get_course_info_by_id($courseId); |
|
| 1513 | $exercisePath = Database::escape_string($exercisePath); |
|
| 1514 | $userId = intval($userId); |
|
| 1515 | ||
| 1516 | $sql = "SELECT * FROM $table |
|
| 1517 | WHERE |
|
| 1518 | c_id = $courseId AND |
|
| 1519 | exe_name LIKE '$exercisePath%' AND |
|
| 1520 | exe_user_id = $userId |
|
| 1521 | ORDER BY id |
|
| 1522 | LIMIT 1"; |
|
| 1523 | $result = Database::query($sql); |
|
| 1524 | $attempt = array(); |
|
| 1525 | if (Database::num_rows($result)) { |
|
| 1526 | $attempt = Database::fetch_array($result, 'ASSOC'); |
|
| 1527 | } |
|
| 1528 | return $attempt; |
|
| 1529 | } |
|
| 1530 | ||
| 1531 | /** |
|
| @@ 1104-1124 (lines=21) @@ | ||
| 1101 | * @param int $group_id iid |
|
| 1102 | * @return array |
|
| 1103 | */ |
|
| 1104 | public static function getTutors($group_id) |
|
| 1105 | { |
|
| 1106 | $groupTable = Database :: get_course_table(TABLE_GROUP); |
|
| 1107 | $tutor_user_table = Database :: get_course_table(TABLE_GROUP_TUTOR); |
|
| 1108 | $course_id = api_get_course_int_id(); |
|
| 1109 | $group_id = intval($group_id); |
|
| 1110 | ||
| 1111 | $sql = "SELECT user_id |
|
| 1112 | FROM $tutor_user_table gu |
|
| 1113 | INNER JOIN $groupTable g |
|
| 1114 | ON (gu.group_id = g.id and g.c_id = gu.c_id) |
|
| 1115 | WHERE gu.c_id = $course_id AND g.id = $group_id"; |
|
| 1116 | $res = Database::query($sql); |
|
| 1117 | ||
| 1118 | $users = array(); |
|
| 1119 | while ($obj = Database::fetch_object($res)) { |
|
| 1120 | $users[] = api_get_user_info($obj->user_id); |
|
| 1121 | } |
|
| 1122 | ||
| 1123 | return $users; |
|
| 1124 | } |
|
| 1125 | ||
| 1126 | /** |
|
| 1127 | * Get only students from a group (not tutors) |
|
| @@ 1164-1181 (lines=18) @@ | ||
| 1161 | * @param array $groups list of group ids |
|
| 1162 | * @return array list of user ids |
|
| 1163 | */ |
|
| 1164 | public static function get_groups_users($groups = array()) |
|
| 1165 | { |
|
| 1166 | $result = array(); |
|
| 1167 | $tbl_group_user = Database::get_course_table(TABLE_GROUP_USER); |
|
| 1168 | $course_id = api_get_course_int_id(); |
|
| 1169 | ||
| 1170 | $groups = array_map('intval', $groups); |
|
| 1171 | // protect individual elements with surrounding quotes |
|
| 1172 | $groups = implode(', ', $groups); |
|
| 1173 | $sql = "SELECT DISTINCT user_id |
|
| 1174 | FROM $tbl_group_user gu |
|
| 1175 | WHERE c_id = $course_id AND gu.group_id IN ($groups)"; |
|
| 1176 | $rs = Database::query($sql); |
|
| 1177 | while ($row = Database::fetch_array($rs)) { |
|
| 1178 | $result[] = $row['user_id']; |
|
| 1179 | } |
|
| 1180 | ||
| 1181 | return $result; |
|
| 1182 | } |
|
| 1183 | ||
| 1184 | /** |
|
| @@ 2004-2023 (lines=20) @@ | ||
| 2001 | * @param int $user_id |
|
| 2002 | * @return array |
|
| 2003 | */ |
|
| 2004 | public static function get_user_group_name($user_id) |
|
| 2005 | { |
|
| 2006 | $table_group_user = Database::get_course_table(TABLE_GROUP_USER); |
|
| 2007 | $table_group = Database::get_course_table(TABLE_GROUP); |
|
| 2008 | $user_id = intval($user_id); |
|
| 2009 | $course_id = api_get_course_int_id(); |
|
| 2010 | $sql = "SELECT name |
|
| 2011 | FROM $table_group g |
|
| 2012 | INNER JOIN $table_group_user gu |
|
| 2013 | ON (gu.group_id = g.iid) |
|
| 2014 | WHERE |
|
| 2015 | gu.c_id= $course_id AND |
|
| 2016 | g.c_id= $course_id AND |
|
| 2017 | gu.user_id = $user_id"; |
|
| 2018 | $res = Database::query($sql); |
|
| 2019 | $groups = array(); |
|
| 2020 | while ($group = Database::fetch_array($res)) { |
|
| 2021 | $groups[] .= $group['name']; |
|
| 2022 | } |
|
| 2023 | return $groups; |
|
| 2024 | } |
|
| 2025 | ||
| 2026 | /** |
|
| @@ 5346-5368 (lines=23) @@ | ||
| 5343 | * @param string $endDate |
|
| 5344 | * @return array |
|
| 5345 | */ |
|
| 5346 | public static function getCourseAccessPerCourseAndSession( |
|
| 5347 | $courseId, |
|
| 5348 | $sessionId, |
|
| 5349 | $startDate, |
|
| 5350 | $endDate |
|
| 5351 | ) { |
|
| 5352 | $table = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
| 5353 | $courseId = intval($courseId); |
|
| 5354 | $sessionId = intval($sessionId); |
|
| 5355 | $startDate = Database::escape_string($startDate); |
|
| 5356 | $endDate = Database::escape_string($endDate); |
|
| 5357 | ||
| 5358 | $sql = "SELECT * FROM $table |
|
| 5359 | WHERE |
|
| 5360 | c_id = $courseId AND |
|
| 5361 | session_id = $sessionId AND |
|
| 5362 | login_course_date BETWEEN '$startDate' AND '$endDate' |
|
| 5363 | "; |
|
| 5364 | ||
| 5365 | $result = Database::query($sql); |
|
| 5366 | ||
| 5367 | return Database::store_result($result); |
|
| 5368 | } |
|
| 5369 | ||
| 5370 | /** |
|
| 5371 | * Get login information from the track_e_course_access table, for any |
|
| @@ 5377-5394 (lines=18) @@ | ||
| 5374 | * @param int $userId |
|
| 5375 | * @return array |
|
| 5376 | */ |
|
| 5377 | public static function getFirstCourseAccessPerSessionAndUser($sessionId, $userId) |
|
| 5378 | { |
|
| 5379 | $sessionId = intval($sessionId); |
|
| 5380 | $userId = intval($userId); |
|
| 5381 | ||
| 5382 | $table = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
| 5383 | $sql = "SELECT * FROM $table |
|
| 5384 | WHERE session_id = $sessionId AND user_id = $userId |
|
| 5385 | ORDER BY login_course_date ASC |
|
| 5386 | LIMIT 1"; |
|
| 5387 | ||
| 5388 | $result = Database::query($sql); |
|
| 5389 | $courseAccess = array(); |
|
| 5390 | if (Database::num_rows($result)) { |
|
| 5391 | $courseAccess = Database::fetch_array($result, 'ASSOC'); |
|
| 5392 | } |
|
| 5393 | return $courseAccess; |
|
| 5394 | } |
|
| 5395 | ||
| 5396 | /** |
|
| 5397 | * @param int $courseId |
|
| @@ 331-345 (lines=15) @@ | ||
| 328 | * |
|
| 329 | * @return array |
|
| 330 | */ |
|
| 331 | public static function getChildren($categoryCode) |
|
| 332 | { |
|
| 333 | $tbl_category = Database::get_main_table(TABLE_MAIN_CATEGORY); |
|
| 334 | $categoryCode = Database::escape_string($categoryCode); |
|
| 335 | $sql = "SELECT code, id FROM $tbl_category |
|
| 336 | WHERE parent_id = '$categoryCode'"; |
|
| 337 | $result = Database::query($sql); |
|
| 338 | $children = array(); |
|
| 339 | while ($row = Database::fetch_array($result, 'ASSOC')) { |
|
| 340 | $children[] = $row; |
|
| 341 | $subChildren = self::getChildren($row['code']); |
|
| 342 | $children = array_merge($children, $subChildren); |
|
| 343 | } |
|
| 344 | ||
| 345 | return $children; |
|
| 346 | } |
|
| 347 | ||
| 348 | /** |
|
| @@ 6173-6193 (lines=21) @@ | ||
| 6170 | * |
|
| 6171 | * @return array |
|
| 6172 | */ |
|
| 6173 | public static function getDeletedDocuments($courseInfo, $sessionId = 0) |
|
| 6174 | { |
|
| 6175 | $table = Database::get_course_table(TABLE_DOCUMENT); |
|
| 6176 | $courseId = $courseInfo['real_id']; |
|
| 6177 | $sessionCondition = api_get_session_condition($sessionId); |
|
| 6178 | $sql = "SELECT * FROM $table |
|
| 6179 | WHERE |
|
| 6180 | path LIKE '%DELETED%' AND |
|
| 6181 | c_id = $courseId |
|
| 6182 | $sessionCondition |
|
| 6183 | ORDER BY path |
|
| 6184 | "; |
|
| 6185 | ||
| 6186 | $result = Database::query($sql); |
|
| 6187 | $files = array(); |
|
| 6188 | while ($document = Database::fetch_array($result, 'ASSOC')) { |
|
| 6189 | $files[] = $document; |
|
| 6190 | } |
|
| 6191 | ||
| 6192 | return $files; |
|
| 6193 | } |
|
| 6194 | ||
| 6195 | /** |
|
| 6196 | * @param int $id |
|
| @@ 1522-1547 (lines=26) @@ | ||
| 1519 | * @param int $session_id |
|
| 1520 | * @return mixed |
|
| 1521 | */ |
|
| 1522 | public static function count_exercise_result_not_validated($exercise_id, $courseId, $session_id = 0) |
|
| 1523 | { |
|
| 1524 | $table_track_exercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES); |
|
| 1525 | $table_track_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING); |
|
| 1526 | $courseId = intval($courseId); |
|
| 1527 | $session_id = intval($session_id); |
|
| 1528 | $exercise_id = intval($exercise_id); |
|
| 1529 | ||
| 1530 | $sql = "SELECT count(e.exe_id) as count |
|
| 1531 | FROM $table_track_exercises e |
|
| 1532 | LEFT JOIN $table_track_attempt a |
|
| 1533 | ON e.exe_id = a.exe_id |
|
| 1534 | WHERE |
|
| 1535 | exe_exo_id = $exercise_id AND |
|
| 1536 | c_id = '$courseId' AND |
|
| 1537 | e.session_id = $session_id AND |
|
| 1538 | orig_lp_id = 0 AND |
|
| 1539 | marks IS NULL AND |
|
| 1540 | status = '' AND |
|
| 1541 | orig_lp_item_id = 0 |
|
| 1542 | ORDER BY e.exe_id"; |
|
| 1543 | $res = Database::query($sql); |
|
| 1544 | $row = Database::fetch_array($res, 'ASSOC'); |
|
| 1545 | ||
| 1546 | return $row['count']; |
|
| 1547 | } |
|
| 1548 | ||
| 1549 | /** |
|
| 1550 | * Gets all exercise BEST results attempts (NO Exercises in LPs) from a given exercise id, course, session per user |
|
| @@ 1673-1689 (lines=17) @@ | ||
| 1670 | * |
|
| 1671 | * @return array |
|
| 1672 | */ |
|
| 1673 | public static function getAllExerciseEventByExeId($exe_id) |
|
| 1674 | { |
|
| 1675 | $table_track_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT); |
|
| 1676 | $exe_id = intval($exe_id); |
|
| 1677 | $list = array(); |
|
| 1678 | ||
| 1679 | $sql = "SELECT * FROM $table_track_attempt |
|
| 1680 | WHERE exe_id = $exe_id |
|
| 1681 | ORDER BY position"; |
|
| 1682 | $res_question = Database::query($sql); |
|
| 1683 | if (Database::num_rows($res_question)) { |
|
| 1684 | while ($row = Database::fetch_array($res_question, 'ASSOC')) { |
|
| 1685 | $list[$row['question_id']][] = $row; |
|
| 1686 | } |
|
| 1687 | } |
|
| 1688 | return $list; |
|
| 1689 | } |
|
| 1690 | ||
| 1691 | /** |
|
| 1692 | * |
|
| @@ 2654-2675 (lines=22) @@ | ||
| 2651 | * @param array $courseInfo |
|
| 2652 | * @return array with the post info |
|
| 2653 | */ |
|
| 2654 | public function getAttachment($attachmentId, $eventId, $courseInfo) |
|
| 2655 | { |
|
| 2656 | $tableAttachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT); |
|
| 2657 | $courseId = intval($courseInfo['real_id']); |
|
| 2658 | $eventId = intval($eventId); |
|
| 2659 | $attachmentId = intval($attachmentId); |
|
| 2660 | ||
| 2661 | $row = array(); |
|
| 2662 | $sql = "SELECT id, path, filename, comment |
|
| 2663 | FROM $tableAttachment |
|
| 2664 | WHERE |
|
| 2665 | c_id = $courseId AND |
|
| 2666 | agenda_id = $eventId AND |
|
| 2667 | id = $attachmentId |
|
| 2668 | "; |
|
| 2669 | $result = Database::query($sql); |
|
| 2670 | if (Database::num_rows($result) != 0) { |
|
| 2671 | $row = Database::fetch_array($result, 'ASSOC'); |
|
| 2672 | } |
|
| 2673 | ||
| 2674 | return $row; |
|
| 2675 | } |
|
| 2676 | ||
| 2677 | /** |
|
| 2678 | * Add an attachment file into agenda |
|
| @@ 234-252 (lines=19) @@ | ||
| 231 | * |
|
| 232 | * @return int |
|
| 233 | */ |
|
| 234 | public static function getCategoryForQuestion($questionId, $courseId = 0) |
|
| 235 | { |
|
| 236 | if (empty($courseId)) { |
|
| 237 | $courseId = api_get_course_int_id(); |
|
| 238 | } |
|
| 239 | $table = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); |
|
| 240 | $questionId = intval($questionId); |
|
| 241 | $sql = "SELECT category_id |
|
| 242 | FROM $table |
|
| 243 | WHERE question_id = $questionId AND c_id = $courseId"; |
|
| 244 | $res = Database::query($sql); |
|
| 245 | $result = 0; |
|
| 246 | if (Database::num_rows($res) > 0) { |
|
| 247 | $data = Database::fetch_array($res); |
|
| 248 | $result = $data['category_id']; |
|
| 249 | } |
|
| 250 | ||
| 251 | return $result; |
|
| 252 | } |
|
| 253 | ||
| 254 | /** |
|
| 255 | * true if question id has a category |
|
| @@ 2842-2857 (lines=16) @@ | ||
| 2839 | * @param integer course id |
|
| 2840 | * @return integer Number of interactions |
|
| 2841 | */ |
|
| 2842 | public static function get_interactions_count_from_db($lp_iv_id, $course_id) |
|
| 2843 | { |
|
| 2844 | $table = Database :: get_course_table(TABLE_LP_IV_INTERACTION); |
|
| 2845 | $lp_iv_id = intval($lp_iv_id); |
|
| 2846 | $course_id = intval($course_id); |
|
| 2847 | ||
| 2848 | $sql = "SELECT count(*) FROM $table |
|
| 2849 | WHERE c_id = $course_id AND lp_iv_id = $lp_iv_id"; |
|
| 2850 | $res = Database::query($sql); |
|
| 2851 | $num = 0; |
|
| 2852 | if (Database::num_rows($res)) { |
|
| 2853 | $row = Database::fetch_array($res); |
|
| 2854 | $num = $row[0]; |
|
| 2855 | } |
|
| 2856 | return $num; |
|
| 2857 | } |
|
| 2858 | ||
| 2859 | /** |
|
| 2860 | * Return the interactions as an array for the given lp_iv_id. |
|
| @@ 2916-2932 (lines=17) @@ | ||
| 2913 | * @param integer Item View ID |
|
| 2914 | * @return integer Number of objectives |
|
| 2915 | */ |
|
| 2916 | public static function get_objectives_count_from_db($lp_iv_id, $course_id) |
|
| 2917 | { |
|
| 2918 | $table = Database :: get_course_table(TABLE_LP_IV_OBJECTIVE); |
|
| 2919 | $course_id = intval($course_id); |
|
| 2920 | $lp_iv_id = intval($lp_iv_id); |
|
| 2921 | $sql = "SELECT count(*) FROM $table |
|
| 2922 | WHERE c_id = $course_id AND lp_iv_id = $lp_iv_id"; |
|
| 2923 | //@todo seems that this always returns 0 |
|
| 2924 | $res = Database::query($sql); |
|
| 2925 | $num = 0; |
|
| 2926 | if (Database::num_rows($res)) { |
|
| 2927 | $row = Database :: fetch_array($res); |
|
| 2928 | $num = $row[0]; |
|
| 2929 | } |
|
| 2930 | ||
| 2931 | return $num; |
|
| 2932 | } |
|
| 2933 | ||
| 2934 | /** |
|
| 2935 | * Return the objectives as an array for the given lp_iv_id. |
|
| @@ 6409-6426 (lines=18) @@ | ||
| 6406 | return $question_count; |
|
| 6407 | } |
|
| 6408 | ||
| 6409 | function get_exercise_list_ordered() |
|
| 6410 | { |
|
| 6411 | $table_exercise_order = Database::get_course_table(TABLE_QUIZ_ORDER); |
|
| 6412 | $course_id = api_get_course_int_id(); |
|
| 6413 | $session_id = api_get_session_id(); |
|
| 6414 | $sql = "SELECT exercise_id, exercise_order |
|
| 6415 | FROM $table_exercise_order |
|
| 6416 | WHERE c_id = $course_id AND session_id = $session_id |
|
| 6417 | ORDER BY exercise_order"; |
|
| 6418 | $result = Database::query($sql); |
|
| 6419 | $list = array(); |
|
| 6420 | if (Database::num_rows($result)) { |
|
| 6421 | while ($row = Database::fetch_array($result, 'ASSOC')) { |
|
| 6422 | $list[$row['exercise_order']] = $row['exercise_id']; |
|
| 6423 | } |
|
| 6424 | } |
|
| 6425 | return $list; |
|
| 6426 | } |
|
| 6427 | ||
| 6428 | /** |
|
| 6429 | * Get categories added in the exercise--category matrix |
|
| @@ 8315-8337 (lines=23) @@ | ||
| 8312 | * @param int $sessionId |
|
| 8313 | * @return array exercises |
|
| 8314 | */ |
|
| 8315 | public function getExercisesByCouseSession($courseId, $sessionId) |
|
| 8316 | { |
|
| 8317 | $courseId = intval($courseId); |
|
| 8318 | $sessionId = intval($sessionId); |
|
| 8319 | ||
| 8320 | $tbl_quiz = Database::get_course_table(TABLE_QUIZ_TEST); |
|
| 8321 | $sql = "SELECT * FROM $tbl_quiz cq |
|
| 8322 | WHERE |
|
| 8323 | cq.c_id = %s AND |
|
| 8324 | (cq.session_id = %s OR cq.session_id = 0) AND |
|
| 8325 | cq.active = 0 |
|
| 8326 | ORDER BY cq.id"; |
|
| 8327 | $sql = sprintf($sql, $courseId, $sessionId); |
|
| 8328 | ||
| 8329 | $result = Database::query($sql); |
|
| 8330 | ||
| 8331 | $rows = array(); |
|
| 8332 | while ($row = Database::fetch_array($result, 'ASSOC')) { |
|
| 8333 | $rows[] = $row; |
|
| 8334 | } |
|
| 8335 | ||
| 8336 | return $rows; |
|
| 8337 | } |
|
| 8338 | ||
| 8339 | /** |
|
| 8340 | * |
|
| @@ 5100-5121 (lines=22) @@ | ||
| 5097 | * @param int $courseId |
|
| 5098 | * @return array |
|
| 5099 | */ |
|
| 5100 | public static function getCoachesByCourseSession($sessionId, $courseId) |
|
| 5101 | { |
|
| 5102 | $table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); |
|
| 5103 | $sessionId = intval($sessionId); |
|
| 5104 | $courseId = intval($courseId); |
|
| 5105 | ||
| 5106 | $sql = "SELECT user_id FROM $table |
|
| 5107 | WHERE |
|
| 5108 | session_id = '$sessionId' AND |
|
| 5109 | c_id = '$courseId' AND |
|
| 5110 | status = 2"; |
|
| 5111 | $result = Database::query($sql); |
|
| 5112 | ||
| 5113 | $coaches = array(); |
|
| 5114 | if (Database::num_rows($result) > 0) { |
|
| 5115 | while ($row = Database::fetch_row($result)) { |
|
| 5116 | $coaches[] = $row['user_id']; |
|
| 5117 | } |
|
| 5118 | } |
|
| 5119 | ||
| 5120 | return $coaches; |
|
| 5121 | } |
|
| 5122 | ||
| 5123 | /** |
|
| 5124 | * @param int $sessionId |
|
| @@ 5794-5812 (lines=19) @@ | ||
| 5791 | * @param int $sessionId |
|
| 5792 | * @param int $courseId |
|
| 5793 | */ |
|
| 5794 | public static function addCourseIntroduction($sessionId, $courseId) |
|
| 5795 | { |
|
| 5796 | // @todo create a tool intro lib |
|
| 5797 | $sessionId = intval($sessionId); |
|
| 5798 | $courseId = intval($courseId); |
|
| 5799 | ||
| 5800 | $TBL_INTRODUCTION = Database::get_course_table(TABLE_TOOL_INTRO); |
|
| 5801 | $sql = "SELECT * FROM $TBL_INTRODUCTION WHERE c_id = $courseId"; |
|
| 5802 | $result = Database::query($sql); |
|
| 5803 | $result = Database::store_result($result, 'ASSOC'); |
|
| 5804 | ||
| 5805 | if (!empty($result)) { |
|
| 5806 | foreach ($result as $result) { |
|
| 5807 | // @todo check if relation exits. |
|
| 5808 | $result['session_id'] = $sessionId; |
|
| 5809 | Database::insert($TBL_INTRODUCTION, $result); |
|
| 5810 | } |
|
| 5811 | } |
|
| 5812 | } |
|
| 5813 | ||
| 5814 | /** |
|
| 5815 | * @param int $sessionId |
|