Completed
Push — 1.10.x ( 3c9fe3...995e8b )
by Yannick
116:12 queued 73:22
created
main/webservices/cm_soap_forum.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -12,12 +12,12 @@  discard block
 block discarded – undo
12 12
 
13 13
 $s->register(
14 14
         'WSCMForum.get_foruns_id',
15
-	array(
16
-		'username' => 'xsd:string',
17
-		'password' => 'xsd:string',
15
+    array(
16
+        'username' => 'xsd:string',
17
+        'password' => 'xsd:string',
18 18
                 'course_code' => 'xsd:string'
19
-	),
20
-	array('return' => 'xsd:string'),
19
+    ),
20
+    array('return' => 'xsd:string'),
21 21
         'urn:WSCMService',
22 22
         '',
23 23
         '',
@@ -26,14 +26,14 @@  discard block
 block discarded – undo
26 26
 );
27 27
 
28 28
 $s->register(
29
-	'WSCMForum.get_forum_title',
30
-	array(
31
-		'username' => 'xsd:string',
32
-		'password' => 'xsd:string',
29
+    'WSCMForum.get_forum_title',
30
+    array(
31
+        'username' => 'xsd:string',
32
+        'password' => 'xsd:string',
33 33
                 'course_code' => 'xsd:string',
34 34
                 'forum_id' => 'xsd:string'
35
-	),
36
-	array('return' => 'xsd:string'),
35
+    ),
36
+    array('return' => 'xsd:string'),
37 37
         'urn:WSCMService',
38 38
         '',
39 39
         '',
@@ -42,14 +42,14 @@  discard block
 block discarded – undo
42 42
 );
43 43
 
44 44
 $s->register(
45
-	'WSCMForum.get_forum_threads_id',
46
-	array(
47
-		'username' => 'xsd:string',
48
-		'password' => 'xsd:string',
45
+    'WSCMForum.get_forum_threads_id',
46
+    array(
47
+        'username' => 'xsd:string',
48
+        'password' => 'xsd:string',
49 49
                 'course_code' => 'xsd:string',
50 50
                 'forum_id' => 'xsd:string'
51
-	),
52
-	array('return' => 'xsd:string'),
51
+    ),
52
+    array('return' => 'xsd:string'),
53 53
         'urn:WSCMService',
54 54
         '',
55 55
         '',
@@ -58,15 +58,15 @@  discard block
 block discarded – undo
58 58
 );
59 59
 
60 60
 $s->register(
61
-	'WSCMForum.get_forum_thread_data',
62
-	array(
63
-		'username' => 'xsd:string',
64
-		'password' => 'xsd:string',
61
+    'WSCMForum.get_forum_thread_data',
62
+    array(
63
+        'username' => 'xsd:string',
64
+        'password' => 'xsd:string',
65 65
                 'course_code' => 'xsd:string',
66 66
                 'thread_id' => 'xsd:string',
67 67
                 'field' => 'xsd:string'
68
-	),
69
-	array('return' => 'xsd:string'),
68
+    ),
69
+    array('return' => 'xsd:string'),
70 70
         'urn:WSCMService',
71 71
         '',
72 72
         '',
@@ -75,14 +75,14 @@  discard block
 block discarded – undo
75 75
 );
76 76
 
77 77
 $s->register(
78
-	'WSCMForum.get_forum_thread_title',
79
-	array(
80
-		'username' => 'xsd:string',
81
-		'password' => 'xsd:string',
78
+    'WSCMForum.get_forum_thread_title',
79
+    array(
80
+        'username' => 'xsd:string',
81
+        'password' => 'xsd:string',
82 82
                 'course_code' => 'xsd:string',
83 83
                 'thread_id' => 'xsd:string'
84
-	),
85
-	array('return' => 'xsd:string'),
84
+    ),
85
+    array('return' => 'xsd:string'),
86 86
         'urn:WSCMService',
87 87
         '',
88 88
         '',
@@ -92,14 +92,14 @@  discard block
 block discarded – undo
92 92
 
93 93
 
94 94
 $s->register(
95
-	'WSCMForum.get_posts_id',
96
-	array(
97
-		'username' => 'xsd:string',
98
-		'password' => 'xsd:string',
95
+    'WSCMForum.get_posts_id',
96
+    array(
97
+        'username' => 'xsd:string',
98
+        'password' => 'xsd:string',
99 99
                 'course_code' => 'xsd:string',
100 100
                 'thread_id' => 'xsd:string'
101
-	),
102
-	array('return' => 'xsd:string'),
101
+    ),
102
+    array('return' => 'xsd:string'),
103 103
         'urn:WSCMService',
104 104
         '',
105 105
         '',
@@ -108,15 +108,15 @@  discard block
 block discarded – undo
108 108
 );
109 109
 
110 110
 $s->register(
111
-	'WSCMForum.get_post_data',
112
-	array(
113
-		'username' => 'xsd:string',
114
-		'password' => 'xsd:string',
111
+    'WSCMForum.get_post_data',
112
+    array(
113
+        'username' => 'xsd:string',
114
+        'password' => 'xsd:string',
115 115
                 'course_code' => 'xsd:string',
116 116
                 'post_id' => 'xsd:string',
117 117
                 'field' => 'xsd:string'
118
-	),
119
-	array('return' => 'xsd:string'),
118
+    ),
119
+    array('return' => 'xsd:string'),
120 120
         'urn:WSCMService',
121 121
         '',
122 122
         '',
@@ -126,17 +126,17 @@  discard block
 block discarded – undo
126 126
 
127 127
 
128 128
 $s->register(
129
-	'WSCMForum.send_post',
130
-	array(
131
-		'username' => 'xsd:string',
132
-		'password' => 'xsd:string',
129
+    'WSCMForum.send_post',
130
+    array(
131
+        'username' => 'xsd:string',
132
+        'password' => 'xsd:string',
133 133
                 'course_code' => 'xsd:string',
134 134
                 'forum_id' => 'xsd:string',
135 135
                 'thread_id' => 'xsd:string',
136 136
                 'title' => 'xsd:string',
137 137
                 'content' => 'xsd:string'
138
-	),
139
-	array('return' => 'xsd:string'),
138
+    ),
139
+    array('return' => 'xsd:string'),
140 140
         'urn:WSCMService',
141 141
         '',
142 142
         '',
Please login to merge, or discard this patch.
main/webservices/user_import/service.php 1 patch
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -14,45 +14,45 @@
 block discarded – undo
14 14
  */
15 15
 function import_users_from_file($filepath, $security_key) {
16 16
 
17
-	global $_configuration;
18
-
19
-   	$errors_returned = array(
20
-	   	0 => 'success',
21
-	   	1 => 'file import does not exist',
22
-	   	2 => 'no users to import',
23
-	   	3 => 'wrong datas in file',
24
-	   	4 => 'security error'
25
-   	);
26
-
27
-   	// Check whether this script is launch by server and security key is ok.
28
-   	if (empty($_SERVER['REMOTE_ADDR']) || $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'] || $security_key != $_configuration['security_key']) {
29
-   		return $errors_returned[4];
30
-   	}
31
-
32
-   	// Libraries
33
-   	require_once 'import.lib.php';
34
-
35
-	// Check is users file exists.
36
-	if (!is_file($filepath)) {
37
-		return $errors_returned[1];
38
-	}
39
-
40
-	// Get list of users
41
-	$users = parse_csv_data($filepath);
42
-	if (count($users) == 0) {
43
-		return $errors_returned[2];
44
-	}
45
-
46
-	// Check the datas for each user
47
-	$errors = validate_data($users);
48
-	if (count($errors) > 0) {
49
-		return $errors_returned[3];
50
-	}
51
-
52
-	// Apply modifications in database
53
-	save_data($users);
54
-
55
-   	return $errors_returned[0]; // Import successfull
17
+    global $_configuration;
18
+
19
+        $errors_returned = array(
20
+            0 => 'success',
21
+            1 => 'file import does not exist',
22
+            2 => 'no users to import',
23
+            3 => 'wrong datas in file',
24
+            4 => 'security error'
25
+        );
26
+
27
+        // Check whether this script is launch by server and security key is ok.
28
+        if (empty($_SERVER['REMOTE_ADDR']) || $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'] || $security_key != $_configuration['security_key']) {
29
+            return $errors_returned[4];
30
+        }
31
+
32
+        // Libraries
33
+        require_once 'import.lib.php';
34
+
35
+    // Check is users file exists.
36
+    if (!is_file($filepath)) {
37
+        return $errors_returned[1];
38
+    }
39
+
40
+    // Get list of users
41
+    $users = parse_csv_data($filepath);
42
+    if (count($users) == 0) {
43
+        return $errors_returned[2];
44
+    }
45
+
46
+    // Check the datas for each user
47
+    $errors = validate_data($users);
48
+    if (count($errors) > 0) {
49
+        return $errors_returned[3];
50
+    }
51
+
52
+    // Apply modifications in database
53
+    save_data($users);
54
+
55
+        return $errors_returned[0]; // Import successfull
56 56
 }
57 57
 
58 58
 $server = new soap_server();
Please login to merge, or discard this patch.
main/webservices/user_import/import.lib.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -3,132 +3,132 @@  discard block
 block discarded – undo
3 3
  * Validates imported data.
4 4
  */
5 5
 function validate_data($users) {
6
-	global $defined_auth_sources;
7
-	$errors = array ();
8
-	$usernames = array ();
9
-	if(is_array($users)) {
10
-		foreach ($users as $index => $user) {
11
-			// 1. Check whether mandatory fields have been set.
12
-			$mandatory_fields = array ('LastName', 'FirstName');
13
-			if (api_get_setting('registration', 'email') == 'true') {
14
-				$mandatory_fields[] = 'Email';
15
-			}
16
-			foreach ($mandatory_fields as $key => $field) {
17
-				if (!isset ($user[$field]) || strlen($user[$field]) == 0) {
18
-					$user['error'] = get_lang($field.'Mandatory');
19
-					$errors[] = $user;
20
-				}
21
-			}
22
-			// 2. Check username.
23
-			if (!UserManager::is_username_empty($user['UserName'])) {
24
-				// 2.1. Check whether username was used twice in the import file.
25
-				if (isset($usernames[$user['UserName']])) {
26
-					$user['error'] = get_lang('UserNameUsedTwice');
27
-					$errors[] = $user;
28
-				}
29
-				$usernames[$user['UserName']] = 1;
30
-				// 2.2. Check whether username is allready in use in database.
31
-				if (!UserManager::is_username_available($user['UserName'])) {
32
-					$user['error'] = get_lang('UserNameNotAvailable');
33
-					$errors[] = $user;
34
-				}
35
-				// 2.3. Check whether username is too long.
36
-				if (UserManager::is_username_too_long($user['UserName'])) {
37
-					$user['error'] = get_lang('UserNameTooLong');
38
-					$errors[] = $user;
39
-				}
40
-			}
41
-			// 3. Check status.
42
-			if (isset ($user['Status']) && !api_status_exists($user['Status'])) {
43
-				$user['error'] = get_lang('WrongStatus');
44
-				$errors[] = $user;
45
-			}
46
-			// 4. Check classname.
47
-			if (isset ($user['ClassName']) && strlen($user['ClassName']) != 0) {
48
-				if (!ClassManager :: class_name_exists($user['ClassName'])) {
49
-					$user['error'] = get_lang('ClassNameNotAvailable');
50
-					$errors[] = $user;
51
-				}
52
-			}
53
-			// 5. Check authentication source.
54
-			if (isset ($user['AuthSource']) && strlen($user['AuthSource']) != 0) {
55
-				if (!in_array($user['AuthSource'], $defined_auth_sources)) {
56
-					$user['error'] = get_lang('AuthSourceNotAvailable');
57
-					$errors[] = $user;
58
-				}
59
-			}
60
-		}
61
-	}
62
-	return $errors;
6
+    global $defined_auth_sources;
7
+    $errors = array ();
8
+    $usernames = array ();
9
+    if(is_array($users)) {
10
+        foreach ($users as $index => $user) {
11
+            // 1. Check whether mandatory fields have been set.
12
+            $mandatory_fields = array ('LastName', 'FirstName');
13
+            if (api_get_setting('registration', 'email') == 'true') {
14
+                $mandatory_fields[] = 'Email';
15
+            }
16
+            foreach ($mandatory_fields as $key => $field) {
17
+                if (!isset ($user[$field]) || strlen($user[$field]) == 0) {
18
+                    $user['error'] = get_lang($field.'Mandatory');
19
+                    $errors[] = $user;
20
+                }
21
+            }
22
+            // 2. Check username.
23
+            if (!UserManager::is_username_empty($user['UserName'])) {
24
+                // 2.1. Check whether username was used twice in the import file.
25
+                if (isset($usernames[$user['UserName']])) {
26
+                    $user['error'] = get_lang('UserNameUsedTwice');
27
+                    $errors[] = $user;
28
+                }
29
+                $usernames[$user['UserName']] = 1;
30
+                // 2.2. Check whether username is allready in use in database.
31
+                if (!UserManager::is_username_available($user['UserName'])) {
32
+                    $user['error'] = get_lang('UserNameNotAvailable');
33
+                    $errors[] = $user;
34
+                }
35
+                // 2.3. Check whether username is too long.
36
+                if (UserManager::is_username_too_long($user['UserName'])) {
37
+                    $user['error'] = get_lang('UserNameTooLong');
38
+                    $errors[] = $user;
39
+                }
40
+            }
41
+            // 3. Check status.
42
+            if (isset ($user['Status']) && !api_status_exists($user['Status'])) {
43
+                $user['error'] = get_lang('WrongStatus');
44
+                $errors[] = $user;
45
+            }
46
+            // 4. Check classname.
47
+            if (isset ($user['ClassName']) && strlen($user['ClassName']) != 0) {
48
+                if (!ClassManager :: class_name_exists($user['ClassName'])) {
49
+                    $user['error'] = get_lang('ClassNameNotAvailable');
50
+                    $errors[] = $user;
51
+                }
52
+            }
53
+            // 5. Check authentication source.
54
+            if (isset ($user['AuthSource']) && strlen($user['AuthSource']) != 0) {
55
+                if (!in_array($user['AuthSource'], $defined_auth_sources)) {
56
+                    $user['error'] = get_lang('AuthSourceNotAvailable');
57
+                    $errors[] = $user;
58
+                }
59
+            }
60
+        }
61
+    }
62
+    return $errors;
63 63
 }
64 64
 
65 65
 /**
66 66
  * Adds missing user-information (which isn't required, like password, username, etc).
67 67
  */
68 68
 function complete_missing_data($user) {
69
-	// 1. Create a username if necessary.
70
-	if (UserManager::is_username_empty($user['UserName'])) {
71
-		$user['UserName'] = UserManager::create_unique_username($user['FirstName'], $user['LastName']);
72
-	}
73
-	// 2. Generate a password if necessary.
74
-	if (!isset ($user['Password']) || strlen($user['Password']) == 0) {
75
-		$user['Password'] = api_generate_password();
76
-	}
77
-	// 3. set status if not allready set.
78
-	if (!isset ($user['Status']) || strlen($user['Status']) == 0) {
79
-		$user['Status'] = 'user';
80
-	}
81
-	// 4. Set authsource if not allready set.
82
-	if (!isset ($user['AuthSource']) || strlen($user['AuthSource']) == 0) {
83
-		$user['AuthSource'] = PLATFORM_AUTH_SOURCE;
84
-	}
85
-	return $user;
69
+    // 1. Create a username if necessary.
70
+    if (UserManager::is_username_empty($user['UserName'])) {
71
+        $user['UserName'] = UserManager::create_unique_username($user['FirstName'], $user['LastName']);
72
+    }
73
+    // 2. Generate a password if necessary.
74
+    if (!isset ($user['Password']) || strlen($user['Password']) == 0) {
75
+        $user['Password'] = api_generate_password();
76
+    }
77
+    // 3. set status if not allready set.
78
+    if (!isset ($user['Status']) || strlen($user['Status']) == 0) {
79
+        $user['Status'] = 'user';
80
+    }
81
+    // 4. Set authsource if not allready set.
82
+    if (!isset ($user['AuthSource']) || strlen($user['AuthSource']) == 0) {
83
+        $user['AuthSource'] = PLATFORM_AUTH_SOURCE;
84
+    }
85
+    return $user;
86 86
 }
87 87
 
88 88
 /**
89 89
  * Save the imported data
90 90
  */
91 91
 function save_data($users) {
92
-	$user_table = Database :: get_main_table(TABLE_MAIN_USER);
93
-	if(is_array($users)) {
94
-		foreach ($users as $index => $user) {
95
-			$user = complete_missing_data($user);
92
+    $user_table = Database :: get_main_table(TABLE_MAIN_USER);
93
+    if(is_array($users)) {
94
+        foreach ($users as $index => $user) {
95
+            $user = complete_missing_data($user);
96 96
 
97
-			$user['Status'] = api_status_key($user['Status']);
97
+            $user['Status'] = api_status_key($user['Status']);
98 98
 
99
-			$user_id = UserManager :: create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], api_get_setting('PlatformLanguage'), $user['PhoneNumber'], '', $user['AuthSource']);
100
-			foreach ($user['Courses'] as $index => $course) {
101
-				if(CourseManager :: course_exists($course))
102
-					CourseManager :: subscribe_user($user_id, $course,$user['Status']);
103
-			}
104
-			if (strlen($user['ClassName']) > 0) {
105
-				$class_id = ClassManager :: get_class_id($user['ClassName']);
106
-				ClassManager :: add_user($user_id, $class_id);
107
-			}
99
+            $user_id = UserManager :: create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], api_get_setting('PlatformLanguage'), $user['PhoneNumber'], '', $user['AuthSource']);
100
+            foreach ($user['Courses'] as $index => $course) {
101
+                if(CourseManager :: course_exists($course))
102
+                    CourseManager :: subscribe_user($user_id, $course,$user['Status']);
103
+            }
104
+            if (strlen($user['ClassName']) > 0) {
105
+                $class_id = ClassManager :: get_class_id($user['ClassName']);
106
+                ClassManager :: add_user($user_id, $class_id);
107
+            }
108 108
 
109
-			// TODO: Hard-coded French texts.
109
+            // TODO: Hard-coded French texts.
110 110
 
111
-			// Qualite
112
-			if (!empty($user['Qualite'])) {
113
-				UserManager::update_extra_field_value($user_id, 'qualite', $user['Qualite']);
114
-			}
111
+            // Qualite
112
+            if (!empty($user['Qualite'])) {
113
+                UserManager::update_extra_field_value($user_id, 'qualite', $user['Qualite']);
114
+            }
115 115
 
116
-			// Categorie
117
-			if (!empty($user['Categorie'])) {
118
-				UserManager::update_extra_field_value($user_id, 'categorie', $user['Categorie']);
119
-			}
116
+            // Categorie
117
+            if (!empty($user['Categorie'])) {
118
+                UserManager::update_extra_field_value($user_id, 'categorie', $user['Categorie']);
119
+            }
120 120
 
121
-			// Etat
122
-			if (!empty($user['Etat'])) {
123
-				UserManager::update_extra_field_value($user_id, 'etat', $user['Etat']);
124
-			}
121
+            // Etat
122
+            if (!empty($user['Etat'])) {
123
+                UserManager::update_extra_field_value($user_id, 'etat', $user['Etat']);
124
+            }
125 125
 
126
-			// Niveau
127
-			if (!empty($user['Niveau'])) {
128
-				UserManager::update_extra_field_value($user_id, 'niveau', $user['Niveau']);
129
-			}
130
-		}
131
-	}
126
+            // Niveau
127
+            if (!empty($user['Niveau'])) {
128
+                UserManager::update_extra_field_value($user_id, 'niveau', $user['Niveau']);
129
+            }
130
+        }
131
+    }
132 132
 }
133 133
 
134 134
 /**
@@ -137,12 +137,12 @@  discard block
 block discarded – undo
137 137
  * @return array All userinformation read from the file
138 138
  */
139 139
 function parse_csv_data($file) {
140
-	$users = Import :: csvToArray($file);
141
-	foreach ($users as $index => $user) {
142
-		if (isset ($user['Courses'])) {
143
-			$user['Courses'] = explode('|', trim($user['Courses']));
144
-		}
145
-		$users[$index] = $user;
146
-	}
147
-	return $users;
140
+    $users = Import :: csvToArray($file);
141
+    foreach ($users as $index => $user) {
142
+        if (isset ($user['Courses'])) {
143
+            $user['Courses'] = explode('|', trim($user['Courses']));
144
+        }
145
+        $users[$index] = $user;
146
+    }
147
+    return $users;
148 148
 }
Please login to merge, or discard this patch.
main/webservices/cm_soap_courses.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -11,12 +11,12 @@  discard block
 block discarded – undo
11 11
 
12 12
 
13 13
 $s->register(
14
-	'WSCMCourses.get_courses_code',
15
-	array(
16
-		'username' => 'xsd:string',
17
-		'password' => 'xsd:string'
18
-	),
19
-	array('return' => 'xsd:string'),
14
+    'WSCMCourses.get_courses_code',
15
+    array(
16
+        'username' => 'xsd:string',
17
+        'password' => 'xsd:string'
18
+    ),
19
+    array('return' => 'xsd:string'),
20 20
         'urn:WSCMService',
21 21
         '',
22 22
         '',
@@ -26,13 +26,13 @@  discard block
 block discarded – undo
26 26
 );
27 27
 
28 28
 $s->register(
29
-	'WSCMCourses.get_course_title',
30
-	array(
31
-		'username' => 'xsd:string',
32
-		'password' => 'xsd:string',
29
+    'WSCMCourses.get_course_title',
30
+    array(
31
+        'username' => 'xsd:string',
32
+        'password' => 'xsd:string',
33 33
                 'course_code' => 'xsd:string',
34
-	),
35
-	array('return' => 'xsd:string'),
34
+    ),
35
+    array('return' => 'xsd:string'),
36 36
         'urn:WSCMService',
37 37
         '',
38 38
         '',
Please login to merge, or discard this patch.
main/webservices/cm_webservice_course.php 1 patch
Indentation   +511 added lines, -511 removed lines patch added patch discarded remove patch
@@ -10,521 +10,521 @@
 block discarded – undo
10 10
  */
11 11
 class WSCMCourse extends WSCM
12 12
 {
13
-	/**
14
-	 * Deletes a course (helper method)
15
-	 *
16
-	 * @param string Course id field name
17
-	 * @param string Course id value
18
-	 * @return mixed True if the course was successfully deleted, WSError otherwise
19
-	 */
20
-	protected function deleteCourseHelper($course_id_field_name, $course_id_value) {
21
-		$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
22
-		if($course_id instanceof WSCMError) {
23
-			return $course_id;
24
-		} else {
25
-			$course_code = CourseManager::get_course_code_from_course_id($course_id);
26
-			CourseManager::delete_course($course_code);
27
-			return true;
28
-		}
29
-	}
30
-
31
-	/**
32
-	 * Deletes a course
33
-	 *
34
-	 * @param string API secret key
35
-	 * @param string Course id field name
36
-	 * @param string Course id value
37
-	 */
38
-	public function DeleteCourse($secret_key, $course_id_field_name, $course_id_value) {
39
-		$verifKey = $this->verifyKey($secret_key);
40
-		if($verifKey instanceof WSError) {
41
-			$this->handleError($verifKey);
42
-		} else {
43
-			$result = $this->deleteCourseHelper($course_id_field_name, $course_id_value);
44
-			if($result instanceof WSError) {
45
-				$this->handleError($result);
46
-			}
47
-		}
48
-	}
49
-
50
-	/**
51
-	 * Deletes multiple courses
52
-	 *
53
-	 * @param string API secret key
54
-	 * @param array Array of courses with elements of the form array('course_id_field_name' => 'name_of_field', 'course_id_value' => 'value')
55
-	 * @return array Array with elements like array('course_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
56
-	 * than 0, an error occured
57
-	 */
58
-	public function DeleteCourses($secret_key, $courses) {
59
-		$verifKey = $this->verifyKey($secret_key);
60
-		if($verifKey instanceof WSError) {
61
-			$this->handleError($verifKey);
62
-		} else {
63
-			$results = array();
64
-			foreach($courses as $course) {
65
-				$result_tmp = array();
66
-				$result_op = $this->deleteCourseHelper($course['course_id_field_name'], $course['course_id_value']);
67
-				$result_tmp['course_id_value'] = $course['course_id_value'];
68
-				if($result_op instanceof WSCMError) {
69
-					// Return the error in the results
70
-					$result_tmp['result'] = $result_op->toArray();
71
-				} else {
72
-					$result_tmp['result'] = $this->getSuccessfulResult();
73
-				}
74
-				$results[] = $result_tmp;
75
-			}
76
-			return $results;
77
-		}
78
-	}
79
-
80
-	/**
81
-	 * Creates a course (helper method)
82
-	 *
83
-	 * @param string Title
84
-	 * @param string Category code
85
-	 * @param string Wanted code. If it's not defined, it will be generated automatically
86
-	 * @param string Tutor name
87
-	 * @param string Course admin user id field name
88
-	 * @param string Course admin user id value
89
-	 * @param string Course language
90
-	 * @param string Course id field name
91
-	 * @param string Course id value
92
-	 * @param array Course extra fields
93
-	 * @return mixed Generated id if creation was successful, WSError otherwise
94
-	 */
95
-	protected function createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras) {
96
-		// Add the original course id field name and value to the extra fields if needed
97
-		$extras_associative = array();
98
-		if($course_id_field_name != "chamilo_course_id") {
99
-			$extras_associative[$course_id_field_name] = $course_id_value;
100
-		}
101
-		foreach($extras as $extra) {
102
-			$extras_associative[$extra['field_name']] = $extra['field_value'];
103
-		}
104
-		$course_admin_id = $this->getUserId($course_admin_user_id_field_name, $course_admin_user_id_value);
105
-		if($course_admin_id instanceof WSError) {
106
-			return $course_admin_id;
107
-		}
108
-		if($wanted_code == '') {
109
-			$wanted_code = CourseManager::generate_course_code($title);
110
-		}
111
-		$result = create_course($wanted_code, $title, $tutor_name, $category_code, $language, $course_admin_id, $this->_configuration['db_prefix'], 0);
112
-		if (!$result) {
113
-			return new WSError(202, 'There was an error creating the course');
114
-		} else {
115
-			// Update extra fields
116
-			foreach($extras_associative as $fname => $fvalue) {
117
-				CourseManager::update_course_extra_field_value($result, $fname, $fvalue);
118
-			}
119
-			// Get course id
120
-			$course_info = CourseManager::get_course_information($result);
121
-			return $course_info['real_id'];
122
-		}
123
-	}
124
-
125
-	/**
126
-	 * Creates a course
127
-	 *
128
-	 * @param string API secret key
129
-	 * @param string Title
130
-	 * @param string Category code
131
-	 * @param string Wanted code. If it's not defined, it will be generated automatically
132
-	 * @param string Tutor name
133
-	 * @param string Course admin user id field name
134
-	 * @param string Course admin user id value
135
-	 * @param string Course language
136
-	 * @param string Course id field name
137
-	 * @param string Course id value
138
-	 * @param array Course extra fields
139
-	 * @return int Course id generated
140
-	 */
141
-	public function CreateCourse($secret_key, $title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras) {
142
-		// First, verify the secret key
143
-		$verifKey = $this->verifyKey($secret_key);
144
-		if($verifKey instanceof WSError) {
145
-			$this->handleError($verifKey);
146
-		} else {
147
-			$result = $this->createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras);
148
-			if($result instanceof WSError) {
149
-				$this->handleError($result);
150
-			} else {
151
-				return $result;
152
-			}
153
-		}
154
-	}
155
-
156
-	/**
157
-	 * Create multiple courses
158
-	 *
159
-	 * @param string API secret key
160
-	 * @param array Courses to be created, with elements following the structure presented in CreateCourse
161
-	 * @return array Array with elements of the form array('course_id_value' => 'original value sent', 'course_id_generated' => 'value_generated', 'result' => array('code' => 0, 'message' => 'Operation was successful'))
162
-	 */
163
-	public function CreateCourses($secret_key, $courses) {
164
-		// First, verify the secret key
165
-		$verifKey = $this->verifyKey($secret_key);
166
-		if($verifKey instanceof WSCMError) {
167
-			$this->handleError($verifKey);
168
-		} else {
169
-			$results = array();
170
-			foreach($courses as $course) {
171
-				$result_tmp = array();
172
-				//reinitialize variables just in case
173
-				$title = $category_code = $wanted_code = $tutor_name = $course_admin_user_id_field_name = $course_admin_user_id_value = $language = $course_id_field_name = $course_id_value = $extras = null;
174
-				extract($course);
175
-				$result = $this->createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras);
176
-				if($result instanceof WSCMError) {
177
-					$result_tmp['result'] = $result->toArray();
178
-					$result_tmp['course_id_value'] = $course_id_value;
179
-					$result_tmp['course_id_generated'] = 0;
180
-				} else {
181
-					$result_tmp['result'] = $this->getSuccessfulResult();
182
-					$result_tmp['course_id_value'] = $course_id_value;
183
-					$result_tmp['course_id_generated'] = $result;
184
-				}
185
-				$results[] = $result_tmp;
186
-			}
187
-			return $results;
188
-		}
189
-	}
190
-
191
-	/**
192
-	 * Edits a course (helper method)
193
-	 *
194
-	 * @param string Course id field name
195
-	 * @param string Course id value
196
-	 * @param string Title
197
-	 * @param string Category code
198
-	 * @param string Department name
199
-	 * @param string Department url
200
-	 * @param string Course language
201
-	 * @param int Visibility
202
-	 * @param int Subscribe (0 = denied, 1 = allowed)
203
-	 * @param int Unsubscribe (0 = denied, 1 = allowed)
204
-	 * @param string Visual code
205
-	 * @param array Course extra fields
206
-	 * @return mixed True in case of success, WSError otherwise
207
-	 */
208
-	protected function editCourseHelper($course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras) {
209
-		$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
210
-		if($course_id instanceof WSCMError) {
211
-			return $course_id;
212
-		} else {
213
-			$attributes = array();
214
-			if(!is_empty($title)) {
215
-				$attributes['title'] = $title;
216
-			}
217
-			if(!is_empty($category_code)) {
218
-				$attributes['category_code'] = $category_code;
219
-			}
220
-			if(!is_empty($department_name)) {
221
-				$attributes['department_name'] = $department_name;
222
-			}
223
-			if(!is_empty($department_url)) {
224
-				$attributes['department_url'] = $department_url;
225
-			}
226
-			if(!is_empty($language)) {
227
-				$attributes['course_language'] = $language;
228
-			}
229
-			if($visibility != '') {
230
-				$attributes['visibility'] = (int)$visibility;
231
-			}
232
-			if($subscribe != '') {
233
-				$attributes['subscribe'] = (int)$subscribe;
234
-			}
235
-			if($unsubscribe != '') {
236
-				$attributes['unsubscribe'] = (int)$unsubscribe;
237
-			}
238
-			if(!is_empty($visual_code)) {
239
-				$attributes['visual_code'] = $visual_code;
240
-			}
241
-			if(!is_empty($attributes)) {
242
-				CourseManager::update_attributes($course_id, $attributes);
243
-			}
244
-			if(!empty($extras)) {
245
-				$course_code = CourseManager::get_course_code_from_course_id($course_id);
246
-				$extras_associative = array();
247
-				foreach($extras as $extra) {
248
-					$extras_associative[$extra['field_name']] = $extra['field_value'];
249
-				}
250
-				foreach($extras_associative as $fname => $fvalue) {
251
-					CourseManager::update_extra_field_value($course_code, $fname, $fvalue);
252
-				}
253
-			}
254
-			return true;
255
-		}
256
-	}
257
-
258
-	/**
259
-	 * Edits a course
260
-	 *
261
-	 * @param string API secret key
262
-	 * @param string Course id field name
263
-	 * @param string Course id value
264
-	 * @param string Title
265
-	 * @param string Category code
266
-	 * @param string Department name
267
-	 * @param string Department url
268
-	 * @param string Course language
269
-	 * @param int Visibility
270
-	 * @param int Subscribe (0 = denied, 1 = allowed)
271
-	 * @param int Unsubscribe (0 = denied, 1 = allowed)
272
-	 * @param string Visual code
273
-	 * @param array Course extra fields
274
-	 */
275
-	public function EditCourse($secret_key, $course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras) {
276
-		$verifKey = $this->verifyKey($secret_key);
277
-		if($verifKey instanceof WSCMError) {
278
-			$this->handleError($verifKey);
279
-		} else {
280
-			$result = $this->editCourseHelper($course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras);
281
-			if($result instanceof WSCMError) {
282
-				$this->handleError($result);
283
-			}
284
-		}
285
-	}
286
-
287
-	/**
288
-	 * List courses
289
-	 *
290
-	 * @param string API secret key
291
-	 * @param string Course id field name. Use "chamilo_course_id" to use internal id
292
-	 * @return array An array with elements of the form ('id' => 'Course internal id', 'code' => 'Course code', 'title' => 'Course title', 'language' => 'Course language', 'visibility' => 'Course visibility',
293
-	 * 'category_name' => 'Name of the category of the course', 'number_students' => 'Number of students in the course', 'external_course_id' => 'External course id')
294
-	 */
295
-	public function ListCourses($secret_key, $course_id_field_name) {
296
-		$verifKey = $this->verifyKey($secret_key);
297
-		if($verifKey instanceof WSError) {
298
-			$this->handleError($verifKey);
299
-		} else {
300
-			$courses_result = array();
301
-			$category_names = array();
302
-
303
-			$courses = CourseManager::get_courses_list();
304
-			foreach($courses as $course) {
305
-				$course_tmp = array();
306
-				$course_tmp['id'] = $course['id'];
307
-				$course_tmp['code'] = $course['code'];
308
-				$course_tmp['title'] = $course['title'];
309
-				$course_tmp['language'] = $course['course_language'];
310
-				$course_tmp['visibility'] = $course['visibility'];
311
-
312
-				// Determining category name
313
-				if($category_names[$course['category_code']]) {
314
-					$course_tmp['category_name'] = $category_names[$course['category_code']];
315
-				} else {
316
-					$category = CourseManager::get_course_category($course['category_code']);
317
-					$category_names[$course['category_code']] = $category['name'];
318
-					$course_tmp['category_name'] = $category['name'];
319
-				}
320
-
321
-				// Determining number of students registered in course
322
-				$user_list = CourseManager::get_user_list_from_course_code($course['code']);
323
-				$course_tmp['number_students'] = count($user_list);
324
-
325
-				// Determining external course id
326
-				$course_tmp['external_course_id'] = CourseManager::get_course_extra_field_value($course_id_field_name, $course['code']);
327
-
328
-
329
-				$courses_result[] = $course_tmp;
330
-			}
331
-
332
-			return $courses_result;
333
-		}
334
-	}
335
-
336
-	/**
337
-	 * Subscribe or unsubscribe user to a course (helper method)
338
-	 *
339
-	 * @param string Course id field name. Use "chamilo_course_id" to use internal id
340
-	 * @param string Course id value.
341
-	 * @param string User id field name. Use "chamilo_user_id" to use internal id
342
-	 * @param string User id value
343
-	 * @param int Set to 1 to subscribe, 0 to unsubscribe
344
-	 * @param int Status (STUDENT or TEACHER) Used for subscription only
345
-	 * @return mixed True if subscription or unsubscription was successful, false otherwise
346
-	 */
347
-	protected function changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, $state, $status = STUDENT) {
348
-		$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
349
-		if($course_id instanceof WSError) {
350
-			return $course_id;
351
-		} else {
352
-			$user_id = $this->getUserId($user_id_field_name, $user_id_value);
353
-			if($user_id instanceof WSError) {
354
-				return $user_id;
355
-			} else {
356
-				$course_code = CourseManager::get_course_code_from_course_id($course_id);
357
-				if($state == 0) {
358
-					// Unsubscribe user
359
-					CourseManager::unsubscribe_user($user_id, $course_code);
360
-					return true;
361
-				} else {
362
-					// Subscribe user
363
-					if(CourseManager::subscribe_user($user_id, $course_code, $status)) {
364
-						return true;
365
-					} else {
366
-						return new WSError(203, 'An error occured subscribing to this course');
367
-					}
368
-				}
369
-			}
370
-		}
371
-	}
372
-
373
-	/**
374
-	 * Subscribe user to a course
375
-	 *
376
-	 * @param string API secret key
377
-	 * @param string Course id field name. Use "chamilo_course_id" to use internal id
378
-	 * @param string Course id value.
379
-	 * @param string User id field name. Use "chamilo_user_id" to use internal id
380
-	 * @param string User id value
381
-	 * @param int Status (1 = Teacher, 5 = Student)
382
-	 */
383
-	public function SubscribeUserToCourse($secret_key, $course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, $status) {
384
-		$verifKey = $this->verifyKey($secret_key);
385
-		if($verifKey instanceof WSError) {
386
-			$this->handleError($verifKey);
387
-		} else {
388
-			$result = $this->changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, 1, $status);
389
-			if($result instanceof WSError) {
390
-				$this->handleError($result);
391
-			}
392
-		}
393
-	}
394
-
395
-	/**
396
-	 * Unsusbscribe user from course
397
-	 *
398
-	 * @param string API secret key
399
-	 * @param string Course id field name. Use "chamilo_course_id" to use internal id
400
-	 * @param string Course id value.
401
-	 * @param string User id field name. Use "chamilo_user_id" to use internal id
402
-	 * @param string User id value
403
-	 */
404
-	public function UnsubscribeUserFromCourse($secret_key, $course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value) {
405
-		$verifKey = $this->verifyKey($secret_key);
406
-		if($verifKey instanceof WSError) {
407
-			$this->handleError($verifKey);
408
-		} else {
409
-			$result = $this->changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, 0);
410
-			if($result instanceof WSError) {
411
-				$this->handleError($result);
412
-			}
413
-		}
414
-	}
415
-
416
-	/**
417
-	 * Returns the descriptions of a course, along with their id
418
-	 *
419
-	 * @param string API secret key
420
-	 * @param string Course id field name
421
-	 * @param string Course id value
422
-	 * @return array Returns an array with elements of the form ('course_desc_id' => 1, 'course_desc_title' => 'Title', 'course_desc_content' => 'Content')
423
-	 */
424
-	public function GetCourseDescriptions($secret_key, $course_id_field_name, $course_id_value) {
425
-		$verifKey = $this->verifyKey($secret_key);
426
-		if($verifKey instanceof WSError) {
427
-			$this->handleError($verifKey);
428
-		} else {
429
-			$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
430
-			if($course_id instanceof WSError) {
431
-				return $course_id;
432
-			} else {
433
-				// Course exists, get its descriptions
434
-				$descriptions = CourseDescription::get_descriptions($course_id);
435
-				$results = array();
436
-				foreach($descriptions as $description) {
437
-					$results[] = array('course_desc_id' => $description->get_description_type(),
438
-						'course_desc_title' => $description->get_title(),
439
-						'course_desc_content' => $description->get_content());
440
-				}
441
-				return $results;
442
-			}
443
-		}
444
-	}
445
-
446
-
447
-	/**
448
-	 * Edit course description
449
-	 *
450
-	 * @param string API secret key
451
-	 * @param string Course id field name
452
-	 * @param string Course id value
453
-	 * @param int Category id from course description
454
-	 * @param string Description title
455
-	 * @param string Course description content
456
-	 */
457
-	public function EditCourseDescription($secret_key, $course_id_field_name, $course_id_value, $course_desc_id, $course_desc_title, $course_desc_content) {
458
-		$verifKey = $this->verifyKey($secret_key);
459
-		if($verifKey instanceof WSError) {
460
-			$this->handleError($verifKey);
461
-		} else {
462
-			$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
463
-			if($course_id instanceof WSError) {
464
-				return $course_id;
465
-			} else {
466
-				// Create the new course description
467
-				$cd = new CourseDescription();
468
-				$cd->set_description_type($course_desc_id);
469
-				$cd->set_title($course_desc_title);
470
-				$cd->set_content($course_desc_content);
471
-				$cd->set_session_id(0);
472
-
473
-				// Get course info
13
+    /**
14
+     * Deletes a course (helper method)
15
+     *
16
+     * @param string Course id field name
17
+     * @param string Course id value
18
+     * @return mixed True if the course was successfully deleted, WSError otherwise
19
+     */
20
+    protected function deleteCourseHelper($course_id_field_name, $course_id_value) {
21
+        $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
22
+        if($course_id instanceof WSCMError) {
23
+            return $course_id;
24
+        } else {
25
+            $course_code = CourseManager::get_course_code_from_course_id($course_id);
26
+            CourseManager::delete_course($course_code);
27
+            return true;
28
+        }
29
+    }
30
+
31
+    /**
32
+     * Deletes a course
33
+     *
34
+     * @param string API secret key
35
+     * @param string Course id field name
36
+     * @param string Course id value
37
+     */
38
+    public function DeleteCourse($secret_key, $course_id_field_name, $course_id_value) {
39
+        $verifKey = $this->verifyKey($secret_key);
40
+        if($verifKey instanceof WSError) {
41
+            $this->handleError($verifKey);
42
+        } else {
43
+            $result = $this->deleteCourseHelper($course_id_field_name, $course_id_value);
44
+            if($result instanceof WSError) {
45
+                $this->handleError($result);
46
+            }
47
+        }
48
+    }
49
+
50
+    /**
51
+     * Deletes multiple courses
52
+     *
53
+     * @param string API secret key
54
+     * @param array Array of courses with elements of the form array('course_id_field_name' => 'name_of_field', 'course_id_value' => 'value')
55
+     * @return array Array with elements like array('course_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
56
+     * than 0, an error occured
57
+     */
58
+    public function DeleteCourses($secret_key, $courses) {
59
+        $verifKey = $this->verifyKey($secret_key);
60
+        if($verifKey instanceof WSError) {
61
+            $this->handleError($verifKey);
62
+        } else {
63
+            $results = array();
64
+            foreach($courses as $course) {
65
+                $result_tmp = array();
66
+                $result_op = $this->deleteCourseHelper($course['course_id_field_name'], $course['course_id_value']);
67
+                $result_tmp['course_id_value'] = $course['course_id_value'];
68
+                if($result_op instanceof WSCMError) {
69
+                    // Return the error in the results
70
+                    $result_tmp['result'] = $result_op->toArray();
71
+                } else {
72
+                    $result_tmp['result'] = $this->getSuccessfulResult();
73
+                }
74
+                $results[] = $result_tmp;
75
+            }
76
+            return $results;
77
+        }
78
+    }
79
+
80
+    /**
81
+     * Creates a course (helper method)
82
+     *
83
+     * @param string Title
84
+     * @param string Category code
85
+     * @param string Wanted code. If it's not defined, it will be generated automatically
86
+     * @param string Tutor name
87
+     * @param string Course admin user id field name
88
+     * @param string Course admin user id value
89
+     * @param string Course language
90
+     * @param string Course id field name
91
+     * @param string Course id value
92
+     * @param array Course extra fields
93
+     * @return mixed Generated id if creation was successful, WSError otherwise
94
+     */
95
+    protected function createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras) {
96
+        // Add the original course id field name and value to the extra fields if needed
97
+        $extras_associative = array();
98
+        if($course_id_field_name != "chamilo_course_id") {
99
+            $extras_associative[$course_id_field_name] = $course_id_value;
100
+        }
101
+        foreach($extras as $extra) {
102
+            $extras_associative[$extra['field_name']] = $extra['field_value'];
103
+        }
104
+        $course_admin_id = $this->getUserId($course_admin_user_id_field_name, $course_admin_user_id_value);
105
+        if($course_admin_id instanceof WSError) {
106
+            return $course_admin_id;
107
+        }
108
+        if($wanted_code == '') {
109
+            $wanted_code = CourseManager::generate_course_code($title);
110
+        }
111
+        $result = create_course($wanted_code, $title, $tutor_name, $category_code, $language, $course_admin_id, $this->_configuration['db_prefix'], 0);
112
+        if (!$result) {
113
+            return new WSError(202, 'There was an error creating the course');
114
+        } else {
115
+            // Update extra fields
116
+            foreach($extras_associative as $fname => $fvalue) {
117
+                CourseManager::update_course_extra_field_value($result, $fname, $fvalue);
118
+            }
119
+            // Get course id
120
+            $course_info = CourseManager::get_course_information($result);
121
+            return $course_info['real_id'];
122
+        }
123
+    }
124
+
125
+    /**
126
+     * Creates a course
127
+     *
128
+     * @param string API secret key
129
+     * @param string Title
130
+     * @param string Category code
131
+     * @param string Wanted code. If it's not defined, it will be generated automatically
132
+     * @param string Tutor name
133
+     * @param string Course admin user id field name
134
+     * @param string Course admin user id value
135
+     * @param string Course language
136
+     * @param string Course id field name
137
+     * @param string Course id value
138
+     * @param array Course extra fields
139
+     * @return int Course id generated
140
+     */
141
+    public function CreateCourse($secret_key, $title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras) {
142
+        // First, verify the secret key
143
+        $verifKey = $this->verifyKey($secret_key);
144
+        if($verifKey instanceof WSError) {
145
+            $this->handleError($verifKey);
146
+        } else {
147
+            $result = $this->createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras);
148
+            if($result instanceof WSError) {
149
+                $this->handleError($result);
150
+            } else {
151
+                return $result;
152
+            }
153
+        }
154
+    }
155
+
156
+    /**
157
+     * Create multiple courses
158
+     *
159
+     * @param string API secret key
160
+     * @param array Courses to be created, with elements following the structure presented in CreateCourse
161
+     * @return array Array with elements of the form array('course_id_value' => 'original value sent', 'course_id_generated' => 'value_generated', 'result' => array('code' => 0, 'message' => 'Operation was successful'))
162
+     */
163
+    public function CreateCourses($secret_key, $courses) {
164
+        // First, verify the secret key
165
+        $verifKey = $this->verifyKey($secret_key);
166
+        if($verifKey instanceof WSCMError) {
167
+            $this->handleError($verifKey);
168
+        } else {
169
+            $results = array();
170
+            foreach($courses as $course) {
171
+                $result_tmp = array();
172
+                //reinitialize variables just in case
173
+                $title = $category_code = $wanted_code = $tutor_name = $course_admin_user_id_field_name = $course_admin_user_id_value = $language = $course_id_field_name = $course_id_value = $extras = null;
174
+                extract($course);
175
+                $result = $this->createCourseHelper($title, $category_code, $wanted_code, $tutor_name, $course_admin_user_id_field_name, $course_admin_user_id_value, $language, $course_id_field_name, $course_id_value, $extras);
176
+                if($result instanceof WSCMError) {
177
+                    $result_tmp['result'] = $result->toArray();
178
+                    $result_tmp['course_id_value'] = $course_id_value;
179
+                    $result_tmp['course_id_generated'] = 0;
180
+                } else {
181
+                    $result_tmp['result'] = $this->getSuccessfulResult();
182
+                    $result_tmp['course_id_value'] = $course_id_value;
183
+                    $result_tmp['course_id_generated'] = $result;
184
+                }
185
+                $results[] = $result_tmp;
186
+            }
187
+            return $results;
188
+        }
189
+    }
190
+
191
+    /**
192
+     * Edits a course (helper method)
193
+     *
194
+     * @param string Course id field name
195
+     * @param string Course id value
196
+     * @param string Title
197
+     * @param string Category code
198
+     * @param string Department name
199
+     * @param string Department url
200
+     * @param string Course language
201
+     * @param int Visibility
202
+     * @param int Subscribe (0 = denied, 1 = allowed)
203
+     * @param int Unsubscribe (0 = denied, 1 = allowed)
204
+     * @param string Visual code
205
+     * @param array Course extra fields
206
+     * @return mixed True in case of success, WSError otherwise
207
+     */
208
+    protected function editCourseHelper($course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras) {
209
+        $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
210
+        if($course_id instanceof WSCMError) {
211
+            return $course_id;
212
+        } else {
213
+            $attributes = array();
214
+            if(!is_empty($title)) {
215
+                $attributes['title'] = $title;
216
+            }
217
+            if(!is_empty($category_code)) {
218
+                $attributes['category_code'] = $category_code;
219
+            }
220
+            if(!is_empty($department_name)) {
221
+                $attributes['department_name'] = $department_name;
222
+            }
223
+            if(!is_empty($department_url)) {
224
+                $attributes['department_url'] = $department_url;
225
+            }
226
+            if(!is_empty($language)) {
227
+                $attributes['course_language'] = $language;
228
+            }
229
+            if($visibility != '') {
230
+                $attributes['visibility'] = (int)$visibility;
231
+            }
232
+            if($subscribe != '') {
233
+                $attributes['subscribe'] = (int)$subscribe;
234
+            }
235
+            if($unsubscribe != '') {
236
+                $attributes['unsubscribe'] = (int)$unsubscribe;
237
+            }
238
+            if(!is_empty($visual_code)) {
239
+                $attributes['visual_code'] = $visual_code;
240
+            }
241
+            if(!is_empty($attributes)) {
242
+                CourseManager::update_attributes($course_id, $attributes);
243
+            }
244
+            if(!empty($extras)) {
245
+                $course_code = CourseManager::get_course_code_from_course_id($course_id);
246
+                $extras_associative = array();
247
+                foreach($extras as $extra) {
248
+                    $extras_associative[$extra['field_name']] = $extra['field_value'];
249
+                }
250
+                foreach($extras_associative as $fname => $fvalue) {
251
+                    CourseManager::update_extra_field_value($course_code, $fname, $fvalue);
252
+                }
253
+            }
254
+            return true;
255
+        }
256
+    }
257
+
258
+    /**
259
+     * Edits a course
260
+     *
261
+     * @param string API secret key
262
+     * @param string Course id field name
263
+     * @param string Course id value
264
+     * @param string Title
265
+     * @param string Category code
266
+     * @param string Department name
267
+     * @param string Department url
268
+     * @param string Course language
269
+     * @param int Visibility
270
+     * @param int Subscribe (0 = denied, 1 = allowed)
271
+     * @param int Unsubscribe (0 = denied, 1 = allowed)
272
+     * @param string Visual code
273
+     * @param array Course extra fields
274
+     */
275
+    public function EditCourse($secret_key, $course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras) {
276
+        $verifKey = $this->verifyKey($secret_key);
277
+        if($verifKey instanceof WSCMError) {
278
+            $this->handleError($verifKey);
279
+        } else {
280
+            $result = $this->editCourseHelper($course_id_field_name, $course_id_value, $title, $category_code, $department_name, $department_url, $language, $visibility, $subscribe, $unsubscribe, $visual_code, $extras);
281
+            if($result instanceof WSCMError) {
282
+                $this->handleError($result);
283
+            }
284
+        }
285
+    }
286
+
287
+    /**
288
+     * List courses
289
+     *
290
+     * @param string API secret key
291
+     * @param string Course id field name. Use "chamilo_course_id" to use internal id
292
+     * @return array An array with elements of the form ('id' => 'Course internal id', 'code' => 'Course code', 'title' => 'Course title', 'language' => 'Course language', 'visibility' => 'Course visibility',
293
+     * 'category_name' => 'Name of the category of the course', 'number_students' => 'Number of students in the course', 'external_course_id' => 'External course id')
294
+     */
295
+    public function ListCourses($secret_key, $course_id_field_name) {
296
+        $verifKey = $this->verifyKey($secret_key);
297
+        if($verifKey instanceof WSError) {
298
+            $this->handleError($verifKey);
299
+        } else {
300
+            $courses_result = array();
301
+            $category_names = array();
302
+
303
+            $courses = CourseManager::get_courses_list();
304
+            foreach($courses as $course) {
305
+                $course_tmp = array();
306
+                $course_tmp['id'] = $course['id'];
307
+                $course_tmp['code'] = $course['code'];
308
+                $course_tmp['title'] = $course['title'];
309
+                $course_tmp['language'] = $course['course_language'];
310
+                $course_tmp['visibility'] = $course['visibility'];
311
+
312
+                // Determining category name
313
+                if($category_names[$course['category_code']]) {
314
+                    $course_tmp['category_name'] = $category_names[$course['category_code']];
315
+                } else {
316
+                    $category = CourseManager::get_course_category($course['category_code']);
317
+                    $category_names[$course['category_code']] = $category['name'];
318
+                    $course_tmp['category_name'] = $category['name'];
319
+                }
320
+
321
+                // Determining number of students registered in course
322
+                $user_list = CourseManager::get_user_list_from_course_code($course['code']);
323
+                $course_tmp['number_students'] = count($user_list);
324
+
325
+                // Determining external course id
326
+                $course_tmp['external_course_id'] = CourseManager::get_course_extra_field_value($course_id_field_name, $course['code']);
327
+
328
+
329
+                $courses_result[] = $course_tmp;
330
+            }
331
+
332
+            return $courses_result;
333
+        }
334
+    }
335
+
336
+    /**
337
+     * Subscribe or unsubscribe user to a course (helper method)
338
+     *
339
+     * @param string Course id field name. Use "chamilo_course_id" to use internal id
340
+     * @param string Course id value.
341
+     * @param string User id field name. Use "chamilo_user_id" to use internal id
342
+     * @param string User id value
343
+     * @param int Set to 1 to subscribe, 0 to unsubscribe
344
+     * @param int Status (STUDENT or TEACHER) Used for subscription only
345
+     * @return mixed True if subscription or unsubscription was successful, false otherwise
346
+     */
347
+    protected function changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, $state, $status = STUDENT) {
348
+        $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
349
+        if($course_id instanceof WSError) {
350
+            return $course_id;
351
+        } else {
352
+            $user_id = $this->getUserId($user_id_field_name, $user_id_value);
353
+            if($user_id instanceof WSError) {
354
+                return $user_id;
355
+            } else {
356
+                $course_code = CourseManager::get_course_code_from_course_id($course_id);
357
+                if($state == 0) {
358
+                    // Unsubscribe user
359
+                    CourseManager::unsubscribe_user($user_id, $course_code);
360
+                    return true;
361
+                } else {
362
+                    // Subscribe user
363
+                    if(CourseManager::subscribe_user($user_id, $course_code, $status)) {
364
+                        return true;
365
+                    } else {
366
+                        return new WSError(203, 'An error occured subscribing to this course');
367
+                    }
368
+                }
369
+            }
370
+        }
371
+    }
372
+
373
+    /**
374
+     * Subscribe user to a course
375
+     *
376
+     * @param string API secret key
377
+     * @param string Course id field name. Use "chamilo_course_id" to use internal id
378
+     * @param string Course id value.
379
+     * @param string User id field name. Use "chamilo_user_id" to use internal id
380
+     * @param string User id value
381
+     * @param int Status (1 = Teacher, 5 = Student)
382
+     */
383
+    public function SubscribeUserToCourse($secret_key, $course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, $status) {
384
+        $verifKey = $this->verifyKey($secret_key);
385
+        if($verifKey instanceof WSError) {
386
+            $this->handleError($verifKey);
387
+        } else {
388
+            $result = $this->changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, 1, $status);
389
+            if($result instanceof WSError) {
390
+                $this->handleError($result);
391
+            }
392
+        }
393
+    }
394
+
395
+    /**
396
+     * Unsusbscribe user from course
397
+     *
398
+     * @param string API secret key
399
+     * @param string Course id field name. Use "chamilo_course_id" to use internal id
400
+     * @param string Course id value.
401
+     * @param string User id field name. Use "chamilo_user_id" to use internal id
402
+     * @param string User id value
403
+     */
404
+    public function UnsubscribeUserFromCourse($secret_key, $course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value) {
405
+        $verifKey = $this->verifyKey($secret_key);
406
+        if($verifKey instanceof WSError) {
407
+            $this->handleError($verifKey);
408
+        } else {
409
+            $result = $this->changeUserSubscription($course_id_field_name, $course_id_value, $user_id_field_name, $user_id_value, 0);
410
+            if($result instanceof WSError) {
411
+                $this->handleError($result);
412
+            }
413
+        }
414
+    }
415
+
416
+    /**
417
+     * Returns the descriptions of a course, along with their id
418
+     *
419
+     * @param string API secret key
420
+     * @param string Course id field name
421
+     * @param string Course id value
422
+     * @return array Returns an array with elements of the form ('course_desc_id' => 1, 'course_desc_title' => 'Title', 'course_desc_content' => 'Content')
423
+     */
424
+    public function GetCourseDescriptions($secret_key, $course_id_field_name, $course_id_value) {
425
+        $verifKey = $this->verifyKey($secret_key);
426
+        if($verifKey instanceof WSError) {
427
+            $this->handleError($verifKey);
428
+        } else {
429
+            $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
430
+            if($course_id instanceof WSError) {
431
+                return $course_id;
432
+            } else {
433
+                // Course exists, get its descriptions
434
+                $descriptions = CourseDescription::get_descriptions($course_id);
435
+                $results = array();
436
+                foreach($descriptions as $description) {
437
+                    $results[] = array('course_desc_id' => $description->get_description_type(),
438
+                        'course_desc_title' => $description->get_title(),
439
+                        'course_desc_content' => $description->get_content());
440
+                }
441
+                return $results;
442
+            }
443
+        }
444
+    }
445
+
446
+
447
+    /**
448
+     * Edit course description
449
+     *
450
+     * @param string API secret key
451
+     * @param string Course id field name
452
+     * @param string Course id value
453
+     * @param int Category id from course description
454
+     * @param string Description title
455
+     * @param string Course description content
456
+     */
457
+    public function EditCourseDescription($secret_key, $course_id_field_name, $course_id_value, $course_desc_id, $course_desc_title, $course_desc_content) {
458
+        $verifKey = $this->verifyKey($secret_key);
459
+        if($verifKey instanceof WSError) {
460
+            $this->handleError($verifKey);
461
+        } else {
462
+            $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
463
+            if($course_id instanceof WSError) {
464
+                return $course_id;
465
+            } else {
466
+                // Create the new course description
467
+                $cd = new CourseDescription();
468
+                $cd->set_description_type($course_desc_id);
469
+                $cd->set_title($course_desc_title);
470
+                $cd->set_content($course_desc_content);
471
+                $cd->set_session_id(0);
472
+
473
+                // Get course info
474 474
                 $course_info = CourseManager::get_course_information(
475 475
                     CourseManager::get_course_code_from_course_id($course_id)
476 476
                 );
477
-				// Check if this course description exists
478
-				$descriptions = CourseDescription::get_descriptions($course_id);
479
-				$exists = false;
480
-				foreach($descriptions as $description) {
481
-					if($description->get_description_type() == $course_desc_id) {
482
-						$exists = true;
483
-					}
484
-				}
477
+                // Check if this course description exists
478
+                $descriptions = CourseDescription::get_descriptions($course_id);
479
+                $exists = false;
480
+                foreach($descriptions as $description) {
481
+                    if($description->get_description_type() == $course_desc_id) {
482
+                        $exists = true;
483
+                    }
484
+                }
485 485
                 $cd->set_course_id($course_info['real_id']);
486
-				if (!$exists) {
487
-					$cd->set_progress(0);
488
-					$cd->insert();
489
-				} else {
490
-					$cd->update();
491
-				}
492
-			}
493
-		}
494
-	}
495
-	public function unreadMessage($username, $password)
496
-	{
497
-		if($this->verifyUserPass($username, $password) == "valid")
498
-		{
499
-			$table_message = Database::get_main_table(TABLE_MESSAGE);
500
-			$user_id = UserManager::get_user_id_from_username($username);
501
-			$condition_msg_status = ' msg_status = 1 '; // define('MESSAGE_STATUS_UNREAD', '1');
502
-
503
-			$sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE $condition_msg_status AND user_receiver_id=".$user_id;
504
-
505
-			$sql_result = Database::query($sql_query);
506
-			$result = Database::fetch_array($sql_result);
507
-			return $result['number_messages'];
508
-		}
509
-		return "0";
510
-	}
511
-
512
-	public function get_message_data($username, $password)
513
-	{
514
-		if($this->verifyUserPass($username, $password) == "valid")
515
-		{
516
-			$user_id = get_user_id_from_username($username);
517
-
518
-		}
519
-
520
-	}
521
-
522
-	public function nada($username, $password)
523
-	{
524
-		if($this->verifyUserPass($username, $password) == "valid")
525
-			return $username.$password;
526
-		return $username;
527
-	}
486
+                if (!$exists) {
487
+                    $cd->set_progress(0);
488
+                    $cd->insert();
489
+                } else {
490
+                    $cd->update();
491
+                }
492
+            }
493
+        }
494
+    }
495
+    public function unreadMessage($username, $password)
496
+    {
497
+        if($this->verifyUserPass($username, $password) == "valid")
498
+        {
499
+            $table_message = Database::get_main_table(TABLE_MESSAGE);
500
+            $user_id = UserManager::get_user_id_from_username($username);
501
+            $condition_msg_status = ' msg_status = 1 '; // define('MESSAGE_STATUS_UNREAD', '1');
502
+
503
+            $sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE $condition_msg_status AND user_receiver_id=".$user_id;
504
+
505
+            $sql_result = Database::query($sql_query);
506
+            $result = Database::fetch_array($sql_result);
507
+            return $result['number_messages'];
508
+        }
509
+        return "0";
510
+    }
511
+
512
+    public function get_message_data($username, $password)
513
+    {
514
+        if($this->verifyUserPass($username, $password) == "valid")
515
+        {
516
+            $user_id = get_user_id_from_username($username);
517
+
518
+        }
519
+
520
+    }
521
+
522
+    public function nada($username, $password)
523
+    {
524
+        if($this->verifyUserPass($username, $password) == "valid")
525
+            return $username.$password;
526
+        return $username;
527
+    }
528 528
 
529 529
 
530 530
 
Please login to merge, or discard this patch.
main/webservices/soap_course.php 1 patch
Indentation   +185 added lines, -185 removed lines patch added patch discarded remove patch
@@ -13,44 +13,44 @@  discard block
 block discarded – undo
13 13
 $s = WSSoapServer::singleton();
14 14
 
15 15
 $s->wsdl->addComplexType(
16
-	'course_id',
17
-	'complexType',
18
-	'struct',
19
-	'all',
20
-	'',
21
-	array(
22
-		'course_id_field_name' => array('name' => 'course_id_field_name', 'type' => 'xsd:string'),
23
-		'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string')
24
-	)
16
+    'course_id',
17
+    'complexType',
18
+    'struct',
19
+    'all',
20
+    '',
21
+    array(
22
+        'course_id_field_name' => array('name' => 'course_id_field_name', 'type' => 'xsd:string'),
23
+        'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string')
24
+    )
25 25
 );
26 26
 
27 27
 $s->wsdl->addComplexType(
28
-	'course_result',
29
-	'complexType',
30
-	'struct',
31
-	'all',
32
-	'',
33
-	array(
34
-		'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
35
-		'result' => array('name' => 'result', 'type' => 'tns:result')
36
-	)
28
+    'course_result',
29
+    'complexType',
30
+    'struct',
31
+    'all',
32
+    '',
33
+    array(
34
+        'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
35
+        'result' => array('name' => 'result', 'type' => 'tns:result')
36
+    )
37 37
 );
38 38
 
39 39
 $s->wsdl->addComplexType(
40
-	'course_result_array',
41
-	'complexType',
42
-	'array',
43
-	'',
44
-	'SOAP-ENC:Array',
45
-	array(),
46
-	array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_result[]')),
47
-	'tns:course_result'
40
+    'course_result_array',
41
+    'complexType',
42
+    'array',
43
+    '',
44
+    'SOAP-ENC:Array',
45
+    array(),
46
+    array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_result[]')),
47
+    'tns:course_result'
48 48
 );
49 49
 
50 50
 $s->register(
51
-	'WSCourse.DeleteCourse',
52
-	array('secret_key' => 'xsd:string', 'course_id_field_name' => 'xsd:string', 'course_id_value' => 'xsd:string'),
53
-	array(),
51
+    'WSCourse.DeleteCourse',
52
+    array('secret_key' => 'xsd:string', 'course_id_field_name' => 'xsd:string', 'course_id_value' => 'xsd:string'),
53
+    array(),
54 54
     'urn:WSService',                               // namespace
55 55
     'urn:WSService#WSCourse.DeleteCourse',         // soapaction
56 56
     'rpc',                                         // style
@@ -60,206 +60,206 @@  discard block
 block discarded – undo
60 60
 );
61 61
 
62 62
 $s->register(
63
-	'WSCourse.DeleteCourses',
64
-	array('secret_key' => 'xsd:string', 'courses' => 'tns:course_id[]'),
65
-	array('return' => 'tns:course_result_array')
63
+    'WSCourse.DeleteCourses',
64
+    array('secret_key' => 'xsd:string', 'courses' => 'tns:course_id[]'),
65
+    array('return' => 'tns:course_result_array')
66 66
 );
67 67
 
68 68
 $s->register(
69
-	'WSCourse.CreateCourse',
70
-	array(
71
-		'secret_key' => 'xsd:string',
72
-		'title' => 'xsd:string',
73
-		'category_code' => 'xsd:string',
74
-		'wanted_code' => 'xsd:string',
75
-		'tutor_name' => 'xsd:string',
76
-		'course_admin_user_id_field_name' => 'xsd:string',
77
-		'course_admin_user_id_value' => 'xsd:string',
78
-		'language' => 'xsd:string',
79
-		'course_id_field_name' => 'xsd:string',
80
-		'course_id_value' => 'xsd:string',
81
-		'extras' => 'tns:extra_field'
82
-	),
83
-	array('return' => 'xsd:int')
69
+    'WSCourse.CreateCourse',
70
+    array(
71
+        'secret_key' => 'xsd:string',
72
+        'title' => 'xsd:string',
73
+        'category_code' => 'xsd:string',
74
+        'wanted_code' => 'xsd:string',
75
+        'tutor_name' => 'xsd:string',
76
+        'course_admin_user_id_field_name' => 'xsd:string',
77
+        'course_admin_user_id_value' => 'xsd:string',
78
+        'language' => 'xsd:string',
79
+        'course_id_field_name' => 'xsd:string',
80
+        'course_id_value' => 'xsd:string',
81
+        'extras' => 'tns:extra_field'
82
+    ),
83
+    array('return' => 'xsd:int')
84 84
 );
85 85
 
86 86
 $s->wsdl->addComplexType(
87
-	'course_create',
88
-	'complexType',
89
-	'struct',
90
-	'all',
91
-	'',
92
-	array(
93
-		'title' => array('name' => 'title', 'type' => 'xsd:string'),
94
-		'category_code' => array('name' => 'category_code', 'type' => 'xsd:string'),
95
-		'wanted_code' => array('name' => 'wanted_code', 'type' => 'xsd:int'),
96
-		'tutor_name' => array('name' => 'tutor_name', 'type' => 'xsd:string'),
97
-		'course_admin_user_id_field_name' => array('name' => 'course_admin_user_id_field_name', 'type' => 'xsd:string'),
98
-		'course_admin_user_id_value' => array('name' => 'course_admin_user_id_value', 'type' => 'xsd:string'),
99
-		'language' => array('name' => 'language', 'type' => 'xsd:string'),
100
-		'course_id_field_name' => array('name' => 'course_id_field_name', 'type' => 'xsd:string'),
101
-		'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
102
-		'extras' => array('name' => 'extras', 'type' => 'tns:extra_field')
103
-	)
87
+    'course_create',
88
+    'complexType',
89
+    'struct',
90
+    'all',
91
+    '',
92
+    array(
93
+        'title' => array('name' => 'title', 'type' => 'xsd:string'),
94
+        'category_code' => array('name' => 'category_code', 'type' => 'xsd:string'),
95
+        'wanted_code' => array('name' => 'wanted_code', 'type' => 'xsd:int'),
96
+        'tutor_name' => array('name' => 'tutor_name', 'type' => 'xsd:string'),
97
+        'course_admin_user_id_field_name' => array('name' => 'course_admin_user_id_field_name', 'type' => 'xsd:string'),
98
+        'course_admin_user_id_value' => array('name' => 'course_admin_user_id_value', 'type' => 'xsd:string'),
99
+        'language' => array('name' => 'language', 'type' => 'xsd:string'),
100
+        'course_id_field_name' => array('name' => 'course_id_field_name', 'type' => 'xsd:string'),
101
+        'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
102
+        'extras' => array('name' => 'extras', 'type' => 'tns:extra_field')
103
+    )
104 104
 );
105 105
 
106 106
 $s->wsdl->addComplexType(
107
-	'course_create_result',
108
-	'complexType',
109
-	'struct',
110
-	'all',
111
-	'',
112
-	array(
113
-		'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
114
-		'course_id_generated' => array('name' => 'course_id_generated', 'type' => 'xsd:int'),
115
-		'result' => array('name' => 'result', 'type' => 'tns:result')
116
-	)
107
+    'course_create_result',
108
+    'complexType',
109
+    'struct',
110
+    'all',
111
+    '',
112
+    array(
113
+        'course_id_value' => array('name' => 'course_id_value', 'type' => 'xsd:string'),
114
+        'course_id_generated' => array('name' => 'course_id_generated', 'type' => 'xsd:int'),
115
+        'result' => array('name' => 'result', 'type' => 'tns:result')
116
+    )
117 117
 );
118 118
 
119 119
 $s->wsdl->addComplexType(
120
-	'course_create_result_array',
121
-	'complexType',
122
-	'array',
123
-	'',
124
-	'SOAP-ENC:Array',
125
-	array(),
126
-	array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_create_result[]')),
127
-	'tns:course_create_result'
120
+    'course_create_result_array',
121
+    'complexType',
122
+    'array',
123
+    '',
124
+    'SOAP-ENC:Array',
125
+    array(),
126
+    array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_create_result[]')),
127
+    'tns:course_create_result'
128 128
 );
129 129
 
130 130
 $s->register(
131
-	'WSCourse.CreateCourses',
132
-	array(
133
-		'secret_key' => 'xsd:string',
134
-		'courses' => 'tns:course_create[]'
135
-	),
136
-	array('return' => 'tns:course_create_result_array')
131
+    'WSCourse.CreateCourses',
132
+    array(
133
+        'secret_key' => 'xsd:string',
134
+        'courses' => 'tns:course_create[]'
135
+    ),
136
+    array('return' => 'tns:course_create_result_array')
137 137
 );
138 138
 
139 139
 $s->register(
140
-	'WSCourse.EditCourse',
141
-	array(
142
-		'secret_key' => 'xsd:string',
143
-		'course_id_field_name' => 'xsd:string',
144
-		'course_id_value' => 'xsd:string',
145
-		'title' => 'xsd:string',
146
-		'category_code' => 'xsd:string',
147
-		'department_name' => 'xsd:string',
148
-		'department_url' => 'xsd:string',
149
-		'language' => 'xsd:string',
150
-		'visibility' => 'xsd:int',
151
-		'subscribe' => 'xsd:int',
152
-		'unsubscribe' => 'xsd:int',
153
-		'visual_code' => 'xsd:string',
154
-		'extras' => 'tns:extra_field'
155
-	)
140
+    'WSCourse.EditCourse',
141
+    array(
142
+        'secret_key' => 'xsd:string',
143
+        'course_id_field_name' => 'xsd:string',
144
+        'course_id_value' => 'xsd:string',
145
+        'title' => 'xsd:string',
146
+        'category_code' => 'xsd:string',
147
+        'department_name' => 'xsd:string',
148
+        'department_url' => 'xsd:string',
149
+        'language' => 'xsd:string',
150
+        'visibility' => 'xsd:int',
151
+        'subscribe' => 'xsd:int',
152
+        'unsubscribe' => 'xsd:int',
153
+        'visual_code' => 'xsd:string',
154
+        'extras' => 'tns:extra_field'
155
+    )
156 156
 );
157 157
 
158 158
 $s->wsdl->addComplexType(
159
-	'course',
160
-	'complexType',
161
-	'struct',
162
-	'all',
163
-	'',
164
-	array(
165
-		'id' => array('name' => 'id', 'type' => 'xsd:int'),
166
-		'code' => array('name' => 'code', 'type' => 'xsd:string'),
167
-		'title' => array('name' => 'title', 'type' => 'xsd:string'),
168
-		'language' => array('name' => 'language', 'type' => 'xsd:string'),
169
-		'visibility' => array('name' => 'visibility', 'type' => 'xsd:int'),
170
-		'category_name' => array('name' => 'category_name', 'type' => 'xsd:string'),
171
-		'number_students' => array('name' => 'number_students', 'type' => 'xsd:int'),
172
-		'external_course_id' => array('name' => 'external_course_id', 'type' => 'xsd:string'),
173
-	)
159
+    'course',
160
+    'complexType',
161
+    'struct',
162
+    'all',
163
+    '',
164
+    array(
165
+        'id' => array('name' => 'id', 'type' => 'xsd:int'),
166
+        'code' => array('name' => 'code', 'type' => 'xsd:string'),
167
+        'title' => array('name' => 'title', 'type' => 'xsd:string'),
168
+        'language' => array('name' => 'language', 'type' => 'xsd:string'),
169
+        'visibility' => array('name' => 'visibility', 'type' => 'xsd:int'),
170
+        'category_name' => array('name' => 'category_name', 'type' => 'xsd:string'),
171
+        'number_students' => array('name' => 'number_students', 'type' => 'xsd:int'),
172
+        'external_course_id' => array('name' => 'external_course_id', 'type' => 'xsd:string'),
173
+    )
174 174
 );
175 175
 
176 176
 $s->wsdl->addComplexType(
177
-	'course_array',
178
-	'complexType',
179
-	'array',
180
-	'',
181
-	'SOAP-ENC:Array',
182
-	array(),
183
-	array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course[]')),
184
-	'tns:course'
177
+    'course_array',
178
+    'complexType',
179
+    'array',
180
+    '',
181
+    'SOAP-ENC:Array',
182
+    array(),
183
+    array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course[]')),
184
+    'tns:course'
185 185
 );
186 186
 
187 187
 $s->register(
188
-	'WSCourse.ListCourses',
189
-	array(
190
-		'secret_key' => 'xsd:string',
191
-		'course_id_field_name' => 'xsd:string',
192
-		'visibilities' => 'xsd:string'
193
-	),
194
-	array('return' => 'tns:course_array')
188
+    'WSCourse.ListCourses',
189
+    array(
190
+        'secret_key' => 'xsd:string',
191
+        'course_id_field_name' => 'xsd:string',
192
+        'visibilities' => 'xsd:string'
193
+    ),
194
+    array('return' => 'tns:course_array')
195 195
 );
196 196
 
197 197
 $s->register(
198
-	'WSCourse.SubscribeUserToCourse',
199
-	array(
200
-		'secret_key' => 'xsd:string',
201
-		'course_id_field_name' => 'xsd:string',
202
-		'course_id_value' => 'xsd:string',
203
-		'user_id_field_name' => 'xsd:string',
204
-		'user_id_value' => 'xsd:string',
205
-		'status' => 'xsd:int'
206
-	)
198
+    'WSCourse.SubscribeUserToCourse',
199
+    array(
200
+        'secret_key' => 'xsd:string',
201
+        'course_id_field_name' => 'xsd:string',
202
+        'course_id_value' => 'xsd:string',
203
+        'user_id_field_name' => 'xsd:string',
204
+        'user_id_value' => 'xsd:string',
205
+        'status' => 'xsd:int'
206
+    )
207 207
 );
208 208
 
209 209
 $s->register(
210
-	'WSCourse.UnsubscribeUserFromCourse',
211
-	array(
212
-		'secret_key' => 'xsd:string',
213
-		'course_id_field_name' => 'xsd:string',
214
-		'course_id_value' => 'xsd:string',
215
-		'user_id_field_name' => 'xsd:string',
216
-		'user_id_value' => 'xsd:string'
217
-	)
210
+    'WSCourse.UnsubscribeUserFromCourse',
211
+    array(
212
+        'secret_key' => 'xsd:string',
213
+        'course_id_field_name' => 'xsd:string',
214
+        'course_id_value' => 'xsd:string',
215
+        'user_id_field_name' => 'xsd:string',
216
+        'user_id_value' => 'xsd:string'
217
+    )
218 218
 );
219 219
 
220 220
 $s->wsdl->addComplexType(
221
-	'course_description',
222
-	'complexType',
223
-	'struct',
224
-	'all',
225
-	'',
226
-	array(
227
-		'course_desc_id' => array('name' => 'course_desc_id', 'type' => 'xsd:int'),
228
-		'course_desc_title' => array('name' => 'course_desc_title', 'type' => 'xsd:string'),
229
-		'course_desc_content' => array('name' => 'course_desc_content', 'type' => 'xsd:string')
230
-	)
221
+    'course_description',
222
+    'complexType',
223
+    'struct',
224
+    'all',
225
+    '',
226
+    array(
227
+        'course_desc_id' => array('name' => 'course_desc_id', 'type' => 'xsd:int'),
228
+        'course_desc_title' => array('name' => 'course_desc_title', 'type' => 'xsd:string'),
229
+        'course_desc_content' => array('name' => 'course_desc_content', 'type' => 'xsd:string')
230
+    )
231 231
 );
232 232
 
233 233
 $s->wsdl->addComplexType(
234
-	'course_description_array',
235
-	'complexType',
236
-	'array',
237
-	'',
238
-	'SOAP-ENC:Array',
239
-	array(),
240
-	array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_description[]')),
241
-	'tns:course_description'
234
+    'course_description_array',
235
+    'complexType',
236
+    'array',
237
+    '',
238
+    'SOAP-ENC:Array',
239
+    array(),
240
+    array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:course_description[]')),
241
+    'tns:course_description'
242 242
 );
243 243
 
244 244
 $s->register(
245
-	'WSCourse.GetCourseDescriptions',
246
-	array(
247
-		'secret_key' => 'xsd:string',
248
-		'course_id_field_name' => 'xsd:string',
249
-		'course_id_value' => 'xsd:string'
250
-	),
251
-	array('return' => 'tns:course_description_array')
245
+    'WSCourse.GetCourseDescriptions',
246
+    array(
247
+        'secret_key' => 'xsd:string',
248
+        'course_id_field_name' => 'xsd:string',
249
+        'course_id_value' => 'xsd:string'
250
+    ),
251
+    array('return' => 'tns:course_description_array')
252 252
 );
253 253
 
254 254
 $s->register(
255
-	'WSCourse.EditCourseDescription',
256
-	array(
257
-		'secret_key' => 'xsd:string',
258
-		'course_id_field_name' => 'xsd:string',
259
-		'course_id_value' => 'xsd:string',
260
-		'course_desc_id' => 'xsd:int',
261
-		'course_desc_title' => 'xsd:string',
262
-		'course_desc_content' => 'xsd:string'
263
-	)
255
+    'WSCourse.EditCourseDescription',
256
+    array(
257
+        'secret_key' => 'xsd:string',
258
+        'course_id_field_name' => 'xsd:string',
259
+        'course_id_value' => 'xsd:string',
260
+        'course_desc_id' => 'xsd:int',
261
+        'course_desc_title' => 'xsd:string',
262
+        'course_desc_content' => 'xsd:string'
263
+    )
264 264
 );
265 265
 
Please login to merge, or discard this patch.
main/webservices/soap_report.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -9,15 +9,15 @@  discard block
 block discarded – undo
9 9
 $s = WSSoapServer::singleton();
10 10
 
11 11
 $s->wsdl->addComplexType(
12
-	'user_id',
13
-	'complexType',
14
-	'struct',
15
-	'all',
16
-	'',
17
-	array(
18
-		'user_id_field_name' => array('name' => 'user_id_field_name', 'type' => 'xsd:string'),
19
-		'user_id_value' => array('name' => 'user_id_value', 'type' => 'xsd:string')
20
-	)
12
+    'user_id',
13
+    'complexType',
14
+    'struct',
15
+    'all',
16
+    '',
17
+    array(
18
+        'user_id_field_name' => array('name' => 'user_id_field_name', 'type' => 'xsd:string'),
19
+        'user_id_value' => array('name' => 'user_id_value', 'type' => 'xsd:string')
20
+    )
21 21
 );
22 22
 
23 23
 $s->wsdl->addComplexType(
@@ -59,52 +59,52 @@  discard block
 block discarded – undo
59 59
 
60 60
 
61 61
 $s->wsdl->addComplexType(
62
-	'user_result',
63
-	'complexType',
64
-	'struct',
65
-	'all',
66
-	'',
67
-	array(
68
-		'id' => array('name' => 'id', 'type' => 'xsd:string'),
69
-		'title' => array('name' => 'title', 'type' => 'xsd:string')
70
-	)
62
+    'user_result',
63
+    'complexType',
64
+    'struct',
65
+    'all',
66
+    '',
67
+    array(
68
+        'id' => array('name' => 'id', 'type' => 'xsd:string'),
69
+        'title' => array('name' => 'title', 'type' => 'xsd:string')
70
+    )
71 71
 );
72 72
 
73 73
 $s->wsdl->addComplexType(
74
-  'progress_result',
75
-	'complexType',
76
-	'struct',
77
-	'all',
78
-	'',
79
-	array(
80
-		'progress_bar_mode' => array('name' => 'progress_bar_mode', 'type' => 'xsd:string'),
81
-		'progress_db' => array('name' => 'progress_db', 'type' => 'xsd:string')
82
-	)
74
+    'progress_result',
75
+    'complexType',
76
+    'struct',
77
+    'all',
78
+    '',
79
+    array(
80
+        'progress_bar_mode' => array('name' => 'progress_bar_mode', 'type' => 'xsd:string'),
81
+        'progress_db' => array('name' => 'progress_db', 'type' => 'xsd:string')
82
+    )
83 83
 );
84 84
 
85 85
 $s->wsdl->addComplexType(
86
-  'score_result',
87
-	'complexType',
88
-	'struct',
89
-	'all',
90
-	'',
91
-	array(
92
-		'min_score' => array('name' => 'min_score', 'type' => 'xsd:string'),
93
-		'max_score' => array('name' => 'max_score', 'type' => 'xsd:string'),
86
+    'score_result',
87
+    'complexType',
88
+    'struct',
89
+    'all',
90
+    '',
91
+    array(
92
+        'min_score' => array('name' => 'min_score', 'type' => 'xsd:string'),
93
+        'max_score' => array('name' => 'max_score', 'type' => 'xsd:string'),
94 94
     'mastery_score' => array('name' => 'mastery_score', 'type' => 'xsd:string'),
95 95
     'current_score' => array('name' => 'current_score', 'type' => 'xsd:string'),
96
-	)
96
+    )
97 97
 );
98 98
 
99 99
 $s->wsdl->addComplexType(
100
-	'user_result_array',
101
-	'complexType',
102
-	'array',
103
-	'',
104
-	'SOAP-ENC:Array',
105
-	array(),
106
-	array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:user_result[]')),
107
-	'tns:user_result'
100
+    'user_result_array',
101
+    'complexType',
102
+    'array',
103
+    '',
104
+    'SOAP-ENC:Array',
105
+    array(),
106
+    array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:user_result[]')),
107
+    'tns:user_result'
108 108
 );
109 109
 
110 110
 
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
 $s->register(
119 119
     'WSReport.GetTimeSpentOnCourse',
120 120
     array('secret_key' => 'xsd:string', 'user_id_field_name' => 'xsd:string', 'user_id_value' => 'xsd:string', 'course_id_field_name' => 'xsd:string', 'course_id_value' => 'xsd:string'),
121
-	array('return' => 'xsd:string')
121
+    array('return' => 'xsd:string')
122 122
 );
123 123
 
124 124
 $s->register(
@@ -166,5 +166,5 @@  discard block
 block discarded – undo
166 166
 $s->register(
167 167
     'WSReport.test',
168 168
     array(),
169
-	array('return' => 'xsd:string')
169
+    array('return' => 'xsd:string')
170 170
 );
Please login to merge, or discard this patch.
main/webservices/cm_soap.php 1 patch
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -8,83 +8,83 @@  discard block
 block discarded – undo
8 8
  * SOAP error handler. Handles an error sending a SOAP fault
9 9
  */
10 10
 class WSCMSoapErrorHandler implements WSCMErrorHandler {
11
-	/**
12
-	 * Handles the error by sending a SOAP fault through the server
13
-	 *
14
-	 * @param WSError Error to handle
15
-	 */
16
-	public function handle($error) {
17
-		$server = WSCMSoapServer::singleton();
18
-		$server->fault(strval($error->code), $error->message);
19
-	}
11
+    /**
12
+     * Handles the error by sending a SOAP fault through the server
13
+     *
14
+     * @param WSError Error to handle
15
+     */
16
+    public function handle($error) {
17
+        $server = WSCMSoapServer::singleton();
18
+        $server->fault(strval($error->code), $error->message);
19
+    }
20 20
 }
21 21
 
22 22
 /**
23 23
  * SOAP server wrapper implementing a Singleton
24 24
  */
25 25
 class WSCMSoapServer {
26
-	/**
27
-	 * SOAP server instance
28
-	 *
29
-	 * @var soap_server
30
-	 */
31
-	private static $_instance;
26
+    /**
27
+     * SOAP server instance
28
+     *
29
+     * @var soap_server
30
+     */
31
+    private static $_instance;
32 32
 
33
-	/**
34
-	 * Private constructor
35
-	 */
36
-	private function __construct() {
37
-	}
33
+    /**
34
+     * Private constructor
35
+     */
36
+    private function __construct() {
37
+    }
38 38
 
39
-	/**
40
-	 * Singleton method
41
-	 */
42
-	public static function singleton() {
43
-		if(!isset(self::$_instance)) {
44
-			self::$_instance = new soap_server();
45
-			// Set the error handler
46
-			WSCMError::setErrorHandler(new WSCMSoapErrorHandler());
47
-			// Configure the service
48
-			self::$_instance->configureWSDL('WSCMService', 'urn:WSCMService');
49
-		}
39
+    /**
40
+     * Singleton method
41
+     */
42
+    public static function singleton() {
43
+        if(!isset(self::$_instance)) {
44
+            self::$_instance = new soap_server();
45
+            // Set the error handler
46
+            WSCMError::setErrorHandler(new WSCMSoapErrorHandler());
47
+            // Configure the service
48
+            self::$_instance->configureWSDL('WSCMService', 'urn:WSCMService');
49
+        }
50 50
 
51
-		return self::$_instance;
52
-	}
51
+        return self::$_instance;
52
+    }
53 53
 }
54 54
 
55 55
 $s = WSCMSoapServer::singleton();
56 56
 
57 57
 $s->wsdl->addComplexType(
58
-	'result',
59
-	'complexType',
60
-	'struct',
61
-	'all',
62
-	'',
63
-	array(
64
-		'code' => array('name' => 'code', 'type' => 'xsd:int'),
65
-		'message' => array('name' => 'message', 'type' => 'xsd:string')
66
-	)
58
+    'result',
59
+    'complexType',
60
+    'struct',
61
+    'all',
62
+    '',
63
+    array(
64
+        'code' => array('name' => 'code', 'type' => 'xsd:int'),
65
+        'message' => array('name' => 'message', 'type' => 'xsd:string')
66
+    )
67 67
 );
68 68
 
69 69
 $s->wsdl->addComplexType(
70
-	'extra_field',
71
-	'complexType',
72
-	'struct',
73
-	'all',
74
-	'',
75
-	array(
76
-		'field_name' => array('name' => 'field_name', 'type' => 'xsd:string'),
77
-		'field_value' => array('name' => 'field_value', 'type' => 'xsd:string')
78
-	)
70
+    'extra_field',
71
+    'complexType',
72
+    'struct',
73
+    'all',
74
+    '',
75
+    array(
76
+        'field_name' => array('name' => 'field_name', 'type' => 'xsd:string'),
77
+        'field_value' => array('name' => 'field_value', 'type' => 'xsd:string')
78
+    )
79 79
 );
80 80
 
81 81
 $s->register(
82
-	'WSCM.verifyUserPass',
83
-	array(
84
-		'username' => 'xsd:string',
85
-		'password' => 'xsd:string',
86
-	),
87
-	array('return' => 'xsd:string')
82
+    'WSCM.verifyUserPass',
83
+    array(
84
+        'username' => 'xsd:string',
85
+        'password' => 'xsd:string',
86
+    ),
87
+    array('return' => 'xsd:string')
88 88
 );
89 89
 
90 90
 $s->register(
@@ -94,9 +94,9 @@  discard block
 block discarded – undo
94 94
 );
95 95
 
96 96
 $s->register(
97
-	'WSCM.test',
98
-	array(),
99
-	array('return' => 'xsd:string'),
97
+    'WSCM.test',
98
+    array(),
99
+    array('return' => 'xsd:string'),
100 100
         'urn:WSCMService',
101 101
         '',
102 102
         '',
Please login to merge, or discard this patch.
main/webservices/webservice_user.php 1 patch
Indentation   +426 added lines, -426 removed lines patch added patch discarded remove patch
@@ -11,458 +11,458 @@
 block discarded – undo
11 11
  */
12 12
 class WSUser extends WS {
13 13
 
14
-	/**
15
-	 * Enables or disables a user
16
-	 *
17
-	 * @param string User id field name
18
-	 * @param string User id value
19
-	 * @param int Set to 1 to enable and to 0 to disable
20
-	 */
21
-	protected function changeUserActiveState($user_id_field_name, $user_id_value, $state) {
22
-		$user_id = $this->getUserId($user_id_field_name, $user_id_value);
23
-		if($user_id instanceof WSError) {
24
-			return $user_id;
25
-		} else {
26
-			if($state == 0) {
27
-				UserManager::disable($user_id);
28
-			} else if($state == 1) {
29
-				UserManager::enable($user_id);
30
-			}
31
-		}
32
-	}
14
+    /**
15
+     * Enables or disables a user
16
+     *
17
+     * @param string User id field name
18
+     * @param string User id value
19
+     * @param int Set to 1 to enable and to 0 to disable
20
+     */
21
+    protected function changeUserActiveState($user_id_field_name, $user_id_value, $state) {
22
+        $user_id = $this->getUserId($user_id_field_name, $user_id_value);
23
+        if($user_id instanceof WSError) {
24
+            return $user_id;
25
+        } else {
26
+            if($state == 0) {
27
+                UserManager::disable($user_id);
28
+            } else if($state == 1) {
29
+                UserManager::enable($user_id);
30
+            }
31
+        }
32
+    }
33 33
 
34
-	/**
35
-	 * Enables or disables multiple users
36
-	 *
37
-	 * @param array Users
38
-	 * @param int Set to 1 to enable and to 0 to disable
39
-	 * @return array Array of results
40
-	 */
41
-	protected function changeUsersActiveState($users, $state) {
42
-		$results = array();
43
-		foreach($users as $user) {
44
-			$result_tmp = array();
45
-			$result_op = $this->changeUserActiveState($user['user_id_field_name'], $user['user_id_value'], $state);
46
-			$result_tmp['user_id_value'] = $user['user_id_value'];
47
-			if($result_op instanceof WSError) {
48
-				// Return the error in the results
49
-				$result_tmp['result'] = $result_op->toArray();
50
-			} else {
51
-				$result_tmp['result'] = $this->getSuccessfulResult();
52
-			}
53
-			$results[] = $result_tmp;
54
-		}
55
-		return $results;
56
-	}
34
+    /**
35
+     * Enables or disables multiple users
36
+     *
37
+     * @param array Users
38
+     * @param int Set to 1 to enable and to 0 to disable
39
+     * @return array Array of results
40
+     */
41
+    protected function changeUsersActiveState($users, $state) {
42
+        $results = array();
43
+        foreach($users as $user) {
44
+            $result_tmp = array();
45
+            $result_op = $this->changeUserActiveState($user['user_id_field_name'], $user['user_id_value'], $state);
46
+            $result_tmp['user_id_value'] = $user['user_id_value'];
47
+            if($result_op instanceof WSError) {
48
+                // Return the error in the results
49
+                $result_tmp['result'] = $result_op->toArray();
50
+            } else {
51
+                $result_tmp['result'] = $this->getSuccessfulResult();
52
+            }
53
+            $results[] = $result_tmp;
54
+        }
55
+        return $results;
56
+    }
57 57
 
58
-	/**
59
-	 * Disables a user
60
-	 *
61
-	 * @param string API secret key
62
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
63
-	 * @param string User id value
64
-	 */
65
-	public function DisableUser($secret_key, $user_id_field_name, $user_id_value) {
66
-		$verifKey = $this->verifyKey($secret_key);
67
-		if($verifKey instanceof WSError) {
68
-			// Let the implementation handle it
69
-			$this->handleError($verifKey);
70
-		} else {
71
-			$result = $this->changeUserActiveState($user_id_field_name, $user_id_value, 0);
72
-			if($result instanceof WSError) {
73
-				$this->handleError($result);
74
-			}
75
-		}
76
-	}
58
+    /**
59
+     * Disables a user
60
+     *
61
+     * @param string API secret key
62
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
63
+     * @param string User id value
64
+     */
65
+    public function DisableUser($secret_key, $user_id_field_name, $user_id_value) {
66
+        $verifKey = $this->verifyKey($secret_key);
67
+        if($verifKey instanceof WSError) {
68
+            // Let the implementation handle it
69
+            $this->handleError($verifKey);
70
+        } else {
71
+            $result = $this->changeUserActiveState($user_id_field_name, $user_id_value, 0);
72
+            if($result instanceof WSError) {
73
+                $this->handleError($result);
74
+            }
75
+        }
76
+    }
77 77
 
78
-	/**
79
-	 * Disables multiple users
80
-	 *
81
-	 * @param string API secret key
82
-	 * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
83
-	 * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
84
-	 * than 0, an error occured
85
-	 */
86
-	public function DisableUsers($secret_key, $users) {
87
-		$verifKey = $this->verifyKey($secret_key);
88
-		if($verifKey instanceof WSError) {
89
-			// Let the implementation handle it
90
-			$this->handleError($verifKey);
91
-		} else {
92
-			return $this->changeUsersActiveState($users, 0);
93
-		}
94
-	}
78
+    /**
79
+     * Disables multiple users
80
+     *
81
+     * @param string API secret key
82
+     * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
83
+     * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
84
+     * than 0, an error occured
85
+     */
86
+    public function DisableUsers($secret_key, $users) {
87
+        $verifKey = $this->verifyKey($secret_key);
88
+        if($verifKey instanceof WSError) {
89
+            // Let the implementation handle it
90
+            $this->handleError($verifKey);
91
+        } else {
92
+            return $this->changeUsersActiveState($users, 0);
93
+        }
94
+    }
95 95
 
96
-	/**
97
-	 * Enables a user
98
-	 *
99
-	 * @param string API secret key
100
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
101
-	 * @param string User id value
102
-	 */
103
-	public function EnableUser($secret_key, $user_id_field_name, $user_id_value) {
104
-		$verifKey = $this->verifyKey($secret_key);
105
-		if($verifKey instanceof WSError) {
106
-			$this->handleError($verifKey);
107
-		} else {
108
-			$result = $this->changeUserActiveState($user_id_field_name, $user_id_value, 1);
109
-			if($result instanceof WSError) {
110
-				$this->handleError($result);
111
-			}
112
-		}
113
-	}
96
+    /**
97
+     * Enables a user
98
+     *
99
+     * @param string API secret key
100
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
101
+     * @param string User id value
102
+     */
103
+    public function EnableUser($secret_key, $user_id_field_name, $user_id_value) {
104
+        $verifKey = $this->verifyKey($secret_key);
105
+        if($verifKey instanceof WSError) {
106
+            $this->handleError($verifKey);
107
+        } else {
108
+            $result = $this->changeUserActiveState($user_id_field_name, $user_id_value, 1);
109
+            if($result instanceof WSError) {
110
+                $this->handleError($result);
111
+            }
112
+        }
113
+    }
114 114
 
115
-	/**
116
-	 * Enables multiple users
117
-	 *
118
-	 * @param string API secret key
119
-	 * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
120
-	 * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
121
-	 * than 0, an error occured
122
-	 */
123
-	public function EnableUsers($secret_key, $users) {
124
-		$verifKey = $this->verifyKey($secret_key);
125
-		if($verifKey instanceof WSError) {
126
-			// Let the implementation handle it
127
-			$this->handleError($verifKey);
128
-		} else {
129
-			return $this->changeUsersActiveState($users, 1);
130
-		}
131
-	}
115
+    /**
116
+     * Enables multiple users
117
+     *
118
+     * @param string API secret key
119
+     * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
120
+     * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
121
+     * than 0, an error occured
122
+     */
123
+    public function EnableUsers($secret_key, $users) {
124
+        $verifKey = $this->verifyKey($secret_key);
125
+        if($verifKey instanceof WSError) {
126
+            // Let the implementation handle it
127
+            $this->handleError($verifKey);
128
+        } else {
129
+            return $this->changeUsersActiveState($users, 1);
130
+        }
131
+    }
132 132
 
133
-	/**
134
-	 * Deletes a user (helper method)
135
-	 *
136
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
137
-	 * @param string User id value
138
-	 * @return mixed True if user was successfully deleted, WSError otherwise
139
-	 */
140
-	protected function deleteUserHelper($user_id_field_name, $user_id_value) {
141
-		$user_id = $this->getUserId($user_id_field_name, $user_id_value);
142
-		if($user_id instanceof WSError) {
143
-			return $user_id;
144
-		} else {
145
-			if(!UserManager::delete_user($user_id)) {
146
-				return new WSError(101, "There was a problem while deleting this user");
147
-			} else {
148
-				return true;
149
-			}
150
-		}
151
-	}
133
+    /**
134
+     * Deletes a user (helper method)
135
+     *
136
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
137
+     * @param string User id value
138
+     * @return mixed True if user was successfully deleted, WSError otherwise
139
+     */
140
+    protected function deleteUserHelper($user_id_field_name, $user_id_value) {
141
+        $user_id = $this->getUserId($user_id_field_name, $user_id_value);
142
+        if($user_id instanceof WSError) {
143
+            return $user_id;
144
+        } else {
145
+            if(!UserManager::delete_user($user_id)) {
146
+                return new WSError(101, "There was a problem while deleting this user");
147
+            } else {
148
+                return true;
149
+            }
150
+        }
151
+    }
152 152
 
153
-	/**
154
-	 * Deletes a user
155
-	 *
156
-	 * @param string API secret key
157
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
158
-	 * @param string User id value
159
-	 */
160
-	public function DeleteUser($secret_key, $user_id_field_name, $user_id_value) {
161
-		$verifKey = $this->verifyKey($secret_key);
162
-		if($verifKey instanceof WSError) {
163
-			$this->handleError($verifKey);
164
-		} else {
165
-			$result = $this->deleteUserHelper($user_id_field_name, $user_id_value);
166
-			if($result instanceof WSError) {
167
-				$this->handleError($result);
168
-			}
169
-		}
170
-	}
153
+    /**
154
+     * Deletes a user
155
+     *
156
+     * @param string API secret key
157
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
158
+     * @param string User id value
159
+     */
160
+    public function DeleteUser($secret_key, $user_id_field_name, $user_id_value) {
161
+        $verifKey = $this->verifyKey($secret_key);
162
+        if($verifKey instanceof WSError) {
163
+            $this->handleError($verifKey);
164
+        } else {
165
+            $result = $this->deleteUserHelper($user_id_field_name, $user_id_value);
166
+            if($result instanceof WSError) {
167
+                $this->handleError($result);
168
+            }
169
+        }
170
+    }
171 171
 
172
-	/**
173
-	 * Deletes multiple users
174
-	 *
175
-	 * @param string API secret key
176
-	 * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
177
-	 * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
178
-	 * than 0, an error occured
179
-	 */
180
-	public function DeleteUsers($secret_key, $users) {
181
-		$verifKey = $this->verifyKey($secret_key);
182
-		if($verifKey instanceof WSError) {
183
-			$this->handleError($verifKey);
184
-		} else {
185
-			$results = array();
186
-			foreach($users as $user) {
187
-				$result_tmp = array();
188
-				$result_op = $this->deleteUserHelper($user['user_id_field_name'], $user['user_id_value']);
189
-				$result_tmp['user_id_value'] = $user['user_id_value'];
190
-				if($result_op instanceof WSError) {
191
-					// Return the error in the results
192
-					$result_tmp['result'] = $result_op->toArray();
193
-				} else {
194
-					$result_tmp['result'] = $this->getSuccessfulResult();
195
-				}
196
-				$results[] = $result_tmp;
197
-			}
198
-			return $results;
199
-		}
200
-	}
172
+    /**
173
+     * Deletes multiple users
174
+     *
175
+     * @param string API secret key
176
+     * @param array Array of users with elements of the form array('user_id_field_name' => 'name_of_field', 'user_id_value' => 'value')
177
+     * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
178
+     * than 0, an error occured
179
+     */
180
+    public function DeleteUsers($secret_key, $users) {
181
+        $verifKey = $this->verifyKey($secret_key);
182
+        if($verifKey instanceof WSError) {
183
+            $this->handleError($verifKey);
184
+        } else {
185
+            $results = array();
186
+            foreach($users as $user) {
187
+                $result_tmp = array();
188
+                $result_op = $this->deleteUserHelper($user['user_id_field_name'], $user['user_id_value']);
189
+                $result_tmp['user_id_value'] = $user['user_id_value'];
190
+                if($result_op instanceof WSError) {
191
+                    // Return the error in the results
192
+                    $result_tmp['result'] = $result_op->toArray();
193
+                } else {
194
+                    $result_tmp['result'] = $this->getSuccessfulResult();
195
+                }
196
+                $results[] = $result_tmp;
197
+            }
198
+            return $results;
199
+        }
200
+    }
201 201
 
202
-	/**
203
-	 * Creates a user (helper method)
204
-	 *
205
-	 * @param string User first name
206
-	 * @param string User last name
207
-	 * @param int User status
208
-	 * @param string Login name
209
-	 * @param string Password (encrypted or not)
210
-	 * @param string Encrypt method. Leave blank if you are passing the password in clear text, set to the encrypt method used to encrypt the password otherwise. Remember
211
-	 * to include the salt in the extra fields if you are encrypting the password
212
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
213
-	 * @param string User id value. Leave blank if you are using the internal user_id
214
-	 * @param int Visibility.
215
-	 * @param string User email.
216
-	 * @param string Language.
217
-	 * @param string Phone.
218
-	 * @param string Expiration date
219
-	 * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field').
220
-	 * @return mixed New user id generated by the system, WSError otherwise
221
-	 */
222
-	protected function createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras = array()) {
202
+    /**
203
+     * Creates a user (helper method)
204
+     *
205
+     * @param string User first name
206
+     * @param string User last name
207
+     * @param int User status
208
+     * @param string Login name
209
+     * @param string Password (encrypted or not)
210
+     * @param string Encrypt method. Leave blank if you are passing the password in clear text, set to the encrypt method used to encrypt the password otherwise. Remember
211
+     * to include the salt in the extra fields if you are encrypting the password
212
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
213
+     * @param string User id value. Leave blank if you are using the internal user_id
214
+     * @param int Visibility.
215
+     * @param string User email.
216
+     * @param string Language.
217
+     * @param string Phone.
218
+     * @param string Expiration date
219
+     * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field').
220
+     * @return mixed New user id generated by the system, WSError otherwise
221
+     */
222
+    protected function createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras = array()) {
223 223
         global $api_failureList;
224
-		// Add the original user id field name and value to the extra fields if needed
225
-		$extras_associative = array();
226
-		if($user_id_field_name != "chamilo_user_id") {
227
-			$extras_associative[$user_id_field_name] = $user_id_value;
228
-		}
224
+        // Add the original user id field name and value to the extra fields if needed
225
+        $extras_associative = array();
226
+        if($user_id_field_name != "chamilo_user_id") {
227
+            $extras_associative[$user_id_field_name] = $user_id_value;
228
+        }
229 229
                 if (!empty($extras)) {
230 230
                     foreach($extras as $extra) {
231 231
                         $extras_associative[$extra['field_name']] = $extra['field_value'];
232 232
                     }
233 233
                 }
234
-		$result = UserManager::create_user($firstname, $lastname, $status, $email, $login, $password, '', $language, $phone, '', PLATFORM_AUTH_SOURCE, $expiration_date, $visibility, 0, $extras_associative, $encrypt_method);
235
-		if (!$result) {
236
-			$failure = $api_failureList[0];
237
-			if($failure == 'login-pass already taken') {
238
-				return new WSError(102, 'This username is already taken');
239
-			} else if($failure == 'encrypt_method invalid') {
240
-				return new WSError(103, 'The encryption of the password is invalid');
241
-			} else {
242
-				return new WSError(104, 'There was an error creating the user');
243
-			}
244
-		} else {
245
-			return $result;
246
-		}
247
-	}
234
+        $result = UserManager::create_user($firstname, $lastname, $status, $email, $login, $password, '', $language, $phone, '', PLATFORM_AUTH_SOURCE, $expiration_date, $visibility, 0, $extras_associative, $encrypt_method);
235
+        if (!$result) {
236
+            $failure = $api_failureList[0];
237
+            if($failure == 'login-pass already taken') {
238
+                return new WSError(102, 'This username is already taken');
239
+            } else if($failure == 'encrypt_method invalid') {
240
+                return new WSError(103, 'The encryption of the password is invalid');
241
+            } else {
242
+                return new WSError(104, 'There was an error creating the user');
243
+            }
244
+        } else {
245
+            return $result;
246
+        }
247
+    }
248 248
 
249
-	/**
250
-	 * Creates a user
251
-	 *
252
-	 * @param string API secret key
253
-	 * @param string User first name
254
-	 * @param string User last name
255
-	 * @param int User status
256
-	 * @param string Login name
257
-	 * @param string Password (encrypted or not)
258
-	 * @param string Encrypt method. Leave blank if you are passing the password in clear text, set to the encrypt method used to encrypt the password otherwise. Remember
259
-	 * to include the salt in the extra fields if you are encrypting the password
260
-	 * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
261
-	 * @param string User id value. Leave blank if you are using the internal user_id
262
-	 * @param int Visibility. Set by default to 1
263
-	 * @param string User email. Set by default to an empty string
264
-	 * @param string Language. Set by default to english
265
-	 * @param string Phone. Set by default to an empty string
266
-	 * @param string Expiration date. Set to null by default
267
-	 * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Set to an empty array by default
268
-	 * @return int New user id generated by the system
269
-	 */
270
-	public function CreateUser($secret_key, $firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility = 1, $email = '', $language = 'english', $phone = '', $expiration_date = '0000-00-00 00:00:00', $extras = array()) {
271
-		// First, verify the secret key
272
-		$verifKey = $this->verifyKey($secret_key);
273
-		if($verifKey instanceof WSError) {
274
-			$this->handleError($verifKey);
275
-		} else {
276
-			$result = $this->createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras);
277
-			if($result instanceof WSError) {
278
-				$this->handleError($result);
279
-			} else {
280
-				return $result;
281
-			}
282
-		}
283
-	}
249
+    /**
250
+     * Creates a user
251
+     *
252
+     * @param string API secret key
253
+     * @param string User first name
254
+     * @param string User last name
255
+     * @param int User status
256
+     * @param string Login name
257
+     * @param string Password (encrypted or not)
258
+     * @param string Encrypt method. Leave blank if you are passing the password in clear text, set to the encrypt method used to encrypt the password otherwise. Remember
259
+     * to include the salt in the extra fields if you are encrypting the password
260
+     * @param string User id field name. Use "chamilo_user_id" as the field name if you want to use the internal user_id
261
+     * @param string User id value. Leave blank if you are using the internal user_id
262
+     * @param int Visibility. Set by default to 1
263
+     * @param string User email. Set by default to an empty string
264
+     * @param string Language. Set by default to english
265
+     * @param string Phone. Set by default to an empty string
266
+     * @param string Expiration date. Set to null by default
267
+     * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Set to an empty array by default
268
+     * @return int New user id generated by the system
269
+     */
270
+    public function CreateUser($secret_key, $firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility = 1, $email = '', $language = 'english', $phone = '', $expiration_date = '0000-00-00 00:00:00', $extras = array()) {
271
+        // First, verify the secret key
272
+        $verifKey = $this->verifyKey($secret_key);
273
+        if($verifKey instanceof WSError) {
274
+            $this->handleError($verifKey);
275
+        } else {
276
+            $result = $this->createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras);
277
+            if($result instanceof WSError) {
278
+                $this->handleError($result);
279
+            } else {
280
+                return $result;
281
+            }
282
+        }
283
+    }
284 284
 
285
-	/**
286
-	 * Creates multiple users
287
-	 *
288
-	 * @param string API secret key
289
-	 * @param array Users array. Each member of this array must follow the structure imposed by the CreateUser method
290
-	 * @return array Array with elements of the form array('user_id_value' => 'original value sent', 'user_id_generated' => 'value_generated', 'result' => array('code' => 0, 'message' => 'Operation was successful'))
291
-	 */
292
-	public function CreateUsers($secret_key, $users) {
293
-		$verifKey = $this->verifyKey($secret_key);
294
-		if($verifKey instanceof WSError) {
295
-			$this->handleError($verifKey);
296
-		} else {
297
-			$results = array();
298
-			foreach($users as $user) {
299
-				$result_tmp = array();
285
+    /**
286
+     * Creates multiple users
287
+     *
288
+     * @param string API secret key
289
+     * @param array Users array. Each member of this array must follow the structure imposed by the CreateUser method
290
+     * @return array Array with elements of the form array('user_id_value' => 'original value sent', 'user_id_generated' => 'value_generated', 'result' => array('code' => 0, 'message' => 'Operation was successful'))
291
+     */
292
+    public function CreateUsers($secret_key, $users) {
293
+        $verifKey = $this->verifyKey($secret_key);
294
+        if($verifKey instanceof WSError) {
295
+            $this->handleError($verifKey);
296
+        } else {
297
+            $results = array();
298
+            foreach($users as $user) {
299
+                $result_tmp = array();
300 300
                 // re-initialize variables just in case
301 301
                 $firstname = $lastname = $status = $login = $password = $encrypt_method = $user_id_field_name = $user_id_value = $visibility = $email = $language = $phone = $expiration_date = $extras = null;
302
-				extract($user);
303
-				$result = $this->createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras);
304
-				if($result instanceof WSError) {
305
-					$result_tmp['result'] = $result->toArray();
306
-					$result_tmp['user_id_value'] = $user_id_value;
307
-					$result_tmp['user_id_generated'] = 0;
308
-				} else {
309
-					$result_tmp['result'] = $this->getSuccessfulResult();
310
-					$result_tmp['user_id_value'] = $user_id_value;
311
-					$result_tmp['user_id_generated'] = $result;
312
-				}
313
-				$results[] = $result_tmp;
314
-			}
315
-			return $results;
316
-		}
317
-	}
302
+                extract($user);
303
+                $result = $this->createUserHelper($firstname, $lastname, $status, $login, $password, $encrypt_method, $user_id_field_name, $user_id_value, $visibility, $email, $language, $phone, $expiration_date, $extras);
304
+                if($result instanceof WSError) {
305
+                    $result_tmp['result'] = $result->toArray();
306
+                    $result_tmp['user_id_value'] = $user_id_value;
307
+                    $result_tmp['user_id_generated'] = 0;
308
+                } else {
309
+                    $result_tmp['result'] = $this->getSuccessfulResult();
310
+                    $result_tmp['user_id_value'] = $user_id_value;
311
+                    $result_tmp['user_id_generated'] = $result;
312
+                }
313
+                $results[] = $result_tmp;
314
+            }
315
+            return $results;
316
+        }
317
+    }
318 318
 
319
-	/**
320
-	 * Edits user info (helper method)
321
-	 *
322
-	 * @param string User id field name. Use "chamilo_user_id" in order to use internal system id
323
-	 * @param string User id value
324
-	 * @param string First name
325
-	 * @param string Last name
326
-	 * @param int User status
327
-	 * @param string Login name
328
-	 * @param string Password. Leave blank if you don't want to update it
329
-	 * @param string Encrypt method
330
-	 * @param string User email
331
-	 * @param string Language. Set by default to english
332
-	 * @param string Phone. Set by default to an empty string
333
-	 * @param string Expiration date. Set to null by default
334
-	 * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Leave empty if you don't want to update
335
-	 * @return mixed True if user was successfully updated, WSError otherwise
336
-	 */
337
-	protected function editUserHelper(
338
-		$user_id_field_name,
339
-		$user_id_value,
340
-		$firstname,
341
-		$lastname,
342
-		$status,
343
-		$loginname,
344
-		$password,
345
-		$encrypt_method,
346
-		$email,
347
-		$language,
348
-		$phone,
349
-		$expiration_date,
350
-		$extras
351
-	) {
319
+    /**
320
+     * Edits user info (helper method)
321
+     *
322
+     * @param string User id field name. Use "chamilo_user_id" in order to use internal system id
323
+     * @param string User id value
324
+     * @param string First name
325
+     * @param string Last name
326
+     * @param int User status
327
+     * @param string Login name
328
+     * @param string Password. Leave blank if you don't want to update it
329
+     * @param string Encrypt method
330
+     * @param string User email
331
+     * @param string Language. Set by default to english
332
+     * @param string Phone. Set by default to an empty string
333
+     * @param string Expiration date. Set to null by default
334
+     * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Leave empty if you don't want to update
335
+     * @return mixed True if user was successfully updated, WSError otherwise
336
+     */
337
+    protected function editUserHelper(
338
+        $user_id_field_name,
339
+        $user_id_value,
340
+        $firstname,
341
+        $lastname,
342
+        $status,
343
+        $loginname,
344
+        $password,
345
+        $encrypt_method,
346
+        $email,
347
+        $language,
348
+        $phone,
349
+        $expiration_date,
350
+        $extras
351
+    ) {
352 352
         global $api_failureList;
353
-		$user_id = $this->getUserId($user_id_field_name, $user_id_value);
354
-		if($user_id instanceof WSError) {
355
-			return $user_id;
356
-		} else {
357
-			if($password == '') {
358
-				$password = null;
359
-			}
360
-			$user_info = api_get_user_info($user_id);
361
-			if (count($extras) == 0) {
362
-				$extras = null;
363
-			}
353
+        $user_id = $this->getUserId($user_id_field_name, $user_id_value);
354
+        if($user_id instanceof WSError) {
355
+            return $user_id;
356
+        } else {
357
+            if($password == '') {
358
+                $password = null;
359
+            }
360
+            $user_info = api_get_user_info($user_id);
361
+            if (count($extras) == 0) {
362
+                $extras = null;
363
+            }
364 364
 
365
-			$result = UserManager::update_user(
366
-				$user_id,
367
-				$firstname,
368
-				$lastname,
369
-				$loginname,
370
-				$password,
371
-				PLATFORM_AUTH_SOURCE,
372
-				$email,
373
-				$status,
374
-				'',
375
-				$phone,
376
-				$user_info['picture_uri'],
377
-				$expiration_date,
378
-				$user_info['active'],
379
-				null,
380
-				$user_info['hr_dept_id'],
381
-				$extras,
382
-				$encrypt_method
383
-			);
384
-			if (!$result) {
385
-				$failure = $api_failureList[0];
386
-				if($failure == 'encrypt_method invalid') {
387
-					return new WSError(103, 'The encryption of the password is invalid');
388
-				} else {
389
-					return new WSError(105, 'There was an error updating the user');
390
-				}
391
-			} else {
392
-				return $result;
393
-			}
394
-		}
395
-	}
365
+            $result = UserManager::update_user(
366
+                $user_id,
367
+                $firstname,
368
+                $lastname,
369
+                $loginname,
370
+                $password,
371
+                PLATFORM_AUTH_SOURCE,
372
+                $email,
373
+                $status,
374
+                '',
375
+                $phone,
376
+                $user_info['picture_uri'],
377
+                $expiration_date,
378
+                $user_info['active'],
379
+                null,
380
+                $user_info['hr_dept_id'],
381
+                $extras,
382
+                $encrypt_method
383
+            );
384
+            if (!$result) {
385
+                $failure = $api_failureList[0];
386
+                if($failure == 'encrypt_method invalid') {
387
+                    return new WSError(103, 'The encryption of the password is invalid');
388
+                } else {
389
+                    return new WSError(105, 'There was an error updating the user');
390
+                }
391
+            } else {
392
+                return $result;
393
+            }
394
+        }
395
+    }
396 396
 
397
-	/**
398
-	 * Edits user info
399
-	 *
400
-	 * @param string API secret key
401
-	 * @param string User id field name. Use "chamilo_user_id" in order to use internal system id
402
-	 * @param string User id value
403
-	 * @param string First name
404
-	 * @param string Last name
405
-	 * @param int User status
406
-	 * @param string Login name
407
-	 * @param string Password. Leave blank if you don't want to update it
408
-	 * @param string Encrypt method
409
-	 * @param string User email
410
-	 * @param string Language. Set by default to english
411
-	 * @param string Phone. Set by default to an empty string
412
-	 * @param string Expiration date. Set to null by default
413
-	 * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Leave empty if you don't want to update
414
-	 */
415
-	public function EditUser($secret_key, $user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras) {
416
-		// First, verify the secret key
417
-		$verifKey = $this->verifyKey($secret_key);
418
-		if($verifKey instanceof WSError) {
419
-			$this->handleError($verifKey);
420
-		} else {
397
+    /**
398
+     * Edits user info
399
+     *
400
+     * @param string API secret key
401
+     * @param string User id field name. Use "chamilo_user_id" in order to use internal system id
402
+     * @param string User id value
403
+     * @param string First name
404
+     * @param string Last name
405
+     * @param int User status
406
+     * @param string Login name
407
+     * @param string Password. Leave blank if you don't want to update it
408
+     * @param string Encrypt method
409
+     * @param string User email
410
+     * @param string Language. Set by default to english
411
+     * @param string Phone. Set by default to an empty string
412
+     * @param string Expiration date. Set to null by default
413
+     * @param array Extra fields. An array with elements of the form ('field_name' => 'name_of_the_field', 'field_value' => 'value_of_the_field'). Leave empty if you don't want to update
414
+     */
415
+    public function EditUser($secret_key, $user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras) {
416
+        // First, verify the secret key
417
+        $verifKey = $this->verifyKey($secret_key);
418
+        if($verifKey instanceof WSError) {
419
+            $this->handleError($verifKey);
420
+        } else {
421 421
 
422
-			$extras_associative = array();
423
-			if (!empty($extras)) {
424
-				foreach($extras as $extra) {
425
-					$extras_associative[$extra['field_name']] = $extra['field_value'];
426
-				}
427
-			}
422
+            $extras_associative = array();
423
+            if (!empty($extras)) {
424
+                foreach($extras as $extra) {
425
+                    $extras_associative[$extra['field_name']] = $extra['field_value'];
426
+                }
427
+            }
428 428
 
429
-			$result = $this->editUserHelper($user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras_associative);
430
-			if($result instanceof WSError) {
431
-				$this->handleError($result);
432
-			}
433
-		}
434
-	}
429
+            $result = $this->editUserHelper($user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras_associative);
430
+            if($result instanceof WSError) {
431
+                $this->handleError($result);
432
+            }
433
+        }
434
+    }
435 435
 
436
-	/**
437
-	 * Edits multiple users
438
-	 *
439
-	 * @param string API secret key
440
-	 * @param array Users array. Each member of this array must follow the structure imposed by the EditUser method
441
-	 * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
442
-	 * than 0, an error occured
443
-	 */
444
-	public function EditUsers($secret_key, $users) {
445
-		$verifKey = $this->verifyKey($secret_key);
446
-		if($verifKey instanceof WSError) {
447
-			$this->handleError($verifKey);
448
-		} else {
449
-			$results = array();
450
-			foreach($users as $user) {
451
-				$result_tmp = array();
436
+    /**
437
+     * Edits multiple users
438
+     *
439
+     * @param string API secret key
440
+     * @param array Users array. Each member of this array must follow the structure imposed by the EditUser method
441
+     * @return array Array with elements like array('user_id_value' => 'value', 'result' => array('code' => 0, 'message' => 'Operation was successful')). Note that if the result array contains a code different
442
+     * than 0, an error occured
443
+     */
444
+    public function EditUsers($secret_key, $users) {
445
+        $verifKey = $this->verifyKey($secret_key);
446
+        if($verifKey instanceof WSError) {
447
+            $this->handleError($verifKey);
448
+        } else {
449
+            $results = array();
450
+            foreach($users as $user) {
451
+                $result_tmp = array();
452 452
                 // re-initialize variables just in case
453 453
                 $user_id_field_name = $user_id_value = $firstname = $lastname = $status = $loginname = $password = $encrypt_method = $email = $language = $phone = $expiration_date = $extras = null;
454
-				extract($user);
455
-				$result_op = $this->editUserHelper($user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras);
456
-				$result_tmp['user_id_value'] = $user['user_id_value'];
457
-				if($result_op instanceof WSError) {
458
-					// Return the error in the results
459
-					$result_tmp['result'] = $result_op->toArray();
460
-				} else {
461
-					$result_tmp['result'] = $this->getSuccessfulResult();
462
-				}
463
-				$results[] = $result_tmp;
464
-			}
465
-			return $results;
466
-		}
467
-	}
454
+                extract($user);
455
+                $result_op = $this->editUserHelper($user_id_field_name, $user_id_value, $firstname, $lastname, $status, $loginname, $password, $encrypt_method, $email, $language, $phone, $expiration_date, $extras);
456
+                $result_tmp['user_id_value'] = $user['user_id_value'];
457
+                if($result_op instanceof WSError) {
458
+                    // Return the error in the results
459
+                    $result_tmp['result'] = $result_op->toArray();
460
+                } else {
461
+                    $result_tmp['result'] = $this->getSuccessfulResult();
462
+                }
463
+                $results[] = $result_tmp;
464
+            }
465
+            return $results;
466
+        }
467
+    }
468 468
 }
Please login to merge, or discard this patch.