$moduleDesc) { $settings = \Bitrix\Main\Config\Configuration::getInstance($moduleId)->get('ui.entity-selector'); if (empty($settings) || !is_array($settings)) { continue; } if (!empty($settings['extensions']) && is_array($settings['extensions'])) { self::$extensions = array_merge(self::$extensions, $settings['extensions']); } if (!empty($settings['entities']) && is_array($settings['entities'])) { foreach ($settings['entities'] as $entity) { if (is_array($entity) && !empty($entity["entityId"]) && is_string($entity["entityId"])) { self::$entities[$entity["entityId"]] = $entity; } } } if (!empty($settings['filters']) && is_array($settings['filters'])) { foreach ($settings['filters'] as $filter) { if ( is_array($filter) && !empty($filter['id']) && is_string($filter['id']) && !empty($filter['entityId']) && is_string($filter['entityId']) && !empty($filter['className']) && is_string($filter['className']) ) { self::$filters[$filter['entityId']][$filter['id']] = $filter; } } } } self::$loaded = true; } private static function createProvider($moduleId, $className, $options = []): ?BaseProvider { if (!is_string($className)) { return null; } if (is_string($moduleId)) { Loader::includeModule($moduleId); } try { $reflectionClass = new \ReflectionClass($className); if ($reflectionClass->isAbstract()) { return null; } if (!$reflectionClass->isSubclassOf(BaseProvider::class)) { return null; } /** @var BaseProvider $provider */ $provider = $reflectionClass->newInstance($options); return $provider; } catch (\ReflectionException $exception) { } return null; } private static function createFilter($moduleId, $className, $options = []): ?BaseFilter { if (!is_string($className)) { return null; } if (is_string($moduleId)) { Loader::includeModule($moduleId); } try { $reflectionClass = new \ReflectionClass($className); if ($reflectionClass->isAbstract()) { return null; } if (!$reflectionClass->isSubclassOf(BaseFilter::class)) { return null; } /** @var BaseFilter $filter */ $filter = $reflectionClass->newInstance($options); return $filter; } catch (\ReflectionException $exception) { } return null; } }