$tpl->set('forceoffline', true); } $tpl->set('leaveamessage', $leaveamessage); if (isset($_POST['StartChat']) && $disabled_department === false) { // Validate post data $Errors = erLhcoreClassChatValidator::validateStartChat($inputData, $startDataFields, $chat, $additionalParams); if (count($Errors) == 0 && !isset($_POST['switchLang'])) { $chat->setIP(); erLhcoreClassModelChat::detectLocation($chat); $statusGeoAdjustment = erLhcoreClassChat::getAdjustment(erLhcoreClassModelChatConfig::fetch('geoadjustment_data')->data_value, $inputData->vid); if ($statusGeoAdjustment['status'] == 'hidden') { // This should never happen exit('Chat not available in your country'); } if (isset($additionalParams['offline']) && $additionalParams['offline'] == true || $statusGeoAdjustment['status'] == 'offline') { erLhcoreClassChatMail::sendMailRequest($inputData, $chat, array('chatprefill' => isset($chatPrefill) ? $chatPrefill : false)); if (isset($chatPrefill) && $chatPrefill instanceof erLhcoreClassModelChat) { erLhcoreClassChatValidator::updateInitialChatAttributes($chatPrefill, $chat); } erLhcoreClassChatEventDispatcher::getInstance()->dispatch('chat.chat_offline_request', array('input_data' => $inputData, 'chat' => $chat, 'prefill' => array('chatprefill' => isset($chatPrefill) ? $chatPrefill : false))); $Result['parent_messages'][] = 'lh_callback:offline_request_cb'; $tpl->set('request_send', true); } else { $chat->time = time(); $chat->status = 0; $chat->hash = erLhcoreClassChat::generateHash(); $chat->referrer = isset($_POST['URLRefer']) ? $_POST['URLRefer'] : ''; $chat->session_referrer = isset($_POST['r']) ? $_POST['r'] : ''; if (empty($chat->nick)) { $chat->nick = erTranslationClassLhTranslation::getInstance()->getTranslation('chat/startchat', 'Visitor'); }