39 require_once __DIR__ .
'/../lib/nusoap.php';
40 require_once __DIR__ .
'/../include/inc.soap_functions.php';
48 define(
'SERVICE_NAME',
'ILIASSoapWebservice');
49 define(
'SERVICE_NAMESPACE',
'urn:ilUserAdministration');
50 define(
'SERVICE_STYLE',
'rpc');
51 define(
'SERVICE_USE',
'encoded');
53 $this->
server->decode_utf8 =
false;
54 $this->
server->class =
"ilSoapFunctions";
61 $this->registerMethods();
66 $postdata = file_get_contents(
"php://input");
67 $this->
server->service($postdata);
73 $this->
server->configureWSDL(SERVICE_NAME, SERVICE_NAMESPACE);
74 $internal_path = $setting->
get(
'soap_internal_wsdl_path',
'');
76 $this->
server->addInternalPort(SERVICE_NAME, $internal_path);
80 private function registerMethods():
void 83 $this->
server->wsdl->addComplexType(
90 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:int[]')),
94 $this->
server->wsdl->addComplexType(
101 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:string[]')),
105 $this->
server->wsdl->addComplexType(
112 array(array(
'ref' =>
'SOAP-ENC:arrayType',
'wsdl:arrayType' =>
'xsd:double[]')),
121 array(
'client' =>
'xsd:string',
122 'username' =>
'xsd:string',
123 'password' =>
'xsd:string' 125 array(
'sid' =>
'xsd:string'),
127 SERVICE_NAMESPACE .
'#login',
130 'ILIAS login function' 136 array(
'sid' =>
'xsd:string'),
137 array(
'success' =>
'xsd:boolean'),
139 SERVICE_NAMESPACE .
'#logout',
142 'ILIAS logout function' 145 $this->
server->wsdl->addComplexType(
151 array(
'usr_id' => array(
'name' =>
'usr_id',
'type' =>
'xsd:int'),
152 'login' => array(
'name' =>
'login',
'type' =>
'xsd:string'),
153 'passwd' => array(
'name' =>
'passwd',
'type' =>
'xsd:string'),
154 'firstname' => array(
'name' =>
'firstname',
'type' =>
'xsd:string'),
155 'lastname' => array(
'name' =>
'lastname',
'type' =>
'xsd:string'),
156 'title' => array(
'name' =>
'title',
'type' =>
'xsd:string'),
157 'gender' => array(
'name' =>
'gender',
'type' =>
'xsd:string'),
158 'email' => array(
'name' =>
'email',
'type' =>
'xsd:string'),
159 'second_email' => array(
'name' =>
'second_email',
'type' =>
'xsd:string'),
160 'institution' => array(
'name' =>
'institution',
'type' =>
'xsd:string'),
161 'street' => array(
'name' =>
'street',
'type' =>
'xsd:string'),
162 'city' => array(
'name' =>
'city',
'type' =>
'xsd:string'),
163 'zipcode' => array(
'name' =>
'zipcode',
'type' =>
'xsd:string'),
164 'country' => array(
'name' =>
'country',
'type' =>
'xsd:string'),
165 'phone_office' => array(
'name' =>
'phone_office',
'type' =>
'xsd:string'),
166 'last_login' => array(
'name' =>
'last_login',
'type' =>
'xsd:string'),
167 'last_update' => array(
'name' =>
'last_update',
'type' =>
'xsd:string'),
168 'create_date' => array(
'name' =>
'create_date',
'type' =>
'xsd:string'),
169 'hobby' => array(
'name' =>
'hobby',
'type' =>
'xsd:string'),
170 'department' => array(
'name' =>
'department',
'type' =>
'xsd:string'),
171 'phone_home' => array(
'name' =>
'phone_home',
'type' =>
'xsd:string'),
172 'phone_mobile' => array(
'name' =>
'phone_mobile',
'type' =>
'xsd:string'),
173 'fax' => array(
'name' =>
'fax',
'type' =>
'xsd:string'),
174 'time_limit_owner' => array(
'name' =>
'time_limit_owner',
'type' =>
'xsd:int'),
175 'time_limit_unlimited' => array(
'name' =>
'time_limit_unlimited',
'type' =>
'xsd:int'),
176 'time_limit_from' => array(
'name' =>
'time_limit_from',
'type' =>
'xsd:int'),
177 'time_limit_until' => array(
'name' =>
'time_limit_until',
'type' =>
'xsd:int'),
178 'time_limit_message' => array(
'name' =>
'time_limit_message',
'type' =>
'xsd:int'),
179 'referral_comment' => array(
'name' =>
'referral_comment',
'type' =>
'xsd:string'),
180 'matriculation' => array(
'name' =>
'matriculation',
'type' =>
'xsd:string'),
181 'active' => array(
'name' =>
'active',
'type' =>
'xsd:int'),
182 'accepted_agreement' => array(
'name' =>
'accepted_agreement',
'type' =>
'xsd:boolean'),
183 'approve_date' => array(
'name' =>
'approve_date',
'type' =>
'xsd:string'),
184 'user_skin' => array(
'name' =>
'user_skin',
'type' =>
'xsd:string'),
185 'user_style' => array(
'name' =>
'user_style',
'type' =>
'xsd:string'),
186 'user_language' => array(
'name' =>
'user_language',
'type' =>
'xsd:string'),
187 'import_id' => array(
'name' =>
'import_id',
'type' =>
'xsd:string')
194 array(
'sid' =>
'xsd:string',
195 'user_name' =>
'xsd:string' 197 array(
'usr_id' =>
'xsd:int'),
199 SERVICE_NAMESPACE .
'#lookupUser',
202 'ILIAS lookupUser(): check if username exists. Return usr_id or 0 if lookup fails.' 209 array(
'sid' =>
'xsd:string',
210 'target_id' =>
'xsd:int',
211 'crs_xml' =>
'xsd:string' 213 array(
'course_id' =>
'xsd:int'),
215 SERVICE_NAMESPACE .
'#addCourse',
218 'ILIAS addCourse(). Course import. See ilias_course_0_1.dtd for details about course xml structure' 224 array(
'sid' =>
'xsd:string',
225 'course_id' =>
'xsd:int' 227 array(
'success' =>
'xsd:boolean'),
229 SERVICE_NAMESPACE .
'#deleteCourse',
232 'ILIAS deleteCourse(). Deletes a course. Delete courses are stored in "Trash" and can be undeleted in ' .
233 ' the ILIAS administration. ' 237 AsyncTaskManager::CMD_START_WORKER,
238 array(
'sid' =>
'xsd:string'),
239 array(
'success' =>
'xsd:boolean'),
241 SERVICE_NAMESPACE .
'#' . AsyncTaskManager::CMD_START_WORKER,
244 'ILIAS ' . AsyncTaskManager::CMD_START_WORKER .
'().' 249 'assignCourseMember',
250 array(
'sid' =>
'xsd:string',
251 'course_id' =>
'xsd:int',
252 'user_id' =>
'xsd:int',
253 'type' =>
'xsd:string' 255 array(
'success' =>
'xsd:boolean'),
257 SERVICE_NAMESPACE .
'#assignCourseMember',
260 'ILIAS assignCourseMember(). Assigns an user to an existing course. Type should be "Admin", "Tutor" or "Member"' 265 'excludeCourseMember',
266 array(
'sid' =>
'xsd:string',
267 'course_id' =>
'xsd:int',
268 'user_id' =>
'xsd:int' 270 array(
'success' =>
'xsd:boolean'),
272 SERVICE_NAMESPACE .
'#excludeCourseMember',
275 'ILIAS excludeCourseMember(). Excludes an user from an existing course.' 280 'isAssignedToCourse',
281 array(
'sid' =>
'xsd:string',
282 'course_id' =>
'xsd:int',
283 'user_id' =>
'xsd:int' 285 array(
'role' =>
'xsd:int'),
287 SERVICE_NAMESPACE .
'#isAssignedToCourse',
290 'ILIAS isAssignedToCourse(). Checks whether an user is assigned to a given course. ' .
291 'Returns 0 => not assigned, 1 => course admin, 2 => course member or 3 => course tutor' 297 array(
'sid' =>
'xsd:string',
298 'course_id' =>
'xsd:int' 300 array(
'xml' =>
'xsd:string'),
302 SERVICE_NAMESPACE .
'#getCourseXML',
305 'ILIAS getCourseXML(). Get a xml description of a specific course.' 311 array(
'sid' =>
'xsd:string',
312 'course_id' =>
'xsd:int',
313 'xml' =>
'xsd:string' 315 array(
'success' =>
'xsd:boolean'),
317 SERVICE_NAMESPACE .
'#updateCourse',
320 'ILIAS updateCourse(). Update course settings, assigned members, tutors, administrators with a ' .
321 'given xml description' 326 'getObjIdByImportId',
327 array(
'sid' =>
'xsd:string',
328 'import_id' =>
'xsd:string' 330 array(
'obj_id' =>
'xsd:int'),
332 SERVICE_NAMESPACE .
'#getCourseIdByImportId',
335 'ILIAS getObjIdByImportId(). Get the obj_id of an ILIAS obj by a given import id.' 340 'getRefIdsByImportId',
341 array(
'sid' =>
'xsd:string',
342 'import_id' =>
'xsd:string' 344 array(
'ref_ids' =>
'tns:intArray'),
346 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
349 'ILIAS getRefIdsByImportId(). Get all reference ids by a given import id.' 355 array(
'sid' =>
'xsd:string',
356 'obj_id' =>
'xsd:string' 358 array(
'ref_ids' =>
'tns:intArray'),
360 SERVICE_NAMESPACE .
'#getRefIdsByObjId',
363 'ILIAS getRefIdsByObjId(). Get all reference ids by a given object id.' 368 'getObjectByReference',
369 array(
'sid' =>
'xsd:string',
370 'reference_id' =>
'xsd:int',
371 'user_id' =>
'xsd:int' 373 array(
'object_xml' =>
'xsd:string'),
375 SERVICE_NAMESPACE .
'#getObjectByReference',
378 'ILIAS getObjectByReference(). Get XML-description of an ILIAS object. If a user id is given, ' .
379 'this methods also checks the permissions of that user on the object.' 384 array(
'sid' =>
'xsd:string',
385 'title' =>
'xsd:string',
386 'user_id' =>
'xsd:int' 388 array(
'object_xml' =>
'xsd:string'),
390 SERVICE_NAMESPACE .
'#getObjectsByTitle',
393 'ILIAS getObjectsByTitle(). Get XML-description of an ILIAS object with given title. ' .
394 'If a user id is given this method also checks the permissions of that user on the object.' 399 array(
'sid' =>
'xsd:string',
400 'types' =>
'tns:stringArray',
401 'key' =>
'xsd:string',
402 'combination' =>
'xsd:string',
403 'user_id' =>
'xsd:int' 405 array(
'object_xml' =>
'xsd:string'),
407 SERVICE_NAMESPACE .
'#searchObjects',
410 'ILIAS searchObjects(): Searches for objects. Key is within "title" or "description" ' .
411 'Typical calls are searchObject($sid,array("lm","crs"),"\"this and that\"","and"); ' .
412 ' If an optional user id is given, this methods also return the permissions for that user ' .
413 'on the found objects' 418 array(
'sid' =>
'xsd:string',
419 'ref_id' =>
'xsd:int',
420 'types' =>
'tns:stringArray',
421 'user_id' =>
'xsd:int' 423 array(
'object_xml' =>
'xsd:string'),
425 SERVICE_NAMESPACE .
'#getTreeChilds',
428 'ILIAS getTreeChilds(): Get all child objects of a given object.' .
429 'Choose array of types to filter the output. Choose empty type array to receive all object types' 434 array(
'sid' =>
'xsd:string',
435 'ref_id' =>
'xsd:int',
436 'types' =>
'tns:stringArray',
437 'user_id' =>
'xsd:int' 439 array(
'object_xml' =>
'xsd:string'),
441 SERVICE_NAMESPACE .
'#getXMLTree',
444 'ILIAS getXMLTree(): Returns a xml stream with the subtree objects.' 449 array(
'sid' =>
'xsd:string',
450 'target_id' =>
'xsd:int',
451 'object_xml' =>
'xsd:string' 453 array(
'ref_id' =>
'xsd:int'),
455 SERVICE_NAMESPACE .
'#addObject',
458 'ILIAS addObject. Create new object based on xml description under a given node ' .
459 '("category,course,group or folder). Return created reference id of the new object.' 464 array(
'sid' =>
'xsd:string',
465 'object_xml' =>
'xsd:string' 467 array(
'success' =>
'xsd:boolean'),
469 SERVICE_NAMESPACE .
'#updateObjects',
472 'ILIAS updateObjects. Update object data (title,description,owner)' 477 array(
'sid' =>
'xsd:string',
478 'source_id' =>
'xsd:int',
479 'target_id' =>
'xsd:int' 481 array(
'ref_id' =>
'xsd:int'),
483 SERVICE_NAMESPACE .
'#addReference',
486 'ILIAS addReference. Create new link of given object to new object. Return the new reference id' 491 array(
'sid' =>
'xsd:string',
492 'reference_id' =>
'xsd:int' 494 array(
'success' =>
'xsd:boolean'),
496 SERVICE_NAMESPACE .
'#deleteObject',
499 'ILIAS deleteObject. Stores object in trash. If multiple references exist, only the reference is deleted ' 503 'removeFromSystemByImportId',
504 array(
'sid' =>
'xsd:string',
505 'import_id' =>
'xsd:string' 507 array(
'success' =>
'xsd:boolean'),
509 SERVICE_NAMESPACE .
'#removeFromSystemByImportId',
512 'ILIAS removeFromSystemByImportId(). Removes an object identified by its import id permanently from the ' .
513 'system. All data will be deleted. There will be no possibility to restore it from the trash. Do not use ' .
514 'this function for deleting roles or users. Use deleteUser() or deleteRole() instead.' 519 array(
'sid' =>
'xsd:string',
520 'user_id' =>
'xsd:int',
521 'role_id' =>
'xsd:int' 523 array(
'success' =>
'xsd:boolean'),
525 SERVICE_NAMESPACE .
'#addUserRoleEntry',
528 'ILIAS addUserRoleEntry. Assign user to role.' 532 'deleteUserRoleEntry',
533 array(
'sid' =>
'xsd:string',
534 'user_id' =>
'xsd:int',
535 'role_id' =>
'xsd:int' 537 array(
'success' =>
'xsd:boolean'),
539 SERVICE_NAMESPACE .
'#deleteUserRoleEntry',
542 'ILIAS deleteUserRoleEntry. Deassign user from role.' 546 $this->
server->wsdl->addComplexType(
552 array(
'ops_id' => array(
'name' =>
'ops_id',
555 'operation' => array(
'name' =>
'operation',
556 'type' =>
'xsd:string' 558 'description' => array(
'name' =>
'description',
559 'type' =>
'xsd:string' 564 $this->
server->wsdl->addComplexType(
571 array(array(
'ref' =>
'SOAP-ENC:arrayType',
572 'wsdl:arrayType' =>
'tns:ilOperation[]' 579 array(
'sid' =>
'xsd:string'),
580 array(
'operations' =>
'tns:ilOperations'),
582 SERVICE_NAMESPACE .
'#getOperations',
585 'ILIAS getOperations(): get complete set of RBAC operations.' 590 array(
'sid' =>
'xsd:string',
591 'ref_id' =>
'xsd:int',
592 'role_id' =>
'xsd:int' 594 array(
'success' =>
'xsd:boolean'),
596 SERVICE_NAMESPACE .
'#revokePermissions',
599 'ILIAS revokePermissions(): Revoke all permissions for a specific role on an object.' 602 $this->
server->wsdl->addComplexType(
609 array(array(
'ref' =>
'SOAP-ENC:arrayType',
610 'wsdl:arrayType' =>
'xsd:int[]' 618 array(
'sid' =>
'xsd:string',
619 'ref_id' =>
'xsd:int',
620 'role_id' =>
'xsd:int',
621 'operations' =>
'tns:intArray' 623 array(
'success' =>
'xsd:boolean'),
625 SERVICE_NAMESPACE .
'#grantPermissions',
628 'ILIAS grantPermissions(): Grant permissions for a specific role on an object. ' .
629 '(Substitutes existing permission settings)' 634 array(
'sid' =>
'xsd:string',
635 'ref_id' =>
'xsd:int' 637 array(
'role_xml' =>
'xsd:string'),
639 SERVICE_NAMESPACE .
'#getLocalRoles',
642 'ILIAS getLocalRoles(): Get all local roles assigned to an specific object.' 647 array(
'sid' =>
'xsd:string',
648 'user_id' =>
'xsd:int' 650 array(
'role_xml' =>
'xsd:string'),
652 SERVICE_NAMESPACE .
'#getLocalRoles',
655 'ILIAS getUserRoles(): Get all local roles assigned to an specific user. ' 660 array(
'sid' =>
'xsd:string',
661 'target_id' =>
'xsd:int',
662 'obj_xml' =>
'xsd:string' 664 array(
'role_ids' =>
'tns:intArray'),
666 SERVICE_NAMESPACE .
'#addRole',
669 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
670 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created.' 675 array(
'sid' =>
'xsd:string',
676 'role_id' =>
'xsd:int' 678 array(
'success' =>
'xsd:boolean'),
680 SERVICE_NAMESPACE .
'#deleteRole',
683 'ILIAS deleteRole(): Deletes an role and all user assignments. Fails if it is the last role of an user' 687 'addRoleFromTemplate',
688 array(
'sid' =>
'xsd:string',
689 'target_id' =>
'xsd:int',
690 'obj_xml' =>
'xsd:string',
691 'role_template_id' =>
'xsd:int' 693 array(
'role_ids' =>
'tns:intArray'),
695 SERVICE_NAMESPACE .
'#addRole',
698 'ILIAS addRole(): Creates new role under given node. "target_id" is the reference id of an ILIAS ' .
699 'ILIAS object. E.g ref_id of crs,grp. If no role folder exists, a new role folder will be created. ' .
700 'In addition to addRole the template permissions will be copied from the given role template' 704 'getObjectTreeOperations',
705 array(
'sid' =>
'xsd:string',
706 'ref_id' =>
'xsd:int',
707 'user_id' =>
'xsd:int' 709 array(
'operations' =>
'tns:ilOperations'),
711 SERVICE_NAMESPACE .
'#getPermissionsForObject',
714 'ILIAS getObjectTreeOperations(): Get all granted permissions for all references of ' .
715 'an object for a specific user. Returns array of granted operations or empty array' 720 array(
'sid' =>
'xsd:string',
721 'target_id' =>
'xsd:int',
722 'group_xml' =>
'xsd:string' 724 array(
'ref_id' =>
'xsd:int'),
726 SERVICE_NAMESPACE .
'#addGroup',
729 'ILIAS addGroup(): Add grop according to valid group XML ' .
730 '@See ilias_group_0_1.dtd' 735 array(
'sid' =>
'xsd:string',
736 'title' =>
'xsd:string' 738 array(
'exists' =>
'xsd:boolean'),
740 SERVICE_NAMESPACE .
'#groupExists',
743 'ILIAS addGroup(): Check if group with given name exists. ' 749 array(
'sid' =>
'xsd:string',
750 'ref_id' =>
'xsd:int' 752 array(
'group_xml' =>
'xsd:string'),
754 SERVICE_NAMESPACE .
'#getGroup',
757 'ILIAS getGroup(): get xml description of grouip with given reference id.' 763 array(
'sid' =>
'xsd:string',
764 'group_id' =>
'xsd:int',
765 'user_id' =>
'xsd:int',
766 'type' =>
'xsd:string' 768 array(
'success' =>
'xsd:boolean'),
770 SERVICE_NAMESPACE .
'#assignGroupMember',
773 'ILIAS assignGroupMember(). Assigns an user to an existing group. Type should be "Admin","Member"' 778 'excludeGroupMember',
779 array(
'sid' =>
'xsd:string',
780 'group_id' =>
'xsd:int',
781 'user_id' =>
'xsd:int' 783 array(
'success' =>
'xsd:boolean'),
785 SERVICE_NAMESPACE .
'#excludeGroupMember',
788 'ILIAS excludeGroupMember(). Excludes an user from an existing group.' 794 array(
'sid' =>
'xsd:string',
795 'group_id' =>
'xsd:int',
796 'user_id' =>
'xsd:int' 798 array(
'role' =>
'xsd:int'),
800 SERVICE_NAMESPACE .
'#isAssignedToGroup',
803 'ILIAS isAssignedToGroup(). Checks whether an user is assigned to a given group. ' .
804 'Returns 0 => not assigned, 1 => group admin, 2 => group member' 811 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
812 array(
'new_ref_id' =>
'xsd:int'),
814 SERVICE_NAMESPACE .
'#ilClone',
817 'ILIAS ilClone(): Only for internal usage.' .
818 'Syntax, parameters may change in future releases. ' 822 'ilCloneDependencies',
823 array(
'sid' =>
'xsd:string',
'copy_identifier' =>
'xsd:int'),
824 array(
'success' =>
'xsd:boolean'),
826 SERVICE_NAMESPACE .
'#ilCloneDependencies',
829 'ILIAS ilCloneDependencies(): Only for internal usage.' .
830 'Syntax, parameters may change in future releases. ' 836 array(
'sid' =>
'xsd:string',
837 'active_id' =>
'xsd:long',
838 'question_id' =>
'xsd:long',
840 'solution' =>
'tns:stringArray' 842 array(
'status' =>
'xsd:boolean'),
844 SERVICE_NAMESPACE .
'#saveQuestion',
847 'ILIAS saveQuestion: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test.' 851 'saveQuestionSolution',
852 array(
'sid' =>
'xsd:string',
853 'active_id' =>
'xsd:long',
854 'question_id' =>
'xsd:long',
856 'solution' =>
'xsd:string' 858 array(
'status' =>
'xsd:string'),
860 SERVICE_NAMESPACE .
'#saveQuestionSolution',
863 'ILIAS saveQuestionSolution: Saves the result of a question in a given test pass for the active test user. The active user is identified by the active ID, which assigns a user to a test. The solution has to be an XML string which contains <values><value>VALUE</value><value>VALUE</value><points>POINTS</points>...</values> where the triplet (value,value,points) can repeat n times. The result string is either TRUE or it contains an error message.' 867 'getQuestionSolution',
868 array(
'sid' =>
'xsd:string',
869 'active_id' =>
'xsd:long',
870 'question_id' =>
'xsd:int',
873 array(
'solution' =>
'tns:stringArray'),
875 SERVICE_NAMESPACE .
'#getQuestionSolution',
878 'ILIAS getQuestionSolution: Typically called from external assessment questions to retrieve the previous input of a user.' 883 array(
'sid' =>
'xsd:string',
884 'active_id' =>
'xsd:long' 886 array(
'userdata' =>
'tns:stringArray'),
888 SERVICE_NAMESPACE .
'#getTestUserData',
891 'ILIAS getTestUserData: Typically called from external assessment questions to retrieve data of the active user. The returned string array values are fullname, title, firstname, lastname, login.' 895 'getPositionOfQuestion',
896 array(
'sid' =>
'xsd:string',
897 'active_id' =>
'xsd:long',
898 'question_id' =>
'xsd:int',
901 array(
'position' =>
'xsd:int'),
903 SERVICE_NAMESPACE .
'#getPositionOfQuestion',
906 'ILIAS getPositionOfQuestion: Returns the position of a given question for a given user in a given test pass.' 910 'getPreviousReachedPoints',
911 array(
'sid' =>
'xsd:string',
912 'active_id' =>
'xsd:long',
913 'question_id' =>
'xsd:int',
916 array(
'position' =>
'tns:doubleArray'),
918 SERVICE_NAMESPACE .
'#getPreviousReachedPoints',
921 'ILIAS getPreviousReachedPoints: Returns an array of reached points for the previous questions in a given test pass.' 925 'getNrOfQuestionsInPass',
926 array(
'sid' =>
'xsd:string',
927 'active_id' =>
'xsd:long',
930 array(
'count' =>
'xsd:int'),
932 SERVICE_NAMESPACE .
'#getNrOfQuestionsInPass',
935 'ILIAS getNrOfQuestionsInPass: Returns the question count for a given test user in a given pass.' 939 'getStructureObjects',
940 array(
'sid' =>
'xsd:string',
941 'ref_id' =>
'xsd:int' 943 array(
'xml' =>
'xsd:string'),
945 SERVICE_NAMESPACE .
'#getStructureObjects',
948 'ILIAS getStructureObjects: delivers structure of content objects like learning modules (chapters/pages) or glossary (terms)' 954 array(
'sid' =>
'xsd:string',
955 'folder_id' =>
'xsd:int',
956 'usr_xml' =>
'xsd:string',
957 'conflict_rule' =>
'xsd:int',
958 'send_account_mail' =>
'xsd:int' 960 array(
'protocol' =>
'xsd:string'),
962 SERVICE_NAMESPACE .
'#importUsers',
965 'ILIAS import users into folder id, which should be ref_id of folder or user folder (-1:System user folder, 0: checks access at user level, otherwise refid): conflict_rule: IL_FAIL_ON_CONFLICT = 1, IL_UPDATE_ON_CONFLICT = 2, IL_IGNORE_ON_CONFLICT = 3. The Return-Value is a protocol with the columns userid, login, action, message, following xmlresultset dtd. Send Account Mail = 0 deactivates sending a mail to each user, 1 activates it' 970 array(
'sid' =>
'xsd:string',
971 'role_type' =>
'xsd:string',
974 array(
'role_xml' =>
'xsd:string'),
976 SERVICE_NAMESPACE .
'#getRoles',
979 'ILIAS getRoles():if id equals -1, get all roles specified by type (global|local|user|user_login|template or empty), if type is empty all roles with all types are delivered, if id > -1 and role_type <> user or user_login, delivers all roles which belong to a repository object with specified ref_id, if roletype is user a numeric id is interpreted as userid, if roletype is user_login it is interpreted as login,if roletype is template all role templates will be listed' 983 'getUsersForContainer',
984 array(
'sid' =>
'xsd:string',
985 'ref_id' =>
'xsd:int',
986 'attach_roles' =>
'xsd:int',
987 'active' =>
'xsd:int' 989 array(
'user_xml' =>
'xsd:string'),
991 SERVICE_NAMESPACE .
'#getUsersForContainer',
994 'ILIAS getUsersForContainer(): get all users of a specific ref_id, which can be crs, group, category or user folder (value: -1). Choose if all roles of a user should be attached (1) or not (0). set active to -1 to get all, 0, to get inactive users only, 1 to get active users only' 999 array(
'sid' =>
'xsd:string',
1000 'role_id' =>
'xsd:int',
1001 'attach_roles' =>
'xsd:int',
1002 'active' =>
'xsd:int' 1004 array(
'user_xml' =>
'xsd:string'),
1006 SERVICE_NAMESPACE .
'#getUsersForRole',
1009 'ILIAS getUsersForRole(): get all users of a role with specified id, specify attach_roles to 1, to attach all role assignmnents; specify active: 1, to import active only, 0: inactive only, -1: both' 1014 array(
'sid' =>
'xsd:string',
1015 'key_fields' =>
'tns:stringArray',
1016 'query_operator' =>
'xsd:string',
1017 'key_values' =>
'tns:stringArray',
1018 'attach_roles' =>
'xsd:int',
1019 'active' =>
'xsd:int' 1021 array(
'user_xml' =>
'xsd:string'),
1023 SERVICE_NAMESPACE .
'#searchUsers',
1026 'ILIAS searchUser(): get all users, which match a query, consisting of the keyfields, matched with values of the field values, concatenated with the logical query operator. Specify attach_roles to 1, to attach all role assignmnents; specify active: 1, to import active only, 0: inactive only, -1: both' 1033 array(
'sid' =>
'xsd:string'),
1034 array(
'status' =>
'xsd:boolean'),
1036 SERVICE_NAMESPACE .
'#hasNewMail',
1039 'ILIAS hasNewMail(): Checks whether the current authenticated user has a new mail.' 1044 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int',
"attachment_mode" =>
"xsd:int"),
1045 array(
'exercisexml' =>
'xsd:string'),
1047 SERVICE_NAMESPACE .
'#getExerciseXML',
1050 'ILIAS getExerciseXML(): returns xml description of exercise. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1055 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1056 array(
'refid' =>
'xsd:int'),
1058 SERVICE_NAMESPACE .
'#addExercise',
1061 'ILIAS addExercise(): create exercise, put it into target (ref_id) and update exercise properties from xml (see ilias_exercise_3_8.dtd for details). Obj_id must not be set!' 1066 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1067 array(
'success' =>
'xsd:boolean'),
1069 SERVICE_NAMESPACE .
'#updateExercise',
1072 'ILIAS updateExercise():update existing exercise, update exercise properties from xml (see ilias_exercise_3_8.dtd for details). obj_id in xml must match according obj id of refid.!' 1077 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'attachment_mode' =>
'xsd:int'),
1078 array(
'filexml' =>
'xsd:string'),
1080 SERVICE_NAMESPACE .
'#getFileXML',
1083 'ILIAS getFileXML(): returns xml description of file. Attachment mode: 0 - no file contents, 1 - plain content (base64encoded), 2 zlib + base64, 3 gzip + base64)' 1088 array(
'sid' =>
'xsd:string',
'target_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1089 array(
'refid' =>
'xsd:int'),
1091 SERVICE_NAMESPACE .
'#addFile',
1094 'ILIAS addFile(): create file, put it into target (ref_id) and update file properties from xml (see ilias_file_3_8.dtd for details). Obj_id must not be set!' 1099 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1100 array(
'success' =>
'xsd:boolean'),
1102 SERVICE_NAMESPACE .
'#updateFile',
1105 'ILIAS updateFile():update existing file, update file properties from xml (see ilias_file_3_8.dtd for details). obj_id in xml must match according obj id of refid.!' 1110 array(
'sid' =>
'xsd:string',
'user_ids' =>
'tns:intArray',
'attach_roles' =>
'xsd:int'),
1111 array(
'xml' =>
'xsd:string'),
1113 SERVICE_NAMESPACE .
'#resolveUsers',
1116 'ILIAS getUserXML(): get xml records for user ids, e.g. retrieved vom members of course xml. Returns user xml dtds. ids are numeric ids of user' 1121 'getObjIdsByRefIds',
1122 array(
'sid' =>
'xsd:string',
1123 'ref_ids' =>
'tns:intArray' 1125 array(
'obj_ids' =>
'tns:intArray'),
1127 SERVICE_NAMESPACE .
'#getRefIdsByImportId',
1130 'ILIAS getObjIdsForRefIds: Returns a array of object ids which match the references id, given by a comma seperated string. Returns an array of ref ids, in the same order as object ids. Therefore, there might by duplicates' 1135 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1136 array(
'success' =>
'xsd:boolean'),
1138 SERVICE_NAMESPACE .
'#updateGroup',
1141 'ILIAS updateGroup(): update existing group using ref id and group xml (see DTD).' 1145 'getIMSManifestXML',
1146 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1147 array(
'xml' =>
'xsd:string'),
1149 SERVICE_NAMESPACE .
'#getIMSManifestXML',
1152 'ILIAS getIMSManifestXML(): returns xml of ims manifest file (scorm learning module) referred by refid' 1156 'hasSCORMCertificate',
1157 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'usr_id' =>
'xsd:int'),
1158 array(
'success' =>
'xsd:boolean'),
1160 SERVICE_NAMESPACE .
'#hasSCORMCertificate',
1163 'ILIAS hasSCORMCertificate(): returns true if a certficate is available for a user referred by usr_id in a SCORM learning module referred by ref_id' 1167 'getSCORMCompletionStatus',
1168 array(
'sid' =>
'xsd:string',
'usr_id' =>
'xsd:int',
'ref_id' =>
'xsd:int'),
1169 array(
'status' =>
'xsd:string'),
1171 SERVICE_NAMESPACE .
'#getSCORMCompletionStatus',
1174 'ILIAS getSCORMCompletionStatus(): returns a completion status of a scorm module' 1179 array(
'sid' =>
'xsd:string',
'xml' =>
'xsd:string'),
1180 array(
'xml' =>
'xsd:int'),
1182 SERVICE_NAMESPACE .
'#copyObject',
1185 'ILIAS copyObject(): returns reference of copy, if copy is created directly, or the ref id of the target if copy is in progress.' 1190 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'target_id' =>
'xsd:int'),
1191 array(
'result' =>
'xsd:boolean'),
1193 SERVICE_NAMESPACE .
'#moveObject',
1196 'ILIAS moveObject(): returns true, if object with refid could be successfully moved to target id, other it raises an error.' 1201 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'sum_only' =>
'xsd:boolean'),
1202 array(
'xml' =>
'xsd:string'),
1204 SERVICE_NAMESPACE .
'#getTestResults',
1207 'ILIAS getTestResults(): returns XMLResultSet with 1208 sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points 1209 sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points' 1213 'removeTestResults',
1215 'sid' =>
'xsd:string',
1216 'ref_id' =>
'xsd:int',
1217 'user_ids' =>
'tns:intArray' 1219 array(
'success' =>
'xsd:boolean'),
1221 SERVICE_NAMESPACE .
'#removeTestResults',
1224 'ILIAS removeTestResults(): remove test results for the chosen users' 1228 'getCoursesForUser',
1229 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1230 array(
'xml' =>
'xsd:string'),
1232 SERVICE_NAMESPACE .
'#getCoursesForUser',
1235 'ILIAS getTestResults(): returns XMLResultSet with columns ref_id, course xml. $parameters has to contain a column user_id and a column status. Status is a logical AND combined value of (MEMBER = 1, TUTOR = 2, ADMIN = 4, OWNER = 8) and determines which courses should be returned.' 1240 array(
'sid' =>
'xsd:string',
'parameters' =>
'xsd:string'),
1241 array(
'xml' =>
'xsd:string'),
1243 SERVICE_NAMESPACE .
'#getGroupsForUser',
1246 'ILIAS getTestResults(): returns XMLResultSet with columns ref_id, group xml. $parameters has to contain a column user_id and a column status. Status is a logical AND combined value of (MEMBER = 1, TUTOR = 2, OWNER = 4) and determines which groups should be returned.' 1251 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int'),
1252 array(
'xml' =>
'xsd:string'),
1254 SERVICE_NAMESPACE .
'#getPathForRefId',
1257 'ILIAS getPathForRefId(): returns XMLResultSet with columns ref_id, type and title.' 1262 array(
'sid' =>
'xsd:string',
1263 'key' =>
'xsd:string',
1264 'combination' =>
'xsd:string',
1265 'role_type' =>
'xsd:string' 1267 array(
'xml' =>
'xsd:string'),
1269 SERVICE_NAMESPACE .
'#searchRoles',
1272 'ILIAS searchRoles(): returns XML following role dtd with search results for given role type and search terms.' 1276 'getInstallationInfoXML',
1278 array(
'xml' =>
'xsd:string'),
1280 SERVICE_NAMESPACE .
'#getInstallationInfoXML',
1283 'ILIAS getInstallationInfoXML(): returns XML following installation_info dtd' 1288 array(
'clientid' =>
'xsd:string'),
1289 array(
'xml' =>
'xsd:string'),
1291 SERVICE_NAMESPACE .
'#getClientInfoXML',
1294 'ILIAS getClientInfoXML(): returns XML following installation_info dtd, contains the client the data of given client id' 1298 'getSkillCompletionDateForTriggerRefId',
1299 array(
'sid' =>
'xsd:string',
1300 'user_id' =>
'xsd:string',
1301 'ref_id' =>
'xsd:string' 1303 array(
'dates' =>
'xsd:string'),
1305 SERVICE_NAMESPACE .
'#getSkillCompletionDateForTriggerRefId',
1308 'ILIAS getSkillCompletionDateForTriggerRefId(). Get completion dates for skill trigger ref ids.' 1312 'checkSkillUserCertificateForTriggerRefId',
1313 array(
'sid' =>
'xsd:string',
1314 'user_id' =>
'xsd:string',
1315 'ref_id' =>
'xsd:string' 1317 array(
'have_certificates' =>
'xsd:string'),
1319 SERVICE_NAMESPACE .
'#checkSkillUserCertificateForTriggerRefId',
1322 'ILIAS checkSkillUserCertificateForTriggerRefId(). Check user certificates for trigger ref ids.' 1326 'getSkillTriggerOfAllCertificates',
1327 array(
'sid' =>
'xsd:string',
1328 'user_id' =>
'xsd:string' 1330 array(
'certificate_triggers' =>
'xsd:string'),
1332 SERVICE_NAMESPACE .
'#getSkillTriggerOfAllCertificates',
1335 'ILIAS getSkillTriggerOfAllCertificates(). Check get all trigger with certificate for a user.' 1340 array(
'sid' =>
'xsd:string'),
1341 array(
'usr_id' =>
'xsd:int'),
1343 SERVICE_NAMESPACE .
'#getUserIdBySid',
1346 'ILIAS getUserIdBySid(): returns an ILIAS usr_id for the given sid' 1350 'deleteExpiredDualOptInUserObjects',
1351 array(
'sid' =>
'xsd:string',
1352 'usr_id' =>
'xsd:int' 1354 array(
'status' =>
'xsd:boolean'),
1356 SERVICE_NAMESPACE .
'#deleteExpiredDualOptInUserObjects',
1359 'ILIAS deleteExpiredDualOptInUserObjects(): Deletes expired user accounts caused by unconfirmed registration links in "dual opt in" registration method' 1364 array(
'sid' =>
'xsd:string',
"ref_id" =>
'xsd:int'),
1365 array(
'weblinkxml' =>
'xsd:string'),
1367 SERVICE_NAMESPACE .
'#readWebLink',
1370 'ILIAS readWebLink(): returns xml description of a weblink container.' 1375 array(
'sid' =>
'xsd:string',
"target_id" =>
'xsd:int',
"xml" =>
"xsd:string"),
1376 array(
'refid' =>
'xsd:int'),
1378 SERVICE_NAMESPACE .
'#createWebLink',
1381 'ILIAS createWebLink(): create web link container, put it into target (ref_id) and update weblink container from xml (see ilias_weblink_4_0.dtd for details). Obj_id must not be set!' 1386 array(
'sid' =>
'xsd:string',
'ref_id' =>
'xsd:int',
'xml' =>
'xsd:string'),
1387 array(
'success' =>
'xsd:boolean'),
1389 SERVICE_NAMESPACE .
'#updateWebLink',
1392 'ILIAS updateWebLink():update existing weblink, update weblink properties from xml (see ilias_weblink_4_0.dtd for details).' 1397 'getLearningProgressChanges',
1398 array(
'sid' =>
'xsd:string',
1399 'timestamp' =>
'xsd:string',
1400 'include_ref_ids' =>
'xsd:boolean',
1401 'type_filter' =>
'tns:stringArray' 1403 array(
'lp_data' =>
'xsd:string'),
1405 SERVICE_NAMESPACE .
'#getLearningProgressChanges',
1408 'ILIAS getLearningProgressChanges(): Get learning progress changes after a given timestamp.' 1415 'sid' =>
'xsd:string',
1416 'ref_ids' =>
'tns:intArray',
1417 'usr_ids' =>
'tns:intArray',
1418 'type_filter' =>
'tns:stringArray',
1419 'progress_filter' =>
'tns:intArray' 1421 array(
'status' =>
'xsd:boolean'),
1423 SERVICE_NAMESPACE .
'#deleteProgress',
1426 'Delete user progress data of objects. ' 1432 'sid' =>
'xsd:string',
1433 'ref_id' =>
'xsd:int',
1434 'progress_filter' =>
'tns:intArray' 1436 array(
'user_results' =>
'xsd:string'),
1438 SERVICE_NAMESPACE .
'#getProgressInfo',
1441 'Get object learning progress information' 1445 'exportDataCollectionContent',
1447 'sid' =>
'xsd:string',
1448 'ref_id' =>
'xsd:int',
1449 'table_id' =>
'xsd:int',
1450 'format' =>
'xsd:string',
1451 'filepath' =>
'xsd:string' 1453 array(
'export_path' =>
'xsd:string'),
1455 SERVICE_NAMESPACE .
'#exportDataCollectionTableContent',
1458 'Generate DataCollectionContent Export' 1462 'processBackgroundTask',
1464 'sid' =>
'xsd:string',
1465 'task_id' =>
'xsd:int' 1467 array(
'status' =>
'xsd:boolean'),
1469 SERVICE_NAMESPACE .
'#processBackgroundTask',
1472 'Process task in background' 1492 foreach (
$f as $function) {
1494 $function->getName(),
1495 $function->getInputParams(),
1496 $function->getOutputParams(),
1498 SERVICE_NAMESPACE .
'#orgu',
1501 $function->getDocumentation()
1507 if (isset(
$_GET[
'client_id'])) {
1525 $component_factory = $DIC[
'component.factory'];
1526 $soapHook =
new ilSoapHook($component_factory);
1527 foreach ($soapHook->getWsdlTypes() as $type) {
1528 $this->
server->wsdl->addComplexType(
1530 $type->getTypeClass(),
1531 $type->getPhpType(),
1532 $type->getCompositor(),
1533 $type->getRestrictionBase(),
1534 $type->getElements(),
1535 $type->getAttributes(),
1536 $type->getArrayType()
1539 foreach ($soapHook->getSoapMethods() as $method) {
1542 $method->getInputParams(),
1543 $method->getOutputParams(),
1544 $method->getServiceNamespace(),
1545 $method->getServiceNamespace() .
'#' . $method->getName(),
1546 $method->getServiceStyle(),
1547 $method->getServiceUse(),
1548 $method->getDocumentation()
Class AddUserIdToPositionInOrgUnit.
get(string $a_keyword, ?string $a_default_value=null)
get setting
handleSoapPlugins()
Register any methods and types of SOAP plugins to the SOAP server.
Class EmployeePositionId.
Class AddUserIdToPositionInOrgUnit.
const CONTEXT_SOAP_NO_AUTH
__construct(bool $a_use_wsdl=true)
server()
description: > This example shows how a Progress Bar can be rendered and updated by the server...
static initILIAS()
ilias initialisation
Class UserIdsOfPositionAndOrgUnit.
Class SuperiorPositionId.
enableWSDL(ilSetting $setting)
static init(string $a_type)
Init context by type.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...