• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/subscribe.php
  • Класс: BitrixCatalogSubscribeTable
  • Вызов: SubscribeTable::getContactTypes
static function getContactTypes()
{
	$contactTypes = array();

	$event = new Event('catalog', static::EVENT_ADD_CONTACT_TYPE, array(&$contactTypes));
	$event->send();

	if(!is_array($contactTypes))
		return array();

	$availableFields = array('ID', 'NAME', 'RULE', 'HANDLER');
	foreach($contactTypes as $typeId => $typeData)
	{
		$currentFields = array_keys($typeData);
		$divergenceFields = array_diff($availableFields, $currentFields);
		if(!empty($divergenceFields))
		{
			unset($contactTypes[$typeId]);
			continue;
		}
		if(!is_string($typeData['NAME']) || !is_string($typeData['RULE']) || !is_callable($typeData['HANDLER']))
		{
			unset($contactTypes[$typeId]);
		}
	}

	return $contactTypes;
}