/** * This method provides data for ajax requests. Course subjects come in via the 'value' request * parameter and are used to look up courses, which are echoed as JSON. * * @param string $data Course subject code * @return void */ function do_course_lookup($data) { $editable_sources = array('page_courses', 'categories'); // Build the list of courses already on the page so we know what's selected $this->build_course_list(); if ($courses = get_courses_by_subjects(array($data), 'academic_catalog_2014_site')) { foreach ($courses as $id => $course) { $history = $course->get_last_offered_academic_year(); if ($history < 2014 - 3) { continue; } $output['title'] = html_entity_decode($course->get_value('name')); $output['title'] .= ' (' . $history . ')'; $output['desc'] = $course->get_value('long_description'); //if (empty($output['desc'])) continue; if (isset($this->courses[$id])) { $output['selected'] = true; $output['editable'] = in_array($this->courses[$id]->include_source, $editable_sources); } else { $output['selected'] = false; $output['editable'] = true; } $list[$id] = $output; } if (isset($list)) { echo json_encode($list); } else { echo json_encode(false); } } }
function get_course_list($subject) { $subject_courses = get_courses_by_subjects(array($subject)); $site_courses = get_site_courses($this->site_id); $html = '<h3>Active Courses</h3>'; $html .= '<ul class="courseListActive">'; foreach ($subject_courses as $id => $course) { if (isset($site_courses[$id])) { $html .= $this->get_course_list_row($course); unset($subject_courses[$id]); } } $html .= '</ul>'; $html .= '<h3>Inactive Courses</h3>'; $html .= '<ul class="courseListInactive">'; foreach ($subject_courses as $id => $course) { $html .= $this->get_course_list_row($course); } $html .= '</ul>'; return $html; }