- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/urlmanager.php
- Класс: BitrixDiskUrlManager
- Вызов: UrlManager::resolveSocNetPathComponentEngine
public function resolveSocNetPathComponentEngine(CComponentEngine $engine, $pageCandidates, &$variables)
{
$component = $engine->getComponent();
if(!$component)
{
$pageId = key($pageCandidates);
$variables = current($pageCandidates);
return $pageId;
}
$storage = null;
foreach ($pageCandidates as $pageId => $variablesTmp)
{
if(isset($variablesTmp["PATH"]) && is_string($variablesTmp["PATH"]) && $variablesTmp["PATH"] <> '')
{
$storage = $this->getStorageByVariables($variablesTmp);
if(!$storage)
{
return '';
}
$variables = array_merge($variablesTmp, $this->resolvePathToFolder($storage, $variablesTmp["PATH"]));
if(empty($variables['FOLDER_ID']))
{
return '';
}
return $pageId;
}
elseif(isset($variablesTmp["FILE_PATH"]) && is_string($variablesTmp["FILE_PATH"]) && $variablesTmp["FILE_PATH"] <> '')
{
$storage = $this->getStorageByVariables($variablesTmp);
if(!$storage)
{
return '';
}
$variables = array_merge($variablesTmp, $this->resolvePathToFile($storage, $variablesTmp["FILE_PATH"]));
if(empty($variables['FILE_ID']))
{
return '';
}
return $pageId;
}
elseif(isset($variablesTmp["TRASH_PATH"]) && is_string($variablesTmp["TRASH_PATH"]) && $variablesTmp["TRASH_PATH"] <> '')
{
$storage = $this->getStorageByVariables($variablesTmp);
if(!$storage)
{
return '';
}
$variables = array_merge($variablesTmp, $this->resolvePathToTrashFolder($storage, $variablesTmp["TRASH_PATH"]));
if(empty($variables['FOLDER_ID']))
{
return '';
}
return $pageId;
}
elseif(isset($variablesTmp["TRASH_FILE_PATH"]) && is_string($variablesTmp["TRASH_FILE_PATH"]) && $variablesTmp["TRASH_FILE_PATH"] <> '')
{
$storage = $this->getStorageByVariables($variablesTmp);
if(!$storage)
{
return '';
}
$variables = array_merge($variablesTmp, $this->resolvePathToTrashFile($storage, $variablesTmp["TRASH_FILE_PATH"]));
if(empty($variables['FILE_ID']))
{
return '';
}
return $pageId;
}
}
$pageId = key($pageCandidates);
$variables = current($pageCandidates);
return $pageId;
}