- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/Sitemap/Internals/Sitemap.php
- Класс: BitrixSeoSitemapInternalsSitemapTable
- Вызов: SitemapTable::prepareSettings
static function prepareSettings($arSettings)
{
if(is_array($arSettings))
{
$arSettings['FILE_MASK_REGEXP'] = self::compileMask($arSettings['FILE_MASK']);
if(!isset($arSettings['DIR']) || !is_array($arSettings['DIR']))
{
$arSettings['DIR'] = array();
}
if(isset($arSettings['FILE']) && is_array($arSettings['FILE']))
{
ksort($arSettings['FILE'], SORT_STRING);
foreach($arSettings['FILE'] as $file => $value)
{
$pos = mb_strrpos($file, '/');
$parentDir = $pos > 0? mb_substr($file, 0, $pos) : '/';
if(isset($arSettings['DIR'][$parentDir]) && $arSettings['DIR'][$parentDir] == $value)
{
unset($arSettings['FILE'][$file]);
}
}
}
if(isset($arSettings['DIR']) && is_array($arSettings['DIR']))
{
krsort($arSettings['DIR'], SORT_STRING);
foreach($arSettings['DIR'] as $dir => $value)
{
if($dir != '/')
{
$pos = mb_strrpos($dir, '/');
$parentDir = mb_substr($dir, 0, $pos);
if($parentDir == '')
$parentDir = '/';
if(isset($arSettings['DIR'][$parentDir]) && $arSettings['DIR'][$parentDir] == $value)
{
unset($arSettings['DIR'][$dir]);
}
}
}
$arSettings['DIR'] = array_reverse($arSettings['DIR']);
}
if(isset($arSettings['IBLOCK_ACTIVE']) && is_array($arSettings['IBLOCK_ACTIVE']))
{
foreach($arSettings['IBLOCK_ACTIVE'] as $iblockId => $value)
{
if ($value == 'N')
{
unset($arSettings['IBLOCK_LIST'][$iblockId]);
unset($arSettings['IBLOCK_SECTION'][$iblockId]);
unset($arSettings['IBLOCK_ELEMENT'][$iblockId]);
unset($arSettings['IBLOCK_SECTION_SECTION'][$iblockId]);
unset($arSettings['IBLOCK_SECTION_ELEMENT'][$iblockId]);
}
}
}
if(isset($arSettings['FORUM_ACTIVE']) && is_array($arSettings['FORUM_ACTIVE']))
{
foreach($arSettings['FORUM_ACTIVE'] as $forumId => $value)
{
if ($value == 'N')
{
unset($arSettings['FORUM_TOPIC'][$forumId]);
}
}
}
}
return $arSettings;
}