33 require_once(
"Services/Mail/classes/class.ilMail.php");
 
  106                 $this->user_id = $a_user_id;
 
  108                 $this->table_mail_obj_data = 
'mail_obj_data';
 
  109                 $this->table_tree = 
'mail_tree';
 
  113                         $this->mtree = 
new ilTree($this->user_id);
 
  114                         $this->mtree->setTableNames($this->table_tree,$this->table_mail_obj_data);
 
  120                 if (is_object($this->lng))
 
  122                         $this->lng->loadLanguageModule(
"mail");
 
  124                         $this->actions = array(
 
  125                                 "moveMails"        => $this->lng->txt(
"mail_move_to"),
 
  126                                 "markMailsRead"   => $this->lng->txt(
"mail_mark_read"),
 
  127                                 "markMailsUnread" => $this->lng->txt(
"mail_mark_unread"),
 
  128                                 "deleteMails"      => $this->lng->txt(
"delete"));
 
  132                 $this->default_folder = array(
 
  133                         "b_inbox"     => 
"inbox",
 
  134                         "c_trash"     => 
"trash",
 
  135                         "d_drafts"    => 
"drafts",
 
  137                         "z_local"     => 
"local");
 
  148                 $res = $ilDB->queryf(
' 
  149                         SELECT * FROM '.$this->table_mail_obj_data.
' 
  152                         array(
'integer', 
'text'),
 
  153                         array($this->user_id, 
'inbox'));
 
  168                 $res = $ilDB->queryf(
' 
  169                         SELECT * FROM '.$this->table_mail_obj_data.
' 
  172                         array(
'integer', 
'text'),
 
  173                         array($this->user_id, 
'drafts'));
 
  189                 $res = $ilDB->queryf(
' 
  190                         SELECT * FROM '.$this->table_mail_obj_data.
' 
  193                         array(
'integer', 
'text'),
 
  194                         array($this->user_id, 
'trash'));
 
  209                 $res = $ilDB->queryf(
' 
  210                         SELECT * FROM '.$this->table_mail_obj_data.
' 
  213                         array(
'integer', 
'text'),
 
  214                         array($this->user_id, 
'sent'));
 
  228                 return $this->mtree->getRootID($this->user_id);
 
  244                         if ($folder_data[
"type"] == 
"user_folder" or $folder_data[
"type"] == 
"local")
 
  246                                 #return array_merge($this->actions,array("add" => $this->lng->txt("mail_add_subfolder"))); 
  272                 $res = $ilDB->queryf(
' 
  273                         SELECT count(mail_id) cnt FROM mail  
  277                         array(
'integer', 
'integer', 
'text'),
 
  278                         array(
'0', $a_user_id, 
'unread'));
 
  282                 $res2 = $ilDB->queryf(
' 
  283                         SELECT count(mail_id) cnt FROM mail m,mail_obj_data mo  
  284                         WHERE m.user_id = mo.user_id  
  285                         AND m.folder_id = mo.obj_id  
  288                         AND m.m_status = %s',
 
  289                         array(
'text', 
'integer', 
'text'),
 
  290                         array(
'inbox', $a_user_id, 
'unread'));
 
  295                 return $row->cnt + $row2->cnt;
 
  309                 $root_id = $ilDB->nextId($this->table_mail_obj_data);
 
  311                 $res = $ilDB->manipulateF(
' 
  312                         INSERT INTO '. $this->table_mail_obj_data .
'  
  318                         VALUES( %s, %s, %s, %s)',
 
  319                         array(
'integer',
'integer', 
'text', 
'text'),
 
  320                         array($root_id, $this->user_id, 
'a_root', 
'root'));
 
  322                 $this->mtree->addTree($this->user_id,$root_id);
 
  324                 foreach ($this->default_folder as $key => $folder)
 
  329                         $last_id = $ilDB->nextId($this->table_mail_obj_data);
 
  330                         $statement = $ilDB->manipulateF(
' 
  331                                 INSERT INTO '. $this->table_mail_obj_data .
'  
  337                                 VALUES( %s, %s, %s, %s)',
 
  338                                 array(
'integer',
'integer', 
'text', 
'text'),
 
  339                                 array($last_id,$this->user_id, $key, $folder));
 
  341                         $this->mtree->insertNode($last_id,$root_id);
 
  360                 $next_id = $ilDB->nextId($this->table_mail_obj_data);
 
  361                 $statement = $ilDB->manipulateF(
' 
  362                         INSERT INTO '. $this->table_mail_obj_data .
' 
  368                          VALUES(%s,%s,%s,%s)',
 
  369                         array(
'integer',
'integer', 
'text', 
'text'),
 
  370                         array($next_id, $this->user_id, $a_folder_name, 
'user_folder'));
 
  373                 $this->mtree->insertNode($next_id,$a_parent_id);        
 
  393                 $statement = $ilDB->manipulateF(
' 
  394                         UPDATE '. $this->table_mail_obj_data .
' 
  397                         array(
'text', 
'integer'),
 
  398                         array($a_new_folder_name, $a_obj_id));
 
  413                 $res = $ilDB->queryf(
' 
  414                         SELECT obj_id FROM '. $this->table_mail_obj_data .
' 
  417                         array(
'integer', 
'text'),
 
  418                         array($this->user_id, $a_folder_name));
 
  422                 return $row->obj_id ? 
true : 
false;
 
  435                         SELECT title FROM mail_obj_data 
  443                 if( array_key_exists(
$row[
'title'], $this->default_folder) )
 
  448                 include_once(
"Services/Mail/classes/class.ilMail.php");
 
  449                 $umail = 
new ilMail($this->user_id);
 
  452                 $subtree = $this->mtree->getSubtree($this->mtree->getNodeData($a_folder_id));
 
  455                 $this->mtree->deleteTree($this->mtree->getNodeData($a_folder_id));
 
  458                 foreach($subtree as $node)
 
  461                         $mails = $umail->getMailsOfFolder($node[
"obj_id"]);
 
  463                         foreach ($mails as $mail)
 
  465                                 $mail_ids[] = $mail[
"mail_id"];
 
  468                         if (is_array($mail_ids))
 
  470                                 $umail->deleteMails($mail_ids);
 
  474                         $statement = $ilDB->manipulateF(
' 
  475                                 DELETE FROM '. $this->table_mail_obj_data .
'  
  478                                 array($node[
'obj_id']));
 
  489                 return $ilDB->getLastInsertId();
 
  501                 $res = $ilDB->queryf(
' 
  502                         SELECT * FROM '. $this->table_mail_obj_data .
'  
  505                         array(
'integer', 
'integer'),
 
  506                         array($this->user_id, $a_obj_id));
 
  511                                         "title"    => stripslashes(
$row->title),
 
  512                                         "type"     => 
$row->m_type
 
  524                 $res = $ilDB->queryf(
' 
  525                         SELECT * FROM  '. $this->table_tree .
'  
  551                 foreach ($this->default_folder as $key => $value)
 
  553                         $res = $ilDB->queryf(
' 
  554                                 SELECT obj_id,m_type FROM '. $this->table_mail_obj_data .
'  
  557                                 array(
'integer', 
'text'),
 
  558                                 array($this->user_id, $key));
 
  562                         $user_folder[] = array(
 
  564                                 "type"     => 
$row->m_type,
 
  565                                 "obj_id"   => 
$row->obj_id);
 
  568                 $res = $ilDB->queryf(
' 
  569                         SELECT * FROM '. $this->table_tree. 
', '. $this->table_mail_obj_data .
' 
  570                         WHERE '. $this->table_mail_obj_data.
'.obj_id = '. $this->table_tree.
'.child  
  571                         AND '. $this->table_tree.
'.depth  > %s 
  572                         AND '. $this->table_tree.
'.tree  = %s 
  573                         ORDER BY '. $this->table_mail_obj_data.
'.title  ',
 
  574                         array(
'integer', 
'integer'),
 
  575                         array(
'2', $this->user_id));
 
  579                         $user_folder[] = array(
 
  580                                 "title"      => stripslashes(
$row->title),
 
  581                                 "type"    => 
$row->m_type,
 
  582                                 "obj_id"  => 
$row->child);
 
  595                 $this->user_id = $a_user_id;
 
  610                 $data = array($this->user_id);
 
  612                 $statement = $ilDB->manipulateF(
' 
  613                         DELETE FROM mail_obj_data WHERE user_id = %s',
 
  614                         array(
'integer'), array($this->user_id)
 
  617                 $statement = $ilDB->manipulateF(
' 
  618                         DELETE FROM mail_options WHERE user_id = %s',
 
  619                         array(
'integer'), array($this->user_id)
 
  622                 $statement = $ilDB->manipulateF(
' 
  623                         DELETE FROM mail_saved WHERE user_id = %s',
 
  624                         array(
'integer'), array($this->user_id)
 
  627                 $statement = $ilDB->manipulateF(
' 
  628                         DELETE FROM mail_tree WHERE tree = %s',
 
  629                         array(
'integer'), array($this->user_id)
 
  648                 $statement = $ilDB->manipulateF(
' 
  652                         WHERE sender_id = %s',
 
  653                         array(
'integer', 
'text', 
'integer'),