- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/searchindex.php
- Класс: BitrixTasksInternalsSearchIndex
- Вызов: SearchIndex::getFieldValue
static function getFieldValue($field, $taskData)
{
$fieldValue = [];
switch ($field)
{
case 'TAGS':
/** @var array|Collection $tags */
$tags = $taskData[$field];
$tags = (is_object($tags)? $tags->export() : (array)$tags);
if ($tags)
{
$fieldValue[] = implode(' ', $tags);
}
break;
case 'CREATED_BY':
case 'RESPONSIBLE_ID':
$fieldValue[] = implode(' ', User::getUserName([$taskData[$field]]));
break;
case 'AUDITORS':
if (array_key_exists('AUDITORS', $taskData))
{
/** @var array|Collection $auditors */
$auditors = $taskData[$field];
$auditors = (is_object($auditors)? $auditors->toArray() : (array)$auditors);
if ($auditors)
{
$fieldValue[] = implode(' ', User::getUserName(array_unique($auditors)));
}
}
break;
case 'ACCOMPLICES':
if (array_key_exists('ACCOMPLICES', $taskData))
{
/** @var array|Collection $accomplices */
$accomplices = $taskData[$field];
$accomplices = (is_object($accomplices)? $accomplices->toArray() : (array)$accomplices);
if ($accomplices)
{
$fieldValue[] = implode(' ', User::getUserName(array_unique($accomplices)));
}
}
break;
case 'GROUP_ID':
$groupId = $taskData[$field];
$groups = Group::getData([$groupId]);
$groupName = ($groups[$groupId]['NAME'] ?? null);
$fieldValue[] = $groupName;
break;
case 'SE_CHECKLIST':
if (!isset($taskData[$field]) && isset($taskData['CHECKLIST']))
{
$field = 'CHECKLIST';
}
/** @var array|CheckList $checkList */
$checkList = $taskData[$field];
$checkList = (is_object($checkList)? $checkList->export() : (array)$checkList);
foreach ($checkList as $item)
{
$fieldValue[] = $item['TITLE'];
}
break;
case 'UF_CRM_TASK':
if (Loader::includeModule('crm'))
{
if (!isset($taskData[$field]))
{
break;
}
/** @var array|Collection $crmItems */
$crmItems = $taskData[$field];
$crmItems = (is_object($crmItems)? $crmItems->toArray() : (array)$crmItems);
foreach ($crmItems as $item)
{
if ($item)
{
$crmElement = explode('_', $item);
$type = $crmElement[0];
$typeId = CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($type));
$title = CCrmOwnerType::GetCaption($typeId, $crmElement[1]);
$fieldValue[] = $title;
}
}
}
break;
// ID, TITLE, DESCRIPTION
default:
if (array_key_exists($field, $taskData) && !empty($taskData[$field]))
{
$fieldValue[] = $taskData[$field];
}
break;
}
return $fieldValue;
}