- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/utils.php
- Класс: CIntranetUtils
- Вызов: CIntranetUtils::GetDepartmentManager
static function GetDepartmentManager($arDepartments, $skipUserId=false, $bRecursive=false)
{
if(!is_array($arDepartments) || empty($arDepartments))
return array();
if (null == self::$SECTIONS_SETTINGS_CACHE)
self::_GetDeparmentsTree();
$arManagers = array();
$arManagerIDs = array();
foreach ($arDepartments as $section_id)
{
$arSection = self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id];
if ($arSection['UF_HEAD'] && $arSection['UF_HEAD'] != $skipUserId)
{
$arManagers[$arSection['UF_HEAD']] = null;
$arManagerIDs[] = $arSection['UF_HEAD'];
}
}
if(count($arManagerIDs) > 0)
{
$dbRes = CUser::GetList('ID', 'ASC', array('ID' => implode('|', array_unique($arManagerIDs))));
while($arUser = $dbRes->GetNext())
{
$arManagers[$arUser['ID']] = $arUser;
}
}
foreach ($arDepartments as $section_id)
{
$arSection = self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id];
$bFound = $arSection['UF_HEAD']
&& $arSection['UF_HEAD'] != $skipUserId
&& array_key_exists($arSection['UF_HEAD'], $arManagers);
if (!$bFound && $bRecursive && $arSection['IBLOCK_SECTION_ID'])
{
$ar = CIntranetUtils::GetDepartmentManager(array($arSection['IBLOCK_SECTION_ID']), $skipUserId, $bRecursive);
$arManagers = $arManagers + $ar;
}
}
return $arManagers;
}