• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Item/LogMessage/Delivery/Universal.php
  • Класс: Bitrix\Crm\Service\Timeline\Item\LogMessage\Delivery\Universal
  • Вызов: Universal::getContentBlocks
public function getContentBlocks(): ?array
{
	$result = [];

	$fields = $this->getFields();

	$descriptionsList = [];
	if (isset($fields['MESSAGE_DATA']['DESCRIPTION']))
	{
		$descriptionsList =
			is_array($fields['MESSAGE_DATA']['DESCRIPTION'])
				? $fields['MESSAGE_DATA']['DESCRIPTION']
				: [$fields['MESSAGE_DATA']['DESCRIPTION']]
		;
	}
	$moneyValues = $fields['MESSAGE_DATA']['MONEY_VALUES'] ?? [];
	$currency = $fields['MESSAGE_DATA']['CURRENCY'] ?? null;
	$dateValues = $fields['MESSAGE_DATA']['DATE_VALUES'] ?? [];

	foreach ($descriptionsList as $descriptionIndex => $description)
	{
		$contentBlock = new LineOfTextBlocks();
		$contentId = 'content' . $descriptionIndex;

		$lineContentBlocks = ContentBlockFactory::getBlocksFromTemplate(
			$description,
			array_merge(
				$this->getMoneyValuesReplacementBlocks($moneyValues, $currency),
				$this->getDateValuesReplacementBlocks($dateValues)
			),
		);
		foreach ($lineContentBlocks as $lineBlockIndex => $lineContentBlock)
		{
			if ($lineContentBlock instanceof TextPropertiesInterface)
			{
				$lineContentBlock->setColor(
					$lineContentBlock instanceof Money
						? Text::COLOR_BASE_90
						: Text::COLOR_BASE_70
				);
			}

			$lineId = $contentId . 'Line' . $lineBlockIndex;
			$contentBlock->addContentBlock($lineId, $lineContentBlock);
		}

		$result[$contentId] = $contentBlock;
	}

	return $result;
}