24.09.2021
16:46
24.09.2021 16:46:16
CModule::IncludeModule('im'); //чат, мессенджер |
ЧАТ (мессенджер)
отправим уведомление в чат (мессенджер)
$arFields = array(
"NOTIFY_TITLE" => "Новый клиент", //заголовок
"MESSAGE" => "Новый клиент",
"MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, // IM_MESSAGE_PRIVATE, IM_MESSAGE_CHAT, IM_MESSAGE_OPEN, IM_MESSAGE_SYSTEM, IM_MESSAGE_OPEN_LINE
"TO_USER_ID" => $userIdTo,
"FROM_USER_ID" => $userIdFrom,
//"AUTHOR_ID" => $userIdOther, //может отличаться от FROM_USER_ID
"NOTIFY_TYPE" => IM_NOTIFY_SYSTEM, // IM_NOTIFY_CONFIRM, IM_NOTIFY_SYSTEM, IM_NOTIFY_FROM
"NOTIFY_MODULE" => "main", // module id sender (ex: xmpp, main, etc)
"NOTIFY_EVENT" => "manage",
);
if(CModule::IncludeModule('im')){
CIMMessenger::Add($arFields);
} |
перезвоните мне от клиента в чат менеджеру
$rsUser = CUser::GetList($by, $order,
array("ID" => $USER->GetID()),
array(
"SELECT" => array("ID","NAME","UF_CONTACT","PERSONAL_MOBILE"),
)
);
if($arUser = $rsUser->Fetch()){
$companyId = $arUser["UF_CONTACT"];
if(intval($companyId)>0 && CModule::IncludeModule('crm') && CModule::IncludeModule('im')){
$arComp = CCrmCompany::GetByID(intval($companyId),false);
$managerId = $arComp["ASSIGNED_BY_ID"];
if($managerId >0 && ($USER->GetID() != $managerId)){
$result = CIMMessage::Add(array(
'FROM_USER_ID' => $USER->GetID(),
'TO_USER_ID' => $managerId,
'MESSAGE' => 'Перезвоните мне, пожалуйста! Тел: '.$arUser["PERSONAL_MOBILE"],
));
}
}
} |
получить сообщения
$chatId = CIMMessage::GetChatId($userAId, $userBId);
$CIMMessage = new CIMMessage();
$arParams = array('SPEED_CHECK' => 'N', 'ORDER' => 'ASC', 'USE_SMILES' => 'N', 'USER_LOAD' => 'N', 'LOAD_DEPARTMENT' => 'N');
$arMessages = $CIMMessage->GetUnreadMessage($arParams); //только непрочитанные
foreach ($arMessages["message"] as $key => $arMes) {
if($arMes["chatId"]==$chatId){
$arUnreadMessages[$arMes["id"]] = $arMes["id"];
}
}
$arMessages = $CIMMessage->GetLastMessage($userAId, $userBId);
$month = array("", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$today = date("Y-m-d");
foreach ($arMessages["message"] as &$arMes) {
$printDate = $arMes["date"]->format("j") ." ". $month[$arMes["date"]->format("n")];
$arMes["date_print"] = ($today == $arMes["date"]->format("Y-m-d"))? "Сегодня" : $printDate;
$arMes["date_unix"] = $arMes["date"]->getTimestamp();
$arMes['read'] = (isset($arUnreadMessages[$arMes["id"]]))?"N":"Y";
unset($arMes["date"]);
} |
аватар
$arResult["USER_AVATAR"] = CIMChat::GetAvatarImage($arUser["PERSONAL_PHOTO"]); |
пометить прочитанным
$res = $CIMMessage->SetLastId($chatId,$userId,$lastId); //$lastId - последнее прочитанное сообщение |
уведомления
$CIMNotify = new CIMNotify();
foreach ($_POST["ID"] as $id) {
$CIMNotify->MarkNotifyRead($id); //пометить прочитанным
}//получить список
$arNotify = $CIMNotify->GetNotifyList();
$arResult = [];
foreach ($arNotify as &$arMes) {
$printDate = $arMes["date"]->format("j") ." ". $month[$arMes["date"]->format("n")];
$arMes["date_print"] = ($today == $arMes["date"]->format("Y-m-d"))? "Сегодня" : $printDate;
$arMes["date_unix"] = $arMes["date"]->getTimestamp();
unset($arMes["date"]);
$arResult[] = $arMes;
} |
чат по сделке-лиду создать
$chat = new \CIMChat;
$chatId = $chat->Add(array(
'TITLE' => $titleChat,
'COLOR' => 'GREEN',//цвет
'TYPE' => IM_MESSAGE_CHAT,//тип чата
'AUTHOR_ID' => $assigned,//владелец чата
'USERS' => $arUsersIds,
'ENTITY_TYPE' => "CRM",
'ENTITY_ID' => ($typeID === 2) ? "DEAL|".$dealId : "LEAD|".$leadId,
));
$arMes = Array(
"TO_CHAT_ID" => $chatId,
"FROM_USER_ID" => 1,
"MESSAGE" => 'CHAT CREATED',
"SYSTEM" => 'Y'
);
CIMChat::AddMessage($arMes);
|
24.09.202116:4624.09.2021 16:46:16
Если блог был полезным, можете угостить меня "чашечкой кофе" :)
Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!