- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/util/site.php
- Класс: BitrixTasksUtilSite
- Вызов: Site::getSiteStruct
static function getSiteStruct()
{
if (empty(self::$cache['SITE']))
{
$extranetSiteId = (Loader::includeModule('extranet') ? CExtranet::getExtranetSiteID() : false);
$siteList = [
'LIST' => [],
'PAIR' => [
'EXTRANET' => false,
'INTRANET' => false,
],
];
$res = CSite::getList('sort', 'desc', ['ACTIVE' => 'Y']);
while ($site = $res->Fetch())
{
$siteId = $site['ID'];
$siteDir = $site['DIR'];
$siteServerName = $site['SERVER_NAME'];
$siteList['LIST'][$siteId] = [
'SITE_ID' => $siteId,
'DIR' => ($siteDir && trim($siteDir) !== '' ? $siteDir : '/'),
'SERVER_NAME' => (
$siteServerName && trim($siteServerName) !== ''
? $siteServerName
: Option::get('main', 'server_name', $_SERVER['HTTP_HOST'] ?? null)
),
];
if ($siteId == $extranetSiteId)
{
$siteList['PAIR']['EXTRANET'] =& $siteList['LIST'][$siteId];
}
// type == intranet
elseif (!(isset($siteList['PAIR']['INTRANET']) && $site['DEF'] !== 'Y'))
{
$siteList['PAIR']['INTRANET'] =& $siteList['LIST'][$siteId];
}
}
self::$cache['SITE'] = $siteList;
}
return self::$cache['SITE'];
}