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 |
Definition at line 36 of file class.ilMailImportParser.php.
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(); }
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; }
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;
}
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; } }
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 ">" 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); 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.
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; }
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; }
ilMailImportParser::$counter |
Definition at line 39 of file class.ilMailImportParser.php.
ilMailImportParser::$mode |
Definition at line 38 of file class.ilMailImportParser.php.