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

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
header('Content-type: text/javascript');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 8) . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
$ignorable_ip = erLhcoreClassModelChatConfig::fetch('ignorable_ip')->current_value;
if ($ignorable_ip == '' || !erLhcoreClassIPDetect::isIgnored(erLhcoreClassIPDetect::getIP(), explode(',', $ignorable_ip))) {
    if (is_array($Params['user_parameters_unordered']['department'])) {
        erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['department']);
        $department = $Params['user_parameters_unordered']['department'];
    } else {
        $department = false;
    }
    $userInstance = erLhcoreClassModelChatOnlineUser::handleRequest(array('uactiv' => (int) $Params['user_parameters_unordered']['uactiv'], 'wopen' => (int) $Params['user_parameters_unordered']['wopen'], 'tz' => $Params['user_parameters_unordered']['tz'], 'message_seen_timeout' => erLhcoreClassModelChatConfig::fetch('message_seen_timeout')->current_value, 'department' => $department, 'identifier' => (string) $Params['user_parameters_unordered']['identifier'], 'pages_count' => true, 'vid' => (string) $Params['user_parameters_unordered']['vid']));
    if (erLhcoreClassModelChatConfig::fetch('track_footprint')->current_value == 1 && isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
        erLhcoreClassModelChatOnlineUserFootprint::addPageView($userInstance);
    }
}
exit;
Пример #2
0
<?php

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
$tpl = erLhcoreClassTemplate::getInstance('lhchat/readoperatormessage.tpl.php');
$tpl->set('referer', '');
$tpl->set('referer_site', '');
$userInstance = erLhcoreClassModelChatOnlineUser::handleRequest(array('message_seen_timeout' => erLhcoreClassModelChatConfig::fetch('message_seen_timeout')->current_value, 'check_message_operator' => true, 'vid' => (string) $Params['user_parameters_unordered']['vid']));
$tpl->set('visitor', $userInstance);
$inputData = new stdClass();
$inputData->username = '';
$inputData->question = '';
$inputData->email = '';
if (is_array($Params['user_parameters_unordered']['department']) && count($Params['user_parameters_unordered']['department']) == 1) {
    erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['department']);
    $inputData->departament_id = array_shift($Params['user_parameters_unordered']['department']);
} else {
    $inputData->departament_id = 0;
}
if (is_array($Params['user_parameters_unordered']['department'])) {
    erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['department']);
    $inputData->departament_id_array = $Params['user_parameters_unordered']['department'];
}
$inputData->validate_start_chat = false;
$inputData->operator = (int) $Params['user_parameters_unordered']['operator'];
$inputData->name_items = array();
$inputData->value_items = array();
$inputData->value_types = array();
$inputData->value_sizes = array();
$inputData->hattr = array();
if ((string) $Params['user_parameters_unordered']['vid'] != '') {
    $inputData->vid = (string) $Params['user_parameters_unordered']['vid'];
if ($ignorable_ip == '' || !erLhcoreClassIPDetect::isIgnored(erLhcoreClassIPDetect::getIP(), explode(',', $ignorable_ip))) {
    $tpl = erLhcoreClassTemplate::getInstance('lhchat/chatcheckoperatormessage.tpl.php');
    if (is_array($Params['user_parameters_unordered']['department'])) {
        erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['department']);
        $department = $Params['user_parameters_unordered']['department'];
    } else {
        $department = false;
    }
    if (is_array($Params['user_parameters_unordered']['ua'])) {
        $uarguments = $Params['user_parameters_unordered']['ua'];
    } else {
        $uarguments = false;
    }
    $proactiveInviteActive = erLhcoreClassModelChatConfig::fetch('pro_active_invite')->current_value;
    erLhcoreClassChatEventDispatcher::getInstance()->dispatch('chat.chatcheckoperatormessage', array('proactive_active' => &$proactiveInviteActive));
    $userInstance = erLhcoreClassModelChatOnlineUser::handleRequest(array('uactiv' => (int) $Params['user_parameters_unordered']['uactiv'], 'wopen' => (int) $Params['user_parameters_unordered']['wopen'], 'tpl' => &$tpl, 'tz' => $Params['user_parameters_unordered']['tz'], 'message_seen_timeout' => erLhcoreClassModelChatConfig::fetch('message_seen_timeout')->current_value, 'department' => $department, 'identifier' => (string) $Params['user_parameters_unordered']['identifier'], 'pages_count' => (int) $Params['user_parameters_unordered']['count_page'] == 1 ? true : false, 'vid' => (string) $Params['user_parameters_unordered']['vid'], 'check_message_operator' => true, 'pro_active_limitation' => erLhcoreClassModelChatConfig::fetch('pro_active_limitation')->current_value, 'pro_active_invite' => $proactiveInviteActive));
    // Exit if not required
    $statusGeoAdjustment = erLhcoreClassChat::getAdjustment(erLhcoreClassModelChatConfig::fetch('geoadjustment_data')->data_value, '', false, $userInstance);
    if ($statusGeoAdjustment['status'] == 'offline' || $statusGeoAdjustment['status'] == 'hidden') {
        echo "lh_inst.stopCheckNewMessage();";
        // Stop check for messages and save resources
        exit;
    }
    if ((int) $Params['user_parameters_unordered']['count_page'] == 1 && erLhcoreClassModelChatConfig::fetch('track_footprint')->current_value == 1 && isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
        erLhcoreClassModelChatOnlineUserFootprint::addPageView($userInstance);
    }
    if ($userInstance !== false) {
        if ($userInstance->invitation_id == -1) {
            $userInstance->invitation_id = 0;
            $userInstance->invitation_assigned = true;
            $userInstance->saveThis();