/**
  * Count the messages drafted by the given user
  *
  * @param CMediusers $user The user
  *
  * @return int The number of drafted messages
  */
 public static function countDraftedFor($user)
 {
     $usermessage = new CUserMessage();
     $where = array('creator_id' => "= '{$user->_id}'");
     /** @var CUserMessage[] */
     $listDrafted = $usermessage->loadList($where);
     foreach ($listDrafted as $key => $_mail) {
         $dests = $_mail->loadRefDests();
         foreach ($dests as $_dest) {
             if ($_dest->datetime_sent) {
                 unset($listDrafted[$key]);
                 continue 2;
             }
         }
     }
     return count($listDrafted);
 }
Esempio n. 2
0
    $where = array();
    $where["from_user_id"] = " = '{$user->_id}'";
    $where["datetime_sent"] = " IS NOT NULL";
    $total_found = CUserMessageDest::countSentFor($user);
}
if ($mode == "draft") {
    $order = "usermessage.usermessage_id DESC";
    $where = array();
    $where["creator_id"] = " = '{$user->_id}'";
    $where["datetime_sent"] = " IS NULL";
    $total_found = CUserMessageDest::countDraftedFor($user);
}
$total_found = $total_found ? $total_found : 0;
$group = "usermessage.usermessage_id";
/** @var CUserMessage[] $usermessages */
$usermessages = $usermessage->loadList($where, $order, "{$page}, {$step}", $group, $lj);
foreach ($usermessages as $_usermessage) {
    $_usermessage->loadRefDestUser();
    /** @var CUserMessageDest[] $destinataires */
    $destinataires = $_usermessage->loadRefDests();
    /* We set the _ref_dest_user when the mode is draft for being able to delete a message */
    if ($mode == 'draft') {
        $_usermessage->_ref_dest_user = reset($_usermessage->_ref_destinataires);
    }
    foreach ($destinataires as $key => $_dest) {
        if (in_array($mode, array("inbox", "archive"))) {
            $_usermessage->_mode = "in";
            if ($_dest->to_user_id != $user->_id) {
                unset($destinataires[$key]);
                continue;
            }
Esempio n. 3
0
    $origin = $usermessage->loadOriginMessage();
    if ($origin->_id) {
        if (!$usermessage->subject) {
            $usermessage->subject = "Re: " . $origin->subject;
        }
        $usermessage->to = $origin->from;
    }
}
if ($usermessage->to) {
    $usermessage->loadRefUsersTo();
}
// Historique des messages avec le destinataire
$where = array();
$where[] = "(usermessage.from = '{$usermessage->from}' AND usermessage.to = '{$usermessage->to}')" . "OR (usermessage.from = '{$usermessage->to}' AND usermessage.to = '{$usermessage->from}')";
$where["date_sent"] = " IS NOT NULL";
$historique = $usermessage->loadList($where, "date_sent DESC", "20", "date_sent, subject");
CMbObject::massLoadFwdRef($historique, "from");
CMbObject::massLoadFwdRef($historique, "to");
/** @var $historique CUserMessage[] */
foreach ($historique as $_mail) {
    $_mail->loadRefUserFrom();
    $_mail->loadRefUsersTo();
}
// Initialisation de CKEditor
$templateManager = new CTemplateManager();
$templateManager->editor = "ckeditor";
$templateManager->simplifyMode = true;
if ($usermessage->date_sent) {
    $templateManager->printMode = true;
}
$templateManager->initHTMLArea();