Config::getAgreements

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Config
  4. getAgreements
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/config.php
  • Класс: Bitrix\Crm\WebForm\Embed\Config
  • Вызов: Config::getAgreements
public function getAgreements()
{
	$result = [];

	if (!$this->editMode && $this->isDisabled())
	{
		return $result;
	}

	$data = $this->form->get();
	if (!$this->editMode && $data['USE_LICENCE'] !== 'Y')
	{
		return $result;
	}

	$agreements = [];
	if ($data['AGREEMENT_ID'])
	{
		$agreements[$data['AGREEMENT_ID']] = [
			'ID' => $data['AGREEMENT_ID'],
			'CHECKED' => $data['LICENCE_BUTTON_IS_CHECKED'] === 'Y',
			'REQUIRED' => true,
		];
	}

	foreach ($data['AGREEMENTS'] as $agreementRow)
	{
		$agreements[$agreementRow['AGREEMENT_ID']] = [
			'ID' => $agreementRow['AGREEMENT_ID'],
			'CHECKED' => $agreementRow['CHECKED'] === 'Y',
			'REQUIRED' => $agreementRow['REQUIRED'] === 'Y',
		];
	}
	$agreements = array_values($agreements);

	if (empty($agreements))
	{
		return $result;
	}

	$replace = array(
		'button_caption' => $data['BUTTON_CAPTION'],
		'fields' => array_column($this->getFields(), 'label')
	);

	foreach ($agreements as $agreementData)
	{
		$agreement = new Main\UserConsent\Agreement($agreementData['ID'], $replace);
		if (!$agreement->isActive() || !$agreement->isExist())
		{
			continue;
		}

		$content = [
			'title' => $agreement->getTitle(),
			'url' => $agreement->getUrl(),
		];
		if ($agreement->isAgreementTextHtml())
		{
			$content['html'] = $agreement->getHtml();
		}
		else
		{
			$content['text'] = $agreement->getText(true);
		}

		$name = 'AGREEMENT_' . $agreementData['ID'];
		$result[] = [
			'id' => $this->editMode ? $agreementData['ID'] : $name,
			'name' => $name,
			'label' => $agreement->getLabel(),
			'value' => 'Y',
			'required' => $agreementData['REQUIRED'],
			'checked' => $agreementData['CHECKED'],
			'content' => $content,
		];
	}

	return $result;
}

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