• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogComponent
  • Вызов: CSocNetLogComponent::GetSiteByDepartmentId
static function GetSiteByDepartmentId($arDepartmentId)
{
	if (!is_array($arDepartmentId))
	{
		$arDepartmentId = array($arDepartmentId);
	}

	$bFound = $arResult = false;

	$dbSitesList = CSite::GetList("SORT", "asc", array("ACTIVE" => "Y")); // cache used
	while ($arSite = $dbSitesList->GetNext())
	{
		$siteRootDepartmentId = COption::GetOptionString("main", "wizard_departament", false, $arSite["LID"], true);
		if ($siteRootDepartmentId)
		{
			if (in_array($siteRootDepartmentId, $arDepartmentId))
			{
				$arResult = $arSite;
				$bFound = true;
			}
			else
			{
				$arSubStructure = CIntranetUtils::getSubStructure($siteRootDepartmentId);
				$arSiteDepartmentId = array_keys($arSubStructure["DATA"]);

				foreach($arDepartmentId as $userDepartmentId)
				{
					if(in_array($userDepartmentId, $arSiteDepartmentId))
					{
						$arResult = $arSite;
						$bFound = true;
						break;
					}
				}
			}

			if($bFound)
			{
				break;
			}
		}
	}

	if (!$bFound)
	{
		if ($defSiteId = CSite::getDefSite())
		{
			$res = CSite::getByID($defSiteId);
			$arResult = $res->fetch();
		}
	}

	return $arResult;
}