- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/im/task.php
- Класс: BitrixTasksIntegrationIMTask
- Вызов: Task::postMessage
static function postMessage($chatId, $message, $task = null)
{
$attach = null;
if(is_array($task))
{
$attach = new CIMMessageParamAttach(1, '#E30000'); // red color
$attach->AddUser(Array(
'NAME' => $task['TITLE'],
'AVATAR' => BX_ROOT.'/js/tasks/images/im/chat.png',
'LINK' => CTaskNotifications::getNotificationPath(array('ID' => $task['RESPONSIBLE_ID']), $task['ID']),
));
$gridRows = array();
if($task['STATUS'])
{
$status = Loc::getMessage('TASKS_TASK_STATUS_'.$task['STATUS']);
if($status)
{
$gridRows[] = array(
"NAME" => Loc::getMessage('TASKS_TASK_ENTITY_STATUS_PSEUDO_FIELD').':',
"VALUE" => Loc::getMessage('TASKS_TASK_STATUS_'.$task['STATUS']),
"DISPLAY" => "COLUMN",
"WIDTH" => 120,
);
}
}
if($task['CREATED_BY'])
{
$gridRows[] = array(
"NAME" => Loc::getMessage('TASKS_TASK_ENTITY_CREATED_BY_FIELD').':',
// getFullName() returns escaped data, we want unescaped
"VALUE" => htmlspecialcharsback(BitrixImUser::getInstance($task['CREATED_BY'])->getFullName()),
"USER_ID" => $task['CREATED_BY'],
"DISPLAY" => "COLUMN",
"WIDTH" => 120,
);
}
if($task['RESPONSIBLE_ID'])
{
$gridRows[] = array(
"NAME" => Loc::getMessage('TASKS_TASK_ENTITY_RESPONSIBLE_ID_FIELD').':',
// getFullName() returns escaped data, we want unescaped
"VALUE" => htmlspecialcharsback(BitrixImUser::getInstance($task['RESPONSIBLE_ID'])->getFullName()),
"USER_ID" => $task['RESPONSIBLE_ID'],
"DISPLAY" => "COLUMN",
"WIDTH" => 120,
);
}
if($task['DEADLINE'])
{
$userTZOffset = UtilUser::getTimeZoneOffsetCurrentUser() + Util::getServerTimeZoneOffset();
$gridRows[] = array(
"NAME" => Loc::getMessage('TASKS_TASK_ENTITY_DEADLINE_FIELD').':',
"VALUE" => ((string) $task['DEADLINE']).' ('.BitrixTasksUI::formatTimezoneOffsetUTC($userTZOffset).')',
"DISPLAY" => "COLUMN",
"WIDTH" => 120,
);
}
if($task['DESCRIPTION'])
{
$description = htmlspecialcharsbx($task['DESCRIPTION']);
if(mb_strlen($description) > 100)
{
$description = mb_substr($description, 0, 100).'...';
}
$gridRows[] = array(
"NAME" => Loc::getMessage('TASKS_TASK_ENTITY_DESCRIPTION_FIELD').':',
"VALUE" => $description,
"DISPLAY" => "COLUMN",
"WIDTH" => 120,
);
}
if(count($gridRows))
{
$attach->AddDelimiter();
$attach->AddGrid($gridRows);
}
}
CIMChat::AddMessage(Array(
"FROM_USER_ID" => $task['RESPONSIBLE_ID'],
"TO_CHAT_ID" => $chatId,
"MESSAGE" => $message,
"ATTACH" => $attach,
));
}