- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/classes/general/seo_utils.php
- Класс: CSeoUtils
- Вызов: CSeoUtils::getDirStructure
static function getDirStructure($bLogical, $site, $path)
{
global $USER;
$arDirContent = array();
if($USER->CanDoFileOperation('fm_view_listing', array($site, $path)))
{
BitrixMainLoader::includeModule('fileman');
$arDirs = array();
$arFiles = array();
CFileMan::GetDirList(array($site, $path), $arDirs, $arFiles, array(), array("NAME" => "asc"), "DF", $bLogical, true);
$arDirContent_t = array_merge($arDirs, $arFiles);
for($i=0,$l = count($arDirContent_t);$i<$l;$i++)
{
$file = $arDirContent_t[$i];
$arPath = array($site, $file['ABS_PATH']);
if(
($file["TYPE"]=="F" && !$USER->CanDoFileOperation('fm_view_file',$arPath))
|| ($file["TYPE"]=="D" && !$USER->CanDoFileOperation('fm_view_listing',$arPath))
|| ($file["TYPE"]=="F" && $file["NAME"]==".section.php")
)
{
continue;
}
$f = $file['TYPE'] == 'F'
? new BitrixMainIOFile($file['PATH'], $site)
: new BitrixMainIODirectory($file['PATH'], $site);
$p = $f->getName();
if($f->isSystem()
|| $file['TYPE'] == 'F' && in_array($p, array("urlrewrite.php"))
|| $file['TYPE'] == 'D' && preg_match("//(bitrix|".COption::getOptionString("main", "upload_dir", "upload").")//", "/".$p."/")
)
{
continue;
}
$arFileData = array(
'NAME' => $bLogical ? $file['LOGIC_NAME'] : $p,
'FILE' => $p,
'TYPE' => $file['TYPE'],
'DATA' => $file,
);
if($arFileData['NAME'] == '')
$arFileData['NAME'] = GetMessage('SEO_DIR_LOGICAL_NO_NAME');
$arDirContent[] = $arFileData;
}
unset($arDirContent_t);
}
return $arDirContent;
}