- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/model/session.php
- Класс: BitrixImOpenLinesModelSessionTable
- Вызов: SessionTable::generateSearchContent
static function generateSearchContent(array $fields)
{
$crmCaption = CrmCommon::generateSearchContent($fields['CRM_ACTIVITY_ID']);
$userId = [];
if ($fields['CHAT_ID'] > 0 && $fields['CLOSED'] == 'Y' && Loader::includeModule('im'))
{
$userId[$fields['OPERATOR_ID']] = $fields['OPERATOR_ID'];
$userId[$fields['USER_ID']] = $fields['USER_ID'];
$transcriptLines = [];
$cursor = MessageTable::getList([
'select' => ['MESSAGE', 'AUTHOR_ID'],
'filter' => [
'=CHAT_ID' => $fields['CHAT_ID'],
'>=ID' => $fields['START_ID'],
'<=ID' => $fields['END_ID'],
],
]);
while ($row = $cursor->fetch())
{
if ($row['AUTHOR_ID'] == 0)
{
continue;
}
$userId[$row['AUTHOR_ID']] = $row['AUTHOR_ID'];
$transcriptLines[] = $row['MESSAGE'];
}
$transcriptLines = implode(" ", $transcriptLines);
$transcriptLines = ImText::removeBbCodes($transcriptLines);
if (mb_strlen($transcriptLines) > 5000000)
{
$transcriptLines = mb_substr($transcriptLines, 0, 5000000);
}
}
else
{
$transcriptLines = "";
$userId[$fields['OPERATOR_ID']] = $fields['OPERATOR_ID'];
$userId[$fields['USER_ID']] = $fields['USER_ID'];
}
$mapBuilderManager = MapBuilder::create();
if (!empty($userId))
{
$mapBuilderManager->addUser($userId);
}
if (!empty($crmCaption))
{
foreach ($crmCaption as $item)
{
$mapBuilderManager->addText($item);
}
}
if (!empty($fields['EXTRA_URL']))
{
$mapBuilderManager->addText($fields['EXTRA_URL']);
}
if (!empty($fields['ID']))
{
$mapBuilderManager->addInteger($fields['ID']);
$mapBuilderManager->addText('imol|'.$fields['ID']);
}
if (!empty($transcriptLines))
{
$mapBuilderManager->addText($transcriptLines);
}
return $mapBuilderManager->build();
}