* @access public * @modulegroup elearning_interface_modules * @module Ilias4Soap * @package ELearning-Interface */ class Ilias4Soap extends Ilias3Soap { var $cms_type; var $admin_sid; var $user_sid; var $user_type; var $soap_cache; var $separator_string; /** * constructor * * init class. * @access * @param string $cms system-type */ function __construct($cms) { parent::__construct($cms); $this->seperator_string = " / "; } /** * add user by importUsers * * adds new user and sets role-id * @access public * @param array user_data user-data * @param string role_id global role-id for new user * @return string user-id */ function addUser($user_data, $role_id) { foreach($user_data as $key => $value) { $user_data[$key] = htmlReady($user_data[$key]); } $usr_xml = " ".$user_data["login"]." ".$user_data["passwd"]." ".$user_data["firstname"]." ".$user_data["lastname"]." ".$user_data["title"]." ".$user_data["gender"]." ".$user_data["email"]." ".$user_data["street"]." ".$user_data["phone_home"]." true ".$user_data["time_limit_unlimited"]." 0 ".$user_data["approve_date"]." ".$user_data["agree_date"].""; if (($user_data["user_skin"] != "") OR ($user_data["user_style"] != "")) { $usr_xml .= ""; } $usr_xml .= " ".$user_data["external_account"]." "; $param = [ 'sid' => $this->getSID(), 'folder_id' => -1, 'usr_xml' => $usr_xml, 'conflict_role' => 1, 'send_account_mail' => 0 ]; $result = $this->call('importUsers', $param); $s = simplexml_load_string($result); if ((string)$s->rows->row->column[3] == "successful") return (string)$s->rows->row->column[0]; else return false; } /** * copy object * * copy ilias-object * @access public * @param string source_id reference-id * @param string target_id reference-id * @return string result */ function copyObject($source_id, $target_id) { $type = $object_data["type"]; $title = $object_data["title"]; $description = $object_data["description"]; $xml = ""; $param = [ 'sid' => $this->getSID(), 'xml' => $xml ]; return $this->call('copyObject', $param); } /** * get path * * returns repository-path to ilias-object * @access public * @param string source_id reference-id * @param string target_id reference-id * @return string result */ function getPath($ref_id) { $param = [ 'sid' => $this->getSID(), 'ref_id' => $ref_id ]; $result = $this->call('getPathForRefId', $param); if ($result) { $s = simplexml_load_string($result); foreach ($s->rows->row as $row) { $path[] = (string)$row->column[2]; } } if (is_array($path)) { return implode($path, $this->seperator_string); } else { return false; } } /** * * returns repository-path to ilias-object * * @access public * @param string source_id reference-id * @param string target_id reference-id * @return string result */ function getRawPath($ref_id) { $param = [ 'sid' => $this->getSID(), 'ref_id' => $ref_id ]; $result = $this->call('getPathForRefId', $param); if ($result) { $s = simplexml_load_string($result); foreach ($s->rows->row as $row) { $path[] = (string)$row->column[0]; } } if (is_array($path)) { return implode($path, '_'); } else { return false; } } }