• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/push.php
  • Класс: BitrixPullPush
  • Вызов: Push::getTypes
static function getTypes()
{
	if (is_array(self::$types))
	{
		return self::$types;
	}

	if (!BitrixMainLoader::includeModule('im'))
	{
		return Array();
	}

	$notifySchema = CIMNotifySchema::GetNotifySchema();

	$result = Array();
	foreach ($notifySchema as $moduleId => $module)
	{
		if ($module['NAME'] == '')
		{
			$info = CModule::CreateModuleObject($moduleId);
			$name= $info->MODULE_NAME;
		}
		else
		{
			$name = $module['NAME'];
		}

		$types = Array();
		foreach ($module['NOTIFY'] as $notifyType => $notifyConfig)
		{
			if (!$notifyConfig['PUSH'] && $notifyConfig['DISABLED']['PUSH'])
			{
				continue;
			}
			$types[$notifyType] = Array(
				'NAME' => $notifyConfig['NAME'],
				'TYPE' => $notifyType,
				'DISABLED' => (bool)$notifyConfig['DISABLED']['PUSH'],
				'DEFAULT' => (bool)$notifyConfig['PUSH'],
			);
		}
		if (empty($types))
		{
			continue;
		}

		$result[$moduleId] = Array(
			'NAME' => $name,
			'MODULE_ID' => $moduleId,
			'TYPES' => $types
		);
	}

	self::$types = $result;

	return $result;
}