hanze/lollipop

routing/index.php in master
Repositories | Summary | Log | Files

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}