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...