• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/preset/templates/rc.php
  • Класс: BitrixSenderPresetTemplatesRc
  • Вызов: Rc::getTemplates
static function getTemplates($templateId = null, $messageCode = null)
{
	$messageCodes = $messageCode ? array($messageCode) : self::getProvidedMessageCodes();

	$result = [
		[
			'ID' => 'empty',
			'TYPE' => Type::getCode(Type::BASE),
			'CATEGORY' => Category::getCode(Category::CASES),
			'MESSAGE_CODE' => $messageCodes,
			'VERSION' => 2,
			'HOT' => false,
			'ICON' => BX_ROOT . self::IMAGE_DIR . "empty.png",

			'NAME' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_EMPTY'),
			'DESC' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_EMPTY_DESC'),
			'FIELDS' => [
				'COMMENT' => [
					'CODE' => 'COMMENT',
					'VALUE' => '',
				]
			],
		]
	];
	foreach (self::getListByType() as $item)
	{
		$originalCode = mb_strtolower($item['CODE']);
		$code = 'rc_'.mb_strtolower($item['CODE']);
		if($templateId && $code !== $templateId)
		{
			continue;
		}

		$segmentTiles = UITileView::create();
		$segments = Segment::getList([
			'select' => ['ID', 'NAME'],
			'filter' => ['=CODE' => $item['SEGMENT_CODES']]
		]);
		foreach ($segments as $segment)
		{
			$segmentTiles->addTile($segment['ID'], $segment['NAME']);
		}

		$result[] = array(
			'ID' => $code,
			'TYPE' => Type::getCode(Type::BASE),
			'CATEGORY' => Category::getCode(Category::CASES),
			'MESSAGE_CODE' => $messageCodes,
			'VERSION' => 2,
			'HOT' => $item['HOT'] ?? '',
			'ICON' => BX_ROOT . self::IMAGE_DIR . "$originalCode.png",

			'NAME' => $item['NAME'] ?? '',
			'DESC' => $item['DESC'] ?? '',
			'HINT' => $item['HINT'] ?? '',
			'FIELDS' => [
				'TITLE' => [
					'CODE' => 'TITLE',
					'VALUE' => $item['TITLE'] ?? '',
				],
				'COMMENT' => [
					'CODE' => 'COMMENT',
					'VALUE' => $item['TEXT'] ?? '',
				],
				'ALWAYS_ADD' => [
					'CODE' => 'ALWAYS_ADD',
					'VALUE' => 'Y',
				],
			],
			'SEGMENTS' => $segmentTiles->getTiles(),
			'DISPATCH' => $item['DISPATCH'],
		);
	}

	return $result;
}