summaryrefslogtreecommitdiff
path: root/public/app/controllers/cms/Course.php
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-04-27 20:18:01 +0300
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-04-27 20:18:01 +0300
commita2e68fce808dbe6fba320a6232a15380b63157f6 (patch)
treeb6ceaf603b2237c328707c152233304b9a511b9e /public/app/controllers/cms/Course.php
parent059e0d95d0c28bc5060e87e146eaf7411f51bf90 (diff)
downloadgyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.tar.gz
gyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.tar.bz2
gyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.zip
structure simplified
Diffstat (limited to 'public/app/controllers/cms/Course.php')
-rw-r--r--public/app/controllers/cms/Course.php252
1 files changed, 0 insertions, 252 deletions
diff --git a/public/app/controllers/cms/Course.php b/public/app/controllers/cms/Course.php
deleted file mode 100644
index 47eac5f..0000000
--- a/public/app/controllers/cms/Course.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-
-namespace app\controllers\cms;
-
-use Registry;
-use Render;
-use app\controllers\Auth;
-use app\models\cms\Course_model;
-use app\extends\Cache_service;
-
-class Course {
-
-
- /** PERMITION
- * -------------------------------------------------------------------------
- */
-
-
- /** is admin or permited
- *
- * shortcut method for checking access authorization
- *
- * returns true if user belogns to the admin group
- * OR has the specified permition/privilege
- *
- * @param $privilege_id (int)
- *
- * NOTE:
- * unlike the other authorization methods ...
- * $privilege_id is NOT an array but a single privilege id
- *
- * @return true|false
- */
- private static function is_admin_or_permited( $privilege_id )
- {
- return (
- Auth::in_admin_group()
- || Auth::hasPermition([ $privilege_id ])
- );
- }
-
-
-
- /** FILES
- * -------------------------------------------------------------------------
- */
-
- /** serve file by file_path
- * (request is valid only for admin users)
- *
- * @param $file_path (string): relative file path
- * GET @param type (string) : media-type of file
- */
- public static function serve_file($file_path)
- {
- $file = self::get_file_attributes($file_path);
-
- // if user is authorized
- if (self::is_admin_or_permited($file['privilege_id'])) {
-
- $media_type = Registry::get('REQUEST')->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);
- }
-
- } else {
- Render::view('error/404', [
- 'error_code' => 403,
- 'moto' => 'Forbidden',
- 'message' => ''
- ]);
- }
- }
-
-
- /** 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
- .' για να δείτε το περιεχόμενο!
- <br><br>
- Αγόρασε τώρα το <button class="btn">πακέτο πρόσβασης '. $pri_id .'</button>'
- ]);
- }
-
- }
-
-
- /** 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
- ]);
-
- }
-
-
-
-
-} \ No newline at end of file