• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ads/adsform.php
  • Класс: Bitrix\Crm\Ads\AdsForm
  • Вызов: AdsForm::getFormLinks
static function getFormLinks($crmFormId, $type)
{
	$linkDb = Internals\AdsFormLinkTable::getList(array(
		'select' => array(
			'ID','LINK_DIRECTION',
			'ADS_FORM_NAME', 'ADS_FORM_ID',
			'ADS_ACCOUNT_NAME', 'ADS_ACCOUNT_ID',
			'DATE_INSERT','ADS_TYPE'
		),
		'filter' => array(
			'=WEBFORM_ID' => $crmFormId,
			'=ADS_TYPE' => $type
		),
		'limit' => 3,
		'cache' => array('ttl' => 300),
		'order' => array('DATE_INSERT' => 'DESC'),
	));
	$linkDb->addFetchDataModifier(
		static function ($raw) {

			$raw['ADS_FORM_NAME'] = $raw['ADS_FORM_NAME'] ?? $raw['ADS_FORM_ID'];
			$raw['ADS_ACCOUNT_NAME'] = $raw['ADS_ACCOUNT_NAME'] ?? $raw['ADS_ACCOUNT_ID'];

			/** @var DateTime $dateInsert */
			$dateInsert = $raw['DATE_INSERT'];
			$timestamp = $dateInsert ? $dateInsert->getTimestamp() : time() + \CTimeZone::getOffset();
			$raw['DATE_INSERT_DISPLAY'] = \FormatDate('x', $timestamp);

			/*INTEGRATION MAPPING*/
			if (Internals\AdsFormLinkTable::LINK_DIRECTION_IMPORT === (int)$raw["LINK_DIRECTION"])
			{
				$raw['FIELDS_MAPPING'] = FormFieldMappingTable::query()
					->setSelect(['CRM_FIELD_KEY','ADS_FIELD_KEY','ITEMS','MULTIPLE'])
					->where("FORM_LINK_ID", $raw["ID"])
					->exec()
					->fetchAll();
			}

			return $raw;
		}
	);

	return $linkDb->fetchAll();
}