- Модуль: mobileapp
- Путь к файлу: ~/bitrix/modules/mobileapp/lib/janative/entity/base.php
- Класс: BitrixMobileAppJanativeEntityBase
- Вызов: Base::expandDependency
static function expandDependency($ext): array
{
$result = [];
if (!is_string($ext))
{
return [];
}
if ( isset(self::$expandedDependencies[$ext]))
{
return self::$expandedDependencies[$ext];
}
$findChildren = false;
$relativeExtDir = $ext;
if(mb_strpos($ext, "*") === (mb_strlen($ext) - 1))
{
$relativeExtDir = str_replace(["/*", "*"], "", $ext);
$findChildren = true;
}
$absolutePath = Manager::getExtensionPath($relativeExtDir);
if($findChildren && $absolutePath != null)
{
$dir = new Directory($absolutePath);
$items = $dir->getChildren();
for ($i = 0, $l = count($items); $i < $l; $i++)
{
/** @var Directory $entry **/
$entry = $items[$i];
if ($entry->isDirectory())
{
$toAdd = $entry->getChildren();
$extensionFile = new File($entry->getPath(). '/extension.js');
if($extensionFile->isExists())
{
$result[] = $extensionFile->getPath();
}
$l += count($toAdd);
$items = array_merge($items, $toAdd);
}
}
$result = array_map(function($path) use ($absolutePath, $relativeExtDir) {
return str_replace([$absolutePath, "/extension.js"],[$relativeExtDir, ""], $path);
}, $result);
}
$rootExtension = new File($absolutePath . '/extension.js');
if($rootExtension->isExists())
{
$result[] = $relativeExtDir;
}
self::$expandedDependencies[$ext] = $result;
return $result;
}