Exemple #1
0
	function hasMailAccounts(){
		if (Plugins::instance()->isActivePlugin('mail')) {
			if(is_null($this->mail_accounts))
				$this->mail_accounts = MailAccounts::getMailAccountsByUser(logged_user());
			return is_array($this->mail_accounts) && count($this->mail_accounts) > 0;
		}
		return false;
	}
 static function prepareTrashAndArchivedConditions($trashed, $archived)
 {
     $trashed_cond = "`o`.`trashed_on` " . ($trashed ? ">" : "=") . " " . DB::escape(EMPTY_DATETIME);
     if ($trashed) {
         $archived_cond = "";
     } else {
         $archived_cond = "AND `o`.`archived_on` " . ($archived ? ">" : "=") . " " . DB::escape(EMPTY_DATETIME);
     }
     if ($trashed && Plugins::instance()->isActivePlugin('mail')) {
         $mail_accounts = MailAccounts::getMailAccountsByUser(logged_user());
         $mail_account_ids = array();
         foreach ($mail_accounts as $account) {
             $mail_account_ids[] = $account->getId();
         }
         $mcot_id = MailContents::instance()->getObjectTypeId();
         if (empty($mail_account_ids)) {
             $trashed_cond .= " AND IF(o.object_type_id={$mcot_id}, 0, 1)";
         } else {
             $trashed_cond .= " AND IF(o.object_type_id={$mcot_id}, NOT (SELECT mcx.is_deleted FROM " . TABLE_PREFIX . "mail_contents mcx WHERE mcx.object_id=o.id) AND EXISTS (SELECT mct.object_id FROM " . TABLE_PREFIX . "mail_contents mct WHERE mct.object_id=o.id AND mct.account_id IN(" . implode(',', $mail_account_ids) . ")), 1)";
         }
     }
     return array($trashed_cond, $archived_cond);
 }
 /**
  * Edit email
  *
  * @param void
  * @return null
  */
 function edit_mail()
 {
     if (logged_user()->isGuest()) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $this->setTemplate('add_mail');
     if (array_var($_GET, 'id', '') == '') {
         flash_error('Invalid parameter.');
         ajx_current("empty");
     }
     $original_mail = MailContents::findById(get_id('id', $_GET));
     if (!$original_mail) {
         flash_error('Invalid parameter.');
         ajx_current("empty");
     }
     $mail_accounts = MailAccounts::getMailAccountsByUser(logged_user());
     if (count($mail_accounts) < 1) {
         flash_error(lang('no mail accounts set'));
         ajx_current("empty");
         return;
     }
     $mail_data = array_var($_POST, 'mail', null);
     if (!is_array($mail_data)) {
         $body = $original_mail->getBodyHtml() == '' ? $original_mail->getBodyPlain() : $original_mail->getBodyHtml();
         //Attachs
         $attachs = array();
         if ($original_mail->getHasAttachments()) {
             $attachments = self::readAttachmentsFromFileSystem($original_mail, $att_version);
             foreach ($attachments as $att) {
                 $fName = $att["name"];
                 $fileType = $att["type"];
                 $fid = gen_id();
                 $attachs[] = "FwdMailAttach:{$fName}:{$fileType}:{$fid}";
                 if ($att_version >= 2) {
                     @copy($att['path'], ROOT . "/tmp/" . logged_user()->getId() . "_" . $original_mail->getAccountId() . "_FwdMailAttach_{$fid}");
                 } else {
                     file_put_contents(ROOT . "/tmp/" . logged_user()->getId() . "_" . $original_mail->getAccountId() . "_FwdMailAttach_{$fid}", $att['data']);
                 }
             }
         }
         $mail_data = array('to' => $original_mail->getTo(), 'cc' => $original_mail->getCc(), 'bcc' => $original_mail->getBcc(), 'subject' => $original_mail->getSubject(), 'body' => $body, 'type' => $original_mail->getBodyHtml() != '' ? 'html' : 'plain', 'account_id' => $original_mail->getAccountId(), 'conversation_id' => $original_mail->getConversationId(), 'in_reply_to_id' => $original_mail->getMessageId(), 'original_id' => $original_mail->getId(), 'last_mail_in_conversation' => MailContents::getLastMailIdInConversation($original_mail->getConversationId(), true), 'id' => $original_mail->getId(), 'draft_edit' => 1, 'attachs' => $attachs);
         // array
     }
     // if
     tpl_assign('mail', $original_mail);
     tpl_assign('mail_data', $mail_data);
     tpl_assign('mail_accounts', $mail_accounts);
 }
 function hasMailAccounts()
 {
     if (is_null($this->mail_accounts)) {
         $this->mail_accounts = MailAccounts::getMailAccountsByUser(logged_user());
     }
     return is_array($this->mail_accounts) && count($this->mail_accounts) > 0;
 }
 function mail_accounts()
 {
     if (!can_manage_security(logged_user())) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $my_accounts = MailAccounts::getMailAccountsByUser(logged_user());
     $all_accounts = MailAccounts::findAll();
     tpl_assign('my_accounts', $my_accounts);
     tpl_assign('all_accounts', $all_accounts);
 }