CAllCrmMailTemplate::updateUserFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CAllCrmMailTemplate
  4. updateUserFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/mail_template.php
  • Класс: \CAllCrmMailTemplate
  • Вызов: CAllCrmMailTemplate::updateUserFields
static function updateUserFields($id, &$fields)
{
	global $USER_FIELD_MANAGER;

	$USER_FIELD_MANAGER->update('CRM_MAIL_TEMPLATE', $id, $fields);

	if (!empty($fields['UF_ATTACHMENT']) && \CModule::includeModule('disk'))
	{
		$files = $USER_FIELD_MANAGER->getUserFieldValue('CRM_MAIL_TEMPLATE', 'UF_ATTACHMENT', $id);
		$files = !empty($files) && is_array($files) ? $files : array();

		$diskUfManager = \Bitrix\Disk\Driver::getInstance()->getUserFieldManager();
		$diskUfManager->loadBatchAttachedObject($files);
		foreach ($files as $attachedId)
		{
			if ($attachedObject = $diskUfManager->getAttachedObjectById($attachedId))
			{
				$fields['BODY'] = preg_replace(
					sprintf('/bxacid:n%u/', $attachedObject->getObjectId()),
					sprintf('bxacid:%u', $attachedId),
					$fields['BODY'], -1, $count
				);
				if ($count > 0)
					$bodyUpdated = true;
			}
		}

		if (!empty($bodyUpdated))
		{
			$bodyFields = array('BODY' => $fields['BODY']);
			\CCrmMailTemplate::update($id, $bodyFields);
		}
	}
}

Добавить комментарий