GET['type']; // get media-type $real_path = MEDIA_STORAGE_ROOT . $file_path; // construct real path if (!file_exists($real_path)) { Render::view('error/404'); } else { Render::file($real_path, $media_type); } } } /** get_file_attributes * * returns attributes of a file * (medias are proxied for speed optimization) * * @param $path (string) : file path * @return $file attributes --or-- false */ private static function get_file_attributes($path) { $medias = Cache_service::files_attributes(); foreach($medias as $key => $medi) { if ($medi['path'] == $path) { return $medi; } } return false; } /** COURSES * ------------------------------------------------------------------------- */ /** course * prepare and render the course view * * @param $id : course id */ public static function course($id) { $id = intval($id); // course id // collect all data needed for course view // --- -- -- - - - $cache = Cache_service::courses_struct(); $tree = $cache['tree']; $breadcrumbs = $cache['breadcrumbs']; $lessons = Course_model::lessons_of_course(intval($id)); // find parent_ids of current category (to open the menu tree) // --- $course_path = []; foreach($breadcrumbs[$id]['parents'] as $key => $parent) { $course_path[] = intval($parent['id']); } $course_path[] = $id; // then Render // --- -- -- - - - Render::view('templates/course', [ 'id' => $id, 'title' => $breadcrumbs[ $id ]['rec']['label'], 'categories' => $tree, 'breadcrumbs' => $breadcrumbs, 'lessons' => $lessons, 'course_path' => $course_path, // needed by footer 'entity' => Cache_service::pages_list() ]); } /** LESSONS * ------------------------------------------------------------------------ */ /** lesson * * check if user is authorized to view the content; * if so, prepare and render the lesson view * * @param $id : lesson id */ public static function lesson($id) { $id = intval($id); // lesson id $lesson = Course_model::lesson($id); // get lesson $course_id = $lesson['course_id']; // get course id $pri_id = $lesson['privilege_id']; // privilege needed if (self::is_admin_or_permited($pri_id)) { // collect all data needed for course view // --- -- -- - - - $cache = Cache_service::courses_struct(); $tree = $cache['tree']; $breadcrumbs = $cache['breadcrumbs']; // find parent_ids of current category (to open the menu tree) // --- $course_path = []; foreach($breadcrumbs[$course_id]['parents'] as $key => $parent) { $course_path[] = intval($parent['id']); } $course_path[] = intval($course_id); // NOTE: CRITICAL: // do not pass Class::method directly to the eported variables // $entity = Cache_service::pages_list(); // var_dump($entity); die(); // then Render // --- -- -- - - - Render::view('templates/lesson', [ // main content 'id' => $id, 'course_id' => $course_id, 'title' => $lesson['title'], 'lesson' => $lesson, // needed for side panel and breadcrunbs 'categories' => $tree, 'breadcrumbs' => $breadcrumbs, 'course_path' => $course_path, // needed by footer 'entity' => Cache_service::pages_list() ]); } else { // user is not authorized Render::view('error/general', [ 'title' => 'Δεν έχετε πρόσβαση', 'message' => 'Θα πρέπει να αγοράσετε το πακέτο πρόσβασης ' . $pri_id .' για να δείτε το περιεχόμενο!

Αγόρασε τώρα το ' ]); } } /** lesson * * check if user is authorized to view the content; * if so, prepare and render the lesson view * * @param $id : lesson id */ public static function page($id) { $id = intval($id); // lesson id $pages = Cache_service::pages_list(); $page = $pages[$id]; // then Render // --- -- -- - - - Render::view('templates/page', [ // main content 'id' => $id, 'page' => $page, // needed by footer 'entity' => $pages ]); } }