Browse Source

Added visibility to the DokeosWSCreateCourse function - BT#1109

Guillaume Viguier 14 years ago
parent
commit
c99abf0e21
2 changed files with 23 additions and 7 deletions
  1. 12 2
      main/inc/lib/add_course.lib.inc.php
  2. 11 5
      main/webservices/registration.soap.php

+ 12 - 2
main/inc/lib/add_course.lib.inc.php

@@ -2460,7 +2460,7 @@ function string2binary($variable)
  * @param array		Optional array of teachers' user ID
  * @return	int		0
  */
-function register_course($courseSysCode, $courseScreenCode, $courseRepository, $courseDbName, $titular, $category, $title, $course_language, $uidCreator, $expiration_date = "", $teachers=array())
+function register_course($courseSysCode, $courseScreenCode, $courseRepository, $courseDbName, $titular, $category, $title, $course_language, $uidCreator, $expiration_date = "", $teachers=array(), $visibility = null)
 {
 	global $defaultVisibilityForANewCourse, $error_msg;
 	$TABLECOURSE = Database :: get_main_table(TABLE_MAIN_COURSE);
@@ -2505,6 +2505,16 @@ function register_course($courseSysCode, $courseScreenCode, $courseRepository, $
 	} else {
 		$expiration_date = "FROM_UNIXTIME(".$expiration_date . ")";
 	}
+	
+	if($visibility === null) {
+		$visibility = $defaultVisibilityForANewCourse;
+	} else {
+		if($visibility < 0 || $visibility > 3) {
+			$error_msg[] = "visibility is invalid";
+			$okForRegisterCourse = false;
+		}
+	}
+	
 	if ($okForRegisterCourse) {
 		$titular=addslashes($titular);
 		// here we must add 2 fields
@@ -2516,7 +2526,7 @@ function register_course($courseSysCode, $courseScreenCode, $courseRepository, $
 					title = '".Database :: escape_string($title) . "',
 					description = '".lang2db(get_lang('CourseDescription')) . "',
 					category_code = '".Database :: escape_string($category) . "',
-					visibility = '".$defaultVisibilityForANewCourse . "',
+					visibility = '".$visibility . "',
 					show_score = '',
 					disk_quota = '".api_get_setting('default_document_quotum') . "',
 					creation_date = now(),

+ 11 - 5
main/webservices/registration.soap.php

@@ -2039,6 +2039,10 @@ function DokeosWSCreateCourse($params) {
 		$original_course_id_name = $course_param['original_course_id_name'];
 		$original_course_id_value = $course_param['original_course_id_value'];
 		$orig_course_id_value[] = $course_param['original_course_id_value'];
+		$visibility = null;
+		if($course_param['visibility'] && $course_param['visibility'] >= 0 && $course_param['visibility'] <= 3) {
+			$visibility = $course_param['visibility'];
+		}
 		$extra_list = $course_param['extra'];
 
 		// Check whether exits $x_course_code into user_field_values table.
@@ -2056,9 +2060,11 @@ function DokeosWSCreateCourse($params) {
 									title='".Database::escape_string($title)."',
 									category_code='".Database::escape_string($category_code)."',
 									tutor_name='".Database::escape_string($tutor_name)."',
-									visual_code='".Database::escape_string($wanted_code)."',
-									visibility = '3'
-						WHERE code='".Database::escape_string($r_check_course[0])."'";
+									visual_code='".Database::escape_string($wanted_code)."'";
+				if($visibility !== null) {
+					$sql .= ", visibility = '$visibility' ";
+				}
+				$sql .= " WHERE code='".Database::escape_string($r_check_course[0])."'";
 				Database::query($sql);
 				if (is_array($extra_list) && count($extra_list) > 0) {
 					foreach ($extra_list as $extra) {
@@ -2112,7 +2118,7 @@ function DokeosWSCreateCourse($params) {
 				update_Db_course($db_name);
 				$pictures_array = fill_course_repository($directory);
 				fill_Db_course($db_name, $directory, $course_language, $pictures_array);
-				$return = register_course($code, $visual_code, $directory, $db_name, $tutor_name, $category_code, $title, $course_language, api_get_user_id(), $expiration_date);
+				$return = register_course($code, $visual_code, $directory, $db_name, $tutor_name, $category_code, $title, $course_language, api_get_user_id(), $expiration_date, array(), $visibility);
 
 				// Save new fieldlabel into course_field table.
 				$field_id = CourseManager::create_course_extra_field($original_course_id_name, 1, $original_course_id_name);
@@ -4805,4 +4811,4 @@ function DokeosWSUnsuscribeCoursesFromSession($params) {
 
 // Use the request to (try to) invoke the service
 $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
-$server->service($HTTP_RAW_POST_DATA);
+$server->service($HTTP_RAW_POST_DATA);