blob: b7e05a9ee7ede1b4d2372ec5ca6b0e97dfd0a225 [file] [log] [blame]
avm99963472b0de2020-09-28 17:15:42 +02001<?php
2namespace DAFME\Covid;
3
4class Classes {
5 public static function getCurrentClasses() {
6 global $con;
7
8 $isSignedIn = Users::isSignedIn();
9
10 $sentence = 'SELECT c.id, c.calendar_name, c.room, c.begins, c.ends, s.id subject_id, s.friendly_name'.($isSignedIn ? ', u_s.id user_subject_id' : '').'
11 FROM classes c
12 INNER JOIN subjects s
13 ON c.calendar_name = s.calendar_name
14 '.($isSignedIn ? 'LEFT OUTER JOIN user_subjects u_s
15 ON s.id = u_s.subject_id
16 ' : '').
17 'WHERE
avm9996359ba3432020-09-28 19:03:29 +020018 c.begins < UNIX_TIMESTAMP() AND
19 c.ends > UNIX_TIMESTAMP()'.($isSignedIn ? ' AND
avm99963472b0de2020-09-28 17:15:42 +020020 (
21 u_s.user_id = :user_id OR
22 u_s.subject_id IS NULL
23 )': '');
24 $query = $con->prepare($sentence);
25
26 if (!$query->execute(($isSignedIn ? ['user_id' => Users::getUserId()] : [])))
27 return false;
28
29 $classes = $query->fetchAll(\PDO::FETCH_ASSOC);
30
31 foreach ($classes as &$class) {
avm99963ea2309c2020-09-28 17:20:25 +020032 if (!$isSignedIn)
avm99963472b0de2020-09-28 17:15:42 +020033 $class['user_subject_id'] = null;
34
35 $class['user_selected'] = $class['user_subject_id'] !== null;
36 }
37
38 return $classes;
39 }
avm99963472b0de2020-09-28 17:15:42 +020040}