• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/message.php
  • Класс: BitrixMessageServiceMessage
  • Вызов: Message::setFields
private function setFields(array $fields): void
{
	if (!$this->sender && isset($fields['SENDER_ID']))
	{
		$sender = SenderSmsManager::getSenderById($fields['SENDER_ID']);
		if ($sender)
		{
			$this->setSender($sender);
		}
	}
	if (isset($fields['ID']))
	{
		$this->id = (int)$fields['ID'];
	}
	if (isset($fields['TYPE']))
	{
		$this->setType($fields['TYPE']);
	}
	if (isset($fields['AUTHOR_ID']))
	{
		$this->setAuthorId((int)$fields['AUTHOR_ID']);
	}
	if (isset($fields['MESSAGE_FROM']))
	{
		$this->setFrom($fields['MESSAGE_FROM']);
	}
	if (isset($fields['MESSAGE_TO']))
	{
		$this->setTo($fields['MESSAGE_TO']);
	}
	if (
		isset($fields['MESSAGE_TEMPLATE'])
		&& $this->sender->isConfigurable()
		&& $this->sender->isTemplatesBased()
	)
	{
		$fields['MESSAGE_HEADERS'] = is_array($fields['MESSAGE_HEADERS']) ? $fields['MESSAGE_HEADERS'] : [];
		$fields['MESSAGE_HEADERS']['template'] = $this->sender->prepareTemplate($fields['MESSAGE_TEMPLATE']);
	}
	if (isset($fields['MESSAGE_HEADERS']) && is_array($fields['MESSAGE_HEADERS']))
	{
		$this->setHeaders($fields['MESSAGE_HEADERS']);
	}
	if (isset($fields['MESSAGE_BODY']))
	{
		$messageBody = $this->sender
			? $this->sender->prepareMessageBodyForSave($fields['MESSAGE_BODY'])
			: $fields['MESSAGE_BODY']
		;
		$this->setBody($messageBody);
	}
	if (isset($fields['STATUS_ID']))
	{
		$this->statusId = $fields['STATUS_ID'];
	}
	if (isset($fields['EXTERNAL_STATUS']))
	{
		$this->externalStatus = $fields['EXTERNAL_STATUS'];
	}
}