Newer
Older
John Hoopes
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Ajax callback for the course_overview_uwmoodle block
* Gets the user's courses and returns it to the javascript in the page
*
* @package block_my_course_links
* @author 2013 John Hoopes
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// define that this is an ajax script
define('AJAX_SCRIPT', 1);
require_once("../../config.php");
require_login();
$response = new stdClass();
$response->status = 'false';
$response->message = 'invalidrequest';
if(confirm_sesskey()) {
// now require the block lib files
require_once($CFG->dirroot.'/blocks/course_overview_uwmoodle/block_course_overview_uwmoodle.php');
define('TERM_OTHER', 0);
$blockconfig = optional_param('blockconfig', new stdClass(), PARAM_RAW);
if(empty($blockconfig->combineongoing)){ // set conbineongoing to something for code later
$blockconfig->combineongoing = false;
}
profile_load_custom_fields($USER);
// Get user's courses and sort by term
$courses = block_course_overview_uwmoodle_get_sorted_courses();
$terms = block_course_overview_uwmoodle_group_courses_by_term($courses);
$currentterm = block_course_overview_uwmoodle_get_current_term();
$selectedterm = optional_param('term', $currentterm, PARAM_INT);
if (!isset($terms[$currentterm])) {
$terms[$currentterm] = array();
}
// If selectedterm is not valid, select currentterm
if (!isset($terms[$selectedterm])) {
$selectedterm = $currentterm;
}
// Get course overviews
//$overviews = block_course_overview_uwmoodle_get_overviews($courses);
$overviews = array(); // for now course overviews are disabled
// Sort the terms with newest first
block_course_overview_uwmoodle_sort_term_array($terms);
$displayedterms = $terms;
$othercourses = false;
if (empty($blockconfig->combineongoing)) {
unset($displayedterms[block_course_overview_uwmoodle::TERM_OTHER]);
if (!empty($terms[block_course_overview_uwmoodle::TERM_OTHER])) {
$othercourses = $terms[block_course_overview_uwmoodle::TERM_OTHER];
}
}
$returntermcourses = array();
// build return course array
foreach($displayedterms as $termcode => $courses){
$term = new stdClass(); // store the term code, term name, and term courses in an object
$term->termcode = $termcode;
$term->termname = $termstr = block_course_overview_uwmoodle_get_term_name($termcode);
$term->courses = array();
foreach($courses as $course){
$returncourse = new stdClass();
$returncourse->name = $course->fullname;
if(get_class($course) == 'external_course'){ // external courses have their urls already defined
$courseurl = new moodle_url($course->courseurl);
}else{
$courseurl = new moodle_url('/course/view.php', array('id' => $course->id));
}
$returncourse->url = $courseurl->out();
if(get_class($course) == 'external_course'){ // external courses have their lms keys already defined
$returncourse->lms = $course->LMS;
}else{
$returncourse->lms = 'Moodle'; // local courses are always Moodle
}
$term->courses[] = $returncourse;
}
$returntermcourses[] = $term;
}
$returnothercourses = array();
if($othercourses !== false){ // if there are other courses build the array of them
foreach($othercourses as $course){
$returncourse = new stdClass();
$returncourse->name = $course->fullname;
if(get_class($course) == 'external_course'){ // external courses have their urls already defined
$courseurl = new moodle_url($course->courseurl);
}else{
$courseurl = new moodle_url('/course/view.php', array('id' => $course->id));
}
$returncourse->url = $courseurl->out();
if(get_class($course) == 'external_course'){ // external courses have their lms keys already defined
$returncourse->lms = $course->LMS;
}else{
$returncourse->lms = 'Moodle'; // local courses are always Moodle
}
$returnothercourses[] = $returncourse;
}
}
$response->status = 'true';
$response->message = 'success';
$response->selectedterm = $selectedterm;
$response->termcourses = $returntermcourses;
$response->othercourses = $returnothercourses;
$response->nocoursesmessage = get_string('nocourses','block_course_overview_uwmoodle');
}
echo json_encode($response);