- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/item.php
- Класс: Bitrix\Crm\Controller\Item
- Вызов: Item::listAction
public function listAction(
int $entityTypeId,
array $select = ['*'],
array $order = null,
array $filter = null,
PageNavigation $pageNavigation = null
): ?Page
{
$factory = $this->getFactory($entityTypeId);
if (!$factory)
{
return null;
}
$parameters = [];
$select = array_map(static function($fieldName) {
return Container::getInstance()->getOrmObjectConverter()->convertFieldNameFromCamelCaseToUpperCase($fieldName);
}, $select);
$select = $this->prepareSelect($factory, $select);
$parameters['select'] = $select;
$parameters['filter'] = $this->convertKeysToUpper((array)$filter);
$parameters['filter'] = $this->prepareFilter($factory, $parameters['filter']);
if(is_array($order))
{
$parameters['order'] = $this->convertKeysToUpper($order);
}
if($pageNavigation)
{
$parameters['offset'] = $pageNavigation->getOffset();
$parameters['limit'] = $pageNavigation->getLimit();
}
$items = $factory->getItemsFilteredByPermissions($parameters);
$items = array_values($this->getJsonForItems($factory, $items, $select));
return new Page(
'items',
$items,
function() use($parameters, $factory) {
return $factory->getItemsCountFilteredByPermissions($parameters['filter']);
}
);
}