Segment::getSegments

  1. Bitrix24 API (v. 23.675.0)
  2. sender
  3. Segment
  4. getSegments
  • Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/preset/segment.php
  • Класс: Bitrix\Sender\Integration\Crm\Preset\Segment
  • Вызов: Segment::getSegments
private function getSegments()
{
	$endpointsAll = array();

	$list = array();
	$connector = new Connectors\Lead;
	foreach (Connectors\Lead::getUiFilterPresets() as $code => $data)
	{
		if (empty($data['sender_segment_name']))
		{
			continue;
		}

		$segmentCode = $code;
		if (!empty($data['sender_segment_business_case']))
		{
			$segmentCode = "case_" . $segmentCode;
		}

		$fields = $data['fields'];
		$fields['BX_PRESET_ID'] = $code;

		$item = array(
			'CODE' => $segmentCode,
			'NAME' => $data['sender_segment_name'],
			'SORT' => 100,
			'ENDPOINTS' => array(
				array(
					'MODULE_ID' => 'sender',
					'CODE' => $connector->getCode(),
					'FIELDS' => self::convertPresetFields($fields)
				)
			)
		);

		$list[] = $item;
		if ($item['CODE'] === 'crm_lead_all')
		{
			$endpointsAll = array_merge($endpointsAll, $item['ENDPOINTS']);
		}
	}


	$connector = new Connectors\Client;
	foreach (Connectors\Client::getUiFilterPresets() as $code => $data)
	{
		if (empty($data['sender_segment_name']))
		{
			continue;
		}

		$segmentCode = $code;
		if (!empty($data['sender_segment_business_case']))
		{
			$segmentCode = "case_" . $segmentCode;
		}

		$fields = $data['fields'];
		$fields['BX_PRESET_ID'] = $code;

		$item = array(
			'CODE' => $segmentCode,
			'NAME' => $data['sender_segment_name'],
			'SORT' => 100,
			'ENDPOINTS' => array(
				array(
					'MODULE_ID' => 'sender',
					'CODE' => $connector->getCode(),
					'FIELDS' => self::convertPresetFields($fields)
				)
			)
		);

		$list[] = $item;
		if ($item['CODE'] === 'crm_client_all')
		{
			$endpointsAll = array_merge($endpointsAll, $item['ENDPOINTS']);
		}
	}

	if (count($endpointsAll) > 1)
	{
		$list[] = array(
			'CODE' => Entity\Segment::CODE_ALL,
			'NAME' => Loc::getMessage('SENDER_INTEGRATION_CRM_PRESET_SEGMENT_ALL'),
			'SORT' => 50,
			'ENDPOINTS' => $endpointsAll
		);
	}

	return $list;
}

Добавить комментарий