• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/site/cookies.php
  • Класс: BitrixLandingSiteCookies
  • Вызов: Cookies::getMainAgreement
static function getMainAgreement(?int $agreementId = null): ?array
{
	$currentLang = LANGUAGE_ID;
	$agreementCode = 'landing_cookie_agreement';
	$fields = [
		'ID' => 0,
		'NAME' => Loc::getMessage('LANDING_COOKIES_MAIN_AGREEMENT_TITLE'),
		'AGREEMENT_TEXT' => Loc::getMessage('LANDING_COOKIES_MAIN_AGREEMENT_TEXT'),
		'LABEL_TEXT' => Loc::getMessage('LANDING_COOKIES_MAIN_AGREEMENT_LABEL'),
	];

	if (!$fields['NAME'])
	{
		return null;
	}

	// current from database (actualize in db)
	$res = AgreementTable::getList([
		'select' => [
			'ID', 'NAME', 'AGREEMENT_TEXT', 'LABEL_TEXT'
		],
		'filter' =>
			$agreementId
			? [
				'ID' => $agreementId
			]
			: [
			'=ACTIVE' => 'Y',
			'=CODE' => $agreementCode,
			'=LANGUAGE_ID' => $currentLang
		]
	]);
	if ($row = $res->fetch())
	{
		return $row;
	}
	else
	{
		$res = AgreementTable::add([
			'CODE' => $agreementCode,
			'LANGUAGE_ID' => $currentLang,
			'TYPE' => Agreement::TYPE_CUSTOM,
			'NAME' => $fields['NAME'],
			'AGREEMENT_TEXT' => $fields['AGREEMENT_TEXT'],
			'LABEL_TEXT' => $fields['LABEL_TEXT'],
			'IS_AGREEMENT_TEXT_HTML' => 'Y'
		]);
		if ($res->isSuccess())
		{
			$fields['ID'] = $res->getId();
			return $fields;
		}
	}

	return null;
}