• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ads/adsform.php
  • Класс: Bitrix\Crm\Ads\AdsForm
  • Вызов: AdsForm::exportForm
static function exportForm($type, $accountId, $crmFormId, array $parameters = array())
{
	static::resetErrors();

	// 0. Prepare fields.
	$crmForm = new Form;
	if (!$crmForm->load($crmFormId))
	{
		static::$errors[] = "Form #{$crmFormId} not found.";
		return false;
	}

	$fields = FieldMapper::toAdsForm($crmForm);
	if (empty($fields))
	{
		static::$errors[] = "Can not map Form #{$crmFormId} fields.";
		return false;
	}

	$crmFormData = $crmForm->get();
	$formName = (isset($parameters['ADS_FORM_NAME']) && $parameters['ADS_FORM_NAME']) ? $parameters['ADS_FORM_NAME'] : $crmFormData['NAME'];
	$formSuccessUrl = (isset($parameters['ADS_FORM_SUCCESS_URL']) && $parameters['ADS_FORM_SUCCESS_URL']) ? $parameters['ADS_FORM_SUCCESS_URL'] : '';
	$locale = (isset($parameters['LOCALE']) && $parameters['LOCALE']) ? $parameters['LOCALE'] : null;
	$formTitle = (isset($crmFormData['CAPTION']) && $crmFormData['CAPTION']) ? $crmFormData['CAPTION'] : $formName;
	$description = (isset($crmFormData['DESCRIPTION']) && $crmFormData['DESCRIPTION']) ? $crmFormData['DESCRIPTION'] : '';
	if ($description)
	{
		$bbCodeParser = new \CTextParser();
		$description = $bbCodeParser->convertText($description);
		$description = str_replace(array('
', '
', '
'), "\n", $description); $description = \CTextParser::clearAllTags($description); } $privacyPolicyUrl = $crmForm->getAgreementUrl(); if (!$formSuccessUrl) { $formSuccessUrl = $crmForm->getSuccessPageUrl(); } // 1. Send add query to Facebook. /**@var LeadAds\Form $form*/ $form = static::getService()->getForm($type); $form->setAccountId($accountId); $addResult = $form->add(array( 'NAME' => $formName, 'TITLE' => $formTitle, 'DESCRIPTION' => $description, 'SUCCESS_URL' => $formSuccessUrl, 'PRIVACY_POLICY_URL' => $privacyPolicyUrl, 'BUTTON_CAPTION' => $crmForm->getButtonCaption(), 'FIELDS' => $fields, 'LOCALE' => $locale, )); if (!$addResult->isSuccess() || !$addResult->getId()) { static::$errors = $addResult->getErrorMessages(); return false; } $adsFormId = $addResult->getId(); // 2. Save link "Facebook GroupId"-with-"Portal url" in table b_crm_ads_form. $addLinkResult = Internals\AdsFormLinkTable::add(array( 'LINK_DIRECTION' => Internals\AdsFormLinkTable::LINK_DIRECTION_EXPORT, 'WEBFORM_ID' => $crmFormId, 'ADS_TYPE' => $type, 'ADS_ACCOUNT_ID' => $accountId, 'ADS_FORM_ID' => $adsFormId, 'ADS_ACCOUNT_NAME' => $parameters['ADS_ACCOUNT_NAME'] ?? '', 'ADS_FORM_NAME' => $formName, )); if (!$addLinkResult->isSuccess()) { static::$errors = $addLinkResult->getErrorMessages(); return false; } // 3. Register web hook handler. EventManager::getInstance()->registerEventHandler( 'seo', 'OnWebHook', 'crm', WebHookFormFillHandler::class, 'handleEvent' ); return true; }