1
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
3
class Cms extends CI_Controller {
8
function __construct() {
10
//Load required library
11
$this->load->model('user', '', TRUE);
12
$this->load->model('admin/admin_model', '', TRUE);
13
$this->load->model('filetree');
14
$this->load->model('stats');
18
* This function runs when the user navigates directly to this controller
20
public function index() {
21
if($this->user->isLoggedIn()) {
22
//User already logged in
23
$this->drawCmsPage('');
25
//Display the start page
26
redirect(base_url().'home', 'refresh');
31
* This function draws the cms page.
33
private function drawCmsPage() {
34
$userName = $this->user->getUserName();
35
$userType = $this->user->getUserType();
36
$activeCourse = $this->user->getActiveCourse();
38
if($userName != "" && $userType == "Teacher") {
39
//Creates an array with all courses.
40
$courses = $this->admin_model->getCourses();
41
} elseif($userName != "" && $userType == "Student") {
42
$courses = $this->admin_model->getStudentCourses($userName);
44
$courses = $this->admin_model->getPublicCourses();
48
//Creates an array with all categories for active course
49
$categories = $this->admin_model->getCategories($activeCourse['courseID']);
51
//Creates an array with the variables that the bannermenu-view is expecting.
53
'userType' => $userType,
54
'userName' => $userName,
55
'courses' => $courses,
56
'categories' => $categories,
57
'activeCourse' => $activeCourse
60
//Creates an array with the variables that the cmsindex-view is expecting.
64
$categories = $this->filetree->getCategories($data['activeCourse']['courseID']);
65
foreach ($categories as $category) {
66
$filetree[$category->categoryName] = array();
69
$subcategories = $this->filetree->getSubCategories($category->categoryName, $data['activeCourse']['courseID']);
70
foreach ($subcategories as $subcategory) {
71
$filetree[$category->categoryName][$subcategory->subCategoryName] = array();
74
$filetree[$category->categoryName][$subcategory->subCategoryName]['examples'] = array();
75
$examples = $this->filetree->getExamples($subcategory->subCategoryName, $category->categoryName, $data['activeCourse']['courseID']);
76
foreach ($examples as $example) {
77
$filetree[$category->categoryName][$subcategory->subCategoryName]['examples'][] = $example->exampleName;
81
$filetree[$category->categoryName][$subcategory->subCategoryName]['quizzes'] = array();
82
$quizzes = $this->filetree->getQuizzes($subcategory->subCategoryName, $category->categoryName, $data['activeCourse']['courseID']);
83
foreach ($quizzes as $quiz) {
84
$filetree[$category->categoryName][$subcategory->subCategoryName]['quizzes'][] = $quiz->quizNr;
89
//Creates an array with the necessary css- and jsfiles needed for the views that are about to be shown.
91
'cssFiles' => array('bannermenu', 'sidemenu', 'cmsindex'),
92
'jsFiles' => array('bannermenu', 'sidemenu')
96
'system' => $this->stats->getSystemStats(),
97
'course' => $this->stats->getCourseStats($data['activeCourse']['courseID']),
98
'user' => $this->stats->getUserStats()
100
$data['stats'] = $stats;
102
//Puts the array above in <head></head>
103
$this->load->view('headTag', array('headTagData' => $headTagData));
105
$this->load->view('bannermenu', $data);
106
$this->load->view('sidemenu', $data);
107
$this->load->view('cmsindex', array('filetree' => $filetree));