Passed
Push — 1.10.x ( bdb5a0...94b014 )
by Yannick
311:31 queued 267:06
created
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/courses_list.rest.php 1 patch
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -1,15 +1,15 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 /* For licensing terms, see /license.txt */
3 3
 /**
4
- * This script provides the caller service with a list
5
- * of courses that have a certain level of visibility
6
- * on this chamilo portal.
7
- * It is set to work with the Chamilo module for Drupal:
8
- * http://drupal.org/project/chamilo
9
- *
10
- * @author Yannick Warnier <[email protected]>
11
- * @package chamilo.webservices
12
- */
4
+     * This script provides the caller service with a list
5
+     * of courses that have a certain level of visibility
6
+     * on this chamilo portal.
7
+     * It is set to work with the Chamilo module for Drupal:
8
+     * http://drupal.org/project/chamilo
9
+     *
10
+     * @author Yannick Warnier <[email protected]>
11
+     * @package chamilo.webservices
12
+     */
13 13
 
14 14
 require_once '../inc/global.inc.php';
15 15
 
@@ -22,32 +22,32 @@  discard block
 block discarded – undo
22 22
  */
23 23
 function courses_list($security_key, $visibilities = 'public') {
24 24
 
25
-	global $_configuration;
25
+    global $_configuration;
26 26
 
27
-   	// Check if this script is launch by server and if security key is ok.
28
-   	if ($security_key != $_configuration['security_key']) {
29
-   		return array('error_msg' => 'Security check failed');
30
-   	}
27
+        // Check if this script is launch by server and if security key is ok.
28
+        if ($security_key != $_configuration['security_key']) {
29
+            return array('error_msg' => 'Security check failed');
30
+        }
31 31
 
32
-	$vis = array('public' => '3', 'public-registered' => '2', 'private' => '1', 'closed' => '0');
32
+    $vis = array('public' => '3', 'public-registered' => '2', 'private' => '1', 'closed' => '0');
33 33
 
34
-	$courses_list = array();
34
+    $courses_list = array();
35 35
 
36
-	if (!is_array($visibilities)) {
37
-		$tmp = $visibilities;
38
-		$visibilities = array($tmp);
39
-	}
40
-	foreach ($visibilities as $visibility) {
41
-		if (!in_array($visibility, array_keys($vis))) {
42
-   			return array('error_msg' => 'Security check failed');
43
-		}
44
-		$courses_list_tmp = CourseManager::get_courses_list(null, null, null, null, $vis[$visibility]);
45
-		foreach ($courses_list_tmp as $index => $course) {
46
-			$course_info = CourseManager::get_course_information($course['code']);
47
-			$courses_list[$course['code']] = array('title' => api_utf8_encode($course_info['title']), 'url' => api_get_path(WEB_COURSE_PATH).$course_info['directory'].'/', 'teacher' => api_utf8_encode($course_info['tutor_name']), 'language' => $course_info['course_language']);
48
-		}
49
-	}
50
-	return $courses_list;
36
+    if (!is_array($visibilities)) {
37
+        $tmp = $visibilities;
38
+        $visibilities = array($tmp);
39
+    }
40
+    foreach ($visibilities as $visibility) {
41
+        if (!in_array($visibility, array_keys($vis))) {
42
+                return array('error_msg' => 'Security check failed');
43
+        }
44
+        $courses_list_tmp = CourseManager::get_courses_list(null, null, null, null, $vis[$visibility]);
45
+        foreach ($courses_list_tmp as $index => $course) {
46
+            $course_info = CourseManager::get_course_information($course['code']);
47
+            $courses_list[$course['code']] = array('title' => api_utf8_encode($course_info['title']), 'url' => api_get_path(WEB_COURSE_PATH).$course_info['directory'].'/', 'teacher' => api_utf8_encode($course_info['tutor_name']), 'language' => $course_info['course_language']);
48
+        }
49
+    }
50
+    return $courses_list;
51 51
 }
52 52
 
53 53
 header('Content-Type: text/xml; charset=utf-8');
@@ -55,17 +55,17 @@  discard block
 block discarded – undo
55 55
 echo '<courseslist>';
56 56
 
57 57
 if (empty($_POST['security-key']) || empty($_POST['visibility'])) {
58
-	echo '<errormsg>Invalid parameters, this script expects a security-key and a visibility parameters</errormsg>';
58
+    echo '<errormsg>Invalid parameters, this script expects a security-key and a visibility parameters</errormsg>';
59 59
 } else {
60
-	$courses_list = courses_list($_POST['security-key'], $_POST['visibility']);
61
-	foreach ($courses_list as $code => $cd) {
62
-		echo '<course>';
63
-		echo '<code>' , $code , '</code>';
64
-		echo '<title>' , $cd['title'] , '</title>';
65
-		echo '<url>' , $cd['url'] , '</url>';
66
-		echo '<teacher>' , $cd['teacher'] , '</teacher>';
67
-		echo '<language>' , $cd['language'] , '</language>';
68
-		echo '</course>';
69
-	}
60
+    $courses_list = courses_list($_POST['security-key'], $_POST['visibility']);
61
+    foreach ($courses_list as $code => $cd) {
62
+        echo '<course>';
63
+        echo '<code>' , $code , '</code>';
64
+        echo '<title>' , $cd['title'] , '</title>';
65
+        echo '<url>' , $cd['url'] , '</url>';
66
+        echo '<teacher>' , $cd['teacher'] , '</teacher>';
67
+        echo '<language>' , $cd['language'] , '</language>';
68
+        echo '</course>';
69
+    }
70 70
 }
71 71
 echo '</courseslist>';
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/soap_session.php 1 patch
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -1,9 +1,9 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 /* For licensing terms, see /license.txt */
3 3
 /**
4
- * Configures the WSSession SOAP service
5
- * @package chamilo.webservices
6
- */
4
+     * Configures the WSSession SOAP service
5
+     * @package chamilo.webservices
6
+     */
7 7
 
8 8
 require_once(dirname(__FILE__).'/webservice_session.php');
9 9
 require_once(dirname(__FILE__).'/soap.php');
@@ -13,19 +13,19 @@  discard block
 block discarded – undo
13 13
 $s->register(
14 14
     'WSSession.CreateSession',
15 15
     array(
16
-	'secret_key' => 'xsd:string',
17
-	'name' => 'xsd:string',
18
-	'start_date' => 'xsd:string',
19
-	'end_date' => 'xsd:string',
20
-	'nb_days_access_before' => 'xsd:int',
21
-	'nb_days_access_after' => 'xsd:int',
22
-	'nolimit' => 'xsd:int',
23
-	'visibility' => 'xsd:int',
24
-	'user_id_field_name' => 'xsd:string',
25
-	'user_id_value' => 'xsd:string',
26
-	'session_id_field_name' => 'xsd:string',
27
-	'session_id_value' => 'xsd:string',
28
-	'extras' => 'tns:extra_field'
16
+    'secret_key' => 'xsd:string',
17
+    'name' => 'xsd:string',
18
+    'start_date' => 'xsd:string',
19
+    'end_date' => 'xsd:string',
20
+    'nb_days_access_before' => 'xsd:int',
21
+    'nb_days_access_after' => 'xsd:int',
22
+    'nolimit' => 'xsd:int',
23
+    'visibility' => 'xsd:int',
24
+    'user_id_field_name' => 'xsd:string',
25
+    'user_id_value' => 'xsd:string',
26
+    'session_id_field_name' => 'xsd:string',
27
+    'session_id_value' => 'xsd:string',
28
+    'extras' => 'tns:extra_field'
29 29
     ),
30 30
     array('return' => 'xsd:int')
31 31
 );
@@ -33,50 +33,50 @@  discard block
 block discarded – undo
33 33
 $s->register(
34 34
     'WSSession.DeleteSession',
35 35
     array(
36
-	'secret_key' => 'xsd:string',
37
-	'session_id_field_name' => 'xsd:string',
38
-	'session_id_value' => 'xsd:string'
36
+    'secret_key' => 'xsd:string',
37
+    'session_id_field_name' => 'xsd:string',
38
+    'session_id_value' => 'xsd:string'
39 39
     )
40 40
 );
41 41
 
42 42
 $s->register(
43 43
     'WSSession.EditSession',
44 44
     array(
45
-	'secret_key' => 'xsd:string',
46
-	'name' => 'xsd:string',
47
-	'start_date' => 'xsd:string',
48
-	'end_date' => 'xsd:string',
49
-	'nb_days_access_before' => 'xsd:int',
50
-	'nb_days_access_after' => 'xsd:int',
51
-	'nolimit' => 'xsd:int',
52
-	'visibility' => 'xsd:int',
53
-	'user_id_field_name' => 'xsd:string',
54
-	'user_id_value' => 'xsd:string',
55
-	'session_id_field_name' => 'xsd:string',
56
-	'session_id_value' => 'xsd:string',
57
-	'extras' => 'tns:extra_field'
45
+    'secret_key' => 'xsd:string',
46
+    'name' => 'xsd:string',
47
+    'start_date' => 'xsd:string',
48
+    'end_date' => 'xsd:string',
49
+    'nb_days_access_before' => 'xsd:int',
50
+    'nb_days_access_after' => 'xsd:int',
51
+    'nolimit' => 'xsd:int',
52
+    'visibility' => 'xsd:int',
53
+    'user_id_field_name' => 'xsd:string',
54
+    'user_id_value' => 'xsd:string',
55
+    'session_id_field_name' => 'xsd:string',
56
+    'session_id_value' => 'xsd:string',
57
+    'extras' => 'tns:extra_field'
58 58
     )
59 59
 );
60 60
 
61 61
 $s->register(
62 62
     'WSSession.SubscribeUserToSession',
63 63
     array(
64
-	'secret_key' => 'xsd:string',
65
-	'user_id_field_name' => 'xsd:string',
66
-	'user_id_value' => 'xsd:string',
67
-	'session_id_field_name' => 'xsd:string',
68
-	'session_id_value' => 'xsd:string'
64
+    'secret_key' => 'xsd:string',
65
+    'user_id_field_name' => 'xsd:string',
66
+    'user_id_value' => 'xsd:string',
67
+    'session_id_field_name' => 'xsd:string',
68
+    'session_id_value' => 'xsd:string'
69 69
     )
70 70
 );
71 71
 
72 72
 $s->register(
73 73
     'WSSession.UnsubscribeUserFromSession',
74 74
     array(
75
-	'secret_key' => 'xsd:string',
76
-	'user_id_field_name' => 'xsd:string',
77
-	'user_id_value' => 'xsd:string',
78
-	'session_id_field_name' => 'xsd:string',
79
-	'session_id_value' => 'xsd:string'
75
+    'secret_key' => 'xsd:string',
76
+    'user_id_field_name' => 'xsd:string',
77
+    'user_id_value' => 'xsd:string',
78
+    'session_id_field_name' => 'xsd:string',
79
+    'session_id_value' => 'xsd:string'
80 80
     )
81 81
 );
82 82
 
@@ -84,46 +84,46 @@  discard block
 block discarded – undo
84 84
     'WSSession.SubscribeTeacherToSessionCourse',
85 85
     array(
86 86
         'secret_key' => 'xsd:string',
87
-	'user_id_field_name' => 'xsd:string',
88
-	'user_id_value' => 'xsd:string',
89
-	'session_id_field_name' => 'xsd:string',
90
-	'session_id_value' => 'xsd:string',
87
+    'user_id_field_name' => 'xsd:string',
88
+    'user_id_value' => 'xsd:string',
89
+    'session_id_field_name' => 'xsd:string',
90
+    'session_id_value' => 'xsd:string',
91 91
         'course_id_field_name' => 'xsd:string',
92
-	'course_id_value' => 'xsd:string'
92
+    'course_id_value' => 'xsd:string'
93 93
     )
94 94
 );
95 95
 
96 96
 $s->register(
97 97
     'WSSession.UnsubscribeTeacherFromSessionCourse',
98 98
     array(
99
-	'secret_key' => 'xsd:string',
100
-	'user_id_field_name' => 'xsd:string',
101
-	'user_id_value' => 'xsd:string',
102
-	'session_id_field_name' => 'xsd:string',
103
-	'session_id_value' => 'xsd:string',
99
+    'secret_key' => 'xsd:string',
100
+    'user_id_field_name' => 'xsd:string',
101
+    'user_id_value' => 'xsd:string',
102
+    'session_id_field_name' => 'xsd:string',
103
+    'session_id_value' => 'xsd:string',
104 104
         'course_id_field_name' => 'xsd:string',
105
-	'course_id_value' => 'xsd:string'
105
+    'course_id_value' => 'xsd:string'
106 106
     )
107 107
 );
108 108
 
109 109
 $s->register(
110 110
     'WSSession.SubscribeCourseToSession',
111 111
     array(
112
-	'secret_key' => 'xsd:string',
113
-	'course_id_field_name' => 'xsd:string',
114
-	'course_id_value' => 'xsd:string',
115
-	'session_id_field_name' => 'xsd:string',
116
-	'session_id_value' => 'xsd:string'
112
+    'secret_key' => 'xsd:string',
113
+    'course_id_field_name' => 'xsd:string',
114
+    'course_id_value' => 'xsd:string',
115
+    'session_id_field_name' => 'xsd:string',
116
+    'session_id_value' => 'xsd:string'
117 117
     )
118 118
 );
119 119
 
120 120
 $s->register(
121 121
     'WSSession.UnsubscribeCourseFromSession',
122 122
     array(
123
-	'secret_key' => 'xsd:string',
124
-	'course_id_field_name' => 'xsd:string',
125
-	'course_id_value' => 'xsd:string',
126
-	'session_id_field_name' => 'xsd:string',
127
-	'session_id_value' => 'xsd:string'
123
+    'secret_key' => 'xsd:string',
124
+    'course_id_field_name' => 'xsd:string',
125
+    'course_id_value' => 'xsd:string',
126
+    'session_id_field_name' => 'xsd:string',
127
+    'session_id_value' => 'xsd:string'
128 128
     )
129 129
 );
Please login to merge, or discard this patch.
main/webservices/cm_soap_announcements.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -11,13 +11,13 @@  discard block
 block discarded – undo
11 11
 
12 12
 
13 13
 $s->register(
14
-	'WSCMAnnouncements.get_announcements_id',
15
-	array(
16
-		'username' => 'xsd:string',
17
-		'password' => 'xsd:string',
14
+    'WSCMAnnouncements.get_announcements_id',
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
         '',
@@ -27,15 +27,15 @@  discard block
 block discarded – undo
27 27
 );
28 28
 
29 29
 $s->register(
30
-	'WSCMAnnouncements.get_announcement_data',
31
-	array(
32
-		'username' => 'xsd:string',
33
-		'password' => 'xsd:string',
30
+    'WSCMAnnouncements.get_announcement_data',
31
+    array(
32
+        'username' => 'xsd:string',
33
+        'password' => 'xsd:string',
34 34
                 'course_code' => 'xsd:string',
35 35
                 'announcement_id' => 'xsd:string',
36 36
                 'field' => 'xsd:string'
37
-	),
38
-	array('return' => 'xsd:string'),
37
+    ),
38
+    array('return' => 'xsd:string'),
39 39
         'urn:WSCMService',
40 40
         '',
41 41
         '',
Please login to merge, or discard this patch.
main/webservices/cm_soap_inbox.php 1 patch
Indentation   +36 added lines, -36 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
-	'WSCMInbox.unreadMessage',
15
-	array(
16
-		'username' => 'xsd:string',
17
-		'password' => 'xsd:string',
18
-	),
19
-	array('return' => 'xsd:string'),
14
+    'WSCMInbox.unreadMessage',
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,14 +26,14 @@  discard block
 block discarded – undo
26 26
 );
27 27
 
28 28
 $s->register(
29
-	'WSCMInbox.get_message_id',
30
-	array(
31
-		'username' => 'xsd:string',
32
-		'password' => 'xsd:string',
29
+    'WSCMInbox.get_message_id',
30
+    array(
31
+        'username' => 'xsd:string',
32
+        'password' => 'xsd:string',
33 33
                 'from' => 'xsd:string',
34 34
                 'number_of_items' => 'xsd:string'
35
-	),
36
-	array('return' => 'xsd:string'),
35
+    ),
36
+    array('return' => 'xsd:string'),
37 37
         'urn:WSCMService',
38 38
         '',
39 39
         '',
@@ -44,14 +44,14 @@  discard block
 block discarded – undo
44 44
 
45 45
 
46 46
 $s->register(
47
-	'WSCMInbox.get_message_data',
48
-	array(
49
-		'username' => 'xsd:string',
50
-		'password' => 'xsd:string',
47
+    'WSCMInbox.get_message_data',
48
+    array(
49
+        'username' => 'xsd:string',
50
+        'password' => 'xsd:string',
51 51
                 'id' => 'xsd:string',
52 52
                 'field' => 'xsd:string'
53
-	),
54
-	array('return' => 'xsd:string'),
53
+    ),
54
+    array('return' => 'xsd:string'),
55 55
         'urn:WSCMService',
56 56
         '',
57 57
         '',
@@ -61,14 +61,14 @@  discard block
 block discarded – undo
61 61
 );
62 62
 
63 63
 $s->register(
64
-	'WSCMInbox.get_message_id_sent',
65
-	array(
66
-		'username' => 'xsd:string',
67
-		'password' => 'xsd:string',
64
+    'WSCMInbox.get_message_id_sent',
65
+    array(
66
+        'username' => 'xsd:string',
67
+        'password' => 'xsd:string',
68 68
                 'from' => 'xsd:string',
69 69
                 'number_of_items' => 'xsd:string'
70
-	),
71
-	array('return' => 'xsd:string'),
70
+    ),
71
+    array('return' => 'xsd:string'),
72 72
         'urn:WSCMService',
73 73
         '',
74 74
         '',
@@ -78,14 +78,14 @@  discard block
 block discarded – undo
78 78
 );
79 79
 
80 80
 $s->register(
81
-	'WSCMInbox.get_message_data_sent',
82
-	array(
83
-		'username' => 'xsd:string',
84
-		'password' => 'xsd:string',
81
+    'WSCMInbox.get_message_data_sent',
82
+    array(
83
+        'username' => 'xsd:string',
84
+        'password' => 'xsd:string',
85 85
                 'id' => 'xsd:string',
86 86
                 'field' => 'xsd:string'
87
-	),
88
-	array('return' => 'xsd:string'),
87
+    ),
88
+    array('return' => 'xsd:string'),
89 89
         'urn:WSCMService',
90 90
         '',
91 91
         '',
@@ -95,15 +95,15 @@  discard block
 block discarded – undo
95 95
 );
96 96
 
97 97
 $s->register(
98
-	'WSCMInbox.message_send',
99
-	array(
100
-		'username' => 'xsd:string',
101
-		'password' => 'xsd:string',
98
+    'WSCMInbox.message_send',
99
+    array(
100
+        'username' => 'xsd:string',
101
+        'password' => 'xsd:string',
102 102
                 'receiver_user_id' => 'xsd:string',
103 103
                 'subject' => 'xsd:string',
104 104
                 'content' => 'xsd:string'
105
-	),
106
-	array('return' => 'xsd:string'),
105
+    ),
106
+    array('return' => 'xsd:string'),
107 107
         'urn:WSCMService',
108 108
         '',
109 109
         '',
Please login to merge, or discard this patch.
main/webservices/cm_webservice.php 1 patch
Indentation   +198 added lines, -198 removed lines patch added patch discarded remove patch
@@ -6,120 +6,120 @@  discard block
 block discarded – undo
6 6
  * Error returned by one of the methods of the web service. Contains an error code and an error message
7 7
  */
8 8
 class WSCMError {
9
-	/**
10
-	 * Error handler. This needs to be a class that implements the interface WSErrorHandler
11
-	 *
12
-	 * @var WSErrorHandler
13
-	 */
14
-	protected static $_handler;
9
+    /**
10
+     * Error handler. This needs to be a class that implements the interface WSErrorHandler
11
+     *
12
+     * @var WSErrorHandler
13
+     */
14
+    protected static $_handler;
15 15
 
16
-	/**
17
-	 * Error code
18
-	 *
19
-	 * @var int
20
-	 */
21
-	public $code;
16
+    /**
17
+     * Error code
18
+     *
19
+     * @var int
20
+     */
21
+    public $code;
22 22
 
23
-	/**
24
-	 * Error message
25
-	 *
26
-	 * @var string
27
-	 */
28
-	public $message;
23
+    /**
24
+     * Error message
25
+     *
26
+     * @var string
27
+     */
28
+    public $message;
29 29
 
30
-	/**
31
-	 * Constructor
32
-	 *
33
-	 * @param int Error code
34
-	 * @param string Error message
35
-	 */
36
-	public function __construct($code, $message) {
37
-		$this->code = $code;
38
-		$this->message = $message;
39
-	}
30
+    /**
31
+     * Constructor
32
+     *
33
+     * @param int Error code
34
+     * @param string Error message
35
+     */
36
+    public function __construct($code, $message) {
37
+        $this->code = $code;
38
+        $this->message = $message;
39
+    }
40 40
 
41
-	/**
42
-	 * Sets the error handler
43
-	 *
44
-	 * @param WSErrorHandler Error handler
45
-	 */
46
-	public static function setErrorHandler($handler) {
47
-		if($handler instanceof WSErrorHandler) {
48
-			self::$_handler = $handler;
49
-		}
50
-	}
41
+    /**
42
+     * Sets the error handler
43
+     *
44
+     * @param WSErrorHandler Error handler
45
+     */
46
+    public static function setErrorHandler($handler) {
47
+        if($handler instanceof WSErrorHandler) {
48
+            self::$_handler = $handler;
49
+        }
50
+    }
51 51
 
52
-	/**
53
-	 * Returns the error handler
54
-	 *
55
-	 * @return WSErrorHandler Error handler
56
-	 */
57
-	public static function getErrorHandler() {
58
-		return self::$_handler;
59
-	}
52
+    /**
53
+     * Returns the error handler
54
+     *
55
+     * @return WSErrorHandler Error handler
56
+     */
57
+    public static function getErrorHandler() {
58
+        return self::$_handler;
59
+    }
60 60
 
61
-	/**
62
-	 * Transforms the error into an array
63
-	 *
64
-	 * @return array Associative array with code and message
65
-	 */
66
-	public function toArray() {
67
-		return array('code' => $this->code, 'message' => $this->message);
68
-	}
61
+    /**
62
+     * Transforms the error into an array
63
+     *
64
+     * @return array Associative array with code and message
65
+     */
66
+    public function toArray() {
67
+        return array('code' => $this->code, 'message' => $this->message);
68
+    }
69 69
 }
70 70
 
71 71
 /**
72 72
  * Interface that must be implemented by any error handler
73 73
  */
74 74
 interface WSCMErrorHandler {
75
-	/**
76
-	 * Handle method
77
-	 *
78
-	 * @param WSError Error
79
-	 */
80
-	public function handle($error);
75
+    /**
76
+     * Handle method
77
+     *
78
+     * @param WSError Error
79
+     */
80
+    public function handle($error);
81 81
 }
82 82
 
83 83
 /**
84 84
  * Main class of the webservice. Webservice classes extend this class
85 85
  */
86 86
 class WSCM {
87
-	/**
88
-	 * Chamilo configuration
89
-	 *
90
-	 * @var array
91
-	 */
92
-	protected $_configuration;
87
+    /**
88
+     * Chamilo configuration
89
+     *
90
+     * @var array
91
+     */
92
+    protected $_configuration;
93 93
 
94
-	/**
95
-	 * Constructor
96
-	 */
97
-	public function __construct() {
98
-		$this->_configuration = $GLOBALS['_configuration'];
99
-	}
94
+    /**
95
+     * Constructor
96
+     */
97
+    public function __construct() {
98
+        $this->_configuration = $GLOBALS['_configuration'];
99
+    }
100 100
 
101
-	/**
102
-	 * Verifies the API key
103
-	 *
104
-	 * @param string Secret key
105
-	 * @return mixed WSError in case of failure, null in case of success
106
-	 */
107
-	protected function verifyKey($secret_key) {
108
-		$ip = trim($_SERVER['REMOTE_ADDR']);
109
-		// if we are behind a reverse proxy, assume it will send the
110
-		// HTTP_X_FORWARDED_FOR header and use this IP instead
111
-		if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
112
-		  list($ip1,$ip2) = split(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
113
-		  $ip = trim($ip1);
114
-		}
115
-		$security_key = $ip.$this->_configuration['security_key'];
101
+    /**
102
+     * Verifies the API key
103
+     *
104
+     * @param string Secret key
105
+     * @return mixed WSError in case of failure, null in case of success
106
+     */
107
+    protected function verifyKey($secret_key) {
108
+        $ip = trim($_SERVER['REMOTE_ADDR']);
109
+        // if we are behind a reverse proxy, assume it will send the
110
+        // HTTP_X_FORWARDED_FOR header and use this IP instead
111
+        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
112
+            list($ip1,$ip2) = split(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
113
+            $ip = trim($ip1);
114
+        }
115
+        $security_key = $ip.$this->_configuration['security_key'];
116 116
 
117
-		if(!api_is_valid_secret_key($secret_key, $security_key)) {
118
-			return new WSCMError(1, "API key is invalid");
119
-		} else {
120
-			return null;
121
-		}
122
-	}
117
+        if(!api_is_valid_secret_key($secret_key, $security_key)) {
118
+            return new WSCMError(1, "API key is invalid");
119
+        } else {
120
+            return null;
121
+        }
122
+    }
123 123
 
124 124
         /**
125 125
          * Verifies if the user is valid
@@ -134,12 +134,12 @@  discard block
 block discarded – undo
134 134
             $login = $username;
135 135
             $password = $pass;
136 136
 
137
-	    //lookup the user in the main database
137
+        //lookup the user in the main database
138 138
             $user_table = Database::get_main_table(TABLE_MAIN_USER);
139
-	    $sql = "SELECT user_id, username, password, auth_source, active, expiration_date
139
+        $sql = "SELECT user_id, username, password, auth_source, active, expiration_date
140 140
 	            FROM $user_table
141 141
 	            WHERE username = '".trim(addslashes($login))."'";
142
-	    $result = Database::query($sql);
142
+        $result = Database::query($sql);
143 143
 
144 144
             if (Database::num_rows($result) > 0) {
145 145
                 $uData = Database::fetch_array($result);
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
 
172 172
         /**
173 173
          * Return the encrypted pass
174
-		 * @deprecated
174
+         * @deprecated
175 175
          * @param <String> $pass
176 176
          * @return <String> $pass encrypted
177 177
          */
@@ -180,112 +180,112 @@  discard block
 block discarded – undo
180 180
         }*/
181 181
 
182 182
         /**
183
-	 * Gets the real user id based on the user id field name and value. Note that if the user id field name is "chamilo_user_id", it will use the user id
184
-	 * in the system database
185
-	 *
186
-	 * @param string User id field name
187
-	 * @param string User id value
188
-	 * @return mixed System user id if the user was found, WSError otherwise
189
-	 */
190
-	protected function getUserId($user_id_field_name, $user_id_value) {
191
-		if($user_id_field_name == "chamilo_user_id") {
192
-			if(UserManager::is_user_id_valid(intval($user_id_value))) {
193
-				return intval($user_id_value);
194
-			} else {
195
-				return new WSCMError(100, "User not found");
196
-			}
197
-		} else {
198
-			$user_id = UserManager::get_user_id_from_original_id($user_id_value, $user_id_field_name);
199
-			if($user_id == 0) {
200
-				return new WSCMError(100, "User not found");
201
-			} else {
202
-				return $user_id;
203
-			}
204
-		}
205
-	}
183
+         * Gets the real user id based on the user id field name and value. Note that if the user id field name is "chamilo_user_id", it will use the user id
184
+         * in the system database
185
+         *
186
+         * @param string User id field name
187
+         * @param string User id value
188
+         * @return mixed System user id if the user was found, WSError otherwise
189
+         */
190
+    protected function getUserId($user_id_field_name, $user_id_value) {
191
+        if($user_id_field_name == "chamilo_user_id") {
192
+            if(UserManager::is_user_id_valid(intval($user_id_value))) {
193
+                return intval($user_id_value);
194
+            } else {
195
+                return new WSCMError(100, "User not found");
196
+            }
197
+        } else {
198
+            $user_id = UserManager::get_user_id_from_original_id($user_id_value, $user_id_field_name);
199
+            if($user_id == 0) {
200
+                return new WSCMError(100, "User not found");
201
+            } else {
202
+                return $user_id;
203
+            }
204
+        }
205
+    }
206 206
 
207
-	/**
208
-	 * Gets the real course id based on the course id field name and value. Note that if the course id field name is "chamilo_course_id", it will use the course id
209
-	 * in the system database
210
-	 *
211
-	 * @param string Course id field name
212
-	 * @param string Course id value
213
-	 * @return mixed System course id if the course was found, WSError otherwise
214
-	 */
215
-	protected function getCourseId($course_id_field_name, $course_id_value) {
216
-		if($course_id_field_name == "chamilo_course_id") {
217
-			if(CourseManager::get_course_code_from_course_id(intval($course_id_value)) != null) {
218
-				return intval($course_id_value);
219
-			} else {
220
-				return new WSCMError(200, "Course not found");
221
-			}
222
-		} else {
223
-			$courseId = CourseManager::get_course_code_from_original_id($course_id_value, $course_id_field_name);
224
-			if (empty($courseId)) {
225
-				return new WSCMError(200, "Course not found");
226
-			} else {
227
-				return $courseId;
228
-			}
229
-		}
230
-	}
207
+    /**
208
+     * Gets the real course id based on the course id field name and value. Note that if the course id field name is "chamilo_course_id", it will use the course id
209
+     * in the system database
210
+     *
211
+     * @param string Course id field name
212
+     * @param string Course id value
213
+     * @return mixed System course id if the course was found, WSError otherwise
214
+     */
215
+    protected function getCourseId($course_id_field_name, $course_id_value) {
216
+        if($course_id_field_name == "chamilo_course_id") {
217
+            if(CourseManager::get_course_code_from_course_id(intval($course_id_value)) != null) {
218
+                return intval($course_id_value);
219
+            } else {
220
+                return new WSCMError(200, "Course not found");
221
+            }
222
+        } else {
223
+            $courseId = CourseManager::get_course_code_from_original_id($course_id_value, $course_id_field_name);
224
+            if (empty($courseId)) {
225
+                return new WSCMError(200, "Course not found");
226
+            } else {
227
+                return $courseId;
228
+            }
229
+        }
230
+    }
231 231
 
232
-	/**
233
-	 * Gets the real session id based on the session id field name and value. Note that if the session id field name is "chamilo_session_id", it will use the session id
234
-	 * in the system database
235
-	 *
236
-	 * @param string Session id field name
237
-	 * @param string Session id value
238
-	 * @return mixed System session id if the session was found, WSError otherwise
239
-	 */
240
-	protected function getSessionId($session_id_field_name, $session_id_value)
241
-	{
242
-		if ($session_id_field_name == "chamilo_session_id") {
243
-			$session = SessionManager::fetch((int)$session_id_value);
244
-			if(!empty($session)) {
245
-				return intval($session_id_value);
246
-			} else {
247
-				return new WSCMError(300, "Session not found");
248
-			}
249
-		} else {
250
-			$session_id = SessionManager::getSessionIdFromOriginalId(
251
-				$session_id_value,
252
-				$session_id_field_name
253
-			);
254
-			if($session_id == 0) {
255
-				return new WSCMError(300, "Session not found");
256
-			} else {
257
-				return $session_id;
258
-			}
259
-		}
260
-	}
232
+    /**
233
+     * Gets the real session id based on the session id field name and value. Note that if the session id field name is "chamilo_session_id", it will use the session id
234
+     * in the system database
235
+     *
236
+     * @param string Session id field name
237
+     * @param string Session id value
238
+     * @return mixed System session id if the session was found, WSError otherwise
239
+     */
240
+    protected function getSessionId($session_id_field_name, $session_id_value)
241
+    {
242
+        if ($session_id_field_name == "chamilo_session_id") {
243
+            $session = SessionManager::fetch((int)$session_id_value);
244
+            if(!empty($session)) {
245
+                return intval($session_id_value);
246
+            } else {
247
+                return new WSCMError(300, "Session not found");
248
+            }
249
+        } else {
250
+            $session_id = SessionManager::getSessionIdFromOriginalId(
251
+                $session_id_value,
252
+                $session_id_field_name
253
+            );
254
+            if($session_id == 0) {
255
+                return new WSCMError(300, "Session not found");
256
+            } else {
257
+                return $session_id;
258
+            }
259
+        }
260
+    }
261 261
 
262
-	/**
263
-	 * Handles an error by calling the WSError error handler
264
-	 *
265
-	 * @param WSError Error
266
-	 */
267
-	protected function handleError($error) {
268
-		$handler = WSCMError::getErrorHandler();
269
-		$handler->handle($error);
270
-	}
262
+    /**
263
+     * Handles an error by calling the WSError error handler
264
+     *
265
+     * @param WSError Error
266
+     */
267
+    protected function handleError($error) {
268
+        $handler = WSCMError::getErrorHandler();
269
+        $handler->handle($error);
270
+    }
271 271
 
272
-	/**
273
-	 * Gets a successful result
274
-	 *
275
-	 * @return array Array with a code of 0 and a message 'Operation was successful'
276
-	 */
277
-	protected function getSuccessfulResult() {
278
-		return array('code' => 0, 'message' => 'Operation was successful');
279
-	}
272
+    /**
273
+     * Gets a successful result
274
+     *
275
+     * @return array Array with a code of 0 and a message 'Operation was successful'
276
+     */
277
+    protected function getSuccessfulResult() {
278
+        return array('code' => 0, 'message' => 'Operation was successful');
279
+    }
280 280
 
281
-	/**
282
-	 * Test function. Returns the string success
283
-	 *
284
-	 * @return string Success
285
-	 */
286
-	public function test() {
287
-		return "success";
288
-	}
281
+    /**
282
+     * Test function. Returns the string success
283
+     *
284
+     * @return string Success
285
+     */
286
+    public function test() {
287
+        return "success";
288
+    }
289 289
 
290 290
         /**
291 291
          * *Strictly* reverts PHP's nl2br() effects (whether it was used in XHTML mode or not)
Please login to merge, or discard this patch.
main/webservices/cm_webservice_inbox.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -37,8 +37,8 @@  discard block
 block discarded – undo
37 37
             $table_message = Database::get_main_table(TABLE_MESSAGE);
38 38
 
39 39
             $sql_query = "SELECT id FROM $table_message " .
40
-                                     " WHERE user_receiver_id=".$user_id." AND msg_status IN (0,1)" .
41
-                                     " ORDER BY send_date LIMIT $from,$number_of_items";
40
+                                        " WHERE user_receiver_id=".$user_id." AND msg_status IN (0,1)" .
41
+                                        " ORDER BY send_date LIMIT $from,$number_of_items";
42 42
 
43 43
             $sql_result = Database::query($sql_query);
44 44
             $message = "#";
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
             $table_message = Database::get_main_table(TABLE_MESSAGE);
87 87
 
88 88
             $sql_query = "SELECT ".$field_table." FROM $table_message " .
89
-                                     " WHERE user_receiver_id=".$user_id." AND id=".$message_id;
89
+                                        " WHERE user_receiver_id=".$user_id." AND id=".$message_id;
90 90
 
91 91
             $sql_result = Database::query($sql_query);
92 92
             $result = Database::fetch_row($sql_result);
@@ -107,8 +107,8 @@  discard block
 block discarded – undo
107 107
             $table_message = Database::get_main_table(TABLE_MESSAGE);
108 108
 
109 109
             $sql_query = "SELECT id FROM $table_message " .
110
-					 "WHERE user_sender_id=".$user_id." AND msg_status=".MESSAGE_STATUS_OUTBOX." " .
111
-					 "ORDER BY send_date LIMIT $from,$number_of_items";
110
+                        "WHERE user_sender_id=".$user_id." AND msg_status=".MESSAGE_STATUS_OUTBOX." " .
111
+                        "ORDER BY send_date LIMIT $from,$number_of_items";
112 112
 
113 113
             $sql_result = Database::query($sql_query);
114 114
             $message = "#";
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
             $table_message = Database::get_main_table(TABLE_MESSAGE);
158 158
 
159 159
             $sql_query = "SELECT ".$field_table." FROM $table_message " .
160
-                                     " WHERE user_sender_id=".$user_id." AND id=".$id;
160
+                                        " WHERE user_sender_id=".$user_id." AND id=".$id;
161 161
 
162 162
             $sql_result = Database::query($sql_query);
163 163
             $result = Database::fetch_row($sql_result);
@@ -188,11 +188,11 @@  discard block
 block discarded – undo
188 188
             $table_message = Database::get_main_table(TABLE_MESSAGE);
189 189
 
190 190
             $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ".
191
-                           " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
191
+                            " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
192 192
             $result = Database::query($query);
193 193
 
194 194
             $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ".
195
-                           " VALUES ('$user_sender_id', '$receiver_user_id', '4', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
195
+                            " VALUES ('$user_sender_id', '$receiver_user_id', '4', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
196 196
             $result = Database::query($query);
197 197
 
198 198
             $inbox_last_id = Database::insert_id();
Please login to merge, or discard this patch.
main/webservices/cm_soap_user.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -8,13 +8,13 @@  discard block
 block discarded – undo
8 8
 $s = WSCMSoapServer::singleton();
9 9
 
10 10
 $s->register(
11
-	'WSCMUser.find_id_user',
12
-	array(
13
-		'username' => 'xsd:string',
14
-		'password' => 'xsd:string',
11
+    'WSCMUser.find_id_user',
12
+    array(
13
+        'username' => 'xsd:string',
14
+        'password' => 'xsd:string',
15 15
                 'name' => 'xsd:string',
16
-	),
17
-	array('return' => 'xsd:string'),
16
+    ),
17
+    array('return' => 'xsd:string'),
18 18
         'urn:WSCMService',
19 19
         '',
20 20
         '',
@@ -23,14 +23,14 @@  discard block
 block discarded – undo
23 23
 );
24 24
 
25 25
 $s->register(
26
-	'WSCMUser.get_user_name',
27
-	array(
28
-		'username' => 'xsd:string',
29
-		'password' => 'xsd:string',
26
+    'WSCMUser.get_user_name',
27
+    array(
28
+        'username' => 'xsd:string',
29
+        'password' => 'xsd:string',
30 30
                 'id' => 'xsd:string',
31 31
                 'field' => 'xsd:string'
32
-	),
33
-	array('return' => 'xsd:string'),
32
+    ),
33
+    array('return' => 'xsd:string'),
34 34
         'urn:WSCMService',
35 35
         '',
36 36
         '',
@@ -39,13 +39,13 @@  discard block
 block discarded – undo
39 39
 );
40 40
 
41 41
 $s->register(
42
-	'WSCMUser.get_link_user_picture',
43
-	array(
44
-		'username' => 'xsd:string',
45
-		'password' => 'xsd:string',
42
+    'WSCMUser.get_link_user_picture',
43
+    array(
44
+        'username' => 'xsd:string',
45
+        'password' => 'xsd:string',
46 46
                 'id' => 'xsd:string'
47
-	),
48
-	array('return' => 'xsd:string'),
47
+    ),
48
+    array('return' => 'xsd:string'),
49 49
         'urn:WSCMService',
50 50
         '',
51 51
         '',
@@ -54,14 +54,14 @@  discard block
 block discarded – undo
54 54
 );
55 55
 
56 56
 $s->register(
57
-	'WSCMUser.send_invitation',
58
-	array(
59
-		'username' => 'xsd:string',
60
-		'password' => 'xsd:string',
57
+    'WSCMUser.send_invitation',
58
+    array(
59
+        'username' => 'xsd:string',
60
+        'password' => 'xsd:string',
61 61
                 'userfriend_id' => 'xsd:string',
62 62
                 'content_message' => 'xsd:string'
63
-	),
64
-	array('return' => 'xsd:string'),
63
+    ),
64
+    array('return' => 'xsd:string'),
65 65
         'urn:WSCMService',
66 66
         '',
67 67
         '',
@@ -70,13 +70,13 @@  discard block
 block discarded – undo
70 70
 );
71 71
 
72 72
 $s->register(
73
-	'WSCMUser.accept_friend',
74
-	array(
75
-		'username' => 'xsd:string',
76
-		'password' => 'xsd:string',
73
+    'WSCMUser.accept_friend',
74
+    array(
75
+        'username' => 'xsd:string',
76
+        'password' => 'xsd:string',
77 77
                 'userfriend_id' => 'xsd:string'
78
-	),
79
-	array('return' => 'xsd:string'),
78
+    ),
79
+    array('return' => 'xsd:string'),
80 80
         'urn:WSCMService',
81 81
         '',
82 82
         '',
@@ -85,13 +85,13 @@  discard block
 block discarded – undo
85 85
 );
86 86
 
87 87
 $s->register(
88
-	'WSCMUser.denied_invitation',
89
-	array(
90
-		'username' => 'xsd:string',
91
-		'password' => 'xsd:string',
88
+    'WSCMUser.denied_invitation',
89
+    array(
90
+        'username' => 'xsd:string',
91
+        'password' => 'xsd:string',
92 92
                 'userfriend_id' => 'xsd:string'
93
-	),
94
-	array('return' => 'xsd:string'),
93
+    ),
94
+    array('return' => 'xsd:string'),
95 95
         'urn:WSCMService',
96 96
         '',
97 97
         '',
Please login to merge, or discard this patch.