diff --git a/main/inc/lib/add_course.lib.inc.php b/main/inc/lib/add_course.lib.inc.php index 16169fff05..bb24a48e9c 100755 --- a/main/inc/lib/add_course.lib.inc.php +++ b/main/inc/lib/add_course.lib.inc.php @@ -1194,14 +1194,15 @@ class AddCourse /** * Function register_course to create a record in the course table of the main database. * - * @param array Course details (see code for details) + * @param array $params Course details (see code for details). + * @param int $accessUrlId Optional. * * @return int Created course ID * * @todo use an array called $params instead of lots of params * @assert (null) === false */ - public static function register_course($params) + public static function register_course($params, $accessUrlId = 1) { global $error_msg, $firstExpirationDelay; $title = $params['title']; @@ -1372,15 +1373,7 @@ class AddCourse } // Adding the course to an URL. - if (api_is_multiple_url_enabled()) { - $url_id = 1; - if (api_get_current_access_url_id() != -1) { - $url_id = api_get_current_access_url_id(); - } - UrlManager::add_course_to_url($course_id, $url_id); - } else { - UrlManager::add_course_to_url($course_id, 1); - } + UrlManager::add_course_to_url($course_id, $accessUrlId); // Add event to the system log. $user_id = api_get_user_id(); diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index fdc3376d6e..be8185f9db 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -34,29 +34,29 @@ class CourseManager /** * Creates a course. * - * @param array $params columns in the main.course table - * @param int $authorId + * @param array $params Columns in the main.course table. + * @param int $authorId Optional. + * @param int $accessUrlId Optional. * * @return mixed false if the course was not created, array with the course info */ - public static function create_course($params, $authorId = 0) + public static function create_course($params, $authorId = 0, $accessUrlId = 0) { global $_configuration; $hook = HookCreateCourse::create(); // Check portal limits - $access_url_id = 1; - if (api_get_multiple_access_url()) { - $access_url_id = api_get_current_access_url_id(); - } + $accessUrlId = empty($accessUrlId) + ? (api_get_multiple_access_url() ? api_get_current_access_url_id() : 1) + : $accessUrlId; $authorId = empty($authorId) ? api_get_user_id() : (int) $authorId; - if (isset($_configuration[$access_url_id]) && is_array($_configuration[$access_url_id])) { + if (isset($_configuration[$accessUrlId]) && is_array($_configuration[$accessUrlId])) { $return = self::checkCreateCourseAccessUrlParam( $_configuration, - $access_url_id, + $accessUrlId, 'hosting_limit_courses', 'PortalCoursesLimitReached' ); @@ -65,7 +65,7 @@ class CourseManager } $return = self::checkCreateCourseAccessUrlParam( $_configuration, - $access_url_id, + $accessUrlId, 'hosting_limit_active_courses', 'PortalActiveCoursesLimitReached' ); @@ -99,7 +99,7 @@ class CourseManager $params['directory'] = $keys['currentCourseRepository']; $course_info = api_get_course_info($params['code']); if (empty($course_info)) { - $course_id = AddCourse::register_course($params); + $course_id = AddCourse::register_course($params, $accessUrlId); $course_info = api_get_course_info_by_id($course_id); if ($hook) {