/** * Updates the access_url_rel_course_category table with a given list * @author Julio Montoya * @param array course category list * @param int access_url_id **/ public static function updateUrlRelCourseCategory($list, $urlId) { $table = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE_CATEGORY); $sql = "SELECT course_category_id FROM {$table} WHERE access_url_id = " . intval($urlId); $result = Database::query($sql); $existingItems = array(); while ($row = Database::fetch_array($result)) { $existingItems[] = $row['course_category_id']; } // Adding foreach ($list as $id) { UrlManager::addCourseCategoryToUrl($id, $urlId); $categoryInfo = CourseCategoryManager::getCategoryById($id); $children = CourseCategoryManager::getChildren($categoryInfo['code']); if (!empty($children)) { foreach ($children as $category) { UrlManager::addCourseCategoryToUrl($category['id'], $urlId); } } } // Deleting old items foreach ($existingItems as $id) { if (!in_array($id, $list)) { UrlManager::deleteUrlRelCourseCategory($id, $urlId); $categoryInfo = CourseCategoryManager::getCategoryById($id); $children = CourseCategoryManager::getChildren($categoryInfo['code']); if (!empty($children)) { foreach ($children as $category) { UrlManager::deleteUrlRelCourseCategory($category['id'], $urlId); } } } } }