Public Member Functions | Data Fields

ilUserImportParser Class Reference

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

Detailed Description

Definition at line 38 of file class.ilUserImportParser.php.


Member Function Documentation

ilUserImportParser::buildTag ( type,
name,
attr = "" 
)

generate a tag with given name and attributes

Parameters:
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 "&gt;" to ">" and "&lt;" 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("<","&lt;",$a_data);
                $a_data = str_replace(">","&gt;",$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.

Parameters:
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

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


Field Documentation

ilUserImportParser::$folder_id

Definition at line 40 of file class.ilUserImportParser.php.

ilUserImportParser::$roles

Definition at line 41 of file class.ilUserImportParser.php.


The documentation for this class was generated from the following file: