ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilMailImportParser Class Reference

Mail Import Parser. More...

+ 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 ()
- Public Member Functions inherited from ilSaxParser
 ilSaxParser ($a_xml_file= '', $throwException=false)
 Constructor setup ILIAS global object public.
 setXMLContent ($a_xml_content)
 getXMLContent ()
 getInputType ()
 createParser ()
 create parser
 setOptions ($a_xml_parser)
 set parser options
 openXMLFile ()
 open xml file
 parse ($a_xml_parser, $a_fp=null)
 parse xml file
 freeParser ($a_xml_parser)
 free xml parser handle
 setThrowException ($throwException)
 set error handling
- Public Member Functions inherited from PEAR
 PEAR ($error_class=null)
 Constructor.
 _PEAR ()
 Destructor (the emulated type of...).
getStaticProperty ($class, $var)
 If you have a class that's mostly/entirely static, and you need static properties, you can use this method to simulate them.
 registerShutdownFunc ($func, $args=array())
 Use this function to register a shutdown method for static classes.
 isError ($data, $code=null)
 Tell whether a value is a PEAR error.
 setErrorHandling ($mode=null, $options=null)
 Sets how errors generated by this object should be handled.
 expectError ($code= '*')
 This method is used to tell which errors you expect to get.
 popExpect ()
 This method pops one element off the expected error codes stack.
 _checkDelExpect ($error_code)
 This method checks unsets an error code if available.
 delExpect ($error_code)
 This method deletes all occurences of the specified element from the expected error codes stack.
raiseError ($message=null, $code=null, $mode=null, $options=null, $userinfo=null, $error_class=null, $skipmsg=false)
 This method is a wrapper that returns an instance of the configured error class with this object's default error handling applied.
throwError ($message=null, $code=null, $userinfo=null)
 Simpler form of raiseError with fewer options.
 staticPushErrorHandling ($mode, $options=null)
 staticPopErrorHandling ()
 pushErrorHandling ($mode, $options=null)
 Push a new error handler on top of the error handler options stack.
 popErrorHandling ()
 Pop the last error handler used.
 loadExtension ($ext)
 OS independant PHP extension load.

Data Fields

 $mode
 $counter
- Data Fields inherited from ilSaxParser
 $input_type = null
 $xml_content = ''
 $ilias
 $lng
 $xml_file
 $throwException = false
- Data Fields inherited from PEAR
 $_debug = false
 $_default_error_mode = null
 $_default_error_options = null
 $_default_error_handler = ''
 $_error_class = 'PEAR_Error'
 $_expected_errors = array()

Additional Inherited Members

- Protected Member Functions inherited from ilSaxParser
 handleError ($message, $code)
 use given error handler to handle error message or internal ilias error message handle

Detailed Description

Mail Import Parser.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
Id:
class.ilMailImportParser.php 25692 2010-09-15 09:44:16Z mwarkus

Id: class.ilMailImportParser.php,v 1.2 2004/04/08 09:59:55 smeyer Exp $

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

Member Function Documentation

ilMailImportParser::__buildSQLArray ( )

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

References $ilDB.

Referenced by __insert().

{
global $ilDB;
$sql = array();
if(!count($this->mails))
{
return array();
}
foreach($this->mails as $mail)
{
$sql[] = (array('0',
addslashes($mail["usr_id"]),
addslashes($mail["folder_id"]),
addslashes($mail["sender_id"]),
addslashes(serialize(array())),
addslashes($mail["send_time"]),
addslashes($mail["rcp_to"]),
addslashes($mail["rcp_cc"]),
addslashes($mail["rcp_bcc"]),
addslashes($mail["read"]),
addslashes(serialize(array("normal"))),
addslashes($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 267 of file class.ilMailImportParser.php.

References $ilDB, and __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 62 of file class.ilMailImportParser.php.

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

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

References $mode.

Referenced by startParsing().

{
return $this->mode;
}

+ Here is the caller graph for this function:

ilMailImportParser::getNotAssignableUsers ( )

Definition at line 67 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 115 of file class.ilMailImportParser.php.

References $counter, $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 252 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 170 of file class.ilMailImportParser.php.

References $counter.

{
// 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_filexml file

public

Definition at line 48 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 81 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 91 of file class.ilMailImportParser.php.

References __insert(), and getMode().

{
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 38 of file class.ilMailImportParser.php.

Referenced by handlerBeginTag(), and handlerEndTag().

ilMailImportParser::$mode

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

Referenced by getMode().


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