function do_course_toggle($id) { $this->build_course_list(); if (isset($this->courses[$id])) { if ($this->courses[$id]->include_source == 'page_courses') { $course = new entity($id); $rels = $course->get_left_relationships_info(); foreach ($rels['course_template_to_page'] as $rel) { if ($rel['entity_b'] == $this->get_source_page_id()) { delete_relationship($rel['id']); return true; break; } } } else { if ($this->courses[$id]->include_source == 'categories') { $course = new entity($id); $rels = $course->get_left_relationships_info(); $cats = $this->get_page_categories(); foreach ($rels['course_template_to_category'] as $rel) { if (isset($cats[$rel['entity_b']])) { delete_relationship($rel['id']); return true; break; } } } } } else { if ($this->params['get_page_courses']) { return create_relationship($id, $this->get_source_page_id(), relationship_id_of('course_template_to_page'), false, false); } else { if ($this->params['get_courses_by_page_categories']) { if ($cats = $this->get_page_categories()) { // For now we're just attaching the first page category we find to the course; // a better, future interface would allow the user to pick the category. $cat_id = key($cats); return create_relationship($id, $cat_id, relationship_id_of('course_template_to_category'), false, false); } } } } return false; }