• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Layout/Body/ContentBlock/ContentBlockFactory.php
  • Класс: Bitrix\Crm\Service\Timeline\Layout\Body\ContentBlock\ContentBlockFactory
  • Вызов: ContentBlockFactory::getBlocksFromTemplate
static function getBlocksFromTemplate(
	string $template,
	array $replacements
): array
{
	$result = [];

	$parts = preg_split('/(#\w+#)/' . BX_UTF_PCRE_MODIFIER, $template, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);

	foreach ($parts as $singlePart)
	{
		$singlePart = trim($singlePart, ' ');

		if (mb_strpos($singlePart, '#') === 0)
		{
			$block = $replacements[$singlePart] ?? null;
		}
		else
		{
			$block = (new Text())->setValue($singlePart);
		}

		if ($block)
		{
			$result[] = $block;
		}
	}

	return $result;
}