- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/main/uiselector/crmdynamics.php
- Класс: Bitrix\Crm\Integration\Main\UISelector\CrmDynamics
- Вызов: CrmDynamics::search
public function search($params = [])
{
$result = [
'ITEMS' => [],
'ADDITIONAL_INFO' => []
];
$entityOptions = (!empty($params['options']) ? $params['options'] : []);
$requestFields = (!empty($params['requestFields']) ? $params['requestFields'] : []);
$search = $requestFields['searchString'];
$prefix = static::getPrefix($entityOptions);
$entityTypeId = (int)$params['options']['typeId'];
if (
$search <> ''
&& (empty($entityOptions['enableSearch']) || $entityOptions['enableSearch'] !== 'N')
)
{
$filter = $this->getSearchFilter($search, $entityOptions);
if ($filter === false)
{
return $result;
}
$list = Container::getInstance()->getFactory($entityTypeId)->getItemsFilteredByPermissions(
[
'order' => $this->getSearchOrder(),
'select' => $this->getSearchSelect(),
'limit' => static::LIMIT_SEARCH,
'filter' => $filter,
]
);
$resultItems = [];
foreach ($list as $item)
{
$resultItems[$prefix . $item->getId()] = static::prepareEntity($item, $entityOptions);
}
$resultItems = $this->appendItemsByIds($resultItems, $search, $entityOptions);
$resultItems = $this->processResultItems($resultItems, $entityOptions);
$result["ITEMS"] = $resultItems;
}
return $result;
}