index.php (3522B) download
1<?php
2
3$index_get = function (&$vars) {
4 if(isset($_SESSION['user_permissions'])) {
5 header('Location: /dashboard');
6 }
7 global $db;
8 $templates = new Controller\Templates($db, $db->get(\Model\User::class));
9 $vars["header"] = $templates->header();
10 $vars["login-fields"] = $db->get(Model\User::class)->login_fields();
11 return "views/login.html";
12};
13
14$index_post = function (&$vars) {
15 global $db;
16 $res = $db->get(Model\User::class)->login();
17 $templates = new Controller\Templates($db, $db->get(\Model\Course::class));
18 $vars["header"] = $templates->header();
19 if($res == []) {
20 header("Location: dashboard");
21 exit();
22 } else {
23 $vars["login-fields"] = $db->get(Model\User::class)->login_fields();
24 $vars["response"] = $res["response"] ;
25 return "views/login.html";
26 }
27};
28
29$dashboard = function (&$vars) {
30 global $db;
31 $vars += $_SESSION;
32 $templates = new Controller\Templates($db, $db->get(\Model\Course::class));
33 $vars["header"] = $templates->header();
34 $course = $db->get(Model\Course::class);
35
36 $vars['links'] = $templates->links();
37 $enrolled = [];
38
39 foreach($db->all_where(Model\CourseUser::class, [ "email" => $_SESSION['email'] ]) as $data) {
40 $enrolled[] = $data->id;
41 }
42
43 $table = "<table> <thead> <tr>";
44 foreach($course->get_column_names() as $column) {
45 $table .= "<th>$column</th>";
46 }
47 $table .= "<th>registered</th></tr> </thead>";
48
49 $objs = $db->all(Model\Course::class);
50 $table .= "<tbody>";
51 foreach($objs as $obj) {
52 if (in_array($obj->id, $enrolled)) {
53 $enroll_btn = 'Disenroll';
54 $enroll_action = 'disenroll';
55 } else {
56 $enroll_btn = 'Enroll';
57 $enroll_action = 'enroll';
58 }
59
60 $table .= "<tr>";
61 $col_names = $obj->get_column_names();
62 foreach($col_names as $col) {
63 $table .= '<td>' . $obj->{$col} . '</td>';
64 }
65 $table .= '
66 <td>
67 <a class="edit" href="/course/' . $obj->id . '/' . $enroll_action . '/";>' . $enroll_btn . '</a>
68 </td>';
69
70 $table .= '</tr>';
71 }
72
73 $table .= "
74 </tbody></table>";
75
76 $vars['in_course'] = $table;
77
78 return "views/dashboard.html";
79};
80
81$logout = function (&$vars) {
82 session_unset();
83 session_destroy();
84 header("Location: /");
85};
86$test = function (&$vars) {
87 global $db;
88 $user = $db->get(Model\User::class);
89 $permissions = $db->get(Model\Permission::class);
90
91 $permission_user = $db->get(Model\PermissionUser::class);
92 var_dump($db->all_where(Model\User::class, ["email" => ""]));
93 var_dump(get_vars($user, "/user", "/user/search", "", "email", [], $permissions->get_checkboxes(), $permission_user));
94};
95
96function get_vars(Lollipop\DatabaseObject $table, string $action, string $search_action, string $search_string, string $search_key, array $form_data = [], array $extra = [], Model\PermissionUser $permissionUser = null): array
97{
98 global $db;
99 $templates = new Controller\Templates($db, $table);
100
101 $array = [];
102 $array["header"] = $templates->header();
103 $array["form"] = $templates->form_v2($action, $form_data, $extra);
104 $array["search"] = $templates->search_form($search_action);
105 $array["table"] = $templates->crud_table($action, $search_string, $search_key, $permissionUser);
106 $array['links'] = $templates->links();
107 $array['first_name'] = $_SESSION['first_name'];
108 return $array;
109}