- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/userfield/datamodifiers/element.php
- Класс: Bitrix\Crm\UserField\DataModifiers\Element
- Вызов: Element::setCompanies
static function setCompanies(array &$result, array $params, $userPermissions): void
{
if(in_array('COMPANY', $params['ENTITY_TYPE'], true))
{
$result['ENTITY_TYPE'][] = 'company';
$topIdList = CCrmCompany::GetTopIDsInCategory(
0,
self::ELEMENTS_LIMIT,
'DESC',
$userPermissions
);
if(empty($topIdList))
{
$companies = new CDBResult();
$companies->InitFromArray([]);
}
else
{
$companies = CCrmCompany::GetListEx(
['ID' => 'DESC'],
['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
false,
false,
['ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO']
);
}
$companyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE');
$companyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY');
while($company = $companies->Fetch())
{
$imageUrl = '';
if(isset($company['LOGO']) && $company['LOGO'] > 0)
{
$image = CFile::ResizeImageGet(
$company['LOGO'],
['width' => 25, 'height' => 25],
BX_RESIZE_IMAGE_EXACT
);
if(is_array($image) && isset($image['src']))
{
$imageUrl = $image['src'];
}
}
$company['SID'] = ($result['PREFIX'] === 'Y' ? 'CO_' . $company['ID'] : $company['ID']);
$isSelected = self::getIsSelectedValue($result, $params, $company);
self::removeItemFromResultList($result, $params, $company);
$desc = [];
if(isset($companyTypeList[$company['COMPANY_TYPE']]))
{
$desc[] = $companyTypeList[$company['COMPANY_TYPE']];
}
if(isset($companyIndustryList[$company['INDUSTRY']]))
{
$desc[] = $companyIndustryList[$company['INDUSTRY']];
}
$result['ELEMENT'][] = [
'title' => (str_replace([';', ','], ' ', $company['TITLE'])),
'desc' => implode(', ', $desc),
'id' => $company['SID'],
'url' => CComponentEngine::MakePathFromTemplate(
COption::GetOptionString('crm', 'path_to_company_show'),
['company_id' => $company['ID']]
),
'image' => $imageUrl,
'type' => 'company',
'selected' => $isSelected
];
}
}
}