• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/mailing.php
  • Класс: Bitrix\Sender\MailingTable
  • Вызов: MailingTable::getChainPersonalizeList
static function getChainPersonalizeList($id)
{
	$result = array();

	$mailingDb = MailingTable::getList(array(
		'select' => array('ID', 'TRIGGER_FIELDS'),
		'filter' => array(
			//'=ACTIVE' => 'Y',
			'=IS_TRIGGER' => 'Y',
			'=ID' => $id
		),
	));
	if(!$mailing = $mailingDb->fetch())
		return $result;

	$triggerFields = $mailing['TRIGGER_FIELDS'];
	if(!is_array($triggerFields))
		$triggerFields = array();

	$settingsList = array();
	foreach($triggerFields as $key => $point)
	{
		if(empty($point['CODE'])) continue;

		$point['IS_EVENT_OCCUR'] = true;
		$point['IS_PREVENT_EMAIL'] = false;
		$point['SEND_INTERVAL_UNIT'] = 'M';

		switch($key)
		{
			case 'END':
				$point['IS_TYPE_START'] = false;
				break;

			case 'START':
			default:
				$point['IS_TYPE_START'] = true;
		}

		$settingsList[] = new Trigger\Settings($point);
	}

	foreach($settingsList as $settings)
	{
		/* @var \Bitrix\Sender\Trigger\Settings $settings */
		if(!$settings->isTypeStart())
			continue;

		$trigger = Trigger\Manager::getOnce($settings->getEndpoint());
		if($trigger)
		{
			$result = array_merge($result, $trigger->getPersonalizeList());
		}
	}

	return $result;
}