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