Inheritance diagram for ilUserImportParser:
Collaboration diagram for ilUserImportParser:Public Member Functions | |
| ilUserImportParser ($a_xml_file, $a_mode=IL_USER_IMPORT) | |
| Constructor. | |
| setFolderId ($a_folder_id) | |
| assign users to this folder (normally the usr_folder) But if called from local admin => the ref_id of the category public | |
| getFolderId () | |
| setHandlers ($a_xml_parser) | |
| set event handler should be overwritten by inherited class private | |
| startParsing () | |
| start the parser | |
| setRoleAssignment ($a_assign) | |
| set import to local role assignemt | |
| buildTag ($type, $name, $attr="") | |
| generate a tag with given name and attributes | |
| handlerBeginTag ($a_xml_parser, $a_name, $a_attribs) | |
| handler for begin of element | |
| handlerEndTag ($a_xml_parser, $a_name) | |
| handler for end of element | |
| handlerCharacterData ($a_xml_parser, $a_data) | |
| handler for character data | |
| getCollectedRoles () | |
| get collected roles | |
Data Fields | |
| $folder_id | |
| $roles | |
Definition at line 38 of file class.ilUserImportParser.php.
| ilUserImportParser::buildTag | ( | $ | type, | |
| $ | name, | |||
| $ | attr = "" | |||
| ) |
generate a tag with given name and attributes
| string | "start" | "end" for starting or ending tag | |
| string | element/tag name | |
| array | array of attributes |
Definition at line 112 of file class.ilUserImportParser.php.
References $type.
{
$tag = "<";
if ($type == "end")
$tag.= "/";
$tag.= $name;
if (is_array($attr))
{
while (list($k,$v) = each($attr))
$tag.= " ".$k."=\"$v\"";
}
$tag.= ">";
return $tag;
}
| ilUserImportParser::getCollectedRoles | ( | ) |
get collected roles
Definition at line 359 of file class.ilUserImportParser.php.
{
return $this->roles;
}
| ilUserImportParser::getFolderId | ( | ) |
Definition at line 70 of file class.ilUserImportParser.php.
Referenced by handlerEndTag().
{
return $this->folder_id;
}
Here is the caller graph for this function:| ilUserImportParser::handlerBeginTag | ( | $ | a_xml_parser, | |
| $ | a_name, | |||
| $ | a_attribs | |||
| ) |
handler for begin of element
Definition at line 135 of file class.ilUserImportParser.php.
{
// extract roles mode
if ($this->mode == IL_EXTRACT_ROLES)
{
switch($a_name)
{
case "Role":
$this->current_role_id = $a_attribs["Id"];
$this->current_role_type = $a_attribs["Type"];
break;
}
}
// extract roles mode
if ($this->mode == IL_USER_IMPORT)
{
switch($a_name)
{
case "Role":
$this->current_role_id = $a_attribs["Id"];
$this->current_role_type = $a_attribs["Type"];
break;
case "User":
$this->userObj = new ilObjUser();
$this->userObj->setLanguage($a_attribs["Language"]);
$this->userObj->setImportId($a_attribs["Id"]);
break;
case "Password":
$this->currPasswordType = $a_attribs["Type"];
break;
}
}
$this->cdata = "";
}
| ilUserImportParser::handlerCharacterData | ( | $ | a_xml_parser, | |
| $ | a_data | |||
| ) |
handler for character data
Definition at line 338 of file class.ilUserImportParser.php.
{
// i don't know why this is necessary, but
// the parser seems to convert ">" to ">" and "<" to "<"
// in character data, but we don't want that, because it's the
// way we mask user html in our content, so we convert back...
$a_data = str_replace("<","<",$a_data);
$a_data = str_replace(">",">",$a_data);
// DELETE WHITESPACES AND NEWLINES OF CHARACTER DATA
$a_data = preg_replace("/\n/","",$a_data);
$a_data = preg_replace("/\t+/","",$a_data);
if(!empty($a_data))
{
$this->cdata .= $a_data;
}
}
| ilUserImportParser::handlerEndTag | ( | $ | a_xml_parser, | |
| $ | a_name | |||
| ) |
handler for end of element
Definition at line 179 of file class.ilUserImportParser.php.
References ilSaxParser::$ilias, $ilUser, $rbacadmin, $role_id, getFolderId(), and ilObjUser::getUserIdByLogin().
{
global $ilias, $rbacadmin, $ilUser;
// extract roles mode
if ($this->mode == IL_EXTRACT_ROLES)
{
switch($a_name)
{
case "Role":
$this->roles[$this->current_role_id]["name"] = $this->cdata;
$this->roles[$this->current_role_id]["type"] =
$this->current_role_type;
break;
}
}
// user import mode
if ($this->mode == IL_USER_IMPORT)
{
switch($a_name)
{
case "Role":
$this->roles[$this->current_role_id]["name"] = $this->cdata;
break;
case "User":
// check if login name doesn't exist
if (ilObjUser::getUserIdByLogin($this->userObj->getLogin()) == 0)
{
// checks passed. save user
$this->userObj->setTitle($this->userObj->getFullname());
$this->userObj->setDescription($this->userObj->getEmail());
// default time limit settings
$this->userObj->setTimeLimitOwner($this->getFolderId());
$this->userObj->setTimeLimitUnlimited($ilias->account->getTimeLimitUnlimited());
$this->userObj->setTimeLimitFrom($ilias->account->getTimeLimitFrom());
$this->userObj->setTimeLimitUntil($ilias->account->getTimeLimitUntil());
$this->userObj->setActive(true , $ilUser->getId());
$this->userObj->create();
//insert user data in table user_data
$this->userObj->saveAsNew(false);
// set user preferences
$this->userObj->setPref("skin",
$ilias->ini->readVariable("layout","skin"));
$this->userObj->setPref("style",
$ilias->ini->readVariable("layout","style"));
$this->userObj->writePrefs();
//set role entries
foreach($this->roles as $role_id => $role)
{
$rbacadmin->assignUser($this->role_assign[$role_id],
$this->userObj->getId(), true);
}
}
// init role array for next user
$this->roles = array();
break;
case "Login":
$this->userObj->setLogin($this->cdata);
break;
case "Password":
switch ($this->currPasswordType)
{
case "ILIAS2":
$this->userObj->setPasswd($this->cdata, IL_PASSWD_CRYPT);
break;
case "ILIAS3":
$this->userObj->setPasswd($this->cdata, IL_PASSWD_MD5);
break;
}
break;
case "Firstname":
$this->userObj->setFirstname($this->cdata);
break;
case "Lastname":
$this->userObj->setLastname($this->cdata);
$this->userObj->setFullname();
break;
case "Title":
$this->userObj->setUTitle($this->cdata);
break;
case "Gender":
$this->userObj->setGender($this->cdata);
break;
case "Email":
$this->userObj->setEmail($this->cdata);
break;
case "Institution":
$this->userObj->setInstitution($this->cdata);
break;
case "Street":
$this->userObj->setStreet($this->cdata);
break;
case "City":
$this->userObj->setCity($this->cdata);
break;
case "PostalCode":
$this->userObj->setZipCode($this->cdata);
break;
case "Country":
$this->userObj->setCountry($this->cdata);
break;
case "PhoneOffice":
$this->userObj->setPhoneOffice($this->cdata);
break;
case "PhoneHome":
$this->userObj->setPhoneHome($this->cdata);
break;
case "PhoneMobile":
$this->userObj->setPhoneMobile($this->cdata);
break;
case "Fax":
$this->userObj->setFax($this->cdata);
break;
case "Hobby":
$this->userObj->setHobby($this->cdata);
break;
case "Referral_Comment":
$this->userObj->setComment($this->cdata);
break;
case "Department":
$this->userObj->setDepartment($this->cdata);
break;
}
}
}
Here is the call graph for this function:| ilUserImportParser::ilUserImportParser | ( | $ | a_xml_file, | |
| $ | a_mode = IL_USER_IMPORT | |||
| ) |
Constructor.
| string | $a_xml_file xml file | |
| int | $a_mode IL_EXTRACT_ROLES | IL_USER_IMPORT |
public
Definition at line 51 of file class.ilUserImportParser.php.
References ilSaxParser::$lng, $tree, and ilSaxParser::ilSaxParser().
{
global $lng, $tree;
$this->roles = array();
$this->mode = $a_mode;
parent::ilSaxParser($a_xml_file);
}
Here is the call graph for this function:| ilUserImportParser::setFolderId | ( | $ | a_folder_id | ) |
assign users to this folder (normally the usr_folder) But if called from local admin => the ref_id of the category public
Definition at line 66 of file class.ilUserImportParser.php.
{
$this->folder_id = $a_folder_id;
}
| ilUserImportParser::setHandlers | ( | $ | a_xml_parser | ) |
set event handler should be overwritten by inherited class private
Reimplemented from ilSaxParser.
Definition at line 80 of file class.ilUserImportParser.php.
{
xml_set_object($a_xml_parser,$this);
xml_set_element_handler($a_xml_parser,'handlerBeginTag','handlerEndTag');
xml_set_character_data_handler($a_xml_parser,'handlerCharacterData');
}
| ilUserImportParser::setRoleAssignment | ( | $ | a_assign | ) |
set import to local role assignemt
| array | role assignment (key: import id; value: local role id) |
Definition at line 100 of file class.ilUserImportParser.php.
{
$this->role_assign = $a_assign;
}
| ilUserImportParser::startParsing | ( | ) |
start the parser
Reimplemented from ilSaxParser.
Definition at line 90 of file class.ilUserImportParser.php.
{
parent::startParsing();
}
| ilUserImportParser::$folder_id |
Definition at line 40 of file class.ilUserImportParser.php.
| ilUserImportParser::$roles |
Definition at line 41 of file class.ilUserImportParser.php.
1.7.1