コード例 #1
0
 public function process()
 {
     $list = erLhcoreClassChat::getList(array('limit' => 100, 'filterlt' => array('time' => $this->range_to), 'filtergt' => array('time' => $this->range_from)));
     self::$archiveTable = "lh_chat_archive_{$this->id}";
     self::$archiveMsgTable = "lh_chat_archive_msg_{$this->id}";
     $pending_archive = count($list);
     $messagesArchived = 0;
     $firstChatID = 0;
     $lastChatID = 0;
     foreach ($list as $item) {
         if ($firstChatID == 0) {
             $firstChatID = $item->id;
         }
         $archive = new erLhcoreClassModelChatArchive();
         $archive->setState(get_object_vars($item));
         $archive->id = null;
         $archive->saveThis();
         $messages = erLhcoreClassModelmsg::getList(array('limit' => 1000, 'filter' => array('chat_id' => $item->id)));
         $messagesArchived += count($messages);
         foreach ($messages as $msg) {
             $msgArchive = new erLhcoreClassModelChatArchiveMsg();
             $msgArchive->setState(get_object_vars($msg));
             $msgArchive->id = null;
             $msgArchive->chat_id = $archive->id;
             erLhcoreClassChat::getSession()->save($msgArchive);
         }
         $lastChatID = $item->id;
         $item->removeThis();
     }
     return array('error' => 'false', 'fcid' => $firstChatID, 'lcid' => $lastChatID, 'messages_archived' => $messagesArchived, 'chats_archived' => count($list), 'pending_archive' => $pending_archive == 100 ? 'true' : 'false');
 }
コード例 #2
0
ファイル: sendmail.php プロジェクト: Topspot/livehelperchat
<?php

// Set new chat owner
$currentUser = erLhcoreClassUser::instance();
$currentUser->getUserID();
$archive = erLhcoreClassModelChatArchiveRange::fetch($Params['user_parameters']['archive_id']);
$archive->setTables();
$chat = erLhcoreClassModelChatArchive::fetch($Params['user_parameters']['chat_id']);
// Chat can be closed only by owner
if (erLhcoreClassChat::hasAccessToRead($chat)) {
    $tpl = erLhcoreClassTemplate::getInstance('lhchat/sendmail.tpl.php');
    $mailTemplate = erLhAbstractModelEmailTemplate::fetch(1);
    erLhcoreClassChatMail::prepareSendMail($mailTemplate);
    $mailTemplate->recipient = $chat->email;
    if (isset($_POST['SendMail'])) {
        $Errors = erLhcoreClassChatMail::validateSendMail($mailTemplate, $chat, array('archive_mode' => true));
        if (count($Errors) == 0) {
            erLhcoreClassChatMail::sendMail($mailTemplate, $chat);
            // Set as mail send only if recipient is the same as chat user
            if ($chat->email == $mailTemplate->recipient) {
                $chat->mail_send = 1;
                $chat->saveThis();
            }
            $tpl->set('message_saved', true);
        } else {
            $tpl->set('errors', $Errors);
        }
    }
    $tpl->set('mail_template', $mailTemplate);
    $tpl->set('chat', $chat);
    $Result['content'] = $tpl->fetch();