Public Member Functions | Data Fields

ilMailImportParser Class Reference

Inheritance diagram for ilMailImportParser:
Collaboration diagram for ilMailImportParser:

Public Member Functions

 ilMailImportParser ($a_xml_file, $a_mode)
 Constructor.
 getMode ()
 getCountImported ()
 getNotAssignableUsers ()
 setHandlers ($a_xml_parser)
 set event handler should be overwritten by inherited class private
 startParsing ()
 start the parser
 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
 __insert ()
 __buildSQLArray ()

Data Fields

 $mode
 $counter

Detailed Description

Definition at line 36 of file class.ilMailImportParser.php.


Member Function Documentation

ilMailImportParser::__buildSQLArray (  ) 

Definition at line 278 of file class.ilMailImportParser.php.

Referenced by __insert().

        {
                $sql = array();

                if(!count($this->mails))
                {
                        return array();
                }

                foreach($this->mails as $mail)
                {
                        $sql[] =  (array('0',
                                                         $mail["usr_id"],
                                                         $mail["folder_id"],
                                                         $mail["sender_id"],
                                                         addslashes(serialize(array())),
                                                         $mail["send_time"],
                                                         addslashes($mail["rcp_to"]),
                                                         addslashes($mail["rcp_cc"]),
                                                         addslashes($mail["rcp_bcc"]),
                                                         $mail["read"],
                                                         addslashes(serialize(array("normal"))),
                                                         $mail["m_email"],
                                                         addslashes($mail["m_subject"]),
                                                         addslashes($mail["m_message"]),
                                                         addslashes($mail["import_name"])));
                        
                }
                return $sql ? $sql :array();
        }

Here is the caller graph for this function:

ilMailImportParser::__insert (  ) 

Definition at line 268 of file class.ilMailImportParser.php.

References __buildSQLArray().

Referenced by startParsing().

        {
                global $ilDB;

                $sth = $ilDB->prepare("INSERT INTO mail VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

                $ilDB->executeMultiple($sth,$this->__buildSQLArray());

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilMailImportParser::getCountImported (  ) 

Definition at line 63 of file class.ilMailImportParser.php.

        {
                return count($this->mails);
        }

ilMailImportParser::getMode (  ) 

Definition at line 58 of file class.ilMailImportParser.php.

Referenced by startParsing().

        {
                return $this->mode;
        }

Here is the caller graph for this function:

ilMailImportParser::getNotAssignableUsers (  ) 

Definition at line 68 of file class.ilMailImportParser.php.

        {
                if(count($this->not_imported))
                {
                        return implode("<br/>",$this->not_imported);
                }
                return "";
        }

ilMailImportParser::handlerBeginTag ( a_xml_parser,
a_name,
a_attribs 
)

handler for begin of element

Definition at line 116 of file class.ilMailImportParser.php.

References $ilErr, and ilObjUser::_getImportedUserId().

        {
                global $ilErr;

                switch($a_name)
                {
                        case "users":
                                if($a_attribs["exportVersion"] < EXPORT_VERSION)
                                {
                                        $ilErr->raiseError("!!! This export Version isn't supported, update your ILIAS 2 installation"
                                                                                         ,$ilErr->WARNING);
                                }
                                break;

                        case "user":
                                if(!($this->i3_id = ilObjUser::_getImportedUserId($a_attribs["id"])))
                                {
                                        $this->not_imported[] = $a_attribs["id"];
                                }
                                break;
                                
                        case "mail":
                                if($this->i3_id)
                                {
                                        $this->mails[++$this->counter]["usr_id"] = $this->i3_id;
                                        $this->mails[$this->counter]["m_email"] = $a_attribs["asEmail"];
                                        
                                        // SET FOLDER ID = 0 FOR SYSTEM MESSAGES
                                        if($a_attribs["systemMessage"])
                                        {
                                                $this->mails[$this->counter]["folder_id"] = 0;
                                        }
                                }
                                break;

                        case "sender":
                                if($this->i3_id)
                                {
                                        $sender = ilObjUser::_getImportedUserId($a_attribs["id"]);
                                        $this->mails[$this->counter]["sender_id"] = $sender;
                                        $this->mails[$this->counter]["import_name"] = $a_attribs["import_name"];
                                }
                                break;
                                        
                                
                        default: 
                                // Do nothing
                                break;
                }
        }

Here is the call graph for this function:

ilMailImportParser::handlerCharacterData ( a_xml_parser,
a_data 
)

handler for character data

Definition at line 253 of file class.ilMailImportParser.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);

                if(!empty($a_data))
                {
                        $this->cdata .= $a_data;
                }
        }

ilMailImportParser::handlerEndTag ( a_xml_parser,
a_name 
)

handler for end of element

Definition at line 171 of file class.ilMailImportParser.php.

        {
                // STOP IF USER IS NOT ASSIGNABLE
                if(!$this->i3_id)
                {
                        $this->cdata = '';
                        return;
                }
                switch($a_name)
                {
                        case "targetFolder":
                                if(!isset($this->mails[$this->counter]["folder_id"]))
                                {
                                        $tmp_mailbox =& new ilMailbox($this->i3_id);
                                        switch($this->cdata)
                                        {
                                                case "inbox":
                                                        $this->mails[$this->counter]["folder_id"] = $tmp_mailbox->getInboxFolder();
                                                        $this->mails[$this->counter]["read"] = "unread";
                                                        break;
                                                case "sentbox":
                                                        $this->mails[$this->counter]["folder_id"] = $tmp_mailbox->getSentFolder();
                                                        $this->mails[$this->counter]["read"] = "read";
                                                        break;
                                                case "draft":
                                                        $this->mails[$this->counter]["folder_id"] = $tmp_mailbox->getDraftsFolder();
                                                        $this->mails[$this->counter]["read"] = "read";
                                                        break;
                                                case "trash":
                                                        $this->mails[$this->counter]["folder_id"] = $tmp_mailbox->getTrashFolder();
                                                        $this->mails[$this->counter]["read"] = "read";
                                                        break;
                                        }
                                }
                                break;

                        case "sendTime":
                                $this->mails[$this->counter]["send_time"] = date("Y-m-d H:i:s",$this->cdata);
                                $this->mails[$this->counter]["timest"] = date("YmdHis",$this->cdata);
                                break;

                        case "to":
                                $this->mails[$this->counter]["rcp_to"] = $this->cdata;
                                break;
                                
                        case "cc":
                                $this->mails[$this->counter]["rcp_cc"] = $this->cdata;
                                break;

                        case "bcc":
                                $this->mails[$this->counter]["rcp_bcc"] = $this->cdata;
                                break;
                                
                        case "url":
                                if($this->cdata)
                                {
                                        $this->mails[$this->counter]["m_message"] = "Url: ".$this->cdata." <br>";
                                }
                                break;

                        case "urlDescription":
                                if($this->cdata)
                                {
                                        $this->mails[$this->counter]["m_message"] .= $this->cdata."<br>";
                                }
                                break;

                        case "subject":
                                $this->mails[$this->counter]["m_subject"] = $this->cdata;
                                break;

                        case "message":
                                $this->mails[$this->counter]["m_message"] .= $this->cdata;
                                break;
                }
                $this->cdata = '';
        }

ilMailImportParser::ilMailImportParser ( a_xml_file,
a_mode 
)

Constructor.

Parameters:
string $a_xml_file xml file

public

Definition at line 49 of file class.ilMailImportParser.php.

References ilSaxParser::ilSaxParser().

        {
                define('EXPORT_VERSION',4);

                parent::ilSaxParser($a_xml_file);
                $this->mode = $a_mode;
                $this->counter = -1;
        }

Here is the call graph for this function:

ilMailImportParser::setHandlers ( a_xml_parser  ) 

set event handler should be overwritten by inherited class private

Reimplemented from ilSaxParser.

Definition at line 82 of file class.ilMailImportParser.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');
        }

ilMailImportParser::startParsing (  ) 

start the parser

Reimplemented from ilSaxParser.

Definition at line 92 of file class.ilMailImportParser.php.

References __insert(), and getMode().

        {
                parent::startParsing();

                switch($this->getMode())
                {
                        case "check":
                                if(count($this->not_imported))
                                {
                                        return false;
                                }
                                break;

                        case "import":
                                $this->__insert();
                                break;
                }
                return true;
        }

Here is the call graph for this function:


Field Documentation

ilMailImportParser::$counter

Definition at line 39 of file class.ilMailImportParser.php.

ilMailImportParser::$mode

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


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