Пример #1
0
<?php

try {
    $chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
    if ($chat->hash == $Params['user_parameters']['hash']) {
        $msg = erLhcoreClassModelmsg::fetch($Params['user_parameters']['msgid']);
        if ($msg->chat_id == $chat->id) {
            $tpl = erLhcoreClassTemplate::getInstance('lhchat/syncuser.tpl.php');
            $tpl->set('messages', array((array) $msg));
            $tpl->set('chat', $chat);
            $tpl->set('sync_mode', isset($Params['user_parameters_unordered']['mode']) ? $Params['user_parameters_unordered']['mode'] : '');
            echo json_encode(array('msg' => $tpl->fetch(), 'error' => 'f'));
            exit;
        }
    }
} catch (Exception $e) {
}
echo json_encode(array('error' => 't'));
exit;
Пример #2
0
<?php

$definition = array('msg' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'unsafe_raw'), 'msgid' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'int', array('min_range' => 1)));
$form = new ezcInputForm(INPUT_POST, $definition);
if ($form->hasValidData('msg') && trim($form->msg) != '' && mb_strlen($form->msg) < (int) erLhcoreClassModelChatConfig::fetch('max_message_length')->current_value) {
    $db = ezcDbInstance::get();
    $db->beginTransaction();
    try {
        $chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
        if ($chat->hash == $Params['user_parameters']['hash'] && ($chat->status == erLhcoreClassModelChat::STATUS_PENDING_CHAT || $chat->status == erLhcoreClassModelChat::STATUS_ACTIVE_CHAT)) {
            $msg = erLhcoreClassModelmsg::fetch($form->msgid);
            if ($msg->chat_id == $chat->id && $msg->user_id == 0) {
                $msg->msg = trim($form->msg);
                if ($chat->chat_locale != '' && $chat->chat_locale_to != '') {
                    erLhcoreClassTranslate::translateChatMsgVisitor($chat, $msg);
                }
                erLhcoreClassChat::getSession()->update($msg);
                $tpl = erLhcoreClassTemplate::getInstance('lhchat/syncuser.tpl.php');
                $tpl->set('messages', array((array) $msg));
                $tpl->set('chat', $chat);
                $tpl->set('sync_mode', isset($Params['user_parameters_unordered']['mode']) ? $Params['user_parameters_unordered']['mode'] : '');
                $chat->operation_admin .= "lhinst.updateMessageRowAdmin({$chat->id},{$msg->id});\n";
                $chat->user_typing = time();
                $chat->user_typing_txt = htmlspecialchars_decode(erTranslationClassLhTranslation::getInstance()->getTranslation('chat/updatemsguser', 'User has edited his last message'), ENT_QUOTES);
                $chat->updateThis();
                echo json_encode(array('error' => 'f', 'msg' => trim($tpl->fetch())));
            }
        }
        $db->commit();
    } catch (Exception $e) {
        $db->rollback();