* @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->separator_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)
{
$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($this->separator_string, $path);
} 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;
}
}
}