• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/sitebutton/channel/channelwebform.php
  • Класс: Bitrix\Crm\SiteButton\Channel\ChannelWebForm
  • Вызов: ChannelWebForm::getList
static function getList()
{
	if (!self::canUse())
	{
		return array();
	}

	$providerFields = EntityFieldProvider::getFields();
	$enumList = array();
	$enumListDb = FormTable::getDefaultTypeList(array(
		'select' => array('ID', 'NAME'),
		'filter' => array(
			'=ACTIVE' => 'Y',
			'=IS_CALLBACK_FORM' => 'N'
		),
	));
	while($enumItem = $enumListDb->fetch())
	{
		$enumItem['FORM_FIELDS'] = array();
		$fieldDataDb = FieldTable::getList(array(
			'select' => array('CODE', 'CAPTION'),
			'filter' => array(
				'=FORM_ID' => $enumItem['ID'],
			),
		));
		while ($fieldData = $fieldDataDb->fetch())
		{
			if (!$fieldData['CAPTION'])
			{
				foreach($providerFields as $field)
				{
					if($field['name'] == $fieldData['CODE'])
					{
						$fieldData['CAPTION'] = $field['caption'];
						break;
					}
				}
			}

			if ($fieldData['CAPTION'])
			{
				$enumItem['FORM_FIELDS'][] = $fieldData;
			}
		}

		$enumList[] = $enumItem;
	}

	return $enumList;
}