• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/preset/templates/rc.php
  • Класс: BitrixSenderPresetTemplatesRc
  • Вызов: Rc::getListByType
static function getListByType()
{
	$list = [
		[
			'CODE' => 'birthday',
			'SEGMENT_CODES' => ['case_crm_client_birthday', 'case_crm_lead_birthday'],
			'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_HINT_EVERY_DAY'),
			'DISPATCH' => [
				'METHOD_CODE' => DispatchMethod::SCHEDULE,
				'TIMES_OF_DAY' => '09:00',
				'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
			]
		],
		[
			'CODE' => 'nps',
			'SEGMENT_CODES' => ['case_crm_client_aft_deal_clo'],
			'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_HINT_NPS'),
			'DISPATCH' => [
				'METHOD_CODE' => DispatchMethod::SCHEDULE,
				'TIMES_OF_DAY' => '09:00',
				'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
			]
		],
	];

	foreach ($list as $index => $item)
	{
		$code = mb_strtoupper($item['CODE']);
		$msgPrefix = 'SENDER_PRESET_TEMPLATE_RC_' . $code . '_';
		foreach (['NAME', 'DESC', 'TITLE', 'TEXT'] as $key)
		{
			$item[$key] = Loc::getMessage($msgPrefix . $key);
		}

		$list[$index] = $item;
	}

	foreach (Holiday::getList() as $holiday)
	{
		$code = $holiday->getCode();
		$name = $holiday->getName();
		$formattedDate = $holiday->formatDate();

		$item = [
			'CODE' => $holiday->getCode(),
			'SEGMENT_CODES' => ["case_crm_client_$code"],
			'HINT' => Loc::getMessage(
				'SENDER_PRESET_TEMPLATE_RC_HINT_ONE_DAY',
				[
					'%run_date%' => PrettyDate::formatDate($holiday->getDateFrom()),
					'%date_from%' => PrettyDate::formatDate($holiday->getDateFrom()),
					'%date_to%' => PrettyDate::formatDate($holiday->getDateTo()),
				]
			),
			'DISPATCH' => [
				'METHOD_CODE' => DispatchMethod::SCHEDULE,
				'TIMES_OF_DAY' => '09:00',
				'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
				'DAYS_OF_MONTH' => $holiday->getDay(),
				'MONTHS_OF_YEAR' => $holiday->getMonth(),
			]
		];

		$msgPrefix = "SENDER_PRESET_TEMPLATE_RC_HOLIDAY_";
		foreach (['NAME', 'DESC', 'TITLE', 'TEXT'] as $key)
		{
			$item[$key] = Loc::getMessage(
				$msgPrefix . $key,
				[
					'%holiday_name%' => $name,
					'%holiday_date%' => $formattedDate,
				]
			);
			$item[$key] = Texts::replace($item[$key] ?? '');
		}

		$list[] = $item;
	}

	return $list;
}