- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/kanban/entity/dynamic.php
- Класс: Bitrix\Crm\Kanban\Entity\Dynamic
- Вызов: Dynamic::getItems
public function getItems(array $parameters): \CDBResult
{
$enabledFields = $this->factory->getFieldsCollection()->getFieldNameList();
$parameters['select'] = array_filter($parameters['select'], static function($field) use ($enabledFields)
{
return in_array($field, $enabledFields, true);
});
$filter = $parameters['filter'] ?? [];
if (isset($filter['SEARCH_CONTENT']))
{
SearchEnvironment::prepareSearchFilter($this->getTypeId(), $filter, [
'ENABLE_PHONE_DETECTION' => false,
]);
unset($filter['SEARCH_CONTENT']);
}
if($this->factory->isStagesEnabled())
{
ItemDataProvider::processStageSemanticFilter($filter, $filter);
}
unset($filter[ItemDataProvider::FIELD_STAGE_SEMANTIC]);
$stageIdFieldName = $this->factory->getEntityFieldNameByMap(Item::FIELD_NAME_STAGE_ID);
if (isset($filter[$stageIdFieldName]))
{
$filter['=' . $stageIdFieldName] = $filter[$stageIdFieldName];
unset($filter[$stageIdFieldName]);
}
$parameters['filter'] = $filter;
$data = [];
$items = $this->factory->getItemsFilteredByPermissions($parameters);
foreach($items as $item)
{
$itemData = $item->getData();
$itemData['LINK'] = Service\Container::getInstance()->getRouter()->getItemDetailUrl(
$this->factory->getEntityTypeId(),
$item->getId()
);
$itemData[Item::FIELD_NAME_TITLE] = $item->getHeading();
if(isset($itemData[Item::FIELD_NAME_PREVIOUS_STAGE_ID]))
{
$stage = $this->factory->getStage($itemData[Item::FIELD_NAME_PREVIOUS_STAGE_ID]);
$itemData[Item::FIELD_NAME_PREVIOUS_STAGE_ID] = $stage ? $stage->getName() : $itemData[Item::FIELD_NAME_PREVIOUS_STAGE_ID];
}
$data[] = $itemData;
}
$result = new \CDBResult();
$result->InitFromArray($data);
return $result;
}