• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/crumbstorage.php
  • Класс: BitrixDiskCrumbStorage
  • Вызов: CrumbStorage::calculateDistance
public function calculateDistance(Folder $fromFolder, BaseObject $toObject)
{
	$fromFolder = $fromFolder->getRealObject();
	if (!$fromFolder)
	{
		return null;
	}

	$crumbs = $this->getByObject($toObject);
	$between = array();
	$found = false;
	if (
		$fromFolder->getStorageId() == $toObject->getStorageId() &&
		$fromFolder->getStorage()->getRootObjectId() == $fromFolder->getId()
	)
	{
		$found = true;
	}

	foreach (array_reverse($crumbs, true) as $objectId => $name)
	{
		if ($objectId == $fromFolder->getRealObjectId())
		{
			$found = true;
			break;
		}

		$between[$objectId] = $name;
	}

	$between = array_reverse($between, true);

	return $found? $between : null;
}