• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/userfieldmanager.php
  • Класс: BitrixDiskUfUserFieldManager
  • Вызов: UserFieldManager::buildAdditionalConnectorList
private function buildAdditionalConnectorList()
{
	$this->additionalConnectorList = array();

	$event = new Event(Driver::INTERNAL_MODULE_ID, 'onBuildAdditionalConnectorList');
	$event->send();

	foreach($event->getResults() as $evenResult)
	{
		if($evenResult->getType() != EventResult::SUCCESS)
		{
			continue;
		}

		$result = $evenResult->getParameters();
		if(!is_array($result))
		{
			throw new SystemException('Wrong event result by building AdditionalConnectorList. Must be array.');
		}

		foreach($result as $connector)
		{
			if(empty($connector['ENTITY_TYPE']))
			{
				throw new SystemException('Wrong event result by building AdditionalConnectorList. Could not find ENTITY_TYPE.');
			}

			if(empty($connector['MODULE_ID']))
			{
				throw new SystemException('Wrong event result by building AdditionalConnectorList. Could not find MODULE_ID.');
			}

			if(empty($connector['CLASS']))
			{
				throw new SystemException('Wrong event result by building AdditionalConnectorList. Could not find CLASS.');
			}

			if(is_string($connector['CLASS']) && class_exists($connector['CLASS']))
			{
				$this->additionalConnectorList[mb_strtolower($connector['ENTITY_TYPE'])] = array(
					$connector['CLASS'],
					$connector['MODULE_ID']
				);
			}
			else
			{
				throw new SystemException('Wrong event result by building AdditionalConnectorList. Could not find class by CLASS.');
			}
		}
	}
}