• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/mailing.php
  • Класс: Bitrix\Sender\MailingTable
  • Вызов: MailingTable::getPresetMailingList
static function getPresetMailingList(array $params = null)
{
	$resultList = array();
	$event = new \Bitrix\Main\Event('sender', 'OnPresetMailingList');
	$event->send();

	foreach ($event->getResults() as $eventResult)
	{
		if ($eventResult->getModuleId() === 'sale')
		{
			continue;
		}

		if ($eventResult->getType() == \Bitrix\Main\EventResult::ERROR)
		{
			continue;
		}

		$eventResultParameters = $eventResult->getParameters();

		if (!empty($eventResultParameters))
		{
			if(!empty($params['CODE']))
			{
				$eventResultParametersTmp = array();
				foreach($eventResultParameters as $preset)
				{
					if($params['CODE'] == $preset['CODE'])
					{
						$eventResultParametersTmp[] = $preset;
						break;
					}
				}

				$eventResultParameters = $eventResultParametersTmp;
			}

			$resultList = array_merge($resultList, $eventResultParameters);
		}
	}

	$resultListTmp = Integration\EventHandler::onSenderTriggerCampaignPreset();
	foreach($resultList as $result)
	{
		if(empty($result['TRIGGER']['START']['ENDPOINT']['CODE']))
			continue;

		$trigger = Trigger\Manager::getOnce($result['TRIGGER']['START']['ENDPOINT']);
		if(!$trigger)
			continue;

		$result['TRIGGER']['START']['ENDPOINT']['NAME'] = $trigger->getName();
		if(!empty($result['TRIGGER']['START']['ENDPOINT']['CODE']))
		{
			$trigger = Trigger\Manager::getOnce($result['TRIGGER']['END']['ENDPOINT']);
			if(!$trigger)
				$result['TRIGGER']['END']['ENDPOINT']['NAME'] = $trigger->getName();
		}


		$resultListTmp[] = $result;
	}

	return $resultListTmp;
}