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
]);
}
/** 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);
// 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
]);
} else { // user is not authorized
Render::view('error/general', [
'title' => 'Δεν έχετε πρόσβαση',
'message' => 'Θα πρέπει να αγοράσετε το πακέτο πρόσβασης '
. $pri_id
.' για να δείτε το περιεχόμενο!
Αγόρασε τώρα το '
]);
}
}
}