• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/seo/ads/messagemarketingfb.php
  • Класс: Bitrix\Sender\Integration\Seo\Ads\MessageMarketingFb
  • Вызов: MessageMarketingFb::saveConfiguration
public function saveConfiguration(Message\Configuration $configuration)
{
	$config = $configuration;
	$clientId = $config->getOption('CLIENT_ID')->getValue();
	$body = $config->getOption('BODY')->getValue();
	$targetUrl = $config->getOption('TARGET_URL')->getValue();
	$campaignName = $config->getOption('TITLE')->getValue();

	if (!$clientId)
	{
		$result = new Result();
		$result->addError(
			new Error(Loc::getMessage('SENDER_INTEGRATION_SEO_MESSAGE_ERROR_NO_CLIENT'))
		);

		return $result;
	}

	if(!filter_var($targetUrl, FILTER_VALIDATE_URL))
	{
		$result = new Result();
		$result->addError(
			new Error(Loc::getMessage('SENDER_INTEGRATION_SEO_MESSAGE_ERROR_NO_TARGET_URL'))
		);

		return $result;
	}

	$utmMarks = [
		['CODE' => 'utm_source', 'VALUE' => 'b24_sender_'.static::CODE],
		['CODE' => 'utm_medium', 'VALUE' => 'ads'],
		['CODE' => 'utm_campaign', 'VALUE' => $campaignName]
	];

	if (!mb_strpos($targetUrl, 'b24_sender_'.static::CODE))
	{
		$preparedMarks = [];
		foreach($utmMarks as $utmMark)
		{
			$preparedMarks[$utmMark['CODE']] = $utmMark['VALUE'];
		}

		$config->getOption('TARGET_URL')->setValue(sprintf('%s/?%s',$targetUrl, http_build_query($preparedMarks)));
	}

	return Entity\Message::create()
		->setCode($this->getCode())
		->setUtm($utmMarks)
		->saveConfiguration($this->configuration);
}