• Модуль: 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;
}